diff options
-rw-r--r-- | server/src/com/vaadin/ui/DragAndDropWrapper.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/server/src/com/vaadin/ui/DragAndDropWrapper.java b/server/src/com/vaadin/ui/DragAndDropWrapper.java index 5ec8fd5c76..23641f285e 100644 --- a/server/src/com/vaadin/ui/DragAndDropWrapper.java +++ b/server/src/com/vaadin/ui/DragAndDropWrapper.java @@ -228,7 +228,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget, String id = entry.getKey(); Html5File html5File = entry.getValue(); if (html5File.getStreamVariable() != null) { - target.addVariable(this, "rec-" + id, new ProxyReceiver( + target.addVariable(this, "rec-" + id, new ProxyReceiver(id, html5File)); // these are cleaned from receivers once the upload has // started @@ -278,9 +278,11 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget, final class ProxyReceiver implements StreamVariable { + private String id; private Html5File file; - public ProxyReceiver(Html5File file) { + public ProxyReceiver(String id, Html5File file) { + this.id = id; this.file = file; } @@ -313,7 +315,7 @@ public class DragAndDropWrapper extends CustomComponent implements DropTarget, new ReceivingEventWrapper(event)); } // no need tell to the client about this receiver on next paint - receivers.remove(file); + receivers.remove(id); // let the terminal GC the streamvariable and not to accept other // file uploads to this variable event.disposeStreamVariable(); |