aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-core/src/main/java/com
diff options
context:
space:
mode:
authorDanny van Bruggen <lol@meuk.info>2017-12-14 20:41:31 +0100
committerGitHub <noreply@github.com>2017-12-14 20:41:31 +0100
commit47f5ecd6cdc6d1c2f94973a63945679a5984ed23 (patch)
treee230c1529dac8298d36acc0e0d6b84df961fb262 /javaparser-core/src/main/java/com
parentd0c42cd08bf5b3e0e42367a483738dff6e62c3d1 (diff)
parent6812e7642486d3f3cb68a866e456664e51d943e7 (diff)
downloadplatform_external_javaparser-47f5ecd6cdc6d1c2f94973a63945679a5984ed23.tar.gz
platform_external_javaparser-47f5ecd6cdc6d1c2f94973a63945679a5984ed23.tar.bz2
platform_external_javaparser-47f5ecd6cdc6d1c2f94973a63945679a5984ed23.zip
Merge branch 'master' into issue_1290_replace_bug
Diffstat (limited to 'javaparser-core/src/main/java/com')
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/PhantomNodeLogic.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/PhantomNodeLogic.java b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/PhantomNodeLogic.java
index a56662e05..d17f76835 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/PhantomNodeLogic.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/printer/lexicalpreservation/PhantomNodeLogic.java
@@ -27,6 +27,9 @@ import com.github.javaparser.ast.observer.AstObserverAdapter;
import com.github.javaparser.ast.type.UnknownType;
import java.util.IdentityHashMap;
+import java.util.Map;
+
+import static java.util.Collections.synchronizedMap;
/**
* We want to recognize and ignore "phantom" nodes, like the fake type of variable in FieldDeclaration
@@ -35,7 +38,7 @@ class PhantomNodeLogic {
private static final int LEVELS_TO_EXPLORE = 3;
- private static final IdentityHashMap<Node, Boolean> isPhantomNodeCache = new IdentityHashMap<>();
+ private static final Map<Node, Boolean> isPhantomNodeCache = synchronizedMap(new IdentityHashMap<>());
private static final AstObserver cacheCleaner = new AstObserverAdapter() {
@Override
@@ -45,19 +48,19 @@ class PhantomNodeLogic {
};
static boolean isPhantomNode(Node node) {
- boolean res;
if (isPhantomNodeCache.containsKey(node)) {
- res = isPhantomNodeCache.get(node);
+ return isPhantomNodeCache.get(node);
} else {
if (node instanceof UnknownType) {
return true;
}
- res = (node.getParentNode().isPresent() && !node.getParentNode().get().getRange().get().contains(
- node.getRange().get()) || inPhantomNode(node, LEVELS_TO_EXPLORE));
+ boolean res = (node.getParentNode().isPresent() &&
+ !node.getParentNode().get().getRange().get().contains(node.getRange().get())
+ || inPhantomNode(node, LEVELS_TO_EXPLORE));
isPhantomNodeCache.put(node, res);
node.register(cacheCleaner);
+ return res;
}
- return res;
}
/**