|
22 | 22 | *******************************************************************************/
|
23 | 23 | package openj9.internal.criu;
|
24 | 24 |
|
| 25 | +import com.ibm.oti.vm.VM; |
| 26 | + |
25 | 27 | import java.lang.reflect.Constructor;
|
26 | 28 | import java.lang.reflect.Field;
|
27 | 29 | import java.lang.reflect.Method;
|
@@ -952,6 +954,42 @@ public synchronized void checkpointJVM() {
|
952 | 954 | J9InternalCheckpointHookAPI.registerPostRestoreHook(HookMode.SINGLE_THREAD_MODE, RESTORE_CLEAR_INETADDRESS_CACHE_PRIORITY, "Clear InetAddress cache on restore", InternalCRIUSupport::clearInetAddressCache); //$NON-NLS-1$
|
953 | 955 | J9InternalCheckpointHookAPI.registerPostRestoreHook(HookMode.SINGLE_THREAD_MODE, RESTORE_ENVIRONMENT_VARIABLES_PRIORITY, "Restore system properties", InternalCRIUSupport::setRestoreJavaProperties); //$NON-NLS-1$
|
954 | 956 |
|
| 957 | + /* Add option overrides. */ |
| 958 | + Properties props = VM.internalGetProperties(); |
| 959 | + |
| 960 | + String unprivilegedOpt = props.getProperty("openj9.internal.criu.unprivilegedMode"); //$NON-NLS-1$ |
| 961 | + if (unprivilegedOpt != null) { |
| 962 | + setUnprivileged(Boolean.parseBoolean(unprivilegedOpt)); |
| 963 | + } |
| 964 | + |
| 965 | + String tcpEstablishedOpt = props.getProperty("openj9.internal.criu.tcpEstablished"); //$NON-NLS-1$ |
| 966 | + if (tcpEstablishedOpt != null) { |
| 967 | + setTCPEstablished(Boolean.parseBoolean(tcpEstablishedOpt)); |
| 968 | + } |
| 969 | + |
| 970 | + String ghostFileLimitOpt = props.getProperty("openj9.internal.criu.ghostFileLimit"); //$NON-NLS-1$ |
| 971 | + if (ghostFileLimitOpt != null) { |
| 972 | + try { |
| 973 | + setGhostFileLimit(Long.parseLong(ghostFileLimitOpt)); |
| 974 | + } catch (NumberFormatException e) { |
| 975 | + System.err.println("Invalid value specified: `-Dopenj9.internal.criu.ghostFileLimit=" + ghostFileLimitOpt + "`."); //$NON-NLS-1$ //$NON-NLS-2$ |
| 976 | + } |
| 977 | + } |
| 978 | + |
| 979 | + String logLevelOpt = props.getProperty("openj9.internal.criu.logLevel"); //$NON-NLS-1$ |
| 980 | + if (logLevelOpt != null) { |
| 981 | + try { |
| 982 | + setLogLevel(Integer.parseInt(logLevelOpt)); |
| 983 | + } catch (NumberFormatException e) { |
| 984 | + System.err.println("Invalid value specified: `-Dopenj9.internal.criu.logLevel=" + logLevelOpt + "` ."); //$NON-NLS-1$ //$NON-NLS-2$ |
| 985 | + } |
| 986 | + } |
| 987 | + |
| 988 | + String logFileOpt = props.getProperty("openj9.internal.criu.logFile"); //$NON-NLS-1$ |
| 989 | + if (logFileOpt != null) { |
| 990 | + setLogFile(logFileOpt); |
| 991 | + } |
| 992 | + |
955 | 993 | /* Add security provider hooks. */
|
956 | 994 | SecurityProviders.registerResetCRIUState();
|
957 | 995 | SecurityProviders.registerRestoreSecurityProviders();
|
|
0 commit comments