dschneider-pivotal commented on a change in pull request #6943:
URL: https://github.com/apache/geode/pull/6943#discussion_r725195184



##########
File path: 
geode-core/src/main/java/org/apache/geode/distributed/internal/ReplyMessage.java
##########
@@ -274,10 +274,11 @@ public void toData(DataOutput out,
       SerializationContext context) throws IOException {
     super.toData(out, context);
 
-    final HeapDataOutputStream hdos =
-        new HeapDataOutputStream(context.getSerializationVersion());
+    HeapDataOutputStream hdos = null;
     boolean failedSerialization = false;
-    if (this.returnValueIsException || this.returnValue != null) {
+    final boolean hasReturnValue = this.returnValueIsException || 
this.returnValue != null;
+    if (hasReturnValue) {
+      hdos = new HeapDataOutputStream(context.getSerializationVersion());

Review comment:
       something else to consider in this method is should you even call 
hdos.close? If you look at it all it is doing is freeing up some heap resources 
and reseting the BufferDataOutputStream which actually mean you could continue 
to use it (which seems a bit off since close usually ends the life of an 
object). If you had a HDOS that was stored in something that was going to live 
longer than close could help free some memory up early. But in this case HDOS 
becomes garbage at the end of this method. The best practice in that case is to 
just let the garbage collector free it up and to not class close. But I'd be 
okay with you leaving the close call in but if it is going to cause a major 
refactor you might want to instead not call it.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to