Typically when we see this sort of thing, people have multiple threads running with some trying to read stuff from bundles and others trying to update/uninstall/refresh bundles. We don't lock bundles for reads, so it is possible for it to go away in the middle of another thread's read.

We've looked into this before and concluded that the approach is correct, however, maybe it would be possible to convert the IllegalStateException to a CNFE...if you open a JIRA issue I will look into it.

-> richard

p.s. We've also seen this issue in other weird cases

On 1/15/10 3:55, Charles Moulliard wrote:
Hi,

I get this error :

ERROR: JarContent: Unable to read bytes. (java.lang.IllegalStateException:
zip file closed)
java.lang.IllegalStateException: zip file closed
         at java.util.zip.ZipFile.ensureOpen(ZipFile.java:403)
         at java.util.zip.ZipFile.getEntry(ZipFile.java:148)
         at java.util.jar.JarFile.getEntry(JarFile.java:206)
         at
org.apache.felix.framework.util.JarFileX.getEntry(JarFileX.java:61)
         at
org.apache.felix.framework.cache.JarContent.getEntryAsBytes(JarContent.java:120)
         at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.findClass(ModuleImpl.java:1696)
         at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:682)
         at
org.apache.felix.framework.ModuleImpl.access$100(ModuleImpl.java:60)
         at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1650)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
         at
com.sun.jersey.core.spi.factory.AbstractRuntimeDelegate.createUriBuilder(AbstractRuntimeDelegate.java:101)
         at javax.ws.rs.core.UriBuilder.newInstance(UriBuilder.java:69)
         at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:80)
         at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:99)
         at
com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:786)
         at
com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:770)
         at
com.sun.jersey.spi.container.servlet.ServletContainer.doFilter(ServletContainer.java:731)
         at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
         at
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
         at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
         at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115)
         at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361)
         at
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64)
         at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
         at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
         at
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle(HttpServiceContext.java:111)
         at
org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64)
         at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
         at org.mortbay.jetty.Server.handle(Server.java:324)
         at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
         at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:533)
         at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:207)
         at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:403)
         at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
         at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:522)

Can someone explain the reason and how to avoid this ?

Regards,

Charles Moulliard
Senior Enterprise Architect
Apache Camel Committer

*****************************
blog : http://cmoulliard.blogspot.com
twitter : http://twitter.com/cmoulliard
Linkedlin : http://www.linkedin.com/in/charlesmoulliard

Apache Camel Group :
http://www.linkedin.com/groups?home=&gid=2447439&trk=anet_ug_hm


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to