Package org.codehaus.mojo.exec
Class SystemExitManager
- java.lang.Object
-
- java.lang.SecurityManager
-
- org.codehaus.mojo.exec.SystemExitManager
-
public class SystemExitManager extends java.lang.SecurityManagerA special security manager (SM) passing on permission checks to the original SM it replaces, except forcheckExit(int)
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.SecurityManageroriginalSecurityManager
-
Constructor Summary
Constructors Constructor Description SystemExitManager(java.lang.SecurityManager originalSecurityManager)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcheckExit(int status)Always throws aSystemExitExceptionwhenSystem.exit(int)is called, instead of terminating the JVM.voidcheckPermission(java.security.Permission perm)-
Methods inherited from class java.lang.SecurityManager
checkAccept, checkAccess, checkAccess, checkAwtEventQueueAccess, checkConnect, checkConnect, checkCreateClassLoader, checkDelete, checkExec, checkLink, checkListen, checkMemberAccess, checkMulticast, checkMulticast, checkPackageAccess, checkPackageDefinition, checkPermission, checkPrintJobAccess, checkPropertiesAccess, checkPropertyAccess, checkRead, checkRead, checkRead, checkSecurityAccess, checkSetFactory, checkSystemClipboardAccess, checkTopLevelWindow, checkWrite, checkWrite, classDepth, classLoaderDepth, currentClassLoader, currentLoadedClass, getClassContext, getInCheck, getSecurityContext, getThreadGroup, inClass, inClassLoader
-
-
-
-
Method Detail
-
checkExit
public void checkExit(int status)
Always throws aSystemExitExceptionwhenSystem.exit(int)is called, instead of terminating the JVM.The exception is meant to be handled in the
exec:javagoal. On the one hand, this avoids that Java code called in process can terminate the JVM and the whole Maven build process with it. On the other hand, the exception handler can also differentiate between exit status 0 (OK) and non-0 (error) by inspectingSystemExitException.getExitCode():-
Exit status 0 (OK): Just log the fact that
System.exit(int)was called. - Exit status non-0 (error): In addition to logging, the exception is also passed on, failing the mojo execution as if the called Java code had terminated with an exception instead of trying to terminate the JVM with an error code.
- Overrides:
checkExitin classjava.lang.SecurityManager- Parameters:
status- the exit status
-
Exit status 0 (OK): Just log the fact that
-
checkPermission
public void checkPermission(java.security.Permission perm)
- Overrides:
checkPermissionin classjava.lang.SecurityManager
-
-