[
https://issues.jboss.org/browse/JBIDE-12806?page=com.atlassian.jira.plugi...
]
Xavier Coulon resolved JBIDE-12806.
-----------------------------------
Resolution: Done
Fixed, and some marker locations are more relevant now: underlining the annotation value
instead of the whole annotation, or underlining the annotation type instead of the
@HttpMethod annotation in case of missing @Target or @Retention annotation on a custom
JAX-RS HTTP Method
Annotations location in the JAX-RS Metamodel are not updated after
code changes
-------------------------------------------------------------------------------
Key: JBIDE-12806
URL:
https://issues.jboss.org/browse/JBIDE-12806
Project: Tools (JBoss Tools)
Issue Type: Bug
Components: Webservices
Affects Versions: 4.0.0.Alpha1
Reporter: Xavier Coulon
Assignee: Xavier Coulon
Fix For: 4.0.0.Beta1
Step to reproduce:
1. Create a new annotation as below (package declaration is omited):
{code}
import javax.ws.rs.HttpMethod;
@HttpMethod("PATCH")
public @interface PATCH {
}
{code}
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:
{code}
import javax.ws.rs.HttpMethod;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
@HttpMethod("PATCH")
public @interface PATCH {
}
{code}
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:
--
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