diff options
author | doggy-dev <b369b7b2@opayq.com> | 2018-07-17 14:50:47 +0200 |
---|---|---|
committer | Ilia Motornyi <elmot@vaadin.com> | 2018-07-17 15:50:47 +0300 |
commit | ddd9bd75cd6695c8a3c2b69f79399ec7a6249d04 (patch) | |
tree | 3b228a6a0263836c213a8a652995c8f1887d5f4b /server | |
parent | 84ed5e142e45050a9d30543498abcfcadb1470da (diff) | |
download | vaadin-framework-ddd9bd75cd6695c8a3c2b69f79399ec7a6249d04.tar.gz vaadin-framework-ddd9bd75cd6695c8a3c2b69f79399ec7a6249d04.zip |
Memory leak fix in ConnectorTracker (#10743)
When finished with upload, streamVariable should be disposed.
Now StreamVariable is removed also from streamVariableToSeckey.
https://github.com/vaadin/framework/issues/10695 #10695
Diffstat (limited to 'server')
-rw-r--r-- | server/src/main/java/com/vaadin/ui/ConnectorTracker.java | 3 | ||||
-rw-r--r-- | server/src/main/java/com/vaadin/ui/Upload.java | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/server/src/main/java/com/vaadin/ui/ConnectorTracker.java b/server/src/main/java/com/vaadin/ui/ConnectorTracker.java index 713d9b47c1..8b8ba269cf 100644 --- a/server/src/main/java/com/vaadin/ui/ConnectorTracker.java +++ b/server/src/main/java/com/vaadin/ui/ConnectorTracker.java @@ -846,7 +846,8 @@ public class ConnectorTracker implements Serializable { } Map<String, StreamVariable> nameToStreamVar = pidToNameToStreamVariable .get(connectorId); - nameToStreamVar.remove(variableName); + StreamVariable streamVar = nameToStreamVar.remove(variableName); + streamVariableToSeckey.remove(streamVar); if (nameToStreamVar.isEmpty()) { pidToNameToStreamVariable.remove(connectorId); } diff --git a/server/src/main/java/com/vaadin/ui/Upload.java b/server/src/main/java/com/vaadin/ui/Upload.java index 1a66842e3d..70f31f4957 100644 --- a/server/src/main/java/com/vaadin/ui/Upload.java +++ b/server/src/main/java/com/vaadin/ui/Upload.java @@ -1155,6 +1155,8 @@ public class Upload extends AbstractComponent fireUploadSuccess(event.getFileName(), event.getMimeType(), event.getContentLength()); endUpload(); + if(lastStartedEvent != null) + lastStartedEvent.disposeStreamVariable(); } @Override @@ -1173,6 +1175,8 @@ public class Upload extends AbstractComponent } } finally { endUpload(); + if(lastStartedEvent != null) + lastStartedEvent.disposeStreamVariable(); } } }; |