harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vasily Zakharov (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-5622) [drlvm][kernel][geronimo] Method.getGeneric*() methods throw NPE for parametrized interface methods
Date Wed, 16 Apr 2008 07:16:25 GMT

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

Vasily Zakharov commented on HARMONY-5622:
------------------------------------------

It turned out that the regression test causes a StackOverflowError thrown if run with the
default stack size on Windows/64/Interpreter.

So I've removed the regression test from the kernel test suite and now working on including
the test to regression test suite that provides the capability to specify an increased stack
size for the particular test.


> [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
>             Fix For: 5.0M6
>
>         Attachments: Harmony-5622.patch, Harmony-5622.patch
>
>
> 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.


Mime
View raw message