Details
-
Bug
-
Resolution: Done
-
Major
-
4.0.0.Alpha1
-
None
Description
Step to reproduce:
1. Create a new annotation as below (package declaration is omited):
import javax.ws.rs.HttpMethod; @HttpMethod("PATCH") public @interface PATCH { }
Assert: The JAX-RS validator should report 2 problems: missing @Target annotation and missing @Retention annotation.
2- Use the available QuickFix to add the @Retention annotation
Assert: code is now as below:
import javax.ws.rs.HttpMethod; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) @HttpMethod("PATCH") public @interface PATCH { }
Assert: the missing @Target annotation problem should be reported under the 'PATCH' type name as before
FAIL : the marker location in the document was not updated, the problem is now somewhere under the 'import java.lang.annotation.Retention' declaration.
Also, the lack of location update can also cause this kind of error:
!ENTRY org.jboss.tools.common 4 0 2012-10-05 10:34:09.357
!MESSAGE Wrong offset [195] of the problem marker [The HTTP Method should have a @Target(ElementType.METHOD) annotation on its type.] for resource: /poh5/src/main/java/org/jboss/tools/example/html5/rest/PATCH.java
!STACK 0
org.eclipse.jface.text.BadLocationException
at org.eclipse.jface.text.TreeLineTracker.fail(TreeLineTracker.java:1055)
at org.eclipse.jface.text.TreeLineTracker.lineByOffset(TreeLineTracker.java:267)
at org.eclipse.jface.text.TreeLineTracker.getLineNumberOfOffset(TreeLineTracker.java:1137)
at org.eclipse.jface.text.AbstractLineTracker.getLineNumberOfOffset(AbstractLineTracker.java:161)
at org.eclipse.jface.text.AbstractDocument.getLineOfOffset(AbstractDocument.java:915)
at org.eclipse.core.internal.filebuffers.SynchronizableDocument.getLineOfOffset(SynchronizableDocument.java:397)
at org.jboss.tools.common.validation.ValidationErrorManager.addError(ValidationErrorManager.java:428)
at org.jboss.tools.common.validation.ValidationErrorManager.addError(ValidationErrorManager.java:495)
at org.jboss.tools.common.validation.ValidationErrorManager.addError(ValidationErrorManager.java:349)
at org.jboss.tools.common.validation.ValidationErrorManager.addError(ValidationErrorManager.java:369)
at org.jboss.tools.common.validation.ValidationErrorManager.addError(ValidationErrorManager.java:387)
at org.jboss.tools.common.validation.ValidationErrorManager.addError(ValidationErrorManager.java:374)
at org.jboss.tools.common.validation.TempMarkerManager.addProblem(TempMarkerManager.java:116)
at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.AbstractJaxrsElementValidatorDelegate.addProblem(AbstractJaxrsElementValidatorDelegate.java:54)
at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsHttpMethodValidatorDelegate.validateTargetAnnotation(JaxrsHttpMethodValidatorDelegate.java:78)
at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsHttpMethodValidatorDelegate.validate(JaxrsHttpMethodValidatorDelegate.java:45)
at org.jboss.tools.ws.jaxrs.core.internal.metamodel.validation.JaxrsMetamodelValidator.validate(JaxrsMetamodelValidator.java:255)
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:120)
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.core.ValidatorLauncher.start(ValidatorLauncher.java:77)
at org.eclipse.wst.validation.Validator$V1.validate(Validator.java:768)
at org.eclipse.wst.validation.Validator.validate(Validator.java:405)
at org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:704)
at org.eclipse.wst.validation.internal.ValManager$1.visit(ValManager.java:665)
at org.eclipse.wst.validation.internal.ValManager.accept(ValManager.java:810)
at org.eclipse.wst.validation.internal.ValManager.validate(ValManager.java:669)
at org.eclipse.wst.validation.internal.ValidationRunner.execute(ValidationRunner.java:134)
at org.eclipse.wst.validation.internal.ValidationRunner.validate(ValidationRunner.java:68)
at org.eclipse.wst.validation.ui.internal.ManualValidationRunner.runInWorkspace(ManualValidationRunner.java:83)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
10: