harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Ellison <t.p.elli...@gmail.com>
Subject Re: About harmony running felix
Date Wed, 01 Jul 2009 13:57:13 GMT
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<davanum@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<nbeyer@gmail.com>  wrote:
>>>> On Mon, Jun 15, 2009 at 3:42 AM, Karl Pauls<karlpauls@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<nbeyer@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<karlpauls@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<ndbeyer@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.galaxy@gmail.com>
 wrote:
>>>>>>>>> It's , harmony-jre-761593,
>>>>>>>>>
>>>>>>>>> 2009/6/9 Nathan Beyer<ndbeyer@apache.org>
>>>>>>>>>
>>>>>>>>>> On Mon, Jun 8, 2009 at 12:46 AM, galaxy<tian.galaxy@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
>>>>>>> karlpauls@gmail.com
>>>>>>>
>>>>>
>>>>> --
>>>>> Karl Pauls
>>>>> karlpauls@gmail.com
>>>>>
>>>
>>>
> 
> 
> 

Mime
View raw message