This is an automated email from the ASF dual-hosted git repository.

okram pushed a commit to branch tp4
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/tp4 by this push:
     new 439cf53  try block Closeables for more efficient error handling and 
socket closing.
439cf53 is described below

commit 439cf537f70fe29862da128e37cb70683e3d2abd
Author: Marko A. Rodriguez <[email protected]>
AuthorDate: Tue Mar 26 15:05:47 2019 -0600

    try block Closeables for more efficient error handling and socket closing.
---
 .../machine/species/remote/MachineServer.java      | 27 +++++++++++-----------
 .../machine/species/remote/TraverserServer.java    |  4 +---
 2 files changed, 14 insertions(+), 17 deletions(-)

diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/species/remote/MachineServer.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/species/remote/MachineServer.java
index e6d573c..28cf0bd 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/species/remote/MachineServer.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/species/remote/MachineServer.java
@@ -83,27 +83,26 @@ public final class MachineServer implements AutoCloseable {
         }
 
         public void run() {
-            try {
-                final ObjectInputStream input = new 
ObjectInputStream(this.clientSocket.getInputStream());
-                final ObjectOutputStream output = new 
ObjectOutputStream(this.clientSocket.getOutputStream());
+            try (final ObjectInputStream input = new 
ObjectInputStream(this.clientSocket.getInputStream());
+                 final ObjectOutputStream output = new 
ObjectOutputStream(this.clientSocket.getOutputStream())) {
                 while (true) {
                     final RemoteMachine.Request<Object> request = 
(RemoteMachine.Request<Object>) input.readObject();
                     if (RemoteMachine.Request.Type.register == request.type) {
                         
output.writeObject(MachineServer.this.machine.register(request.bytecode));
                         output.flush();
                     } else if (RemoteMachine.Request.Type.submit == 
request.type) {
-                        final Socket traverserServerSocket = new 
Socket(request.traverserServerLocation, request.traverserServerPort);
-                        final ObjectOutputStream traverserOutput = new 
ObjectOutputStream(traverserServerSocket.getOutputStream());
-                        final Iterator<Traverser<Object, Object>> iterator = 
MachineServer.this.machine.submit(request.bytecode);
-                        int flushCounter = 0;
-                        while (iterator.hasNext()) {
-                            flushCounter++;
-                            traverserOutput.writeObject(iterator.next());
-                            if (0 == flushCounter % FLUSH_AMOUNT) 
traverserOutput.flush();
+                        try (final Socket traverserServerSocket = new 
Socket(request.traverserServerLocation, request.traverserServerPort);
+                             final ObjectOutputStream traverserOutput = new 
ObjectOutputStream(traverserServerSocket.getOutputStream())) {
+                            final Iterator<Traverser<Object, Object>> iterator 
= MachineServer.this.machine.submit(request.bytecode);
+                            int flushCounter = 0;
+                            while (iterator.hasNext()) {
+                                flushCounter++;
+                                traverserOutput.writeObject(iterator.next());
+                                if (0 == flushCounter % FLUSH_AMOUNT) 
traverserOutput.flush();
+                            }
+                            
traverserOutput.writeObject(EmptyTraverser.instance()); // this tells a 
TraverserServer that there are no more traversers
+                            traverserOutput.flush();
                         }
-                        
traverserOutput.writeObject(EmptyTraverser.instance()); // this tells a 
TraverserServer that there are no more traversers
-                        traverserOutput.flush();
-                        traverserOutput.close();
                     } else { // Request.Type.close == request.type
                         
MachineServer.this.machine.unregister(request.bytecode);
                     }
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/species/remote/TraverserServer.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/species/remote/TraverserServer.java
index 6caecc5..d647f96 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/species/remote/TraverserServer.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/species/remote/TraverserServer.java
@@ -97,8 +97,7 @@ public final class TraverserServer<C, S> implements 
AutoCloseable, Iterator<Trav
         }
 
         public void run() {
-            try {
-                final ObjectInputStream input = new 
ObjectInputStream(this.clientSocket.getInputStream());
+            try (final ObjectInputStream input = new 
ObjectInputStream(this.clientSocket.getInputStream())) {
                 while (true) {
                     final Traverser<C, S> traverser = (Traverser<C, S>) 
input.readObject();
                     if (traverser instanceof EmptyTraverser) { // 
EmptyTraverser kills server
@@ -107,7 +106,6 @@ public final class TraverserServer<C, S> implements 
AutoCloseable, Iterator<Trav
                     } else
                         TraverserServer.this.traverserSet.add(traverser);
                 }
-                input.close();
             } catch (final EOFException e) {
                 // okay -- this is how the worker closes
             } catch (final IOException | ClassNotFoundException e) {

Reply via email to