Skip to content

Commit

Permalink
Fix NullPointerException when adding names from wikipedia tag
Browse files Browse the repository at this point in the history
  • Loading branch information
floscher committed Aug 9, 2018
1 parent 6adfaad commit 5a2f8ce
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions src/main/java/org/wikipedia/actions/WikipediaAddNamesAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,13 @@
import org.openstreetmap.josm.actions.JosmAction;
import org.openstreetmap.josm.data.osm.DataSet;
import org.openstreetmap.josm.data.osm.OsmPrimitive;
import org.openstreetmap.josm.gui.Notification;
import org.openstreetmap.josm.io.remotecontrol.AddTagsDialog;
import org.openstreetmap.josm.tools.I18n;
import org.openstreetmap.josm.tools.ImageProvider;
import org.openstreetmap.josm.tools.Logging;
import org.wikipedia.WikipediaApp;
import org.wikipedia.WikipediaPlugin;
import org.wikipedia.data.WikipediaEntry;

public class WikipediaAddNamesAction extends JosmAction {
Expand All @@ -29,15 +33,21 @@ public WikipediaAddNamesAction() {
@Override
public void actionPerformed(ActionEvent e) {
final WikipediaEntry wp = WikipediaEntry.parseTag("wikipedia", getWikipediaValue());
List<String[]> tags = new ArrayList<>();
WikipediaApp.forLanguage(wp.lang).getInterwikiArticles(wp.article).stream()
if (wp == null) {
new Notification(I18n.tr("Could not add names. Wikipedia tag is not recognized!"))
.setIcon(WikipediaPlugin.W_IMAGE.setMaxSize(ImageProvider.ImageSizes.LARGEICON).get())
.show();
} else {
List<String[]> tags = new ArrayList<>();
WikipediaApp.forLanguage(wp.lang).getInterwikiArticles(wp.article).stream()
.filter(this::useWikipediaLangArticle)
.map(i -> new String[]{"name:" + i.lang, i.article})
.forEach(tags::add);
if (Logging.isDebugEnabled()) {
Logging.debug(tags.toString());
if (Logging.isDebugEnabled()) {
Logging.debug(tags.toString());
}
AddTagsDialog.addTags(tags.toArray(new String[tags.size()][]), "Wikipedia", getLayerManager().getEditDataSet().getSelected());
}
AddTagsDialog.addTags(tags.toArray(new String[tags.size()][]), "Wikipedia", getLayerManager().getEditDataSet().getSelected());
}

private boolean useWikipediaLangArticle(WikipediaEntry i) {
Expand Down

0 comments on commit 5a2f8ce

Please sign in to comment.