Repository: geode Updated Branches: refs/heads/feature/GEODE-2632-17 fd84df29b -> 012b47563
Do NOT close HeapDataOutputStream that is passed to Part Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/012b4756 Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/012b4756 Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/012b4756 Branch: refs/heads/feature/GEODE-2632-17 Commit: 012b47563bd54a6ba0956296f62fadb292cd4dfc Parents: fd84df2 Author: Kirk Lund <kl...@apache.org> Authored: Tue May 23 14:46:34 2017 -0700 Committer: Kirk Lund <kl...@apache.org> Committed: Tue May 23 14:46:34 2017 -0700 ---------------------------------------------------------------------- .../internal/cache/tier/sockets/Message.java | 36 ++++++++------------ 1 file changed, 15 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/012b4756/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Message.java ---------------------------------------------------------------------- diff --git a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Message.java b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Message.java index 2ac6fea..de3017b 100644 --- a/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Message.java +++ b/geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/Message.java @@ -297,14 +297,11 @@ public class Message { } } part.setPartState(bytes, false); + } else { - HeapDataOutputStream hdos = new HeapDataOutputStream(str); - try { - this.messageModified = true; - part.setPartState(hdos, false); - } finally { - close(hdos); - } + // do NOT close the HeapDataOutputStream + this.messageModified = true; + part.setPartState(new HeapDataOutputStream(str), false); } this.currentPart++; } @@ -380,20 +377,18 @@ public class Message { v = null; } - // create the HDOS with a flag telling it that it can keep any byte[] or ByteBuffers/ByteSources - // passed to it. + // Create the HDOS with a flag telling it that it can keep any byte[] or ByteBuffers/ByteSources + // passed to it. Do NOT close the HeapDataOutputStream! HeapDataOutputStream hdos = new HeapDataOutputStream(this.chunkSize, v, true); try { BlobHelper.serializeTo(o, hdos); - this.messageModified = true; - Part part = this.partsList[this.currentPart]; - part.setPartState(hdos, true); - this.currentPart++; } catch (IOException ex) { throw new SerializationException("failed serializing object", ex); - } finally { - close(hdos); } + this.messageModified = true; + Part part = this.partsList[this.currentPart]; + part.setPartState(hdos, true); + this.currentPart++; } private void serializeAndAddPart(Object o, boolean zipValues) { @@ -406,18 +401,17 @@ public class Message { v = null; } + // do NOT close the HeapDataOutputStream HeapDataOutputStream hdos = new HeapDataOutputStream(this.chunkSize, v); try { BlobHelper.serializeTo(o, hdos); - this.messageModified = true; - Part part = this.partsList[this.currentPart]; - part.setPartState(hdos, true); - this.currentPart++; } catch (IOException ex) { throw new SerializationException("failed serializing object", ex); - } finally { - close(hdos); } + this.messageModified = true; + Part part = this.partsList[this.currentPart]; + part.setPartState(hdos, true); + this.currentPart++; } public void addIntPart(int v) {