[forge-issues] [JBoss JIRA] (FORGE-889) Cannot parse package-info.java

Yann Albou (JIRA) jira-events at lists.jboss.org
Fri Jul 5 04:54:21 EDT 2013


    [ https://issues.jboss.org/browse/FORGE-889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12787830#comment-12787830 ] 

Yann Albou commented on FORGE-889:
----------------------------------

Hi,

This issue become a blocker because since Forge 1.3.x a project that contains a file "package-info.java" cannot be load by forge:
{code}
JBoss Forge, version [ 1.3.2.Final ] - JBoss, by Red Hat, Inc. [ http://forge.jboss.org ]
Error during Startup event
org.jboss.forge.parser.ParserException: Could not find type declaration in Java source - is this actually code?
        at org.jboss.forge.parser.spi.JavaParserImpl.parse(JavaParserImpl.java:115)
        at org.jboss.forge.parser.spi.JavaParserImpl.parse(JavaParserImpl.java:85)
        at org.jboss.forge.parser.spi.JavaParserImpl.parse(JavaParserImpl.java:70)
        at org.jboss.forge.parser.spi.JavaParserImpl.parse(JavaParserImpl.java:56)
        at org.jboss.forge.parser.JavaParser.parse(JavaParser.java:54)
        at org.jboss.forge.resources.java.JavaResource.getJavaSource(JavaResource.java:143)
        at org.jboss.forge.spec.javaee.rest.RestApplicationFacetImpl$1.visit(RestApplicationFacetImpl.java:121)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet$1.accept(MavenJavaSourceFacet.java:308)
        at org.jboss.forge.resources.AbstractResource.listResources(AbstractResource.java:123)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet.visitSources(MavenJavaSourceFacet.java:297)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet.access$000(MavenJavaSourceFacet.java:45)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet$1.accept(MavenJavaSourceFacet.java:304)
        at org.jboss.forge.resources.AbstractResource.listResources(AbstractResource.java:123)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet.visitSources(MavenJavaSourceFacet.java:297)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet.access$000(MavenJavaSourceFacet.java:45)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet$1.accept(MavenJavaSourceFacet.java:304)
        at org.jboss.forge.resources.AbstractResource.listResources(AbstractResource.java:123)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet.visitSources(MavenJavaSourceFacet.java:297)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet.access$000(MavenJavaSourceFacet.java:45)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet$1.accept(MavenJavaSourceFacet.java:304)
        at org.jboss.forge.resources.AbstractResource.listResources(AbstractResource.java:123)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet.visitSources(MavenJavaSourceFacet.java:297)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet.access$000(MavenJavaSourceFacet.java:45)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet$1.accept(MavenJavaSourceFacet.java:304)
        at org.jboss.forge.resources.AbstractResource.listResources(AbstractResource.java:123)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet.visitSources(MavenJavaSourceFacet.java:297)
        at org.jboss.forge.maven.facets.MavenJavaSourceFacet.visitJavaSources(MavenJavaSourceFacet.java:283)
        at org.jboss.forge.spec.javaee.rest.RestApplicationFacetImpl.findApplicationClass(RestApplicationFacetImpl.java:110)
        at org.jboss.forge.spec.javaee.rest.RestApplicationFacetImpl.isInstalled(RestApplicationFacetImpl.java:81)
        at org.jboss.forge.project.BaseProject.registerFacet(BaseProject.java:153)
        at org.jboss.forge.project.services.ProjectFactory.registerSingleFacet(ProjectFactory.java:208)
        at org.jboss.forge.project.services.ProjectFactory.registerSingleFacet(ProjectFactory.java:186)
        at org.jboss.forge.project.services.ProjectFactory.registerFacets(ProjectFactory.java:178)
        at org.jboss.forge.project.services.ProjectFactory.findProjectRecursively(ProjectFactory.java:117)
        at org.jboss.forge.shell.project.ProjectInitializer.doInit(ProjectInitializer.java:64)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:305)
        at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54)
        at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:163)
        at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:299)
        at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:188)
        at org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:59)
        at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:198)
        at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:282)
        at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:265)
        at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:234)
        at org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:635)
        at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:628)
        at org.jboss.weld.event.EventImpl.fire(EventImpl.java:75)
        at org.jboss.forge.shell.project.CurrentProject.setCurrentResource(CurrentProject.java:79)
        at org.jboss.forge.shell.ShellImpl.init(ShellImpl.java:376)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jboss.weld.bean.proxy.AbstractBeanInstance.invoke(AbstractBeanInstance.java:48)
        at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:125)
        at org.jboss.forge.shell.ShellImpl$Proxy$_$$_WeldClientProxy.init(ShellImpl$Proxy$_$$_WeldClientProxy.java)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jboss.weld.util.reflection.SecureReflections$13.work(SecureReflections.java:305)
        at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:54)
        at org.jboss.weld.util.reflection.SecureReflectionAccess.runAsInvocation(SecureReflectionAccess.java:163)
        at org.jboss.weld.util.reflection.SecureReflections.invoke(SecureReflections.java:299)
        at org.jboss.weld.introspector.jlr.WeldMethodImpl.invokeOnInstance(WeldMethodImpl.java:188)
        at org.jboss.weld.introspector.ForwardingWeldMethod.invokeOnInstance(ForwardingWeldMethod.java:59)
        at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:198)
        at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:282)
        at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:265)
        at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:234)
        at org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:635)
        at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:622)
        at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:616)
        at org.jboss.forge.shell.Bootstrap$1.run(Bootstrap.java:167)
        at java.lang.Thread.run(Thread.java:662)
{code}

So I tried to work on this issue and I did a pull request (https://github.com/forge/java-parser/pull/1).

But, eventhough it works with this patch, it was more difficult than I expected. 
I had to duplicate some part of code (see class AbstractJavaPackageSource) otherwise a big refactoring would be necessary.

What do you think ?

                
> Cannot parse package-info.java
> ------------------------------
>
>                 Key: FORGE-889
>                 URL: https://issues.jboss.org/browse/FORGE-889
>             Project: Forge
>          Issue Type: Bug
>          Components: Parsers / File Manipulation
>    Affects Versions: 1.2.3.Final, 2.0.0.Alpha3
>            Reporter: Yann Albou
>             Fix For: 1.x Future
>
>
> The parsing of package-info.java file (see http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/javadoc.html#sourcefiles) raises the following exeption:
> "org.jboss.forge.parser.ParserException: Could not find type declaration in Java source - is this actually code?"
>  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the forge-issues mailing list