Index: /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java
===================================================================
--- /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java	(revision 33075)
+++ /applications/editors/josm/plugins/wikipedia/src/org/wikipedia/WikipediaApp.java	(revision 33076)
@@ -70,4 +70,12 @@
     }
 
+    private static HttpClient.Response connect(String url) throws IOException {
+        final HttpClient.Response response = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect();
+        if (response.getResponseCode() != 200) {
+            throw new IOException("Server responded with HTTP " + response.getResponseCode());
+        }
+        return response;
+    }
+
     public List<WikipediaEntry> getEntriesFromCoordinates(LatLon min, LatLon max) {
         try {
@@ -80,5 +88,5 @@
                     + "&gsbbox=" + max.lat() + "|" + min.lon() + "|" + min.lat() + "|" + max.lon();
             // parse XML document
-            try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
+            try (final InputStream in = connect(url).getContent()) {
                 final Document doc = newDocumentBuilder().parse(in);
                 final List<WikipediaEntry> entries = X_PATH.evaluateNodes("//gs", doc).stream()
@@ -114,5 +122,5 @@
                     "&limit=50" +
                     "&format=xml";
-            try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
+            try (final InputStream in = connect(url).getContent()) {
                 final Document xml = newDocumentBuilder().parse(in);
                 final List<WikidataEntry> r = X_PATH.evaluateNodes("//entity", xml).stream()
@@ -133,6 +141,5 @@
                     + "&cat=" + Utils.encodeUrl(category);
 
-            try (final BufferedReader reader = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia")
-                    .connect().getContentReader()) {
+            try (final BufferedReader reader = connect(url).getContentReader()) {
                 return reader.lines()
                         .map(line -> new WikipediaEntry(wikipediaLang, line.trim().replace("_", " ")))
@@ -239,5 +246,5 @@
                     "&titles=" + articles.stream().map(Utils::encodeUrl).collect(Collectors.joining("|"));
             final Map<String, String> r = new TreeMap<>();
-            try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
+            try (final InputStream in = connect(url).getContent()) {
                 final Document xml = newDocumentBuilder().parse(in);
                 X_PATH.evaluateNodes("//entity", xml).forEach(node -> {
@@ -265,5 +272,5 @@
                     + "&pssearch=" + Utils.encodeUrl(prefix);
             // parse XML document
-            try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
+            try (final InputStream in = connect(url).getContent()) {
                 final Document doc = newDocumentBuilder().parse(in);
                 return X_PATH.evaluateNodes("//ps/@title", doc).stream()
@@ -309,5 +316,5 @@
             languages.add(null);
             final List<WikidataEntry> r = new ArrayList<>(entries.size());
-            try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
+            try (final InputStream in = connect(url).getContent()) {
                 final Document xml = newDocumentBuilder().parse(in);
                 for (final WikipediaEntry entry : entries) {
@@ -348,5 +355,5 @@
                     "&lllimit=500" +
                     "&format=xml";
-            try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
+            try (final InputStream in = connect(url).getContent()) {
                 final Document xml = newDocumentBuilder().parse(in);
                 return X_PATH.evaluateNodes("//ll", xml).stream()
@@ -369,5 +376,5 @@
                     "&titles=" + Utils.encodeUrl(article) +
                     "&format=xml";
-            try (final InputStream in = HttpClient.create(new URL(url)).setReasonForRequest("Wikipedia").connect().getContent()) {
+            try (final InputStream in = connect(url).getContent()) {
                 final Document xml = newDocumentBuilder().parse(in);
                 final Node node = X_PATH.evaluateNode("//coordinates/co", xml);
