felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Zdila (JIRA)" <j...@apache.org>
Subject [jira] Commented: (FELIX-1032) NPE on URL#openStream()
Date Wed, 13 May 2009 16:25:46 GMT

    [ https://issues.apache.org/jira/browse/FELIX-1032?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12708994#action_12708994

Martin Zdila commented on FELIX-1032:

The application has currently 158 bundles.
Currently I can reproduce the exception updating one bundle(A) several times. The bundle(A)
scans on it's activation all ACTIVE bundle(B)s and searches for the /web-resources directory
in them. After couple of the bundle(A) updates (cca 3 and more) I get incorrect behaviour.
Suprisingly, it is different on different JVMs(!):

1. Sun Java:
URLConnection conn = bundleB.getEntry("web-resources/").openConnection(); conn.getInputStream()
throws forementioned exception. The cause is very strange. I observed, that Inflater.ensureOpen
is called after the Inflater is actually finalized!!! That's very weird and looks like a bug
in the JVM :-O. The immediate subsequent call and further calls to conn.getInputStream() are
successful. So the ugly bugfix is to retry the call once more after it throws NPE ;-).

2. OpenJDK:
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu7)
OpenJDK Client VM (build 14.0-b08, mixed mode, sharing)

bundleB.getEntry("web-resources/").openConnection().getInputStream() returns null. Not for
each bundle, but for random bundles, different on each bundle (A) update. This is true if
using OpenJDK:

Also note that I am using spring-osgi. I can create a vnc connection to my machine if it helps
and I can assist you with the bug reproduction. Thanks for the interest.

> NPE on URL#openStream()
> -----------------------
>                 Key: FELIX-1032
>                 URL: https://issues.apache.org/jira/browse/FELIX-1032
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.4.1, felix-1.6.0
>         Environment: Linux bono 2.6.28-6-generic #17-Ubuntu SMP Fri Jan 30 15:34:36 UTC
2009 i686 GNU/Linux
> java version "1.6.0_13"
> Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
> Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)
>            Reporter: Martin Zdila
>            Priority: Critical
> Note that also affected is felix-1.6.0 (it is not in the list).
> I am often getting NPE with the following code:
> new URL("bundle://66.0:0/somewhere/my.resource" /* or any other bundle:// URL */).openStream();
> java.lang.NullPointerException
> 	at java.util.zip.Inflater.ensureOpen(Inflater.java:336)
> 	at java.util.zip.Inflater.getBytesWritten(Inflater.java:296)
> 	at java.util.zip.ZipFile$1.available(ZipFile.java:243)
> 	at org.apache.felix.framework.URLHandlersBundleURLConnection.connect(URLHandlersBundleURLConnection.java:125)
> 	at org.apache.felix.framework.URLHandlersBundleURLConnection.getInputStream(URLHandlersBundleURLConnection.java:134)
> 	at java.net.URL.openStream(URL.java:1009)
> It is not allways reproducible. The first call causes the NPE and the second call with
the same URL string goes without problems.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message