Index: trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java	(revision 9384)
+++ trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java	(revision 9385)
@@ -50,4 +50,5 @@
 import org.openstreetmap.josm.tools.OverpassTurboQueryWizard;
 import org.openstreetmap.josm.tools.Shortcut;
+import org.openstreetmap.josm.tools.UncheckedParseException;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -157,5 +158,5 @@
                     try {
                         overpassQuery.setText(OverpassTurboQueryWizard.getInstance().constructQuery(overpassWizardText));
-                    } catch (OverpassTurboQueryWizard.ParseException ex) {
+                    } catch (UncheckedParseException ex) {
                         HelpAwareOptionPane.showOptionDialog(
                                 Main.parent,
Index: trunk/src/org/openstreetmap/josm/tools/OverpassTurboQueryWizard.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/OverpassTurboQueryWizard.java	(revision 9384)
+++ trunk/src/org/openstreetmap/josm/tools/OverpassTurboQueryWizard.java	(revision 9385)
@@ -24,10 +24,4 @@
     private static OverpassTurboQueryWizard instance;
     private final ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
-
-    /**
-     * An exception to indicate a failed parse.
-     */
-    public static class ParseException extends RuntimeException {
-    }
 
     /**
@@ -60,11 +54,11 @@
      * @param search the {@link org.openstreetmap.josm.actions.search.SearchAction} like query
      * @return an Overpass QL query
-     * @throws ParseException when the parsing fails
+     * @throws UncheckedParseException when the parsing fails
      */
-    public String constructQuery(String search) throws ParseException {
+    public String constructQuery(String search) throws UncheckedParseException {
         try {
             final Object result = ((Invocable) engine).invokeFunction("construct_query", search);
             if (result == Boolean.FALSE) {
-                throw new ParseException();
+                throw new UncheckedParseException();
             }
             String query = (String) result;
Index: trunk/src/org/openstreetmap/josm/tools/UncheckedParseException.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/UncheckedParseException.java	(revision 9385)
+++ trunk/src/org/openstreetmap/josm/tools/UncheckedParseException.java	(revision 9385)
@@ -0,0 +1,48 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.tools;
+
+/**
+ * Signals that an error has been reached unexpectedly while parsing.
+ *
+ * @see java.text.ParseException
+ * @since 9385
+ */
+public class UncheckedParseException extends RuntimeException {
+
+    /**
+     * Constructs a new {@code UncheckedParseException}.
+     */
+    public UncheckedParseException() {
+    }
+
+    /**
+     * Constructs a new {@code UncheckedParseException} with the specified detail message.
+     *
+     * @param message the detail message (which is saved for later retrieval by the {@link #getMessage()} method).
+     */
+    public UncheckedParseException(String message) {
+        super(message);
+    }
+
+    /**
+     * Constructs a new {@code UncheckedParseException} with the specified detail message and cause.
+     *
+     * @param message the detail message (which is saved for later retrieval by the {@link #getMessage()} method).
+     * @param cause   the cause (which is saved for later retrieval by the {@link #getCause()} method).
+     *                (A <tt>null</tt> value is permitted, and indicates that the cause is nonexistent or unknown.)
+     */
+    public UncheckedParseException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    /**
+     * Constructs a new {@code UncheckedParseException} with the specified cause.
+     *
+     * @param cause the cause (which is saved for later retrieval by the {@link #getCause()} method).
+     *              (A <tt>null</tt> value is permitted, and indicates that the cause is nonexistent or unknown.)
+     */
+    public UncheckedParseException(Throwable cause) {
+        super(cause);
+    }
+
+}
Index: trunk/src/org/openstreetmap/josm/tools/date/DateUtils.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/date/DateUtils.java	(revision 9384)
+++ trunk/src/org/openstreetmap/josm/tools/date/DateUtils.java	(revision 9385)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.data.preferences.BooleanProperty;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
+import org.openstreetmap.josm.tools.UncheckedParseException;
 
 /**
@@ -66,6 +67,7 @@
      * @param str The XML date as string
      * @return The date
-     */
-    public static synchronized Date fromString(String str) {
+     * @throws UncheckedParseException if the date does not match any of the supported date formats
+     */
+    public static synchronized Date fromString(String str) throws UncheckedParseException {
         return new Date(tsFromString(str));
     }
@@ -75,6 +77,7 @@
      * @param str The XML date as string
      * @return The date in milliseconds since epoch
-     */
-    public static synchronized long tsFromString(String str) {
+     * @throws UncheckedParseException if the date does not match any of the supported date formats
+     */
+    public static synchronized long tsFromString(String str) throws UncheckedParseException {
         // "2007-07-25T09:26:24{Z|{+|-}01:00}"
         if (checkLayout(str, "xxxx-xx-xxTxx:xx:xxZ") ||
@@ -130,5 +133,5 @@
             return XML_DATE.newXMLGregorianCalendar(str).toGregorianCalendar().getTimeInMillis();
         } catch (Exception ex) {
-            return System.currentTimeMillis();
+            throw new UncheckedParseException("The date string (" + str + ") could not be parsed.");
         }
     }
