Index: trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 8918)
+++ trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 8919)
@@ -27,5 +27,4 @@
 import org.openstreetmap.josm.command.SequenceCommand;
 import org.openstreetmap.josm.corrector.ReverseWayTagCorrector;
-import org.openstreetmap.josm.corrector.UserCancelException;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -39,4 +38,5 @@
 import org.openstreetmap.josm.tools.Pair;
 import org.openstreetmap.josm.tools.Shortcut;
+import org.openstreetmap.josm.tools.UserCancelException;
 
 /**
Index: trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java	(revision 8918)
+++ trunk/src/org/openstreetmap/josm/actions/JoinAreasAction.java	(revision 8919)
@@ -30,5 +30,4 @@
 import org.openstreetmap.josm.command.DeleteCommand;
 import org.openstreetmap.josm.command.SequenceCommand;
-import org.openstreetmap.josm.corrector.UserCancelException;
 import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.data.coor.EastNorth;
@@ -46,4 +45,5 @@
 import org.openstreetmap.josm.tools.Pair;
 import org.openstreetmap.josm.tools.Shortcut;
+import org.openstreetmap.josm.tools.UserCancelException;
 import org.openstreetmap.josm.tools.Utils;
 
Index: trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 8918)
+++ trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 8919)
@@ -24,5 +24,4 @@
 import org.openstreetmap.josm.command.DeleteCommand;
 import org.openstreetmap.josm.command.SequenceCommand;
-import org.openstreetmap.josm.corrector.UserCancelException;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -40,4 +39,5 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Shortcut;
+import org.openstreetmap.josm.tools.UserCancelException;
 
 /**
Index: trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java	(revision 8918)
+++ trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java	(revision 8919)
@@ -21,5 +21,4 @@
 import org.openstreetmap.josm.corrector.ReverseWayNoTagCorrector;
 import org.openstreetmap.josm.corrector.ReverseWayTagCorrector;
-import org.openstreetmap.josm.corrector.UserCancelException;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -27,4 +26,5 @@
 import org.openstreetmap.josm.gui.Notification;
 import org.openstreetmap.josm.tools.Shortcut;
+import org.openstreetmap.josm.tools.UserCancelException;
 import org.openstreetmap.josm.tools.Utils;
 
Index: trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java	(revision 8918)
+++ trunk/src/org/openstreetmap/josm/actions/SessionSaveAsAction.java	(revision 8919)
@@ -41,4 +41,5 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.MultiMap;
+import org.openstreetmap.josm.tools.UserCancelException;
 import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.WindowGeometry;
@@ -66,5 +67,5 @@
         try {
             saveSession();
-        } catch (CancelException ignore) {
+        } catch (UserCancelException ignore) {
             if (Main.isTraceEnabled()) {
                 Main.trace(ignore.getMessage());
@@ -74,16 +75,9 @@
 
     /**
-     * Denotes that the user has cancelled the save process.
+     * Attempts to save the session.
+     * @throws UserCancelException when the user has cancelled the save process.
      * @since 8913
      */
-    public static class CancelException extends Exception {
-    }
-
-    /**
-     * Attempts to save the session.
-     * @throws CancelException when the user has cancelled the save process.
-     * @since 8913
-     */
-    public void saveSession() throws CancelException {
+    public void saveSession() throws UserCancelException {
         if (!isEnabled()) {
             return;
@@ -93,5 +87,5 @@
         dlg.showDialog();
         if (dlg.getValue() != 1) {
-            throw new CancelException();
+            throw new UserCancelException();
         }
 
@@ -118,5 +112,5 @@
 
         if (fc == null) {
-            throw new CancelException();
+            throw new UserCancelException();
         }
 
@@ -142,5 +136,5 @@
             file = new File(file.getPath() + (zip ? ".joz" : ".jos"));
             if (!SaveActionBase.confirmOverwrite(file)) {
-                throw new CancelException();
+                throw new UserCancelException();
             }
         }
Index: trunk/src/org/openstreetmap/josm/corrector/ReverseWayNoTagCorrector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/corrector/ReverseWayNoTagCorrector.java	(revision 8918)
+++ trunk/src/org/openstreetmap/josm/corrector/ReverseWayNoTagCorrector.java	(revision 8919)
@@ -15,4 +15,5 @@
 import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
 import org.openstreetmap.josm.gui.DefaultNameFormatter;
+import org.openstreetmap.josm.tools.UserCancelException;
 import org.openstreetmap.josm.tools.Utils;
 
Index: trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java	(revision 8918)
+++ trunk/src/org/openstreetmap/josm/corrector/ReverseWayTagCorrector.java	(revision 8919)
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.data.osm.TagCollection;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.tools.UserCancelException;
 
 /**
Index: trunk/src/org/openstreetmap/josm/corrector/TagCorrector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/corrector/TagCorrector.java	(revision 8918)
+++ trunk/src/org/openstreetmap/josm/corrector/TagCorrector.java	(revision 8919)
@@ -32,4 +32,5 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.UserCancelException;
 
 /**
Index: trunk/src/org/openstreetmap/josm/corrector/UserCancelException.java
===================================================================
--- trunk/src/org/openstreetmap/josm/corrector/UserCancelException.java	(revision 8918)
+++ 	(revision )
@@ -1,6 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.corrector;
-
-public class UserCancelException extends Exception {
-
-}
Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java	(revision 8918)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java	(revision 8919)
@@ -34,5 +34,4 @@
 import org.openstreetmap.josm.command.ChangePropertyCommand;
 import org.openstreetmap.josm.command.Command;
-import org.openstreetmap.josm.corrector.UserCancelException;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -48,4 +47,5 @@
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.UserCancelException;
 import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.Utils.Function;
Index: trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java	(revision 8918)
+++ trunk/src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java	(revision 8919)
@@ -52,4 +52,5 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.UserCancelException;
 import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.WindowGeometry;
@@ -375,5 +376,5 @@
                 setUserAction(UserAction.PROCEED);
                 closeDialog();
-            } catch (CancelException ignore) {
+            } catch (UserCancelException ignore) {
                 if (Main.isTraceEnabled()) {
                     Main.trace(ignore.getMessage());
Index: trunk/src/org/openstreetmap/josm/tools/UserCancelException.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/UserCancelException.java	(revision 8919)
+++ trunk/src/org/openstreetmap/josm/tools/UserCancelException.java	(revision 8919)
@@ -0,0 +1,47 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.tools;
+
+/**
+ * Exception thrown when an operation is canceled by user.
+ * @since 1001 (creation)
+ * @since 8919 (move into this package)
+ */
+public class UserCancelException extends Exception {
+
+    /**
+     * Constructs a new {@code UserCancelException}.
+     */
+    public UserCancelException() {
+        super();
+    }
+
+    /**
+     * Constructs a new {@code UserCancelException} 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 UserCancelException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    /**
+     * Constructs a new {@code UserCancelException} with the specified detail message.
+     *
+     * @param  message the detail message (which is saved for later retrieval by the {@link #getMessage()} method).
+     */
+    public UserCancelException(String message) {
+        super(message);
+    }
+
+    /**
+     * Constructs a new {@code UserCancelException} 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 UserCancelException(Throwable cause) {
+        super(cause);
+    }
+}
