aboutsummaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authordoggy-dev <b369b7b2@opayq.com>2018-07-17 14:50:47 +0200
committerIlia Motornyi <elmot@vaadin.com>2018-07-17 15:50:47 +0300
commitddd9bd75cd6695c8a3c2b69f79399ec7a6249d04 (patch)
tree3b228a6a0263836c213a8a652995c8f1887d5f4b /server
parent84ed5e142e45050a9d30543498abcfcadb1470da (diff)
downloadvaadin-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.java3
-rw-r--r--server/src/main/java/com/vaadin/ui/Upload.java4
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();
}
}
};