Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikidataTagCellRenderer.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikidataTagCellRenderer.java	(revision 32828)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikidataTagCellRenderer.java	(revision 32829)
@@ -24,5 +24,5 @@
 public class WikidataTagCellRenderer extends DefaultTableCellRenderer {
 
-    private final Map<String, CompletableFuture<String>> labelCache = new ConcurrentHashMap<>();
+    final Map<String, CompletableFuture<String>> labelCache = new ConcurrentHashMap<>();
 
     @Override
Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java	(revision 32828)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java	(revision 32829)
@@ -43,5 +43,4 @@
 
     public static final Pattern WIKIDATA_PATTERN = Pattern.compile("Q\\d+");
-    private static final DocumentBuilder DOCUMENT_BUILDER = newDocumentBuilder();
     private static final XPath X_PATH = XPath.getInstance();
 
@@ -76,5 +75,5 @@
             // parse XML document
             try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
-                final Document doc = DOCUMENT_BUILDER.parse(in);
+                final Document doc = newDocumentBuilder().parse(in);
                 final List<WikipediaEntry> entries = X_PATH.evaluateNodes("//gs", doc).stream()
                         .map(node -> {
@@ -110,5 +109,5 @@
                     "&format=xml";
             try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
-                final Document xml = DOCUMENT_BUILDER.parse(in);
+                final Document xml = newDocumentBuilder().parse(in);
                 final List<WikidataEntry> r = X_PATH.evaluateNodes("//entity", xml).stream()
                         .map(node -> new WikidataEntry(X_PATH.evaluateString("@id", node), null, null, null))
@@ -213,5 +212,5 @@
             final Map<String, String> r = new TreeMap<>();
             try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
-                final Document xml = DOCUMENT_BUILDER.parse(in);
+                final Document xml = newDocumentBuilder().parse(in);
                 X_PATH.evaluateNodes("//entity", xml).forEach(node -> {
                     final String wikidata = X_PATH.evaluateString("./@id", node);
@@ -237,5 +236,5 @@
             // parse XML document
             try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
-                final Document doc = DOCUMENT_BUILDER.parse(in);
+                final Document doc = newDocumentBuilder().parse(in);
                 return X_PATH.evaluateNodes("//ps/@title", doc).stream()
                         .map(Node::getNodeValue)
@@ -281,7 +280,10 @@
             final List<WikidataEntry> r = new ArrayList<>(entries.size());
             try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
-                final Document xml = DOCUMENT_BUILDER.parse(in);
+                final Document xml = newDocumentBuilder().parse(in);
                 for (final WikipediaEntry entry : entries) {
                     final Node entity = X_PATH.evaluateNode("//entity[@id='" + entry.wikipediaArticle + "']", xml);
+                    if (entity == null) {
+                        continue;
+                    }
                     r.add(new WikidataEntry(
                             entry.wikipediaArticle,
@@ -317,5 +319,5 @@
                     "&format=xml";
             try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
-                final Document xml = DOCUMENT_BUILDER.parse(in);
+                final Document xml = newDocumentBuilder().parse(in);
                 return X_PATH.evaluateNodes("//ll", xml).stream()
                         .map(node -> {
@@ -338,5 +340,5 @@
                     "&format=xml";
             try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
-                final Document xml = DOCUMENT_BUILDER.parse(in);
+                final Document xml = newDocumentBuilder().parse(in);
                 final Node node = X_PATH.evaluateNode("//coordinates/co", xml);
                 if (node == null) {
Index: /applications/editors/josm/plugins/wikipedia/test/unit/org/wikipedia/WikidataTagCellRendererTest.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/test/unit/org/wikipedia/WikidataTagCellRendererTest.java	(revision 32828)
+++ /applications/editors/josm/plugins/wikipedia/test/unit/org/wikipedia/WikidataTagCellRendererTest.java	(revision 32829)
@@ -27,9 +27,8 @@
         final WikidataTagCellRenderer renderer = new WikidataTagCellRenderer();
         renderer.renderValues(ids, new JTable(), new JLabel());
-        Main.worker.submit(new Runnable() {
-            @Override
-            public void run() {
-            }
-        }).get(); // wait for labels to be fetched
+        for (String id : ids) {
+            // wait for labels to be fetched
+            renderer.labelCache.get(id).get();
+        }
         final JLabel label = renderer.renderValues(ids, new JTable(), new JLabel());
         assertNotNull(label);
