[rfc][icedtea-web] Rewrite of MethodOverloadResolver

Adam Domurad adomurad at redhat.com
Tue Jan 15 08:14:12 PST 2013


On 01/15/2013 08:46 AM, Jiri Vanek wrote:
> On 01/09/2013 09:05 PM, Adam Domurad wrote:
>> On 12/14/2012 03:43 PM, Adam Domurad wrote:
>>> Thought I'd do a simple patch to turn the test code embedded in 
>>> MethodOverloadResolver into a a
>>> proper unit test ... unfortunately, my small look into this class 
>>> lead me to find many subtle bugs
>>> -- and coincidentally decide to do it properly. Lots of corner cases 
>>> covered, and it could
>>> probably use unit tests even still, but its a major improvement and 
>>> I'm a bit tired of looking at
>>> it so I'm posting it.
>>>
>>> Some broken things I uncovered included improper overloading order, 
>>> method/argument situations
>>> that would error-out if they ever occurred (but were valid), and the 
>>> fact that the JSObject used
>>> throughout the class was actually a dummy value used at the bottom 
>>> of the class. The code was also
>>> made a lot cleaner in the process, in the interest of 'doing it 
>>> right' while fixing it.
>>> ChangeLog:
>>> 2012-12-14  Adam Domurad  <adomurad at redhat.com>
>>>
>>>     Rewrite of MethodOverloadResolver with detailed unittests.
>>>     * plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java:
>>>     Rewritten to reduce duplicated code, fix very subtle bugs in
>>>     never-tested codepaths, obey spec properly. Introduced new 
>>> helper types
>>>     where Object[] arrays with special-meaning positions were passed
>>>     around.
>>>     * 
>>> plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java:
>>>     Updated to work with newly introduced types / refactored overload
>>>     resolver.
>>>     * tests/netx/unit/sun/applet/MethodOverloadResolverTest.java: 
>>> In-depth
>>>     unit tests of hairy details of method overloading in JS<->Java.
>>>
>>>
>> Ping?
>> -Adam
>
> Although I really like this patch as it is making 
> MethodOverloadResolver much more readable and better, there is no 
> significant *visible* improvement (according to Jana's tests). Also I 
> was unable to review it properly - as it  was de facto replacement.
>
> Unless you+jana will find some improvement in (at least) liveconect 
> test or similar, then I must revoke this patch.
>
> If no "proof" will be found by you and jana, then I would like to get 
> this into head by small (reviewable) steps accompanied by 
> unit/reproducer tests.
>
> Sorry for troubles
>   J.

Just to be clear - I believe many fixed cases are visible in the unit 
tests. However these are difficult to determine because they were 
written against the new MethodOverloadResolver. Especially like I 
pointed out, JSObject was resolving to the completely wrong class. There 
were certain cases where exceptions would be thrown merely if a certain 
overload was present. If this is the issue, we can get more of these 
cases into the reproducers, but I do think there were a number of them. 
I'll work with Jana on this one.

-Adam



More information about the distro-pkg-dev mailing list