You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Matthias Petermann <ma...@petermann-it.de> on 2013/07/13 13:19:18 UTC

ClassNotFoundException org.apache.juli.FileHandler in Tomcat 7.0.42 / OpenJDK 6 b27 (FreeBSD)

Hello,

when I try to start Tomcat 7.0.42 with OpenJDK 6 b27, it complains about 
not finding classes for the logging handlers. I created a minimal 
logging.properties to narrow down the problem:

     handlers = 1catalina.org.apache.juli.FileHandler, 
java.util.logging.ConsoleHandler
     .handlers = java.util.logging.ConsoleHandler

     1catalina.org.apache.juli.FileHandler.level = FINE
     1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
     1catalina.org.apache.juli.FileHandler.prefix = catalinatest.

     java.util.logging.ConsoleHandler.level = FINE
     java.util.logging.ConsoleHandler.formatter = 
java.util.logging.SimpleFormatter

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 
1catalina.org.apache.juli.FileHandler

The output of "./catalina.sh run" is the following:

     INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
     Can't load log handler "1catalina.org.apache.juli.FileHandler"
     java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
     java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
         at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
         at java.util.logging.LogManager$3.run(LogManager.java:654)
         at java.security.AccessController.doPrivileged(Native Method)
         at 
java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:641)
         at java.util.logging.LogManager.access$900(LogManager.java:150)
         at 
java.util.logging.LogManager$LoggerContext.addLogger(LogManager.java:437)
         at 
java.util.logging.LogManager$UserLoggerContext.demandLogger(LogManager.java:596)
         at 
java.util.logging.LogManager$LoggerContext.demandLogger(LogManager.java:475)
         at java.util.logging.Logger.getLogger(Logger.java:329)
         at 
org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:71)
         at 
org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:196)
         at 
org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:170)
         at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:311)
         at 
org.apache.catalina.core.ContainerBase.getLogger(ContainerBase.java:452)
         at 
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1102)
         at 
org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
         at 
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
         at 
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
         at 
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
         at 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
         at java.util.concurrent.FutureTask.run(FutureTask.java:166)
         at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
         at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
         at java.lang.Thread.run(Thread.java:679)

There can be found many mentions on this topic on the web, each of them 
proposing one of those solutions which I tried:

  * Check/set JAVA_HOME / JRE_HOME

         $ export JAVA_HOME=/usr/local/openjdk6/
         $ export JRE_HOME=/usr/local/openjdk6/jre/

  * Check/set CATALINA_HOME

         $ export 
CATALINA_HOME=/home/mpeterma/System/Apps/apache-tomcat-7.0.42

  * Ensure LOGGING_CONFIG and LOGGING_MANAGER are set properly

         --> validated, LOGGING_MANAGER is set to 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager in 
catalina.sh if unspecified, which should be correct; LOGGING_CONFIG is 
found because it contains the handlers where Tomcat complains about

  * Ensure tomcat-juli.jar is in the classpath

         --> validated, it's using 
/home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/bootstrap.jar:/home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/tomcat-juli.jar

  * Place tomcat-juli.jar into Tomcat lib folder  --> tested, unsuccessful
  * Place tomcat-juli.jar into OpenJDK / JRE lib folder(s) --> tested,
    unsuccessful

None of this proposals fixed the problem for me. When I comment out the 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].* -lines 
from logging.properties, the problem disappears. Anyway - this is not a 
solution as the logging is not working then.

The only workaround which *is* working is to use OpenJDK 7 instead of 
OpenJDK 6. But I would like to make it run on OpenJDK 6.

     $ java -version
     openjdk version "1.6.0_32"
     OpenJDK Runtime Environment (build 1.6.0_32-b27)
     OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

Is there a known problem with this JDK or with OpenJDK in general? It 
might be noteworty that I have this problem on FreeBSD only. The Linux 
version of OpenJDK 6 b27 (reports as IcedTea6 / OpenJDK 6 b27) works.

There was a bug report filed against the FreeBSD OpenJDK 6 port already:

http://www.freebsd.org/cgi/query-pr.cgi?pr=177067&cat=

At this time it is not clear to me where to look for the root cause. I 
appreciate your help and hints, looking for directions where to 
investigate in detail.

Kind regards,
Matthias


Re: ClassNotFoundException org.apache.juli.FileHandler in Tomcat 7.0.42 / OpenJDK 6 b27 (FreeBSD)

Posted by Matthias Petermann <ma...@petermann-it.de>.
Am 13.07.2013 16:07, schrieb Konstantin Kolinko:
> 2013/7/13 Konstantin Kolinko <kn...@gmail.com>:
>> 2013/7/13 Matthias Petermann <ma...@petermann-it.de>:
>>> Hello,
>>>
>>> when I try to start Tomcat 7.0.42 with OpenJDK 6 b27, it complains about not
>>> finding classes for the logging handlers. I created a minimal
>>> logging.properties to narrow down the problem:
>>>
>>>      handlers = 1catalina.org.apache.juli.FileHandler,
>>> java.util.logging.ConsoleHandler
>>>      .handlers = java.util.logging.ConsoleHandler
>>>
>>>      1catalina.org.apache.juli.FileHandler.level = FINE
>>>      1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
>>>      1catalina.org.apache.juli.FileHandler.prefix = catalinatest.
>>>
>>>      java.util.logging.ConsoleHandler.level = FINE
>>>      java.util.logging.ConsoleHandler.formatter =
>>> java.util.logging.SimpleFormatter
>>>
>>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
>>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers =
>>> 1catalina.org.apache.juli.FileHandler
>>>
>>> The output of "./catalina.sh run" is the following:
>>>
>>>      INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
>>>      Can't load log handler "1catalina.org.apache.juli.FileHandler"
>>>      java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
>>>      java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
>>>          at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
>>>          at java.security.AccessController.doPrivileged(Native Method)
>>>          at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
>>>          at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
>>>          at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
>>>          at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
>>>          at java.util.logging.LogManager$3.run(LogManager.java:654)
>>>          at java.security.AccessController.doPrivileged(Native Method)
>>>          at
>>> java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:641)
>>>          at java.util.logging.LogManager.access$900(LogManager.java:150)
>>>          at
>>> java.util.logging.LogManager$LoggerContext.addLogger(LogManager.java:437)
>>>          at
>>> java.util.logging.LogManager$UserLoggerContext.demandLogger(LogManager.java:596)
>>>          at
>>> java.util.logging.LogManager$LoggerContext.demandLogger(LogManager.java:475)
>>>          at java.util.logging.Logger.getLogger(Logger.java:329)
>>>          at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:71)
>>>          at
>>> org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:196)
>>>          at
>>> org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:170)
>>>          at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:311)
>>>          at
>>> org.apache.catalina.core.ContainerBase.getLogger(ContainerBase.java:452)
>>>          at
>>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1102)
>>>          at
>>> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
>>>          at
>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>>          at
>>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
>>>          at
>>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
>>>          at
>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>>          at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>>          at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
>>>          at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>          at java.lang.Thread.run(Thread.java:679)
>>>
>>> There can be found many mentions on this topic on the web, each of them
>>> proposing one of those solutions which I tried:
>>>
>>>   * Check/set JAVA_HOME / JRE_HOME
>>>
>>>          $ export JAVA_HOME=/usr/local/openjdk6/
>>>          $ export JRE_HOME=/usr/local/openjdk6/jre/
>>>
>>>   * Check/set CATALINA_HOME
>>>
>>>          $ export
>>> CATALINA_HOME=/home/mpeterma/System/Apps/apache-tomcat-7.0.42
>>>
>>>   * Ensure LOGGING_CONFIG and LOGGING_MANAGER are set properly
>>>
>>>          --> validated, LOGGING_MANAGER is set to
>>> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager in
>>> catalina.sh if unspecified, which should be correct; LOGGING_CONFIG is found
>>> because it contains the handlers where Tomcat complains about
>>>
>>>   * Ensure tomcat-juli.jar is in the classpath
>>>
>>>          --> validated, it's using
>>> /home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/bootstrap.jar:/home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/tomcat-juli.jar
>>>
>>>   * Place tomcat-juli.jar into Tomcat lib folder  --> tested, unsuccessful
>>>   * Place tomcat-juli.jar into OpenJDK / JRE lib folder(s) --> tested,
>>>     unsuccessful
>>>
>>> None of this proposals fixed the problem for me. When I comment out the
>>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].* -lines from
>>> logging.properties, the problem disappears. Anyway - this is not a solution
>>> as the logging is not working then.
>>>
>>> The only workaround which *is* working is to use OpenJDK 7 instead of
>>> OpenJDK 6. But I would like to make it run on OpenJDK 6.
>>>
>>>      $ java -version
>>>      openjdk version "1.6.0_32"
>>>      OpenJDK Runtime Environment (build 1.6.0_32-b27)
>>>      OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
>>>
>>> Is there a known problem with this JDK or with OpenJDK in general? It might
>>> be noteworty that I have this problem on FreeBSD only. The Linux version of
>>> OpenJDK 6 b27 (reports as IcedTea6 / OpenJDK 6 b27) works.
>>>
>>> There was a bug report filed against the FreeBSD OpenJDK 6 port already:
>>>
>>> http://www.freebsd.org/cgi/query-pr.cgi?pr=177067&cat=
>>>
>>> At this time it is not clear to me where to look for the root cause. I
>>> appreciate your help and hints, looking for directions where to investigate
>>> in detail.
>>>
>>
>> This is the first time I see such issue being reported for OpenJDK6,
>> but there certainly have been the same issue with openjdk 1.7.0.9 four
>> months ago.
>>
>> See this thread,
>> "tomcat 7.0.37 and openjdk 1.7.0.9 on fedora juli FileHandler problems"
>> from March 2013:
>> http://tomcat.markmail.org/thread/pgmc7nh3vv5jqt7w
>>
> To repeat from that thread, essentially the
> "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
> setting is being ignored and default java.util.logging.LogManager is
> used instead.  Hilarity ensues.
>
> Googling further regarding the issue in 1.7.0.9 I cannot get anything
> useful from openjdk.java.net (the openjdk sites are not responding as
> of now), but I found this:
>
> [1] https://bugzilla.redhat.com/show_bug.cgi?id=908497
>
> So the issue was present in
> java-1.7.0-openjdk-1.7.0.9-2.3.5.fc18
> and fixed in
> java-1.7.0-openjdk-1.7.0.9-2.3.5.fc18.1
>
> Looking at spec file in srcrpm for the latter, there is the following patch:
> [[[
> # Back out 6664509 which bnreaks custom log managers
> Patch1000: sec-2013-02-01-6664509.patch
> ]]]
>
> and finally
> [2] https://bugzilla.redhat.com/show_bug.cgi?id=907344
> See comments 5 and 10 there.
>
> Apparently this bug was caused by an attempt to fix a security issue
> (CVE-2013-0425).
>
> Best regards,
> Konstantin Kolinko
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
Here is a short update on the issue. Ultimately I can confirm the 
relevant IcedTea6 patch (S8005615) is not included in the FreeBSD 
version currently. I ported it and submitted a patch: 
http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/180541 .

The thread can be considered as solved so far.

Thanks for your support and kind help.

Regards,
Matthias

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: ClassNotFoundException org.apache.juli.FileHandler in Tomcat 7.0.42 / OpenJDK 6 b27 (FreeBSD)

Posted by Mark Thomas <ma...@apache.org>.
On 13/07/2013 20:39, Martin Gainty wrote:
> Matthias

You may have already realised it but it is generally best to ignore any
posts by Martin Gainty. They are rarely helpful, often confusing and
sometimes completely irrelevant.

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: ClassNotFoundException org.apache.juli.FileHandler in Tomcat 7.0.42 / OpenJDK 6 b27 (FreeBSD)

Posted by Martin Gainty <mg...@hotmail.com>.
Matthias

MG>this is what $CATALINA_HOME/conf/logging.properties is SUPPOSED to look like

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.
3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager.
4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler
# For example, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level = FINE


 
> Date: Sat, 13 Jul 2013 20:04:15 +0200
> From: matthias@petermann-it.de
> To: users@tomcat.apache.org
> Subject: Re: ClassNotFoundException org.apache.juli.FileHandler in Tomcat 7.0.42 / OpenJDK 6 b27 (FreeBSD)
> 
> Am 13.07.2013 16:07, schrieb Konstantin Kolinko:
> > 2013/7/13 Konstantin Kolinko <kn...@gmail.com>:
> >> 2013/7/13 Matthias Petermann <ma...@petermann-it.de>:
> >>> Hello,
> >>>
> >>> when I try to start Tomcat 7.0.42 with OpenJDK 6 b27, it complains about not
> >>> finding classes for the logging handlers. I created a minimal
> >>> logging.properties to narrow down the problem:
> >>>
> >>>      handlers = 1catalina.org.apache.juli.FileHandler,
> >>> java.util.logging.ConsoleHandler
> >>>      .handlers = java.util.logging.ConsoleHandler
> >>>
> >>>      1catalina.org.apache.juli.FileHandler.level = FINE
> >>>      1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
> >>>      1catalina.org.apache.juli.FileHandler.prefix = catalinatest.
> >>>
> >>>      java.util.logging.ConsoleHandler.level = FINE
> >>>      java.util.logging.ConsoleHandler.formatter =
> >>> java.util.logging.SimpleFormatter
> >>>
> >>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
> >>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers =
> >>> 1catalina.org.apache.juli.FileHandler
> >>>
> >>> The output of "./catalina.sh run" is the following:
> >>>
> >>>      INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
> >>>      Can't load log handler "1catalina.org.apache.juli.FileHandler"
> >>>      java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
> >>>      java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
> >>>          at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
> >>>          at java.security.AccessController.doPrivileged(Native Method)
> >>>          at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
MG>Are you specifically requesting to reference the URLClassLoader 
MG>instead of any other CL e.g org.apache.juli.ClassLoaderLogManager ?
> >>>          at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
> >>>          at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
> >>>          at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
> >>>          at java.util.logging.LogManager$3.run(LogManager.java:654)
> >>>          at java.security.AccessController.doPrivileged(Native Method) MG>my /conf/catalina.policy contains these permissions// These permissions apply to the logging API
grant codeBase "file:/home/mgainty/apache-tomcat-7.0.42/bin/tomcat-juli.jar" {
        permission java.util.PropertyPermission "java.util.logging.config.class", "read";
        permission java.util.PropertyPermission "java.util.logging.config.file", "read";
        permission java.io.FilePermission "${java.home}${file.separator}lib${file.separator}logging.properties", "read"; MG>please confirm your catalina.policy contains these grants
> >>>          at
> >>> java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:641) MG>cd $CATALINA_HOMEMG>grep -r -l java.util.logging *.jarMG>./lib/tools.jarMG>please confirm your tools.jar in lib folder contains java.util.logging package
> >>>          at java.util.logging.LogManager.access$900(LogManager.java:150)
> >>>          at
> >>> java.util.logging.LogManager$LoggerContext.addLogger(LogManager.java:437)
> >>>          at
> >>> java.util.logging.LogManager$UserLoggerContext.demandLogger(LogManager.java:596)
> >>>          at
> >>> java.util.logging.LogManager$LoggerContext.demandLogger(LogManager.java:475)
> >>>          at java.util.logging.Logger.getLogger(Logger.java:329)
> >>>          at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:71)
> >>>          at
> >>> org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:196)
> >>>          at
> >>> org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:170)
> >>>          at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:311)
> >>>          at
> >>> org.apache.catalina.core.ContainerBase.getLogger(ContainerBase.java:452)
> >>>          at
> >>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1102)
> >>>          at
> >>> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
> >>>          at
> >>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> >>>          at
> >>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
> >>>          at
> >>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
> >>>          at
> >>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> >>>          at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> >>>          at
> >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> >>>          at
> >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> >>>          at java.lang.Thread.run(Thread.java:679)
> >>>
> >>> There can be found many mentions on this topic on the web, each of them
> >>> proposing one of those solutions which I tried:
> >>>
> >>>   * Check/set JAVA_HOME / JRE_HOME
> >>>
> >>>          $ export JAVA_HOME=/usr/local/openjdk6/
> >>>          $ export JRE_HOME=/usr/local/openjdk6/jre/
> >>>
> >>>   * Check/set CATALINA_HOME
> >>>
> >>>          $ export
> >>> CATALINA_HOME=/home/mpeterma/System/Apps/apache-tomcat-7.0.42
> >>>
> >>>   * Ensure LOGGING_CONFIG and LOGGING_MANAGER are set properly
> >>>
> >>>          --> validated, LOGGING_MANAGER is set to
> >>> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager in
> >>> catalina.sh if unspecified, which should be correct; LOGGING_CONFIG is found
> >>> because it contains the handlers where Tomcat complains about
> >>>
> >>>   * Ensure tomcat-juli.jar is in the classpath
> >>>
> >>>          --> validated, it's using
> >>> /home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/bootstrap.jar:/home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/tomcat-juli.jar
> >>>
> >>>   * Place tomcat-juli.jar into Tomcat lib folder  --> tested, unsuccessful
> >>>   * Place tomcat-juli.jar into OpenJDK / JRE lib folder(s) --> tested,
> >>>     unsuccessful
> >>>
> >>> None of this proposals fixed the problem for me. When I comment out the
> >>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].* -lines from
> >>> logging.properties, the problem disappears. Anyway - this is not a solution
> >>> as the logging is not working then.
> >>>
> >>> The only workaround which *is* working is to use OpenJDK 7 instead of
> >>> OpenJDK 6. But I would like to make it run on OpenJDK 6.
> >>>
> >>>      $ java -version
> >>>      openjdk version "1.6.0_32"
> >>>      OpenJDK Runtime Environment (build 1.6.0_32-b27)
> >>>      OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
> >>>
> >>> Is there a known problem with this JDK or with OpenJDK in general? It might
> >>> be noteworty that I have this problem on FreeBSD only. The Linux version of
> >>> OpenJDK 6 b27 (reports as IcedTea6 / OpenJDK 6 b27) works.
> >>>
> >>> There was a bug report filed against the FreeBSD OpenJDK 6 port already:
> >>>
> >>> http://www.freebsd.org/cgi/query-pr.cgi?pr=177067&cat=
> >>>
> >>> At this time it is not clear to me where to look for the root cause. I
> >>> appreciate your help and hints, looking for directions where to investigate
> >>> in detail.
> >>>
> >>
> >> This is the first time I see such issue being reported for OpenJDK6,
> >> but there certainly have been the same issue with openjdk 1.7.0.9 four
> >> months ago.
> >>
> >> See this thread,
> >> "tomcat 7.0.37 and openjdk 1.7.0.9 on fedora juli FileHandler problems"
> >> from March 2013:
> >> http://tomcat.markmail.org/thread/pgmc7nh3vv5jqt7w
> >>
> > To repeat from that thread, essentially the
> > "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
> > setting is being ignored and default java.util.logging.LogManager is
> > used instead.  Hilarity ensues.
> >
> > Googling further regarding the issue in 1.7.0.9 I cannot get anything
> > useful from openjdk.java.net (the openjdk sites are not responding as
> > of now), but I found this:
> >
> > [1] https://bugzilla.redhat.com/show_bug.cgi?id=908497
> >
> > So the issue was present in
> > java-1.7.0-openjdk-1.7.0.9-2.3.5.fc18
> > and fixed in
> > java-1.7.0-openjdk-1.7.0.9-2.3.5.fc18.1
> >
> > Looking at spec file in srcrpm for the latter, there is the following patch:
> > [[[
> > # Back out 6664509 which bnreaks custom log managers
> > Patch1000: sec-2013-02-01-6664509.patch
> > ]]]
> >
> > and finally
> > [2] https://bugzilla.redhat.com/show_bug.cgi?id=907344
> > See comments 5 and 10 there.
> >
> > Apparently this bug was caused by an attempt to fix a security issue
> > (CVE-2013-0425).
> >
> > Best regards,
> > Konstantin Kolinko
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
> Hi Konstantin,
> 
> many thanks for your inquiries! Everything becomes a bit clearer now.
> 
> [1] https://bugzilla.redhat.com/show_bug.cgi?id=907344 (Comment 10)
> 
> The posting confirms the issue was caused by the IcedTea6 patches and 
> not the OpenJDK itself. And as it was fixed in 1.11.6, my Linux box 
> (IcedTea 1.12.5) doesn't show up the problems with the Juli logger I 
> have seen on my FreeBSD box.
> 
> Looks like the IcedTea6 patch set in FreeBSD ports is older than 1.11.6. 
> I will try to find out more and contact the maintainer.
> 
> So far - I am happy now to be a bit closer to the root cause.
> 
> Thanks again & kind regards,
> Matthias
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
 		 	   		  

Re: ClassNotFoundException org.apache.juli.FileHandler in Tomcat 7.0.42 / OpenJDK 6 b27 (FreeBSD)

Posted by Matthias Petermann <ma...@petermann-it.de>.
Am 13.07.2013 16:07, schrieb Konstantin Kolinko:
> 2013/7/13 Konstantin Kolinko <kn...@gmail.com>:
>> 2013/7/13 Matthias Petermann <ma...@petermann-it.de>:
>>> Hello,
>>>
>>> when I try to start Tomcat 7.0.42 with OpenJDK 6 b27, it complains about not
>>> finding classes for the logging handlers. I created a minimal
>>> logging.properties to narrow down the problem:
>>>
>>>      handlers = 1catalina.org.apache.juli.FileHandler,
>>> java.util.logging.ConsoleHandler
>>>      .handlers = java.util.logging.ConsoleHandler
>>>
>>>      1catalina.org.apache.juli.FileHandler.level = FINE
>>>      1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
>>>      1catalina.org.apache.juli.FileHandler.prefix = catalinatest.
>>>
>>>      java.util.logging.ConsoleHandler.level = FINE
>>>      java.util.logging.ConsoleHandler.formatter =
>>> java.util.logging.SimpleFormatter
>>>
>>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
>>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers =
>>> 1catalina.org.apache.juli.FileHandler
>>>
>>> The output of "./catalina.sh run" is the following:
>>>
>>>      INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
>>>      Can't load log handler "1catalina.org.apache.juli.FileHandler"
>>>      java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
>>>      java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
>>>          at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
>>>          at java.security.AccessController.doPrivileged(Native Method)
>>>          at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
>>>          at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
>>>          at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
>>>          at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
>>>          at java.util.logging.LogManager$3.run(LogManager.java:654)
>>>          at java.security.AccessController.doPrivileged(Native Method)
>>>          at
>>> java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:641)
>>>          at java.util.logging.LogManager.access$900(LogManager.java:150)
>>>          at
>>> java.util.logging.LogManager$LoggerContext.addLogger(LogManager.java:437)
>>>          at
>>> java.util.logging.LogManager$UserLoggerContext.demandLogger(LogManager.java:596)
>>>          at
>>> java.util.logging.LogManager$LoggerContext.demandLogger(LogManager.java:475)
>>>          at java.util.logging.Logger.getLogger(Logger.java:329)
>>>          at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:71)
>>>          at
>>> org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:196)
>>>          at
>>> org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:170)
>>>          at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:311)
>>>          at
>>> org.apache.catalina.core.ContainerBase.getLogger(ContainerBase.java:452)
>>>          at
>>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1102)
>>>          at
>>> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
>>>          at
>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>>          at
>>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
>>>          at
>>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
>>>          at
>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>>          at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>>          at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
>>>          at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>          at java.lang.Thread.run(Thread.java:679)
>>>
>>> There can be found many mentions on this topic on the web, each of them
>>> proposing one of those solutions which I tried:
>>>
>>>   * Check/set JAVA_HOME / JRE_HOME
>>>
>>>          $ export JAVA_HOME=/usr/local/openjdk6/
>>>          $ export JRE_HOME=/usr/local/openjdk6/jre/
>>>
>>>   * Check/set CATALINA_HOME
>>>
>>>          $ export
>>> CATALINA_HOME=/home/mpeterma/System/Apps/apache-tomcat-7.0.42
>>>
>>>   * Ensure LOGGING_CONFIG and LOGGING_MANAGER are set properly
>>>
>>>          --> validated, LOGGING_MANAGER is set to
>>> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager in
>>> catalina.sh if unspecified, which should be correct; LOGGING_CONFIG is found
>>> because it contains the handlers where Tomcat complains about
>>>
>>>   * Ensure tomcat-juli.jar is in the classpath
>>>
>>>          --> validated, it's using
>>> /home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/bootstrap.jar:/home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/tomcat-juli.jar
>>>
>>>   * Place tomcat-juli.jar into Tomcat lib folder  --> tested, unsuccessful
>>>   * Place tomcat-juli.jar into OpenJDK / JRE lib folder(s) --> tested,
>>>     unsuccessful
>>>
>>> None of this proposals fixed the problem for me. When I comment out the
>>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].* -lines from
>>> logging.properties, the problem disappears. Anyway - this is not a solution
>>> as the logging is not working then.
>>>
>>> The only workaround which *is* working is to use OpenJDK 7 instead of
>>> OpenJDK 6. But I would like to make it run on OpenJDK 6.
>>>
>>>      $ java -version
>>>      openjdk version "1.6.0_32"
>>>      OpenJDK Runtime Environment (build 1.6.0_32-b27)
>>>      OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
>>>
>>> Is there a known problem with this JDK or with OpenJDK in general? It might
>>> be noteworty that I have this problem on FreeBSD only. The Linux version of
>>> OpenJDK 6 b27 (reports as IcedTea6 / OpenJDK 6 b27) works.
>>>
>>> There was a bug report filed against the FreeBSD OpenJDK 6 port already:
>>>
>>> http://www.freebsd.org/cgi/query-pr.cgi?pr=177067&cat=
>>>
>>> At this time it is not clear to me where to look for the root cause. I
>>> appreciate your help and hints, looking for directions where to investigate
>>> in detail.
>>>
>>
>> This is the first time I see such issue being reported for OpenJDK6,
>> but there certainly have been the same issue with openjdk 1.7.0.9 four
>> months ago.
>>
>> See this thread,
>> "tomcat 7.0.37 and openjdk 1.7.0.9 on fedora juli FileHandler problems"
>> from March 2013:
>> http://tomcat.markmail.org/thread/pgmc7nh3vv5jqt7w
>>
> To repeat from that thread, essentially the
> "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
> setting is being ignored and default java.util.logging.LogManager is
> used instead.  Hilarity ensues.
>
> Googling further regarding the issue in 1.7.0.9 I cannot get anything
> useful from openjdk.java.net (the openjdk sites are not responding as
> of now), but I found this:
>
> [1] https://bugzilla.redhat.com/show_bug.cgi?id=908497
>
> So the issue was present in
> java-1.7.0-openjdk-1.7.0.9-2.3.5.fc18
> and fixed in
> java-1.7.0-openjdk-1.7.0.9-2.3.5.fc18.1
>
> Looking at spec file in srcrpm for the latter, there is the following patch:
> [[[
> # Back out 6664509 which bnreaks custom log managers
> Patch1000: sec-2013-02-01-6664509.patch
> ]]]
>
> and finally
> [2] https://bugzilla.redhat.com/show_bug.cgi?id=907344
> See comments 5 and 10 there.
>
> Apparently this bug was caused by an attempt to fix a security issue
> (CVE-2013-0425).
>
> Best regards,
> Konstantin Kolinko
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
Hi Konstantin,

many thanks for your inquiries! Everything becomes a bit clearer now.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=907344 (Comment 10)

The posting confirms the issue was caused by the IcedTea6 patches and 
not the OpenJDK itself. And as it was fixed in 1.11.6, my Linux box 
(IcedTea 1.12.5) doesn't show up the problems with the Juli logger I 
have seen on my FreeBSD box.

Looks like the IcedTea6 patch set in FreeBSD ports is older than 1.11.6. 
I will try to find out more and contact the maintainer.

So far - I am happy now to be a bit closer to the root cause.

Thanks again & kind regards,
Matthias



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: ClassNotFoundException org.apache.juli.FileHandler in Tomcat 7.0.42 / OpenJDK 6 b27 (FreeBSD)

Posted by Konstantin Kolinko <kn...@gmail.com>.
2013/7/13 Konstantin Kolinko <kn...@gmail.com>:
> 2013/7/13 Matthias Petermann <ma...@petermann-it.de>:
>> Hello,
>>
>> when I try to start Tomcat 7.0.42 with OpenJDK 6 b27, it complains about not
>> finding classes for the logging handlers. I created a minimal
>> logging.properties to narrow down the problem:
>>
>>     handlers = 1catalina.org.apache.juli.FileHandler,
>> java.util.logging.ConsoleHandler
>>     .handlers = java.util.logging.ConsoleHandler
>>
>>     1catalina.org.apache.juli.FileHandler.level = FINE
>>     1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
>>     1catalina.org.apache.juli.FileHandler.prefix = catalinatest.
>>
>>     java.util.logging.ConsoleHandler.level = FINE
>>     java.util.logging.ConsoleHandler.formatter =
>> java.util.logging.SimpleFormatter
>>
>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers =
>> 1catalina.org.apache.juli.FileHandler
>>
>> The output of "./catalina.sh run" is the following:
>>
>>     INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
>>     Can't load log handler "1catalina.org.apache.juli.FileHandler"
>>     java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
>>     java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
>>         at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
>>         at java.security.AccessController.doPrivileged(Native Method)
>>         at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
>>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
>>         at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
>>         at java.util.logging.LogManager$3.run(LogManager.java:654)
>>         at java.security.AccessController.doPrivileged(Native Method)
>>         at
>> java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:641)
>>         at java.util.logging.LogManager.access$900(LogManager.java:150)
>>         at
>> java.util.logging.LogManager$LoggerContext.addLogger(LogManager.java:437)
>>         at
>> java.util.logging.LogManager$UserLoggerContext.demandLogger(LogManager.java:596)
>>         at
>> java.util.logging.LogManager$LoggerContext.demandLogger(LogManager.java:475)
>>         at java.util.logging.Logger.getLogger(Logger.java:329)
>>         at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:71)
>>         at
>> org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:196)
>>         at
>> org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:170)
>>         at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:311)
>>         at
>> org.apache.catalina.core.ContainerBase.getLogger(ContainerBase.java:452)
>>         at
>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1102)
>>         at
>> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
>>         at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>         at
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
>>         at
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
>>         at
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>         at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>         at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
>>         at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>         at java.lang.Thread.run(Thread.java:679)
>>
>> There can be found many mentions on this topic on the web, each of them
>> proposing one of those solutions which I tried:
>>
>>  * Check/set JAVA_HOME / JRE_HOME
>>
>>         $ export JAVA_HOME=/usr/local/openjdk6/
>>         $ export JRE_HOME=/usr/local/openjdk6/jre/
>>
>>  * Check/set CATALINA_HOME
>>
>>         $ export
>> CATALINA_HOME=/home/mpeterma/System/Apps/apache-tomcat-7.0.42
>>
>>  * Ensure LOGGING_CONFIG and LOGGING_MANAGER are set properly
>>
>>         --> validated, LOGGING_MANAGER is set to
>> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager in
>> catalina.sh if unspecified, which should be correct; LOGGING_CONFIG is found
>> because it contains the handlers where Tomcat complains about
>>
>>  * Ensure tomcat-juli.jar is in the classpath
>>
>>         --> validated, it's using
>> /home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/bootstrap.jar:/home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/tomcat-juli.jar
>>
>>  * Place tomcat-juli.jar into Tomcat lib folder  --> tested, unsuccessful
>>  * Place tomcat-juli.jar into OpenJDK / JRE lib folder(s) --> tested,
>>    unsuccessful
>>
>> None of this proposals fixed the problem for me. When I comment out the
>> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].* -lines from
>> logging.properties, the problem disappears. Anyway - this is not a solution
>> as the logging is not working then.
>>
>> The only workaround which *is* working is to use OpenJDK 7 instead of
>> OpenJDK 6. But I would like to make it run on OpenJDK 6.
>>
>>     $ java -version
>>     openjdk version "1.6.0_32"
>>     OpenJDK Runtime Environment (build 1.6.0_32-b27)
>>     OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
>>
>> Is there a known problem with this JDK or with OpenJDK in general? It might
>> be noteworty that I have this problem on FreeBSD only. The Linux version of
>> OpenJDK 6 b27 (reports as IcedTea6 / OpenJDK 6 b27) works.
>>
>> There was a bug report filed against the FreeBSD OpenJDK 6 port already:
>>
>> http://www.freebsd.org/cgi/query-pr.cgi?pr=177067&cat=
>>
>> At this time it is not clear to me where to look for the root cause. I
>> appreciate your help and hints, looking for directions where to investigate
>> in detail.
>>
>
>
> This is the first time I see such issue being reported for OpenJDK6,
> but there certainly have been the same issue with openjdk 1.7.0.9 four
> months ago.
>
> See this thread,
> "tomcat 7.0.37 and openjdk 1.7.0.9 on fedora juli FileHandler problems"
> from March 2013:
> http://tomcat.markmail.org/thread/pgmc7nh3vv5jqt7w
>

To repeat from that thread, essentially the
"-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
setting is being ignored and default java.util.logging.LogManager is
used instead.  Hilarity ensues.

Googling further regarding the issue in 1.7.0.9 I cannot get anything
useful from openjdk.java.net (the openjdk sites are not responding as
of now), but I found this:

[1] https://bugzilla.redhat.com/show_bug.cgi?id=908497

So the issue was present in
java-1.7.0-openjdk-1.7.0.9-2.3.5.fc18
and fixed in
java-1.7.0-openjdk-1.7.0.9-2.3.5.fc18.1

Looking at spec file in srcrpm for the latter, there is the following patch:
[[[
# Back out 6664509 which bnreaks custom log managers
Patch1000: sec-2013-02-01-6664509.patch
]]]

and finally
[2] https://bugzilla.redhat.com/show_bug.cgi?id=907344
See comments 5 and 10 there.

Apparently this bug was caused by an attempt to fix a security issue
(CVE-2013-0425).

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: ClassNotFoundException org.apache.juli.FileHandler in Tomcat 7.0.42 / OpenJDK 6 b27 (FreeBSD)

Posted by Konstantin Kolinko <kn...@gmail.com>.
2013/7/13 Matthias Petermann <ma...@petermann-it.de>:
> Hello,
>
> when I try to start Tomcat 7.0.42 with OpenJDK 6 b27, it complains about not
> finding classes for the logging handlers. I created a minimal
> logging.properties to narrow down the problem:
>
>     handlers = 1catalina.org.apache.juli.FileHandler,
> java.util.logging.ConsoleHandler
>     .handlers = java.util.logging.ConsoleHandler
>
>     1catalina.org.apache.juli.FileHandler.level = FINE
>     1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
>     1catalina.org.apache.juli.FileHandler.prefix = catalinatest.
>
>     java.util.logging.ConsoleHandler.level = FINE
>     java.util.logging.ConsoleHandler.formatter =
> java.util.logging.SimpleFormatter
>
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers =
> 1catalina.org.apache.juli.FileHandler
>
> The output of "./catalina.sh run" is the following:
>
>     INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
>     Can't load log handler "1catalina.org.apache.juli.FileHandler"
>     java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
>     java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
>         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
>         at java.util.logging.LogManager$3.run(LogManager.java:654)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at
> java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:641)
>         at java.util.logging.LogManager.access$900(LogManager.java:150)
>         at
> java.util.logging.LogManager$LoggerContext.addLogger(LogManager.java:437)
>         at
> java.util.logging.LogManager$UserLoggerContext.demandLogger(LogManager.java:596)
>         at
> java.util.logging.LogManager$LoggerContext.demandLogger(LogManager.java:475)
>         at java.util.logging.Logger.getLogger(Logger.java:329)
>         at org.apache.juli.logging.DirectJDKLog.<init>(DirectJDKLog.java:71)
>         at
> org.apache.juli.logging.DirectJDKLog.getInstance(DirectJDKLog.java:196)
>         at
> org.apache.juli.logging.LogFactory.getInstance(LogFactory.java:170)
>         at org.apache.juli.logging.LogFactory.getLog(LogFactory.java:311)
>         at
> org.apache.catalina.core.ContainerBase.getLogger(ContainerBase.java:452)
>         at
> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1102)
>         at
> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
>         at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>         at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
>         at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
>         at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:679)
>
> There can be found many mentions on this topic on the web, each of them
> proposing one of those solutions which I tried:
>
>  * Check/set JAVA_HOME / JRE_HOME
>
>         $ export JAVA_HOME=/usr/local/openjdk6/
>         $ export JRE_HOME=/usr/local/openjdk6/jre/
>
>  * Check/set CATALINA_HOME
>
>         $ export
> CATALINA_HOME=/home/mpeterma/System/Apps/apache-tomcat-7.0.42
>
>  * Ensure LOGGING_CONFIG and LOGGING_MANAGER are set properly
>
>         --> validated, LOGGING_MANAGER is set to
> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager in
> catalina.sh if unspecified, which should be correct; LOGGING_CONFIG is found
> because it contains the handlers where Tomcat complains about
>
>  * Ensure tomcat-juli.jar is in the classpath
>
>         --> validated, it's using
> /home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/bootstrap.jar:/home/mpeterma/System/Apps/apache-tomcat-7.0.42/bin/tomcat-juli.jar
>
>  * Place tomcat-juli.jar into Tomcat lib folder  --> tested, unsuccessful
>  * Place tomcat-juli.jar into OpenJDK / JRE lib folder(s) --> tested,
>    unsuccessful
>
> None of this proposals fixed the problem for me. When I comment out the
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].* -lines from
> logging.properties, the problem disappears. Anyway - this is not a solution
> as the logging is not working then.
>
> The only workaround which *is* working is to use OpenJDK 7 instead of
> OpenJDK 6. But I would like to make it run on OpenJDK 6.
>
>     $ java -version
>     openjdk version "1.6.0_32"
>     OpenJDK Runtime Environment (build 1.6.0_32-b27)
>     OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
>
> Is there a known problem with this JDK or with OpenJDK in general? It might
> be noteworty that I have this problem on FreeBSD only. The Linux version of
> OpenJDK 6 b27 (reports as IcedTea6 / OpenJDK 6 b27) works.
>
> There was a bug report filed against the FreeBSD OpenJDK 6 port already:
>
> http://www.freebsd.org/cgi/query-pr.cgi?pr=177067&cat=
>
> At this time it is not clear to me where to look for the root cause. I
> appreciate your help and hints, looking for directions where to investigate
> in detail.
>


This is the first time I see such issue being reported for OpenJDK6,
but there certainly have been the same issue with openjdk 1.7.0.9 four
months ago.

See this thread,
"tomcat 7.0.37 and openjdk 1.7.0.9 on fedora juli FileHandler problems"
from March 2013:
http://tomcat.markmail.org/thread/pgmc7nh3vv5jqt7w

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org