diff --git a/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java b/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java index 6b46949a..7e4c08cb 100644 --- a/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java +++ b/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java @@ -228,6 +228,7 @@ public abstract class AstVisitor extends ASTVisitor { if (m_client.getInterrupted()) { + m_contextStack.push(new ArrayList<>()); return false; } diff --git a/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java b/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java index bc620adf..73c744d9 100644 --- a/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java +++ b/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java @@ -210,8 +210,7 @@ public class JavaIndexer astVisitorClient.logInfo( "Extracted classes.jar file from \"" + aarFilePath.toString() + "\" to \"" + tempFile.getAbsolutePath() + "\". " + - "This file will be automatically deleted when the session ends." - ); + "This file will be automatically deleted when the session ends."); return tempFile; } diff --git a/java_indexer/src/main/java/com/sourcetrail/QualifierVisitor.java b/java_indexer/src/main/java/com/sourcetrail/QualifierVisitor.java index 823b8157..e0dbe26c 100644 --- a/java_indexer/src/main/java/com/sourcetrail/QualifierVisitor.java +++ b/java_indexer/src/main/java/com/sourcetrail/QualifierVisitor.java @@ -12,6 +12,7 @@ import org.eclipse.jdt.core.dom.IBinding; import org.eclipse.jdt.core.dom.IMethodBinding; import org.eclipse.jdt.core.dom.IPackageBinding; import org.eclipse.jdt.core.dom.ITypeBinding; +import org.eclipse.jdt.core.dom.IVariableBinding; import org.eclipse.jdt.core.dom.ImportDeclaration; import org.eclipse.jdt.core.dom.MethodInvocation; import org.eclipse.jdt.core.dom.Name; @@ -201,18 +202,22 @@ public class QualifierVisitor else if (node instanceof SuperFieldAccess) { SuperFieldAccess expression = (SuperFieldAccess) node; + IVariableBinding fieldBinding = expression.resolveFieldBinding(); - m_client.recordQualifierLocation( - BindingNameResolver - .getQualifiedName(expression.resolveFieldBinding().getDeclaringClass(), m_filePath, m_compilationUnit) - .orElse(TypeName.unsolved()) - .toDeclName() - .toNameHierarchy(), - fileContent.findRange( - "super", - expression.getQualifier() != null - ? getRange(expression.getQualifier()).end - : getRange(expression).begin)); + if (fieldBinding != null) + { + m_client.recordQualifierLocation( + BindingNameResolver + .getQualifiedName(fieldBinding.getDeclaringClass(), m_filePath, m_compilationUnit) + .orElse(TypeName.unsolved()) + .toDeclName() + .toNameHierarchy(), + fileContent.findRange( + "super", + expression.getQualifier() != null + ? getRange(expression.getQualifier()).end + : getRange(expression).begin)); + } recordNodeAsQualifier(expression.getQualifier()); }