https://issues.apache.org/bugzilla/show_bug.cgi?id=45585
Summary: Tomcat doesn't start when JULI is not used (NoClassDefFoundError) Product: Tomcat 6 Version: 6.0.18 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Catalina AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] If there is no file CATALINA_BASE/conf/logging.properties, then Tomcat will not start and the JVM outputs the following error: Exception in thread "main" java.lang.NoClassDefFoundError: without any additional information. Quoting from a user's mail: I believe commit 652629 (which appeared in 6.0.17) broke catalina.sh startup when JULI is not used -- that is, when $CATALINA_BASE/conf/logging.properties does not exist. If this file is absent, LOGGING_CONFIG is not set. However the variable appears quoted in the shell command to exec the JVM: "$_RUNJAVA" $JAVA_OPTS "$LOGGING_CONFIG" $CATALINA_OPTS ... Which introduces an empty argument when LOGGING_CONFIG is unset, and the JVM interprets this empty argument as the class to be invoked. Three possible fixes are: * Set LOGGING_CONFIG to a harmless flag if JULI is not used. With my Sun JVM, a plain -D is safe. I don't know how portable this is. It isn't very pretty. * Maintain separate JVM invocations for the cases when LOGGING_CONFIG is set and when it's unset. This involves more code duplication. The code in question is already duplicated; I'm not sure whether that argues for or against this strategy. * Use a one-item shell array with an @ subscript, which is immune to word splitting when between double quotes but expands to nothing when unpopulated. For example: LOGGING_CONFIG[0]="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties" followed by: "$_RUNJAVA" $JAVA_OPTS "[EMAIL PROTECTED]" $CATALINA_OPTS ... This method may be too clever. I think POSIX requires shell arrays but being portable to true Bourne shell would require $@, which is already being used. -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]