Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-13544

Errors when playing with jaxrs code completion

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Major Major
    • 4.1.0.CR1
    • 4.1.0.Alpha1
    • webservices
    • None
    • Hide

      EXEC: create jaxrs project with jaxrs service in it:

      @Path("/rest")
      public class Service {
      
      	@Path("/{id}")
      	public void method(@PathParam int id) {
      		
      	}
      	
      }
      

      EXEC: put a cursor after m: @PathParam|
      REPEAT THESE STEPS:
      1. add only a left bracket and save it immediately
      2. remove left bracket and save it immediately
      END REPEAT

      If you were quick enough or lucky, there is a lot of errors in error log but only of four types:

      Java Model Exception: Java Model Status [method(int) {key=Ltest/Ser;.method(I)V} [in Ser [in [Working copy] Ser.java [in test [in src [in prj]]]]] does not exist]
      	at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:498)
      	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:532)
      	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:258)
      	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:244)
      	at org.eclipse.jdt.internal.core.SourceRefElement.getSourceRange(SourceRefElement.java:218)
      	at org.jboss.tools.ws.jaxrs.core.jdt.JavaAnnotationsVisitor.<init>(JavaAnnotationsVisitor.java:91)
      	at org.jboss.tools.ws.jaxrs.core.jdt.JdtUtils.resolveAnnotations(JdtUtils.java:350)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.domain.JaxrsElementFactory.internalCreateResourceMethod(JaxrsElementFactory.java:243)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.domain.JaxrsElementFactory.createResource(JaxrsElementFactory.java:170)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessor.preprocessResourceChangesOnScopeAdditionOrChange(ResourceChangedProcessor.java:622)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessor.processResourceChangesOnScopeAdditionOrChange(ResourceChangedProcessor.java:593)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessor.processEvent(ResourceChangedProcessor.java:177)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessor.processAffectedResources(ResourceChangedProcessor.java:144)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessor.processAffectedResources(ResourceChangedProcessor.java:84)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedBuildJob.run(ResourceChangedBuildJob.java:67)
      	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
      
      Java Model Exception: Java Model Status [method(int) {key=Ltest/Ser;.method(I)V} [in Ser [in [Working copy] Ser.java [in test [in src [in prj]]]]] does not exist]
      	at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:498)
      	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:532)
      	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:258)
      	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:244)
      	at org.eclipse.jdt.internal.core.Member.getFlags(Member.java:164)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validatePublicModifierOnJavaMethod(JaxrsResourceMethodValidatorDelegate.java:230)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validate(JaxrsResourceMethodValidatorDelegate.java:66)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceValidatorDelegate.validate(JaxrsResourceValidatorDelegate.java:38)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:266)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:170)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:122)
      	at org.jboss.tools.common.validation.ValidatorManager.validate(ValidatorManager.java:117)
      	at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:81)
      	at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:78)
      	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
      
      org.jboss.tools.common.validation.JBTValidationException: 0
      	at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:101)
      	at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:78)
      	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
      Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
      	at org.jboss.tools.ws.jaxrs.core.jdt.JavaMethodSignaturesVisitor.visit(JavaMethodSignaturesVisitor.java:96)
      	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.recordAST(CompilationUnitsRepository.java:108)
      	at org.jboss.tools.ws.jaxrs.core.jdt.CompilationUnitsRepository.getAST(CompilationUnitsRepository.java:71)
      	at org.jboss.tools.ws.jaxrs.core.jdt.JdtUtils.resolveMemberPairValueRange(JdtUtils.java:406)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.resolveAnnotationParamSourceRange(JaxrsResourceMethodValidatorDelegate.java:210)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validateNoUnboundPathAnnotationTemplateParameters(JaxrsResourceMethodValidatorDelegate.java:153)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validate(JaxrsResourceMethodValidatorDelegate.java:67)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceValidatorDelegate.validate(JaxrsResourceValidatorDelegate.java:38)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:266)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:170)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:122)
      	at org.jboss.tools.common.validation.ValidatorManager.validate(ValidatorManager.java:117)
      	at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:81)
      	... 2 more
      
      org.jboss.tools.common.validation.JBTValidationException
      	at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:101)
      	at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:78)
      	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
      Caused by: java.lang.NullPointerException
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.resolveAnnotationParamSourceRange(JaxrsResourceMethodValidatorDelegate.java:218)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validateNoUnboundPathAnnotationTemplateParameters(JaxrsResourceMethodValidatorDelegate.java:153)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validate(JaxrsResourceMethodValidatorDelegate.java:67)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceValidatorDelegate.validate(JaxrsResourceValidatorDelegate.java:38)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:266)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:170)
      	at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:122)
      	at org.jboss.tools.common.validation.ValidatorManager.validate(ValidatorManager.java:117)
      	at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:81)
      	... 2 more
      
      
      Show
      EXEC: create jaxrs project with jaxrs service in it: @Path( "/ rest " ) public class Service { @Path( "/{id}" ) public void method(@PathParam int id) { } } EXEC: put a cursor after m: @PathParam| REPEAT THESE STEPS: 1. add only a left bracket and save it immediately 2. remove left bracket and save it immediately END REPEAT If you were quick enough or lucky, there is a lot of errors in error log but only of four types: Java Model Exception: Java Model Status [method( int ) {key=Ltest/Ser;.method(I)V} [in Ser [in [Working copy] Ser.java [in test [in src [in prj]]]]] does not exist] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:498) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:532) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:258) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:244) at org.eclipse.jdt.internal.core.SourceRefElement.getSourceRange(SourceRefElement.java:218) at org.jboss.tools.ws.jaxrs.core.jdt.JavaAnnotationsVisitor.<init>(JavaAnnotationsVisitor.java:91) at org.jboss.tools.ws.jaxrs.core.jdt.JdtUtils.resolveAnnotations(JdtUtils.java:350) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.domain.JaxrsElementFactory.internalCreateResourceMethod(JaxrsElementFactory.java:243) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.domain.JaxrsElementFactory.createResource(JaxrsElementFactory.java:170) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessor.preprocessResourceChangesOnScopeAdditionOrChange(ResourceChangedProcessor.java:622) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessor.processResourceChangesOnScopeAdditionOrChange(ResourceChangedProcessor.java:593) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessor.processEvent(ResourceChangedProcessor.java:177) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessor.processAffectedResources(ResourceChangedProcessor.java:144) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedProcessor.processAffectedResources(ResourceChangedProcessor.java:84) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.ResourceChangedBuildJob.run(ResourceChangedBuildJob.java:67) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) Java Model Exception: Java Model Status [method( int ) {key=Ltest/Ser;.method(I)V} [in Ser [in [Working copy] Ser.java [in test [in src [in prj]]]]] does not exist] at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:498) at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:532) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:258) at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:244) at org.eclipse.jdt.internal.core.Member.getFlags(Member.java:164) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validatePublicModifierOnJavaMethod(JaxrsResourceMethodValidatorDelegate.java:230) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validate(JaxrsResourceMethodValidatorDelegate.java:66) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceValidatorDelegate.validate(JaxrsResourceValidatorDelegate.java:38) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:266) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:170) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:122) at org.jboss.tools.common.validation.ValidatorManager.validate(ValidatorManager.java:117) at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:81) at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:78) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) org.jboss.tools.common.validation.JBTValidationException: 0 at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:101) at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:78) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) Caused by: java.lang.ArrayIndexOutOfBoundsException: 0 at org.jboss.tools.ws.jaxrs.core.jdt.JavaMethodSignaturesVisitor.visit(JavaMethodSignaturesVisitor.java:96) 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.recordAST(CompilationUnitsRepository.java:108) at org.jboss.tools.ws.jaxrs.core.jdt.CompilationUnitsRepository.getAST(CompilationUnitsRepository.java:71) at org.jboss.tools.ws.jaxrs.core.jdt.JdtUtils.resolveMemberPairValueRange(JdtUtils.java:406) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.resolveAnnotationParamSourceRange(JaxrsResourceMethodValidatorDelegate.java:210) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validateNoUnboundPathAnnotationTemplateParameters(JaxrsResourceMethodValidatorDelegate.java:153) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validate(JaxrsResourceMethodValidatorDelegate.java:67) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceValidatorDelegate.validate(JaxrsResourceValidatorDelegate.java:38) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:266) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:170) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:122) at org.jboss.tools.common.validation.ValidatorManager.validate(ValidatorManager.java:117) at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:81) ... 2 more org.jboss.tools.common.validation.JBTValidationException at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:101) at org.eclipse.wst.validation.internal.operations.ValidatorJob.run(ValidatorJob.java:78) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) Caused by: java.lang.NullPointerException at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.resolveAnnotationParamSourceRange(JaxrsResourceMethodValidatorDelegate.java:218) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validateNoUnboundPathAnnotationTemplateParameters(JaxrsResourceMethodValidatorDelegate.java:153) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceMethodValidatorDelegate.validate(JaxrsResourceMethodValidatorDelegate.java:67) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsResourceValidatorDelegate.validate(JaxrsResourceValidatorDelegate.java:38) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:266) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:170) at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:122) at org.jboss.tools.common.validation.ValidatorManager.validate(ValidatorManager.java:117) at org.jboss.tools.common.validation.ValidatorManager.validateInJob(ValidatorManager.java:81) ... 2 more

      This issue is little bit tricky, but I am able to reproduce it always (of course there is need to repeat step lot of times).

            xcoulon@redhat.com Xavier Coulon
            jjankovi Jaroslav Jankovič (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: