You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jaxme-dev@ws.apache.org by "Jonathan Tang (JIRA)" <ja...@ws.apache.org> on 2005/12/14 20:02:45 UTC
[jira] Created: (JAXME-77) Java parser chokes on import packagename.*
Java parser chokes on import packagename.*
------------------------------------------
Key: JAXME-77
URL: http://issues.apache.org/jira/browse/JAXME-77
Project: JaxMe
Type: Bug
Components: JaxMeJS
Versions: 0.5
Environment: WinXP Pro, Java 1.5.0_03
Reporter: Jonathan Tang
When I use JavaParser to parse a class containing imports of the form "import package.name.*", the parser fails on an IllegalStateException("Unknown token: 87"). Full test case below:
File: JaxmeTest.java
import java.io.FileReader;
import org.apache.ws.jaxme.js.*;
import org.apache.ws.jaxme.js.util.JavaParser;
public class JaxmeTest {
public static void main(String[] args) {
JavaSourceFactory jsf = new JavaSourceFactory();
JavaParser parser = new JavaParser(jsf);
try {
parser.parse(new FileReader("JaxmeTest.java"));
} catch(Exception e) {
e.printStackTrace();
}
}
}
Command line transcript:
C:\workspace\EventMonitor3.0> javac JaxmeTest.java -cp lib\jaxmejs-0.5.jar;lib\antlr.jar
C:\workspace\EventMonitor3.0> java -cp .;lib\jaxmejs-0.5.jar;lib\antlr.jar JaxmeTest
java.lang.IllegalStateException: Unknown token: 87
at org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:177)
at org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:166)
at org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:128)
at org.apache.ws.jaxme.js.util.JavaParser.parseImportStatement(JavaParser.java:122)
at org.apache.ws.jaxme.js.util.JavaParser.parseAST(JavaParser.java:457)
at org.apache.ws.jaxme.js.util.JavaParser.parse(JavaParser.java:108)
at org.apache.ws.jaxme.js.util.JavaParser.parse(JavaParser.java:80)
at JaxmeTest.main(JaxmeTest.java:10)
Looking through the source, it looks like the JavaParser.parseIdentifier() method called by parseImportStatement() expects the identifier to be a primitive or ordinary dotted identifier, but the grammar production used in java15.g is:
identifierStar
: IDENT
( DOT^ IDENT )*
( DOT^ STAR )?
;
This may also have a STAR token, which falls through to the exception case.
For my purposes, I'd be happy if it just ignored the * and didn't choke on the file.
--
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: jaxme-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: jaxme-dev-help@ws.apache.org
[jira] Resolved: (JAXME-77) Java parser chokes on import
packagename.*
Posted by "Jochen Wiedmann (JIRA)" <ja...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/JAXME-77?page=all ]
Jochen Wiedmann resolved JAXME-77.
----------------------------------
Fix Version/s: 0.6
Resolution: Fixed
Assignee: Jochen Wiedmann
Applied to 0.5 and 0.6 branch.
> Java parser chokes on import packagename.*
> ------------------------------------------
>
> Key: JAXME-77
> URL: http://issues.apache.org/jira/browse/JAXME-77
> Project: JaxMe
> Issue Type: Bug
> Components: JaxMeJS
> Affects Versions: 0.5
> Environment: WinXP Pro, Java 1.5.0_03
> Reporter: Jonathan Tang
> Assigned To: Jochen Wiedmann
> Fix For: 0.6
>
> Attachments: JAXME-77.patch
>
>
> When I use JavaParser to parse a class containing imports of the form "import package.name.*", the parser fails on an IllegalStateException("Unknown token: 87"). Full test case below:
> File: JaxmeTest.java
> import java.io.FileReader;
> import org.apache.ws.jaxme.js.*;
> import org.apache.ws.jaxme.js.util.JavaParser;
> public class JaxmeTest {
> public static void main(String[] args) {
> JavaSourceFactory jsf = new JavaSourceFactory();
> JavaParser parser = new JavaParser(jsf);
> try {
> parser.parse(new FileReader("JaxmeTest.java"));
> } catch(Exception e) {
> e.printStackTrace();
> }
> }
> }
> Command line transcript:
> C:\workspace\EventMonitor3.0> javac JaxmeTest.java -cp lib\jaxmejs-0.5.jar;lib\antlr.jar
> C:\workspace\EventMonitor3.0> java -cp .;lib\jaxmejs-0.5.jar;lib\antlr.jar JaxmeTest
> java.lang.IllegalStateException: Unknown token: 87
> at org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:177)
> at org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:166)
> at org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:128)
> at org.apache.ws.jaxme.js.util.JavaParser.parseImportStatement(JavaParser.java:122)
> at org.apache.ws.jaxme.js.util.JavaParser.parseAST(JavaParser.java:457)
> at org.apache.ws.jaxme.js.util.JavaParser.parse(JavaParser.java:108)
> at org.apache.ws.jaxme.js.util.JavaParser.parse(JavaParser.java:80)
> at JaxmeTest.main(JaxmeTest.java:10)
> Looking through the source, it looks like the JavaParser.parseIdentifier() method called by parseImportStatement() expects the identifier to be a primitive or ordinary dotted identifier, but the grammar production used in java15.g is:
> identifierStar
> : IDENT
> ( DOT^ IDENT )*
> ( DOT^ STAR )?
> ;
> This may also have a STAR token, which falls through to the exception case.
> For my purposes, I'd be happy if it just ignored the * and didn't choke on the file.
--
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: jaxme-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: jaxme-dev-help@ws.apache.org
[jira] Updated: (JAXME-77) Java parser chokes on import
packagename.*
Posted by "Kenney Westerhof (JIRA)" <ja...@ws.apache.org>.
[ http://issues.apache.org/jira/browse/JAXME-77?page=all ]
Kenney Westerhof updated JAXME-77:
----------------------------------
Attachment: JAXME-77.patch
This patch fixes the problem. JUnit test included.
> Java parser chokes on import packagename.*
> ------------------------------------------
>
> Key: JAXME-77
> URL: http://issues.apache.org/jira/browse/JAXME-77
> Project: JaxMe
> Issue Type: Bug
> Components: JaxMeJS
> Affects Versions: 0.5
> Environment: WinXP Pro, Java 1.5.0_03
> Reporter: Jonathan Tang
> Attachments: JAXME-77.patch
>
>
> When I use JavaParser to parse a class containing imports of the form "import package.name.*", the parser fails on an IllegalStateException("Unknown token: 87"). Full test case below:
> File: JaxmeTest.java
> import java.io.FileReader;
> import org.apache.ws.jaxme.js.*;
> import org.apache.ws.jaxme.js.util.JavaParser;
> public class JaxmeTest {
> public static void main(String[] args) {
> JavaSourceFactory jsf = new JavaSourceFactory();
> JavaParser parser = new JavaParser(jsf);
> try {
> parser.parse(new FileReader("JaxmeTest.java"));
> } catch(Exception e) {
> e.printStackTrace();
> }
> }
> }
> Command line transcript:
> C:\workspace\EventMonitor3.0> javac JaxmeTest.java -cp lib\jaxmejs-0.5.jar;lib\antlr.jar
> C:\workspace\EventMonitor3.0> java -cp .;lib\jaxmejs-0.5.jar;lib\antlr.jar JaxmeTest
> java.lang.IllegalStateException: Unknown token: 87
> at org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:177)
> at org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:166)
> at org.apache.ws.jaxme.js.util.JavaParser.parseIdentifier(JavaParser.java:128)
> at org.apache.ws.jaxme.js.util.JavaParser.parseImportStatement(JavaParser.java:122)
> at org.apache.ws.jaxme.js.util.JavaParser.parseAST(JavaParser.java:457)
> at org.apache.ws.jaxme.js.util.JavaParser.parse(JavaParser.java:108)
> at org.apache.ws.jaxme.js.util.JavaParser.parse(JavaParser.java:80)
> at JaxmeTest.main(JaxmeTest.java:10)
> Looking through the source, it looks like the JavaParser.parseIdentifier() method called by parseImportStatement() expects the identifier to be a primitive or ordinary dotted identifier, but the grammar production used in java15.g is:
> identifierStar
> : IDENT
> ( DOT^ IDENT )*
> ( DOT^ STAR )?
> ;
> This may also have a STAR token, which falls through to the exception case.
> For my purposes, I'd be happy if it just ignored the * and didn't choke on the file.
--
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: jaxme-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: jaxme-dev-help@ws.apache.org