[jetty-dev] [jira] (JETTY-1537) WebAppContext does not cache Resource lookups
"Arne Franken (JIRA)" <[email protected]> Thu, 9 Aug 2012 05:32:21 -0500 (CDT)
| Newsgroups | gmane.comp.java.jetty.general |
|---|---|
| Message-ID | <2088289909.39329.1344508341160.JavaMail.j2ee-jira@codehaus01.managed.contegix.com> |
Arne Franken
created JETTY-1537
WebAppContext does not cache Resource lookups
Issue Type:
Bug
Affects Versions:
8.1.3
Assignee:
Unassigned
Created:
09/Aug/12 5:30 AM
Description:
when using Resource}}s in Jars, performance of {{Resource#exists could be much improved if classes used by WebAppContext would not open up the Jar for each lookup.
java.lang.Thread.State: RUNNABLE
at java.io.UnixFileSystem.getLastModifiedTime(Native Method)
at java.io.File.lastModified(File.java:826)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.jar.JarFile.<init>(JarFile.java:135)
at java.util.jar.JarFile.<init>(JarFile.java:72)
at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:72)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:48)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:70)
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:71)
at org.eclipse.jetty.util.resource.JarFileResource.exists(JarFileResource.java:150)
at org.eclipse.jetty.util.resource.ResourceCollection.addPath(ResourceCollection.java:203)
at org.eclipse.jetty.server.handler.ContextHandler.getResource(ContextHandler.java:1524)
at org.eclipse.jetty.webapp.WebAppContext.getResource(WebAppContext.java:320)
at org.mortbay.jetty.plugin.JettyWebAppContext.getResource(JettyWebAppContext.java:272)
at org.eclipse.jetty.webapp.WebAppContext$Context.getResource(WebAppContext.java:1231)
at org.springframework.web.context.support.ServletContextResource.exists(ServletContextResource.java:102)
For example, Tomcat 7's lookups are much faster, the threaddump looks like this:
java.lang.Thread.State: RUNNABLE
at java.util.regex.Pattern$Start.match(Pattern.java:3055)
at java.util.regex.Matcher.search(Matcher.java:1105)
at java.util.regex.Matcher.find(Matcher.java:535)
at java.util.regex.Matcher.replaceAll(Matcher.java:809)
at java.lang.String.replace(String.java:2207)
at org.apache.naming.resources.WARDirContext.getEscapedJndiName(WARDirContext.java:230)
at org.apache.naming.resources.WARDirContext.doGetAttributes(WARDirContext.java:441)
at org.apache.naming.resources.BaseDirContext.getAttributes(BaseDirContext.java:1097)
at org.apache.naming.resources.BaseDirContext.getAttributes(BaseDirContext.java:1042)
at org.apache.naming.resources.ProxyDirContext.cacheLoad(ProxyDirContext.java:1613)
at org.apache.naming.resources.ProxyDirContext.cacheLookup(ProxyDirContext.java:1536)
at org.apache.naming.resources.ProxyDirContext.lookup(ProxyDirContext.java:297)
at org.apache.catalina.core.ApplicationContext.getResource(ApplicationContext.java:538)
at org.apache.catalina.core.ApplicationContextFacade.getResource(ApplicationContextFacade.java:201)
at org.springframework.web.context.support.ServletContextResource.exists(ServletContextResource.java:102)
Project:
Jetty
Priority:
Major
Reporter:
Arne Franken
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators .
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email