Karl, You didn't provide a walkback (that I saw).
Is the exception thrown on line 309 of java.net.URLStreamHandler? That's the only place that I see our code assuming that the file part is not null, which is an incorrect assumption since the URL code handles null file parts ok. I searched for some way to create a URL with a null file part, but I'm struggling... Regards, Tim Karl Pauls wrote: > I can try but I'm not sure whether I have the time. Thing is, we do > pretty strange stuff in felix to support the OSGi spec in regard to > URLStreamHandlers. It might very well be possible that in most cases > the comment is right and the file part of a URL will not be null but > an empty string however, in our case its not and that is kind of > proving it wrong :-) > > I'll look into creating a testcase but at any rate, for now, I'm going > to add a workaround in felix that catches the NPE and does the same > that URLStreamHandler.toExternalForm() does in harmony just assuming > that URL.getFile() might return null. Already tested it and that makes > it work without any problems. > > regards, > > Karl > > On Tue, Jun 16, 2009 at 12:12 PM, Davanum Srinivas<[email protected]> wrote: >> Karl, >> >> Can you please JIRA-it with a stripped down test case? >> >> thanks, >> dims >> >> On 06/16/2009 04:19 AM, Karl Pauls wrote: >>> Thanks, I did figure that one out already. Sorry for the noise (the >>> difficulty was just to get it to work with eclipse running on my mac >>> and harmony inside windows on virtual box :-). >>> >>> I now can see what is going on and I do think it is a bug in harmony. >>> I might be able to workaround it in felix for the time being but the >>> issue is this: >>> >>> URLStreamHandler.toExternalForm() does assume that the url has a file >>> part and that it is not null (there is even a comment saying so). I >>> think that is not a valid assumption and in this case it is what is >>> causing the problem. We do a toExternalForm on a url that has only the >>> schema set (not the file part). In this case the >>> URLStreamHandler.toExternalForm() is using the result of a call to >>> URL.getFile() without checking whether it is null or not and >>> subsequently, is throwing a NPE. That doesn't happen on sun and is the >>> problem for felix. >>> >>> regards, >>> >>> Karl >>> >>> On Tue, Jun 16, 2009 at 5:52 AM, Nathan Beyer<[email protected]> wrote: >>>> On Mon, Jun 15, 2009 at 3:42 AM, Karl Pauls<[email protected]> wrote: >>>>> Already did. Doesn't fix it. >>>>> >>>>> We do quite some magic in regard to the URLHandlers inside felix so >>>>> I'm not surprised that we run into some issues on harmony but this one >>>>> is odd as it seems to get down to an NPE inside URL.class at a place >>>>> where this just doesn't seem possible with the current trunk. Granted, >>>>> due to the magic it isn't that clear that this is the real problem. It >>>>> might be just a side-effect. Is there a way to hook-up harmony to the >>>>> eclipse debugger (i.e., have felix run on top of harmony and connect a >>>>> normal remote debugger)? >>>> It should work just like any other remote process debug. Just launch >>>> Felix+Harmony with the standard debug options to listen on a socket >>>> and suspend on startup, then connect to it from Eclipse. >>>> >>>> -Nathan >>>>> regards, >>>>> >>>>> Karl >>>>> >>>>> On Mon, Jun 15, 2009 at 12:24 AM, Nathan Beyer<[email protected]> wrote: >>>>>> Try out the latest milestone that just release last week - >>>>>> http://harmony.apache.org/download.cgi >>>>>> >>>>>> 5M10 should be pretty close to trunk right now. >>>>>> >>>>>> -Nathan >>>>>> >>>>>> On Sun, Jun 14, 2009 at 3:42 PM, Karl Pauls<[email protected]> >>>>>> wrote: >>>>>>> Is it possible to download a build of the current trunk somewhere? I'd >>>>>>> like to look into this issue... >>>>>>> >>>>>>> regards, >>>>>>> >>>>>>> Karl >>>>>>> >>>>>>> On Tue, Jun 9, 2009 at 5:30 AM, Nathan Beyer<[email protected]> >>>>>>> wrote: >>>>>>>> That's somewhat old. I don't suppose you could to a fresh build from >>>>>>>> HEAD and try again - at least a fresh build of the classlib. The >>>>>>>> change I'm thinking of probably isn't in the build you're using. >>>>>>>> >>>>>>>> -Nathan >>>>>>>> >>>>>>>> On Mon, Jun 8, 2009 at 9:49 PM, galaxy<[email protected]> wrote: >>>>>>>>> It's , harmony-jre-761593, >>>>>>>>> >>>>>>>>> 2009/6/9 Nathan Beyer<[email protected]> >>>>>>>>> >>>>>>>>>> On Mon, Jun 8, 2009 at 12:46 AM, galaxy<[email protected]> >>>>>>>>>> wrote: >>>>>>>>>>> Hi >>>>>>>>>>> It's about running felix in harmony .When we run felix in harmony >>>>>>>>>>> with >>>>>>>>>> the >>>>>>>>>>> felix-cache there , it's OK. >>>>>>>>>>> But there will be errors when running without the felix-cache >>>>>>>>>>> .That means >>>>>>>>>>> after deleting felix-cache , harmony runtime fails to install >>>>>>>>>>> the bundles set to be auto-installed .While with sun jdk ,it runs >>>>>>>>>>> well >>>>>>>>>> .That >>>>>>>>>>> is to say harmony runtime is only able to find the cache dir which >>>>>>>>>>> is >>>>>>>>>>> specified by >>>>>>>>>>> "felix.cache.rootdir" in the config.properties file (mine is >>>>>>>>>>> "felix.cache.rootdir=D:/JavaWorld/Felix") but not the bundle which >>>>>>>>>>> is the >>>>>>>>>>> specified by "file:xxx.jar" >>>>>>>>>>> Also the command "install file:XXX.jar" won't work .The erroe >>>>>>>>>>> message is >>>>>>>>>>> "[1] >>>>>>>>>>> >>>>>>>>>>> I did some search and found that the it's related to the >>>>>>>>>>> urlhandler >>>>>>>>>> class. >>>>>>>>>>> I think whenever referring to the "file:xxx.jar" , the url fails >>>>>>>>>>> to >>>>>>>>>> locate >>>>>>>>>>> the file . >>>>>>>>>> What build of Harmony are you testing? Is it a Milestone build? A >>>>>>>>>> recent fix may address this issue, but it hasn't made into a >>>>>>>>>> published >>>>>>>>>> build yet. >>>>>>>>>> >>>>>>>>>>> I think it's ours , not the felix's problem , so I report it here. >>>>>>>>>>> >>>>>>>>>>> You may try this by deleting the felix-cache directory in the >>>>>>>>>>> working >>>>>>>>>>> directory and run >>>>>>>>>>> java -jar bin\felix.jar >>>>>>>>>>> with harmony's and sun's respectively .If you run sun's first and >>>>>>>>>>> not >>>>>>>>>>> deleting the cache afterwards , no error . >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> [1] >>>>>>>>>>> java.net.MalformedURLException: java.lang.IllegalStateException: >>>>>>>>>>> Stream >>>>>>>>>>> handler >>>>>>>>>>> unavailable due to: Stream handler unavailable due to: null" >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> regards >>>>>>>>>>> Tian >>>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> regards >>>>>>>>> Tian >>>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Karl Pauls >>>>>>> [email protected] >>>>>>> >>>>> >>>>> -- >>>>> Karl Pauls >>>>> [email protected] >>>>> >>> >>> > > >
