Skip to content

Commit

Permalink
Corrected the starting position of the JavaDocComment
Browse files Browse the repository at this point in the history
  • Loading branch information
subyssurendran666 committed Sep 3, 2024
1 parent 0f92fb3 commit c99fd41
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5483,4 +5483,36 @@ interface I {
assertEquals(1, variableElement.getSourceRange().getLength());
}

public void testSVDStartPositionIssue() throws JavaModelException {
String contents = """
public class X {
public static void example() {
try {
System.out.println("try");
}
/** */
catch (RuntimeException e) {
System.out.println("catch");
}
}
}
""";
this.workingCopy = getWorkingCopy("/Converter22/src/xyz/X.java", true/*resolve*/);
CompilationUnit cu = (CompilationUnit) buildAST(contents, this.workingCopy);
TypeDeclaration typedeclaration = (TypeDeclaration) getASTNode(cu, 0);
MethodDeclaration methodDeclaration = (MethodDeclaration) typedeclaration.bodyDeclarations().get(0);
Block block = methodDeclaration.getBody();
List<ASTNode> statements = block.statements();
TryStatement tryStatement = (TryStatement) statements.get(0);
List<ASTNode> catchClauseList = tryStatement.catchClauses();
CatchClause catchClause = (CatchClause) catchClauseList.get(0);
SingleVariableDeclaration svd = catchClause.getException();

assertEquals("Not a Single Variable Declaration", ASTNode.SINGLE_VARIABLE_DECLARATION, svd.getNodeType());
assertEquals("Not a Simple Type", ASTNode.SIMPLE_TYPE, svd.getType().getNodeType());
assertEquals("Not a Simple Name", ASTNode.SIMPLE_NAME, svd.getName().getNodeType());
assertEquals("Single Variable Declaration length is not correct", svd.getLength(), 18);
assertEquals("Single Variable Declaration startPosition is not correct", svd.getStartPosition(), 116);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,11 @@ public int flushCommentsDefinedPriorTo(int position) {
return position;
}

@Override
protected void consumeExitTryBlock() {
flushCommentsDefinedPriorTo(this.scanner.currentPosition);
}

protected int getCommentPtr() {
int lastComment = this.scanner.commentPtr;
if (lastComment == -1 && this.currentElement != null) {
Expand Down

0 comments on commit c99fd41

Please sign in to comment.