THRIFT-3479 Avoid returning a message to a client on TException.
diff --git a/lib/java/src/org/apache/thrift/ProcessFunction.java b/lib/java/src/org/apache/thrift/ProcessFunction.java
index 19c8f14..992e859 100644
--- a/lib/java/src/org/apache/thrift/ProcessFunction.java
+++ b/lib/java/src/org/apache/thrift/ProcessFunction.java
@@ -39,12 +39,14 @@
       result = getResult(iface, args);
     } catch(TException tex) {
       LOGGER.error("Internal error processing " + getMethodName(), tex);
-      TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, 
-        "Internal error processing " + getMethodName());
-      oprot.writeMessageBegin(new TMessage(getMethodName(), TMessageType.EXCEPTION, seqid));
-      x.write(oprot);
-      oprot.writeMessageEnd();
-      oprot.getTransport().flush();
+      if (!isOneway()) {
+        TApplicationException x = new TApplicationException(TApplicationException.INTERNAL_ERROR, 
+          "Internal error processing " + getMethodName());
+        oprot.writeMessageBegin(new TMessage(getMethodName(), TMessageType.EXCEPTION, seqid));
+        x.write(oprot);
+        oprot.writeMessageEnd();
+        oprot.getTransport().flush();
+      }
       return;
     }