Hi,
I am absolutely stumped by this problem. For some reason that I can't fathom the contextInitialized method on a ServletContextListener I have in one of my web applications is being called twice. Normally this isn't a problem since it only causes the load process to take longer but I have recently added a new section that starts a daemon thread and it this double call is causing two threads to be created. What is even more bizarre is that I have tried using a static int to count the number of times the method is called but it always returns one. I suspected that it therefore must be created by a different class loader but a call to getClass().getClassLoader and a dump (see below) of information would seem to indicate that it is in fact the same class loader loading the class. I am using tomcat 5.0.25 on Linux with Java 1.4.2_04. I have also performed a thread dump in order to check that it is _really_ being run twice and sure enough there are two copies of my thread running (again see extract below).
Any help would be greatly appreciated.
Graham
ClassLoader dump: ---------------------------------------------------- First time it is loaded ---------------------------------------------------- ClassLoader: WebappClassLoader delegate: false repositories: ----------> Parent Classloader: StandardClassLoader delegate: true repositories: file:/home/gms/dump/tomcat/shared/classes/ ----------> Parent Classloader: StandardClassLoader delegate: true repositories: file:/home/gms/dump/tomcat/common/classes/ file:/home/gms/dump/tomcat/common/endorsed/xercesImpl.jar file:/home/gms/dump/tomcat/common/endorsed/xmlParserAPIs.jar file:/home/gms/dump/tomcat/common/lib/ant.jar file:/home/gms/dump/tomcat/common/lib/commons-collections.jar file:/home/gms/dump/tomcat/common/lib/commons-dbcp-1.1.jar file:/home/gms/dump/tomcat/common/lib/commons-el.jar file:/home/gms/dump/tomcat/common/lib/commons-pool-1.1.jar file:/home/gms/dump/tomcat/common/lib/jasper-compiler.jar file:/home/gms/dump/tomcat/common/lib/jasper-runtime.jar file:/home/gms/dump/tomcat/common/lib/jsp-api.jar file:/home/gms/dump/tomcat/common/lib/naming-common.jar file:/home/gms/dump/tomcat/common/lib/naming-factory.jar file:/home/gms/dump/tomcat/common/lib/naming-java.jar file:/home/gms/dump/tomcat/common/lib/naming-resources.jar file:/home/gms/dump/tomcat/common/lib/servlet-api.jar ----------> Parent Classloader: [EMAIL PROTECTED]
---------------------------------------------------- Second time it is loaded ----------------------------------------------------
ClassLoader: WebappClassLoader delegate: false repositories: ----------> Parent Classloader: StandardClassLoader delegate: true repositories: file:/home/gms/dump/tomcat/shared/classes/ ----------> Parent Classloader: StandardClassLoader delegate: true repositories: file:/home/gms/dump/tomcat/common/classes/ file:/home/gms/dump/tomcat/common/endorsed/xercesImpl.jar file:/home/gms/dump/tomcat/common/endorsed/xmlParserAPIs.jar file:/home/gms/dump/tomcat/common/lib/ant.jar file:/home/gms/dump/tomcat/common/lib/commons-collections.jar file:/home/gms/dump/tomcat/common/lib/commons-dbcp-1.1.jar file:/home/gms/dump/tomcat/common/lib/commons-el.jar file:/home/gms/dump/tomcat/common/lib/commons-pool-1.1.jar file:/home/gms/dump/tomcat/common/lib/jasper-compiler.jar file:/home/gms/dump/tomcat/common/lib/jasper-runtime.jar file:/home/gms/dump/tomcat/common/lib/jsp-api.jar file:/home/gms/dump/tomcat/common/lib/naming-common.jar file:/home/gms/dump/tomcat/common/lib/naming-factory.jar file:/home/gms/dump/tomcat/common/lib/naming-java.jar file:/home/gms/dump/tomcat/common/lib/naming-resources.jar file:/home/gms/dump/tomcat/common/lib/servlet-api.jar ----------> Parent Classloader: [EMAIL PROTECTED]
---------------------------------------------------- Extract of thread dump ----------------------------------------------------
......
"ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon prio=1 tid=0x0848eb98 nid=0x7d54 waiting on condition [4d90d000..4d90d854]
at java.lang.Thread.sleep(Native Method)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1597)
at java.lang.Thread.run(Thread.java:534)
"category statistics generator" daemon prio=1 tid=0x082e6960 nid=0x7d54 waiting on condition [4e1de000..4e1de854]
at java.lang.Thread.sleep(Native Method)
at com.crazysquirrel.xfly.category.CategoryStats.run(CategoryStats.java:73)
at java.lang.Thread.run(Thread.java:534)
"directory cleaner" daemon prio=1 tid=0x0852dd30 nid=0x7d54 waiting on condition [4e15d000..4e15d854]
at java.lang.Thread.sleep(Native Method)
at com.crazysquirrel.xfly.web.DirectoryCleaner.run(DirectoryCleaner.java:80)
at java.lang.Thread.run(Thread.java:534)
"category statistics generator" daemon prio=1 tid=0x085072f8 nid=0x7d54 waiting on condition [4e0dc000..4e0dc854]
at java.lang.Thread.sleep(Native Method)
at com.crazysquirrel.xfly.category.CategoryStats.run(CategoryStats.java:73)
at java.lang.Thread.run(Thread.java:534)
"directory cleaner" daemon prio=1 tid=0x084e7ea8 nid=0x7d54 waiting on condition [4e05b000..4e05b854]
at java.lang.Thread.sleep(Native Method)
at com.crazysquirrel.xfly.web.DirectoryCleaner.run(DirectoryCleaner.java:80)
at java.lang.Thread.run(Thread.java:534)
"Signal Dispatcher" daemon prio=1 tid=0x08096a50 nid=0x7d54 waiting on condition [0..0]
........
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]