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 Keller <ma...@ergon.ch> on 2014/11/06 17:33:51 UTC

Spurious Problem starting Tomcat7 (garbled class names)

Hi

We have a spurious problem which still happened quite a few times but is 
not really reproducible since it only occurs on every 1000. startup or 
something.
The effect is that tomcat scans all class files but somewhere something 
goes wrong and it tries to load an invalid class name which is often a 
combination of two effectively existing class names.
It is confimed to occur on 7.0.55 with Java7, however it's likely not to 
be bound to a single version as we've seen it at different sites lately.

example with to garbled classes: (3.class being the first, which must 
come from SomeClass$3.class and the second one being something awefully 
beautiful: 
ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class 
)

INFO: Starting Servlet Engine: Apache Tomcat/7.0.55
Oct 28, 2014 10:13:15 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /opt/tomcat/webapps/test-admin.war
Oct 28, 2014 10:13:22 AM org.apache.catalina.startup.ContextConfig processAnnotationsJndi
SEVERE: Unable to process resource element [jndi:/localhost/test-admin/WEB-INF/classes/ch/something/*3.class*]for  annotations
java.io.FileNotFoundException: jndi:/localhost/test-admin/WEB-INF/classes/ch/something/*3.class*
         at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
         at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
         at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
         at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
         at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
         at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
         at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
         at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
         at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
         at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
         at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
         at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880)
         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
         at java.lang.Thread.run(Thread.java:662)
Oct 28, 2014 10:13:22 AM org.apache.catalina.startup.ContextConfig processAnnotationsJndi
SEVERE: Unable to process resource element [jndi:/localhost/test-admin/WEB-INF/classes/ch/something/*ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class*]for  annotations
java.io.FileNotFoundException: jndi:/localhost/test-admin/WEB-INF/classes/ch/something/ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class
         at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
         at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
         at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
         at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
         at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
         at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
         at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
         at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
         at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
         at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
         at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
         at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
         at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880)
         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
         at java.lang.Thread.run(Thread.java:662)

Another example where a class named '*f*v*i**g*i*u*e*r*w*ations*.class' 
is tried to be loaded. The name denotes a non existing class and often 
appears to be two strings somehow combined together. In this name, I can 
spot SelectablePluginConfigurations (from the bold letters) and the rest 
gives 'view' which isn't itself a something in those classes but is very 
likely to occur somewhere else.

Information: Deploying web application archive /Users/user/.../webapps/external-admin.war
Aug 28, 2014 9:43:57 AM org.apache.catalina.startup.ContextConfig processAnnotationsJndi
Schwerwiegend: Unable to process resource element [jndi:/localhost/external-admin/WEB-INF/classes/ch/some/package/*fvigiuerwations.class*] for annotations
java.io.FileNotFoundException: jndi:/localhost/external-admin/WEB-INF/classes/ch/some/package/fvigiuerwations.class
	at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
	at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5355)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
	at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
	at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:744)


Anyone seen something like this before? I'm not sure where to start 
looking for this problem.....?!

Regards
M. Keller

Re: Spurious Problem starting Tomcat7 (garbled class names)

Posted by David kerber <dc...@verizon.net>.
On 11/7/2014 11:14 AM, Christopher Schultz wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Chris,
>
> On 11/7/14 4:52 AM, chris derham wrote:
>>>> example with to garbled classes: (3.class being the first,
>>>> which must come from SomeClass$3.class and the second one being
>>>> something awefully beautiful:
>>>> ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class
>>
>>>>
>> To prevent decompilation, you can run your classes through a code
>> obfuscator. That replaces all field/method/class names with
>> garbage, to make it harder to see what is going on. The garbage you
>> see might actually be the names in the jar files. Unzip the
>> war/jars and see what is actually in there. Could it be correct?
>
> OP says it only happens sometimes ("every 1000 startup"), so code
> obfuscation seems unlikely.

As you suggested yesterday, flaky hardware seems to me like the most 
likely issue.


>
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
> Comment: GPGTools - http://gpgtools.org
>
> iQIcBAEBCAAGBQJUXO/NAAoJEBzwKT+lPKRYikwQAIG+j0j7xqts5ZA10hBp30Uh
> Tyqm/yQtTdhpsa1uw4gtqWXdK7Dm7wh6rHdg3L/UxA1A877/I8fIicTx2AWrZAd4
> q7Tts+v36i8DvxzN+nfkGCi/nc1daGN4/qZo91Wk8W/FEk2cG4+FU0aNJZniKXd/
> pumzLa1pUKDAZryGonxefcOUJ/bXQM7opG+MXiZib3SsdrA9TVH7dEvcWjiYGLIK
> JGfR8UzlqW06WZIFWYMNkh48ZiCS5PXZb3adc5sazrNxDbNufcAJImfx51mQ8HFE
> Z03rtqaY1iLFkpen4hIxJbTmK54adY9xxbdQ+tn1Pd/A+U4ux0sAupq/Ky5cqOpO
> yjJFzuxUHDk4x9qf8x6C5BB1zyKiLneEkNWvcIpLjieQMMir8dvMbjlPC56AW1H9
> 0tBQ0NxbXgNQR7khxLGECnSeUMj62ShkLm635HcOfEvKIMMxGirIwQVrkgCcnxdw
> UNzpahpC25lDZKkfbUb4hVqLbyT6o523g7M0sYODWX4HqNAPdyOoSa5dXaTQFlL/
> aRyVBKYin1oDo70daOYreKUUObq5/4Nko11xwqRyYyx6kEJYb6yX0jAeo/M9BW1b
> UDMpAL4Se28X2HfaD4QleBIJQhM+XwcFIEgqwuO2Q4rVImq37TWuDTUJu8JdAkXw
> yNxfzRfIWUf3+PLC+UfV
> =Bg15
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>


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


Re: Spurious Problem starting Tomcat7 (garbled class names)

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Chris,

On 11/7/14 4:52 AM, chris derham wrote:
>>> example with to garbled classes: (3.class being the first,
>>> which must come from SomeClass$3.class and the second one being
>>> something awefully beautiful: 
>>> ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class
>
>>> 
> To prevent decompilation, you can run your classes through a code 
> obfuscator. That replaces all field/method/class names with
> garbage, to make it harder to see what is going on. The garbage you
> see might actually be the names in the jar files. Unzip the
> war/jars and see what is actually in there. Could it be correct?

OP says it only happens sometimes ("every 1000 startup"), so code
obfuscation seems unlikely.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJUXO/NAAoJEBzwKT+lPKRYikwQAIG+j0j7xqts5ZA10hBp30Uh
Tyqm/yQtTdhpsa1uw4gtqWXdK7Dm7wh6rHdg3L/UxA1A877/I8fIicTx2AWrZAd4
q7Tts+v36i8DvxzN+nfkGCi/nc1daGN4/qZo91Wk8W/FEk2cG4+FU0aNJZniKXd/
pumzLa1pUKDAZryGonxefcOUJ/bXQM7opG+MXiZib3SsdrA9TVH7dEvcWjiYGLIK
JGfR8UzlqW06WZIFWYMNkh48ZiCS5PXZb3adc5sazrNxDbNufcAJImfx51mQ8HFE
Z03rtqaY1iLFkpen4hIxJbTmK54adY9xxbdQ+tn1Pd/A+U4ux0sAupq/Ky5cqOpO
yjJFzuxUHDk4x9qf8x6C5BB1zyKiLneEkNWvcIpLjieQMMir8dvMbjlPC56AW1H9
0tBQ0NxbXgNQR7khxLGECnSeUMj62ShkLm635HcOfEvKIMMxGirIwQVrkgCcnxdw
UNzpahpC25lDZKkfbUb4hVqLbyT6o523g7M0sYODWX4HqNAPdyOoSa5dXaTQFlL/
aRyVBKYin1oDo70daOYreKUUObq5/4Nko11xwqRyYyx6kEJYb6yX0jAeo/M9BW1b
UDMpAL4Se28X2HfaD4QleBIJQhM+XwcFIEgqwuO2Q4rVImq37TWuDTUJu8JdAkXw
yNxfzRfIWUf3+PLC+UfV
=Bg15
-----END PGP SIGNATURE-----

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


Re: Spurious Problem starting Tomcat7 (garbled class names)

Posted by chris derham <ch...@derham.me.uk>.
>> example with to garbled classes: (3.class being the first, which
>> must come from SomeClass$3.class and the second one being something
>> awefully beautiful:
>> ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class

To prevent decompilation, you can run your classes through a code
obfuscator. That replaces all field/method/class names with garbage,
to make it harder to see what is going on. The garbage you see might
actually be the names in the jar files. Unzip the war/jars and see
what is actually in there. Could it be correct?

HTH

Chris

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


Re: Spurious Problem starting Tomcat7 (garbled class names)

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Matthias,

On 11/6/14 11:33 AM, Matthias Keller wrote:
> We have a spurious problem which still happened quite a few times
> but is not really reproducible since it only occurs on every 1000.
> startup or something. The effect is that tomcat scans all class
> files but somewhere something goes wrong and it tries to load an
> invalid class name which is often a combination of two effectively
> existing class names. It is confimed to occur on 7.0.55 with Java7,
> however it's likely not to be bound to a single version as we've
> seen it at different sites lately.
> 
> example with to garbled classes: (3.class being the first, which
> must come from SomeClass$3.class and the second one being something
> awefully beautiful: 
> ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class
>
> 
)

Haw haw haw. I'm sorry, but I LOL'd when I saw this. Sorry to laugh at
your pain, but that's kind of funny.

> INFO: Starting Servlet Engine: Apache Tomcat/7.0.55 Oct 28, 2014
> 10:13:15 AM org.apache.catalina.startup.HostConfig deployWAR INFO:
> Deploying web application archive
> /opt/tomcat/webapps/test-admin.war Oct 28, 2014 10:13:22 AM
> org.apache.catalina.startup.ContextConfig processAnnotationsJndi 
> SEVERE: Unable to process resource element
> [jndi:/localhost/test-admin/WEB-INF/classes/ch/something/*3.class*]
> for annotations java.io.FileNotFoundException:
> jndi:/localhost/test-admin/WEB-INF/classes/ch/something/*3.class* 
> at
> org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
>
> 
at
org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
> at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>
> 
at
org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>
> 
at
org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> at
> org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
>
> 
at
org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
> at
> org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
>
> 
at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
> at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
>
> 
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
> at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
>
> 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
>
> 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
> at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
>
> 
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
> at
> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880)
>
> 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
> at
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) 
> at java.util.concurrent.FutureTask.run(FutureTask.java:138) at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>
> 
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:662) Oct 28, 2014 10:13:22 AM
> org.apache.catalina.startup.ContextConfig processAnnotationsJndi 
> SEVERE: Unable to process resource element
> [jndi:/localhost/test-admin/WEB-INF/classes/ch/something/*ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class*]
> for annotations java.io.FileNotFoundException:
> jndi:/localhost/test-admin/WEB-INF/classes/ch/something/ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class
>
> 
at
org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
> at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
>
> 
at
org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>
> 
at
org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>
> 
at
org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
> at
> org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
>
> 
at
org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
> at
> org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
>
> 
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
> at
> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
>
> 
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
> at
> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>
> 
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
> at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
>
> 
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
> at
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
>
> 
at
org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
>
> 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138) at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>
> 
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:662)
> 
> Another example where a class named
> '*f*v*i**g*i*u*e*r*w*ations*.class' is tried to be loaded. The name
> denotes a non existing class and often appears to be two strings
> somehow combined together. In this name, I can spot
> SelectablePluginConfigurations (from the bold letters) and the
> rest gives 'view' which isn't itself a something in those classes
> but is very likely to occur somewhere else.

Have you looked at the log file with a hex editor to see if there are
some weirdo characters in there that you can't see/select in a text
editor or viewer?

> Information: Deploying web application archive
> /Users/user/.../webapps/external-admin.war Aug 28, 2014 9:43:57 AM
> org.apache.catalina.startup.ContextConfig processAnnotationsJndi 
> Schwerwiegend: Unable to process resource element
> [jndi:/localhost/external-admin/WEB-INF/classes/ch/some/package/*fvigiuerwations.class*]
> for annotations java.io.FileNotFoundException:
> jndi:/localhost/external-admin/WEB-INF/classes/ch/some/package/fvigiuerwations.class
>
> 
at
org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
> at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
>
> 
at
org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>
> 
at
org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>
> 
at
org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> at
> org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
>
> 
at
org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
> at
> org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
>
> 
at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
> at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
>
> 
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
> at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5355)
>
> 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
>
> 
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
> at
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
>
> 
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
> at
> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880)
>
> 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262) at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>
> 
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> at java.lang.Thread.run(Thread.java:744)
> 
> 
> Anyone seen something like this before? I'm not sure where to
> start looking for this problem.....?!

If you can afford the downtime, I'd run memtest86+ (or
architecture-appropriate analog) against that machine. It's possible
that your hardware is dying.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJUW+GvAAoJEBzwKT+lPKRY9XkP/1dxgrdQSYGX0IP62iZQ2x08
hJjY8hFpdbpVnx0mb+T3D1JrmKbZSHz/nusyp7qQaO9i46/Q7VrmtRRKMDyYS0p2
Picgo3ihDxhy197aYAcVh7mjhkzii7AlgtEDwp2ysaaaMntuEvE13s1zEX9OjC9h
Mu7q7h0fr20uznY2HmrcAtP5XH9CGF6eBm2pHogSES0aPUPI63bngQ7BHVgY1SuZ
ypWH0kS+eKVD0gowdnq3Cr3iZexESLu3fFBMsoF1NS+cMixz7gV7c7Wy3R7YfFuH
xN5i7YEhqsnaXY/woy503jk2ozfrKJ69VQMnyf/CgSJTJjRs0ceOcqc9gnh43rTl
t0Fv9W51mxkN1jE9jK5PTnMQH5klGTXq/EPawjEqkOIVZBKmjtVJUPSxAFl1lNAH
7qjmm9r0gmwF3HhVPS0kj8lAYbFJN3KMaEBjqhDT2lCsddpS3t8SZuw6HVnpOWax
q7xAleft4zEA8fbetZIELP8VuVmKNVLwL+zORYNxiqQv8x1aErSLdi/AsNszWex4
x6BNJgoYTxxzJQSWdVMaxoYno7s10KLx4Lmm9OIwndmul1mcWq4NiNaHD+rZG0Rj
vI0YAUPJRQE49+ejuZUTUWCBuRVQPq0rN1+SvjVRmXHVBbbNXQyS3367MZLxcKJ6
78WyKSixwfP9K2Bogwe9
=8H89
-----END PGP SIGNATURE-----

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


Re: Spurious Problem starting Tomcat7 (garbled class names)

Posted by Mark Thomas <ma...@apache.org>.
On 06/11/2014 16:33, Matthias Keller wrote:
> Hi
> 
> We have a spurious problem which still happened quite a few times but is
> not really reproducible since it only occurs on every 1000. startup or
> something.
> The effect is that tomcat scans all class files but somewhere something
> goes wrong and it tries to load an invalid class name which is often a
> combination of two effectively existing class names.
> It is confimed to occur on 7.0.55 with Java7, however it's likely not to
> be bound to a single version as we've seen it at different sites lately.

A variation on this maybe?
https://issues.apache.org/bugzilla/show_bug.cgi?id=57173

Mark

> example with to garbled classes: (3.class being the first, which must
> come from SomeClass$3.class and the second one being something awefully
> beautiful:
> ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class
> )
> 
> INFO: Starting Servlet Engine: Apache Tomcat/7.0.55
> Oct 28, 2014 10:13:15 AM org.apache.catalina.startup.HostConfig deployWAR
> INFO: Deploying web application archive /opt/tomcat/webapps/test-admin.war
> Oct 28, 2014 10:13:22 AM org.apache.catalina.startup.ContextConfig processAnnotationsJndi
> SEVERE: Unable to process resource element [jndi:/localhost/test-admin/WEB-INF/classes/ch/something/*3.class*] for annotations
> java.io.FileNotFoundException: jndi:/localhost/test-admin/WEB-INF/classes/ch/something/*3.class*
>         at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
>         at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
>         at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
>         at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
>         at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
>         at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
>         at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
>         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>         at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
>         at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
>         at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
>         at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
>         at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
>         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>         at java.lang.Thread.run(Thread.java:662)
> Oct 28, 2014 10:13:22 AM org.apache.catalina.startup.ContextConfig processAnnotationsJndi
> SEVERE: Unable to process resource element [jndi:/localhost/test-admin/WEB-INF/classes/ch/something/*ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class*] for annotations
> java.io.FileNotFoundException: jndi:/localhost/test-admin/WEB-INF/classes/ch/something/ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class
>         at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
>         at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
>         at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
>         at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
>         at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
>         at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
>         at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5378)
>         at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>         at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
>         at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
>         at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
>         at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
>         at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880)
>         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
>         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
>         at java.lang.Thread.run(Thread.java:662)
> 
> Another example where a class named '*f*v*i**g*i*u*e*r*w*ations*.class'
> is tried to be loaded. The name denotes a non existing class and often
> appears to be two strings somehow combined together. In this name, I can
> spot SelectablePluginConfigurations (from the bold letters) and the rest
> gives 'view' which isn't itself a something in those classes but is very
> likely to occur somewhere else.
> 
> Information: Deploying web application archive /Users/user/.../webapps/external-admin.war
> Aug 28, 2014 9:43:57 AM org.apache.catalina.startup.ContextConfig processAnnotationsJndi
> Schwerwiegend: Unable to process resource element [jndi:/localhost/external-admin/WEB-INF/classes/ch/some/package/*fvigiuerwations.class*] for annotations
> java.io.FileNotFoundException: jndi:/localhost/external-admin/WEB-INF/classes/ch/some/package/fvigiuerwations.class
> 	at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
> 	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
> 	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> 	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> 	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> 	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> 	at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
> 	at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
> 	at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
> 	at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
> 	at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
> 	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
> 	at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
> 	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5355)
> 	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> 	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
> 	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
> 	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
> 	at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1083)
> 	at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1880)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:744)
> 
> 
> Anyone seen something like this before? I'm not sure where to start
> looking for this problem.....?!
> 
> Regards
> M. Keller


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


Re: Spurious Problem starting Tomcat7 (garbled class names)

Posted by Matthias Keller <ma...@ergon.ch>.
On 08.11.2014 17:59, Konstantin Kolinko wrote:
> 2014-11-06 19:33 GMT+03:00 Matthias Keller <ma...@ergon.ch>:
>> Hi
>>
>> We have a spurious problem which still happened quite a few times but is not
>> really reproducible since it only occurs on every 1000. startup or
>> something.
>> The effect is that tomcat scans all class files but somewhere something goes
>> wrong and it tries to load an invalid class name which is often a
>> combination of two effectively existing class names.
>> It is confimed to occur on 7.0.55 with Java7, however it's likely not to be
>> bound to a single version as we've seen it at different sites lately.
>>
>> example with to garbled classes: (3.class being the first, which must come
>> from SomeClass$3.class and the second one being something awefully
>> beautiful:
>> ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class
>> )
>>
>> INFO: Starting Servlet Engine: Apache Tomcat/7.0.55
>> Oct 28, 2014 10:13:15 AM org.apache.catalina.startup.HostConfig deployWAR
>> INFO: Deploying web application archive /opt/tomcat/webapps/test-admin.war
>> Oct 28, 2014 10:13:22 AM org.apache.catalina.startup.ContextConfig
>> processAnnotationsJndi
>> SEVERE: Unable to process resource element
>> [jndi:/localhost/test-admin/WEB-INF/classes/ch/something/3.class] for
>> annotations
>> java.io.FileNotFoundException:
>> jndi:/localhost/test-admin/WEB-INF/classes/ch/something/3.class
>>          at
>> org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>>          at
>> org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
>>          at
>> org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
>>          at
>> org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
>
> At that place Tomcat essentially asks you hard drive for the list of
> files in WEB-INF/classes directory and opens each file that has name
> ending with ".class".
>
> Essentially the directory listing returns some garbage. I do not think
> that Tomcat code is responsible for that.
>
> Is your hardware OK? Is it a local harddrive, or a network one?
Thanks for all your input. Given the fact this has happened recently on 
three totally different systems and OSes (no network drives involved), 
I'd say it would be strange if there was a hardware defect - and also 
there is none known on any of the three systems, however this is 
something I'll further investigate.
I'm not very familiar with the syntax here, does the jndi: URL refer to 
a file in the tomcat's work/localhost/... directory? we have 
unpackWAR=false, or is the class read directly from the WAR file?

Thanks

Matt


Re: Spurious Problem starting Tomcat7 (garbled class names)

Posted by Konstantin Kolinko <kn...@gmail.com>.
2014-11-06 19:33 GMT+03:00 Matthias Keller <ma...@ergon.ch>:
> Hi
>
> We have a spurious problem which still happened quite a few times but is not
> really reproducible since it only occurs on every 1000. startup or
> something.
> The effect is that tomcat scans all class files but somewhere something goes
> wrong and it tries to load an invalid class name which is often a
> combination of two effectively existing class names.
> It is confimed to occur on 7.0.55 with Java7, however it's likely not to be
> bound to a single version as we've seen it at different sites lately.
>
> example with to garbled classes: (3.class being the first, which must come
> from SomeClass$3.class and the second one being something awefully
> beautiful:
> ConfigEdiAtourtAhpepnltiiccaattiioonn$SAtpaptlei$cIadteinotniCfo^@^@iigeLro.acdlLaissstener.class
> )
>
> INFO: Starting Servlet Engine: Apache Tomcat/7.0.55
> Oct 28, 2014 10:13:15 AM org.apache.catalina.startup.HostConfig deployWAR
> INFO: Deploying web application archive /opt/tomcat/webapps/test-admin.war
> Oct 28, 2014 10:13:22 AM org.apache.catalina.startup.ContextConfig
> processAnnotationsJndi
> SEVERE: Unable to process resource element
> [jndi:/localhost/test-admin/WEB-INF/classes/ch/something/3.class] for
> annotations
> java.io.FileNotFoundException:
> jndi:/localhost/test-admin/WEB-INF/classes/ch/something/3.class
>         at
> org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:389)
>         at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1994)
>         at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at
> org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1986)
>         at
> org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1902)
>         at
> org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1298)
>         at
> org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)


At that place Tomcat essentially asks you hard drive for the list of
files in WEB-INF/classes directory and opens each file that has name
ending with ".class".

Essentially the directory listing returns some garbage. I do not think
that Tomcat code is responsible for that.

Is your hardware OK? Is it a local harddrive, or a network one?

> https://issues.apache.org/bugzilla/show_bug.cgi?id=57173

Bug 57173 is irrelevant here. (Bug 57173 occurs when parsing a class
file. In this case the parsing has not been started yet. It failed
when trying to open the file).


Best regards,
Konstantin Kolinko

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