e.g. "-noSysExit"
But I think what would be better is if applications like Eclipse don't call main() but call the execute() method, which only throws an exception. This same issue exists for all the Derby tools, and it would be good if we had a policy that didn't require a "-noSysExit" option on every command.
I can add an execute() method to NetworkServerControl so it's on the same class as the main() method.
David
Kathey Marsden wrote:
David Van Couvering (JIRA) wrote:
Is it OK for NetworkServerControl to call System.exit, or does that need to throw an exception as well?
The technique I usually do for a utility that I want callable by another class as well as executable from the command line is for the main() routine to delegate to another public method which throws exceptions and doesn't call System.exit(). Then the main() routine catches any exceptions and calls System.exit(1) if there is an exception or System.exit(0) if there isn't one. Then classes call the other public method and main() is only used from the command-line.
The execute() method which is the one with the System.exit is only called by NetworkServerControl.main() so I guess it is the exit even from main that is causing a problem with eclipse. For the exit(0), I guess we could just return. For the exit(1) case I am not entirely sure what is appropriate. Maybe main should just throw the exception then we get an error exit but the calling program won't exit completely.
Rajesh filed the original case when he had a problem with eclipse exiting completely when he tried to use the main method from within eclipse. Rajesh could you confirm that that is the case?
Kathey
