Bug 45785 - ClassCastException if directory ending with .jar exists in WEB-INF/lib

来源:互联网 发布:java教学视频哪个好 编辑:程序博客网 时间:2024/06/04 01:11

 

Andreas Sahlbach 2008-09-11 12:22:35 EDT

Exception occurs if there is a directory in WEB-INF/lib having a .jar ending(e.g. foo.jar). Don't know if it makes sense to create such a dir inWEB-INF/lib, in my case a bug in another tool created such a dir. But in any case: Tomcat should not crash because of such a directory, IMHO.java.lang.ClassCastException: org.apache.naming.resources.FileDirContext cannotbe cast to org.apache.naming.resources.Resource    atorg.apache.catalina.util.ExtensionValidator.validateApplication(ExtensionValidator.java:182)    atorg.apache.catalina.core.StandardContext.start(StandardContext.java:4167)    atorg.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)    atorg.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)    atorg.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)    atorg.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)    atorg.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)    at org.apache.catalina.core.StandardService.start(StandardService.java:516)    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)    at org.apache.catalina.startup.Catalina.start(Catalina.java:578)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)    atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)    at java.lang.reflect.Method.invoke(Method.java:597)    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Comment 1 Mark Thomas 2008-09-14 13:03:54 EDT
This has been fixed in trunk and proposed for 6.0.x
Comment 2 Mark Thomas 2008-09-19 03:59:54 EDT
This has been fixed in 6.0.x and will be included in 6.0.19 onwards.
Comment 3 Rolf Wojtech 2009-07-07 00:35:40 EDT
Created an attachment (id=23934) [details]Add support for directories with name ending on .jarWhile the specific case (directory called .jar in WEB-INF/lib) has been fixed,two other cases remain in ExtensionValidator.Therefore I reopened this bug:We're using an exploded deployment mechanism which uses extracted jar files infolders called jarname.jar. The eclipse projects build directly into thosefolders.However when adding these projects to a jboss launch configuration, whichresults in a jarname.jar folder (not file) to be part of the classpath, JBosswill fail because ExtensionValidator tries to treat the jarname.jar folder as afile.ExtensionValidator only checks if a java.io.File endsWith(".jar") but it failsto check if it is an actual file, not a directory.I attached a proposed fix (I only added the !item.isDirectory() and!files[i].isDirectory() )I ran into other JBoss problems after fixing this which means that this doesnot really affect me. It may not be popular to name directories something.jarbut in the cases of exploded deployment this seems normal. In any case my patchdoes not affect the normal usage of actual .jar files so I see no reason not toinclude it.
Comment 4 Rolf Wojtech 2009-07-07 00:36:28 EDT
Reopened due to additional problems with directories called somename.jar
Comment 5 Mark Thomas 2009-09-09 09:21:46 EDT
I have fixed trunk and proposed the same fix for 6.0.x based on your patch.Many thanks.
Comment 6 Mark Thomas 2009-10-03 10:35:29 EDT
This has been fixed in 6.0.21 and will be included in 6.0.21 onwards.
Attachments Add support for directories with name ending on .jar (1.03 KB, patch)
2009-07-07 00:35 EDT,Rolf Wojtech
Details

Add an attachment (proposed patch, testcase, etc.)

 

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

原创粉丝点击