You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Alexey Varlamov (JIRA)" <ji...@apache.org> on 2009/03/02 17:38:56 UTC

[jira] Commented: (HARMONY-6077) [eut][drlvm] Class.getMethod may return method of subtype

    [ https://issues.apache.org/jira/browse/HARMONY-6077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12678032#action_12678032 ] 

Alexey Varlamov commented on HARMONY-6077:
------------------------------------------

No, such a fix is incorrect.
Apparently we face a bug in RI. Java Language Specification explicitly mentions similar scenario (section 8.2.1 of JLS 2nd edition).
My vote is to resolve this as non-bug difference (file a bug against EUT if needed to improve pass rate).

> [eut][drlvm] Class.getMethod may return method of subtype 
> ----------------------------------------------------------
>
>                 Key: HARMONY-6077
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6077
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>    Affects Versions: 5.0M8
>            Reporter: Regis Xu
>             Fix For: 5.0M9
>
>
> test case:
> X.java:
> import java.lang.reflect.*;
> import p.*;
> public class X {
>     static public void main(String args[]) {
>         Y y = new Y();
>         try {
>             Method foo = Y.class.getMethod("foo", (Class[]) null);
>             y.foo();
>             foo.invoke(y, (Object[]) null);
>         } catch (NoSuchMethodException e) {
>             // ignore
>         } catch (InvocationTargetException e) {
>             // ignore
>         } catch (IllegalAccessException e) {
>             System.out.print("FAILURE: IllegalAccessException");
>         }
>     }
> }
> Y.java
> package p;
> public class Y extends Z {
>     /* empty */
> }
> Z.java
> package p;
> class Z {
>     public void foo() {
>         System.out.println("SUCCESS"); //$NON-NLS-1$
>     }
> }
> run class X, RI and classlib with IBM VME has the same output:
> SUCCESS
> FAILURE: IllegalAccessException
> while drlvm output:
> SUCCESS
> SUCCESS
> after debugging, I found foo is public void p.Z.foo()

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