[jbosstools-issues] [JBoss JIRA] (JBIDE-12760) JAX-RS error message "Failed to analyse compilation unit methods" when editing method body

Xavier Coulon (JIRA) jira-events at lists.jboss.org
Fri Sep 28 18:35:02 EDT 2012


     [ https://issues.jboss.org/browse/JBIDE-12760?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Xavier Coulon updated JBIDE-12760:
----------------------------------

    Attachment: JBIDE-12760.patch


This patch:
- stops using the JavaElementChangedBuildJob as a separate job but instead, directly calls the business code via a new execute() method,
- also prevents Java Model Exceptions if the given java type/method/field does not exist

As far as I understood, there was a kind of race condition, where the ICompilationUnit working copy behind manipulated did not exist anymore while the job was still working on it.
                
> JAX-RS error message "Failed to analyse compilation unit methods" when editing method body
> ------------------------------------------------------------------------------------------
>
>                 Key: JBIDE-12760
>                 URL: https://issues.jboss.org/browse/JBIDE-12760
>             Project: Tools (JBoss Tools)
>          Issue Type: Feature Request
>          Components: Webservices
>    Affects Versions: 4.0.0.Alpha2
>            Reporter: Xavier Coulon
>            Assignee: Xavier Coulon
>            Priority: Critical
>              Labels: review
>             Fix For: 4.0.0.Alpha2
>
>         Attachments: JBIDE-12760.patch
>
>
> In a JAX-RS project, create a class such as
> {code}
> public class A {
> 	@Inject @Named("nobean") String s1;
>     public int m() {
>         return 0;  
>     }
> }
> {code}
> Close Eclipse, reopen and start editing the m() method body to see:
> {code}
> Java Model Exception: Java Model Status [[Working copy] A.java [in org.jboss.tools.example.html5.service [in src/main/java [in poh5]]] does not exist]
> 	at org.eclipse.jdt.internal.core.JavaElement.newJavaModelException(JavaElement.java:505)
> 	at org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:246)
> 	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:518)
> 	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:255)
> 	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:241)
> 	at org.eclipse.jdt.internal.core.JavaElement.getChildren(JavaElement.java:196)
> 	at org.eclipse.jdt.internal.core.JavaElement.getSourceElementAt(JavaElement.java:370)
> 	at org.eclipse.jdt.internal.core.CompilationUnit.getElementAt(CompilationUnit.java:701)
> 	at org.jboss.tools.ws.jaxrs.core.jdt.JavaMethodSignaturesVisitor.visit(JavaMethodSignaturesVisitor.java:73)
> 	at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:489)
> 	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
> 	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585)
> 	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:484)
> 	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
> 	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2585)
> 	at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:219)
> 	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2514)
> 	at org.jboss.tools.ws.jaxrs.core.jdt.CompilationUnitsRepository.mergeAST(CompilationUnitsRepository.java:116)
> 	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaScanner.scanDelta(JavaElementDeltaScanner.java:118)
> 	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaScanner.scanDelta(JavaElementDeltaScanner.java:152)
> 	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaScanner.scanDelta(JavaElementDeltaScanner.java:152)
> 	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaScanner.scanDelta(JavaElementDeltaScanner.java:152)
> 	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaScanner.scanDelta(JavaElementDeltaScanner.java:152)
> 	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementDeltaScanner.scanAndFilterEvent(JavaElementDeltaScanner.java:71)
> 	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementChangedBuildJob.run(JavaElementChangedBuildJob.java:51)
> 	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
> {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 jbosstools-issues mailing list