Merge branch 'next' into dev/image
[Sone.git] / src / main / java / net / pterodactylus / sone / core / FreenetInterface.java
index f7fa975..39f342c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * FreenetSone - FreenetInterface.java - Copyright © 2010 David Roden
+ * Sone - FreenetInterface.java - Copyright © 2010 David Roden
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -330,7 +330,7 @@ public class FreenetInterface {
         *
         * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
         */
-       public static class InsertToken implements ClientPutCallback {
+       public class InsertToken implements ClientPutCallback {
 
                /** The image being inserted. */
                private final Image image;
@@ -342,7 +342,7 @@ public class FreenetInterface {
                private ClientPutter clientPutter;
 
                /** The final URI. */
-               private FreenetURI resultingUri;
+               private volatile FreenetURI resultingUri;
 
                /**
                 * Creates a new insert token for the given image.
@@ -406,8 +406,9 @@ public class FreenetInterface {
                 *
                 * @see ImageInsertListener#imageInsertAborted(Image)
                 */
+               @SuppressWarnings("synthetic-access")
                public void cancel() {
-                       clientPutter.cancel(null, null);
+                       clientPutter.cancel(null, node.clientCore.clientContext);
                        for (ImageInsertListener imageInsertListener : imageInsertListeners) {
                                imageInsertListener.imageInsertAborted(image);
                        }
@@ -431,7 +432,11 @@ public class FreenetInterface {
                @Override
                public void onFailure(InsertException insertException, BaseClientPutter clientPutter, ObjectContainer objectContainer) {
                        for (ImageInsertListener imageInsertListener : imageInsertListeners) {
-                               imageInsertListener.imageInsertFailed(image, insertException);
+                               if ((insertException != null) && ("Cancelled by user".equals(insertException.getMessage()))) {
+                                       imageInsertListener.imageInsertAborted(image);
+                               } else {
+                                       imageInsertListener.imageInsertFailed(image, insertException);
+                               }
                        }
                }