Ah, not to worry, I figured out the test case and have a fix. https://issues.apache.org/jira/browse/HARMONY-6254
Please check if this fixes the problem for you. Regards, Tim Tim Ellison wrote: > 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<dava...@gmail.com> 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<nbe...@gmail.com> wrote: >>>>> On Mon, Jun 15, 2009 at 3:42 AM, Karl Pauls<karlpa...@gmail.com> 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<nbe...@gmail.com> 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<karlpa...@gmail.com> >>>>>>> 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<ndbe...@apache.org> >>>>>>>> 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<tian.gal...@gmail.com> wrote: >>>>>>>>>> It's , harmony-jre-761593, >>>>>>>>>> >>>>>>>>>> 2009/6/9 Nathan Beyer<ndbe...@apache.org> >>>>>>>>>> >>>>>>>>>>> On Mon, Jun 8, 2009 at 12:46 AM, galaxy<tian.gal...@gmail.com> >>>>>>>>>>> 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 >>>>>>>> karlpa...@gmail.com >>>>>>>> >>>>>> -- >>>>>> Karl Pauls >>>>>> karlpa...@gmail.com >>>>>> >>>> >> >> >