Skip to content

Commit

Permalink
Fixed IllegalStateException in EclipseJDTJavaLoader.
Browse files Browse the repository at this point in the history
  • Loading branch information
ylussaud committed Apr 24, 2024
1 parent ba47b2c commit aee18ac
Showing 1 changed file with 24 additions and 20 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2021, 2023 Obeo.
* Copyright (c) 2021, 2024 Obeo.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
Expand Down Expand Up @@ -316,25 +316,29 @@ private IType getJDTIType(final Object resolved, final IJavaProject project) thr
*/
private ISourceLocation getIdentifierLocation(URI sourceURI, final ASTParser parser,
final ISourceRange javaIdentifierRange, final ISourceRange javaSourceRange) {
final CompilationUnit cu = (CompilationUnit)parser.createAST(null);
final int identifierStartOffset = javaIdentifierRange.getOffset();
final Position identifierStart = new Position(cu.getLineNumber(identifierStartOffset) - 1, cu
.getColumnNumber(identifierStartOffset), identifierStartOffset);
final int identifierEndOffset = identifierStartOffset + javaIdentifierRange.getLength();
final Position identifierEnd = new Position(cu.getLineNumber(identifierEndOffset) - 1, cu
.getColumnNumber(identifierEndOffset), identifierEndOffset);

final int startOffset = javaSourceRange.getOffset();
final Position start = new Position(cu.getLineNumber(startOffset) - 1, cu.getColumnNumber(
startOffset), startOffset);
final int endOffset = startOffset + javaSourceRange.getLength();
final Position end = new Position(cu.getLineNumber(endOffset) - 1, cu.getColumnNumber(endOffset),
endOffset);

final Range identifierRange = new Range(identifierStart, identifierEnd);
final Range range = new Range(start, end);

return new SourceLocation(sourceURI, identifierRange, range);
try {
final CompilationUnit cu = (CompilationUnit)parser.createAST(null);
final int identifierStartOffset = javaIdentifierRange.getOffset();
final Position identifierStart = new Position(cu.getLineNumber(identifierStartOffset) - 1, cu
.getColumnNumber(identifierStartOffset), identifierStartOffset);
final int identifierEndOffset = identifierStartOffset + javaIdentifierRange.getLength();
final Position identifierEnd = new Position(cu.getLineNumber(identifierEndOffset) - 1, cu
.getColumnNumber(identifierEndOffset), identifierEndOffset);

final int startOffset = javaSourceRange.getOffset();
final Position start = new Position(cu.getLineNumber(startOffset) - 1, cu.getColumnNumber(
startOffset), startOffset);
final int endOffset = startOffset + javaSourceRange.getLength();
final Position end = new Position(cu.getLineNumber(endOffset) - 1, cu.getColumnNumber(endOffset),
endOffset);

final Range identifierRange = new Range(identifierStart, identifierEnd);
final Range range = new Range(start, end);

return new SourceLocation(sourceURI, identifierRange, range);
} catch (IllegalStateException e) {
return null;
}
}

private String[] getParamterTypes(Method method) {
Expand Down

0 comments on commit aee18ac

Please sign in to comment.