Skip to content

Commit 3d90409

Browse files
committed
Source*: fix UnsolvedSymbolException
1 parent 5a16be2 commit 3d90409

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

src/main/java/org/hacksource/core/IntelligenceCLI.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.hacksource.core;
22

3+
import com.github.javaparser.Problem;
34
import com.github.javaparser.ast.CompilationUnit;
45
import com.google.gson.Gson;
56
import com.google.gson.GsonBuilder;
@@ -37,7 +38,12 @@ public static void main(String[] args) {
3738

3839
} catch (SourceException e) {
3940
resultMap.put("success", false);
40-
resultMap.put("error", e.getMessage());
41+
42+
List<String> problems = new ArrayList<>();
43+
for(Problem p : e.getProblems()) {
44+
problems.add(p.toString());
45+
}
46+
resultMap.put("error", problems);
4147
}
4248

4349
Gson gson = new GsonBuilder().create();

src/main/java/org/hacksource/core/SourceNaming.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.github.javaparser.ast.nodeTypes.NodeWithSimpleName;
1212
import com.github.javaparser.ast.visitor.GenericVisitor;
1313
import com.github.javaparser.ast.visitor.VoidVisitor;
14+
import com.github.javaparser.resolution.UnsolvedSymbolException;
1415
import com.github.javaparser.resolution.declarations.ResolvedValueDeclaration;
1516
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserFieldDeclaration;
1617
import com.github.javaparser.symbolsolver.javaparsermodel.declarations.JavaParserSymbolDeclaration;
@@ -30,7 +31,14 @@ public static void naming(CompilationUnit cu, List<SourceProblem> list) {
3031
Map<Node, List<Node>> symbolMap = new HashMap<>();
3132

3233
cu.findAll(NameExpr.class).forEach(ne -> {
33-
ResolvedValueDeclaration rne = ne.resolve();
34+
ResolvedValueDeclaration rne = null;
35+
try {
36+
rne = ne.resolve();
37+
}
38+
catch (UnsolvedSymbolException e){
39+
// TODO some warning here
40+
return;
41+
}
3442

3543
Node node = null;
3644
if (rne instanceof JavaParserSymbolDeclaration) {

src/main/java/org/hacksource/core/SourceParser.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.github.javaparser.ast.CompilationUnit;
66
import com.github.javaparser.symbolsolver.JavaSymbolSolver;
77
import com.github.javaparser.symbolsolver.resolution.typesolvers.CombinedTypeSolver;
8+
import com.github.javaparser.symbolsolver.resolution.typesolvers.JavaParserTypeSolver;
89
import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
910

1011
import java.io.IOException;
@@ -28,6 +29,10 @@ public static CompilationUnit parse(String source) throws SourceException {
2829

2930
ParseResult<CompilationUnit> result = javaParser.parse(COMPILATION_UNIT, provider(source));
3031

32+
if (!result.getProblems().isEmpty()) {
33+
throw new SourceException(result.getProblems());
34+
}
35+
3136
CompilationUnit cu = result.getResult().orElseThrow(() -> new SourceException(result.getProblems()));
3237

3338
return cu;

0 commit comments

Comments
 (0)