Index: /trunk/src/org/openstreetmap/josm/data/notes/Note.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/notes/Note.java	(revision 17854)
+++ /trunk/src/org/openstreetmap/josm/data/notes/Note.java	(revision 17855)
@@ -11,4 +11,6 @@
 
 import org.openstreetmap.josm.data.coor.LatLon;
+
+import javax.annotation.Nullable;
 
 /**
@@ -159,4 +161,5 @@
      * @since 11821
      */
+    @Nullable
     public NoteComment getLastComment() {
         return comments.isEmpty() ? null : comments.get(comments.size()-1);
@@ -175,8 +178,10 @@
      * @return First comment object
      */
+    @Nullable
     public NoteComment getFirstComment() {
         return comments.isEmpty() ? null : comments.get(0);
     }
 
+    @Nullable
     private String getUserName() {
         return getFirstComment() == null ? null : getFirstComment().getUser().getName();
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java	(revision 17854)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java	(revision 17855)
@@ -248,4 +248,5 @@
         }
         return Pattern.compile("\\s+").splitAsStream(filter).allMatch(string -> {
+            NoteComment lastComment = note.getLastComment();
             switch (string) {
                 case "open":
@@ -254,9 +255,9 @@
                     return note.getState() == State.CLOSED;
                 case "reopened":
-                    return note.getLastComment().getNoteAction() == NoteComment.Action.REOPENED;
+                    return lastComment != null && lastComment.getNoteAction() == NoteComment.Action.REOPENED;
                 case "new":
                     return note.getId() < 0;
                 case "modified":
-                    return note.getLastComment().isNew();
+                    return lastComment != null && lastComment.isNew();
                 default:
                     return note.getComments().toString().contains(string);
