You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Vasily Zakharov (JIRA)" <ji...@apache.org> on 2008/03/20 11:45:24 UTC

[jira] Assigned: (HARMONY-5622) [drlvm][kernel][geronimo] Method.getGeneric*() methods throw NPE for parametrized interface methods

     [ https://issues.apache.org/jira/browse/HARMONY-5622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vasily Zakharov reassigned HARMONY-5622:
----------------------------------------

    Assignee: Vasily Zakharov

> [drlvm][kernel][geronimo] Method.getGeneric*() methods throw NPE for parametrized interface methods
> ---------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-5622
>                 URL: https://issues.apache.org/jira/browse/HARMONY-5622
>             Project: Harmony
>          Issue Type: Bug
>          Components: App-Oriented Bug Reports, DRLVM
>    Affects Versions: 5.0M5
>            Reporter: Vasily Zakharov
>            Assignee: Vasily Zakharov
>            Priority: Critical
>
> Class Method methods getGenericParameterTypes(), getGenericReturnType() and toGenericString() throw NPE if called for a parametrized method in an interface.
> Here's the test demonstrating the problem:
> import java.lang.reflect.Method;
> public class Test {
>     public static void main(String[] args) {
>         boolean success = true;
>         try {
>             Method method = Sample.class.getMethods()[0];
>             for (int i = 0; i < 5; i++) {
>                 try {
>                     switch (i) {
>                     case 0: method.getGenericParameterTypes();
>                             break;
>                     case 1: method.getGenericReturnType();
>                             break;
>                     case 2: method.getGenericExceptionTypes();
>                             break;
>                     case 3: method.getTypeParameters();
>                             break;
>                     case 4: method.toGenericString();
>                             break;
>                     }
>                 } catch (Exception e) {
>                     success = false;
>                     System.out.print("FAIL: ");
>                     e.printStackTrace(System.out);
>                 }
>             }
>             System.out.println(success ? "SUCCESS" : "FAILURE");
>         } catch (Exception e) {
>             System.out.print("ERROR: ");
>             e.printStackTrace(System.out);
>         }
>     }
> }
> interface Sample {
>     public <T extends Sample, E extends Throwable> T test(T param) throws E;
> }
> Output on RI:
> SUCCESS
> Output on Harmony:
> FAIL: java.lang.NullPointerException
>         at org.apache.harmony.lang.reflect.support.AuxiliaryFinder.findTypeVariable(AuxiliaryFinder.java:293)
>         at org.apache.harmony.lang.reflect.parser.Parser.getGenericParameterTypes(Parser.java:742)
>         at java.lang.reflect.Method.getGenericParameterTypes(Method.java:110)
>         at Test.main(Test.java:10)
> FAIL: java.lang.NullPointerException
>         at org.apache.harmony.lang.reflect.support.AuxiliaryFinder.findTypeVariable(AuxiliaryFinder.java:293)
>         at org.apache.harmony.lang.reflect.parser.Parser.getGenericReturnTypeImpl(Parser.java:447)
>         at java.lang.reflect.Method.getGenericReturnType(Method.java:126)
>         at Test.main(Test.java:12)
> FAIL: java.lang.NullPointerException
>         at org.apache.harmony.lang.reflect.support.AuxiliaryFinder.findTypeVariable(AuxiliaryFinder.java:293)
>         at org.apache.harmony.lang.reflect.parser.Parser.getGenericParameterTypes(Parser.java:742)
>         at java.lang.reflect.Method.toGenericString(Method.java:150)
>         at Test.main(Test.java:18)
> FAILURE
> This issue is critical as it prevents Geronimo Deployer from working on Harmony.

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