[ 
http://issues.apache.org/jira/browse/JAXME-89?page=comments#action_12455301 ] 
            
Jochen Wiedmann commented on JAXME-89:
--------------------------------------

I haven't yet worked out why, but the AntLRTest fails after applying your patch:

The class name must not be null or empty.
java.lang.NullPointerException: The class name must not be null or empty.
        at 
org.apache.ws.jaxme.js.JavaQNameImpl.getInstance(JavaQNameImpl.java:231)
        at org.apache.ws.jaxme.js.util.JavaParser.getQName(JavaParser.java:334)
        at 
org.apache.ws.jaxme.js.util.JavaParser.parseImplementsOrExtends(JavaParser.java:348)
        at 
org.apache.ws.jaxme.js.util.JavaParser.parseClassDefinition(JavaParser.java:492)
        at org.apache.ws.jaxme.js.util.JavaParser.parseAST(JavaParser.java:509)
        at org.apache.ws.jaxme.js.util.JavaParser.parse(JavaParser.java:112)
        at org.apache.ws.jaxme.js.util.JavaParser.parse(JavaParser.java:82)
        at org.apache.ws.jaxme.js.util.JavaParser.parse(JavaParser.java:74)
        at org.apache.ws.jaxme.js.util.JavaParser.main(JavaParser.java:521)
        at org.apache.ws.jaxme.js.junit.AntlrTest.test(AntlrTest.java:40)
        at 
org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
        at 
org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
        at 
org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)


Also, could you please consider handling the case  "extends I1, I2, ..." as 
well, because that is valid for interfaces?


> Multiple "implements" clauses are not supported
> -----------------------------------------------
>
>                 Key: JAXME-89
>                 URL: http://issues.apache.org/jira/browse/JAXME-89
>             Project: JaxMe
>          Issue Type: Bug
>          Components: JaxMeJS
>    Affects Versions: 0.5
>         Environment: Win XP, J2SE 1.5_09
>            Reporter: Andreas Neumann
>
> If you want to parse a java source file which implements more than one 
> interface, the parser recognizes them as a single interface. I.e.:
> public class TestClass implements AnInterface {
> works fine, but
> public class TestClass implements AnInterface, ASecondInterface, 
> AThirdInterface {
> fails. If you call JavaSource.getImplements() on the second example, you'll 
> get a String like "AnInterfaceASecondInterfaceAThirdInterface".
> The problem is in the JavaParser.class in the method 
> "parseImplementsOrExtends", where the implements clause is handled like the 
> extends clause and expecting only one interface.
> Replace the method with something like this to make it work:
>     private void parseImplementsOrExtends(JavaSource pSource, AST pAST, int 
> pType) {
>         AST implementsAST = findChild(pAST, pType);
>         if (implementsAST == null) {
>               throw new IllegalStateException("AST implements not found");
>         }
>         if (implementsAST.getFirstChild() != null) {
>             if (pType == JavaRecognizer.IMPLEMENTS_CLAUSE) {
>                 for (AST child = implementsAST.getFirstChild();  child != 
> null;  child = child.getNextSibling()) {
>                     String ident = parseIdentifier(child);
>                     JavaQName qName = getQName(ident);
>                   pSource.addImplements(qName);
>                 }
>             } else {
>                 String ident = parseIdentifier(implementsAST);
>                 JavaQName qName = getQName(ident);
>               pSource.addExtends(qName);
>             }
>         }
>     }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to