THRIFT-416. java: java.util.logging eats exceptions without warning

This patch switches the logging framework to log4j and updates all the server implementations accordingly.



git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@763981 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/java/build.xml b/lib/java/build.xml
index 05cf9cd..6778f2c 100644
--- a/lib/java/build.xml
+++ b/lib/java/build.xml
@@ -42,7 +42,7 @@
   </target>
 
   <target name="compile" depends="init">
-    <javac srcdir="${src}" destdir="${build}" source="1.5" debug="true"/>
+    <javac srcdir="${src}" destdir="${build}" source="1.5" debug="true" classpath="${cpath}" />
   </target>
 
   <target name="javadoc" depends="init">
diff --git a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
index a6620eb..95d81e2 100644
--- a/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
+++ b/lib/java/src/org/apache/thrift/server/TNonblockingServer.java
@@ -29,8 +29,8 @@
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+
+import org.apache.log4j.Logger;
 
 import org.apache.thrift.TByteArrayOutputStream;
 import org.apache.thrift.TException;
@@ -199,7 +199,7 @@
       serverTransport_.listen();
       return true;
     } catch (TTransportException ttx) {
-      LOGGER.log(Level.SEVERE, "Failed to start listening on server socket!", ttx);
+      LOGGER.error("Failed to start listening on server socket!", ttx);
       return false;
     }
   }
@@ -224,7 +224,7 @@
       selectThread_.start();
       return true;
     } catch (IOException e) {
-      LOGGER.log(Level.SEVERE, "Failed to start selector thread!", e);
+      LOGGER.error("Failed to start selector thread!", e);
       return false;
     }
   }
@@ -356,11 +356,11 @@
             // deal with writes
             handleWrite(key);
           } else {
-            LOGGER.log(Level.WARNING, "Unexpected state in select! " + key.interestOps());
+            LOGGER.warn("Unexpected state in select! " + key.interestOps());
           }
         }
       } catch (IOException e) {
-        LOGGER.log(Level.WARNING, "Got an IOException while selecting!", e);
+        LOGGER.warn("Got an IOException while selecting!", e);
       }
     }
 
@@ -393,7 +393,7 @@
         clientKey.attach(frameBuffer);
       } catch (TTransportException tte) {
         // something went wrong accepting.
-        LOGGER.log(Level.WARNING, "Exception trying to accept!", tte);
+        LOGGER.warn("Exception trying to accept!", tte);
         tte.printStackTrace();
         if (clientKey != null) cleanupSelectionkey(clientKey);
         if (client != null) client.close();
@@ -512,7 +512,7 @@
           // pull out the frame size as an integer.
           int frameSize = buffer_.getInt(0);
           if (frameSize <= 0) {
-            LOGGER.severe("Read an invalid frame size of " + frameSize
+            LOGGER.error("Read an invalid frame size of " + frameSize
               + ". Are you using TFramedTransport on the client side?");
             return false;
           }
@@ -520,7 +520,7 @@
           // if this frame will always be too large for this server, log the
           // error and close the connection.
           if (frameSize + 4 > MAX_READ_BUFFER_BYTES) {
-            LOGGER.severe("Read a frame size of " + frameSize
+            LOGGER.error("Read a frame size of " + frameSize
               + ", which is bigger than the maximum allowable buffer size for ALL connections.");
             return false;
           }
@@ -569,7 +569,7 @@
       }
 
       // if we fall through to this point, then the state must be invalid.
-      LOGGER.severe("Read was called but state is invalid (" + state_ + ")");
+      LOGGER.error("Read was called but state is invalid (" + state_ + ")");
       return false;
     }
 
@@ -583,7 +583,7 @@
             return false;
           }
         } catch (IOException e) {
-          LOGGER.log(Level.WARNING, "Got an IOException during write!", e);
+          LOGGER.warn("Got an IOException during write!", e);
           return false;
         }
 
@@ -594,7 +594,7 @@
         return true;
       }
 
-      LOGGER.severe("Write was called, but state is invalid (" + state_ + ")");
+      LOGGER.error("Write was called, but state is invalid (" + state_ + ")");
       return false;
     }
 
@@ -613,7 +613,7 @@
         close();
         selectionKey_.cancel();
       } else {
-        LOGGER.severe(
+        LOGGER.error(
           "changeSelectInterest was called, but state is invalid ("
           + state_ + ")");
       }
@@ -682,9 +682,9 @@
         responseReady();
         return;
       } catch (TException te) {
-        LOGGER.log(Level.WARNING, "Exception while invoking!", te);
+        LOGGER.warn("Exception while invoking!", te);
       } catch (Exception e) {
-        LOGGER.log(Level.SEVERE, "Unexpected exception while invoking!", e);
+        LOGGER.error("Unexpected exception while invoking!", e);
       }
       // This will only be reached when there is an exception.
       state_ = AWAITING_CLOSE;
@@ -721,7 +721,7 @@
         }
         return true;
       } catch (IOException e) {
-        LOGGER.log(Level.WARNING, "Got an IOException in internalRead!", e);
+        LOGGER.warn("Got an IOException in internalRead!", e);
         return false;
       }
     }
diff --git a/lib/java/src/org/apache/thrift/server/TSimpleServer.java b/lib/java/src/org/apache/thrift/server/TSimpleServer.java
index c053d97..b3ee5ad 100644
--- a/lib/java/src/org/apache/thrift/server/TSimpleServer.java
+++ b/lib/java/src/org/apache/thrift/server/TSimpleServer.java
@@ -19,9 +19,6 @@
 
 package org.apache.thrift.server;
 
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
 import org.apache.thrift.TException;
 import org.apache.thrift.TProcessor;
 import org.apache.thrift.TProcessorFactory;
@@ -31,6 +28,7 @@
 import org.apache.thrift.transport.TTransport;
 import org.apache.thrift.transport.TTransportFactory;
 import org.apache.thrift.transport.TTransportException;
+import org.apache.log4j.Logger;
 
 /**
  * Simple singlethreaded server for testing.
@@ -94,7 +92,7 @@
     try {
       serverTransport_.listen();
     } catch (TTransportException ttx) {
-      LOGGER.log(Level.SEVERE, "Error occurred during listening.", ttx);
+      LOGGER.error("Error occurred during listening.", ttx);
       return;
     }
 
@@ -119,11 +117,11 @@
         // Client died, just move on
       } catch (TException tx) {
         if (!stopped_) {
-          LOGGER.log(Level.SEVERE, "Thrift error occurred during processing of message.", tx);
+          LOGGER.error("Thrift error occurred during processing of message.", tx);
         }
       } catch (Exception x) {
         if (!stopped_) {
-          LOGGER.log(Level.SEVERE, "Error occurred during processing of message.", x);
+          LOGGER.error("Error occurred during processing of message.", x);
         }
       }
 
diff --git a/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java b/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
index 68280ab..ebc5a9b 100644
--- a/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
+++ b/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java
@@ -29,14 +29,14 @@
 import org.apache.thrift.transport.TTransport;
 import org.apache.thrift.transport.TTransportException;
 import org.apache.thrift.transport.TTransportFactory;
+import org.apache.log4j.Logger;
+import org.apache.log4j.Level;
 
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.SynchronousQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 
 /**
@@ -172,7 +172,7 @@
     try {
       serverTransport_.listen();
     } catch (TTransportException ttx) {
-      LOGGER.log(Level.SEVERE, "Error occurred during listening.", ttx);
+      LOGGER.error("Error occurred during listening.", ttx);
       return;
     }
 
@@ -186,7 +186,7 @@
       } catch (TTransportException ttx) {
         if (!stopped_) {
           ++failureCount;
-          LOGGER.log(Level.WARNING, "Transport error occurred during acceptance of message.", ttx);
+          LOGGER.warn("Transport error occurred during acceptance of message.", ttx);
         }
       }
     }
@@ -253,9 +253,9 @@
       } catch (TTransportException ttx) {
         // Assume the client died and continue silently
       } catch (TException tx) {
-        LOGGER.log(Level.SEVERE, "Thrift error occurred during processing of message.", tx);
+        LOGGER.error("Thrift error occurred during processing of message.", tx);
       } catch (Exception x) {
-        LOGGER.log(Level.SEVERE, "Error occurred during processing of message.", x);
+        LOGGER.error("Error occurred during processing of message.", x);
       }
 
       if (inputTransport != null) {
diff --git a/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java b/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java
index 4a714a6..89cdb58 100644
--- a/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java
+++ b/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java
@@ -19,11 +19,11 @@
 
 package org.apache.thrift.transport;
 
+import org.apache.log4j.Logger;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * This is the most commonly used base transport. It takes an InputStream
@@ -100,7 +100,7 @@
       try {
         inputStream_.close();
       } catch (IOException iox) {
-        LOGGER.log(Level.WARNING, "Error closing input stream.", iox);
+        LOGGER.warn("Error closing input stream.", iox);
       }
       inputStream_ = null;
     }
@@ -108,7 +108,7 @@
       try {
         outputStream_.close();
       } catch (IOException iox) {
-        LOGGER.log(Level.WARNING, "Error closing output stream.", iox);
+        LOGGER.warn("Error closing output stream.", iox);
       }
       outputStream_ = null;
     }
diff --git a/lib/java/src/org/apache/thrift/transport/TServerSocket.java b/lib/java/src/org/apache/thrift/transport/TServerSocket.java
index e6cd113..796cd65 100644
--- a/lib/java/src/org/apache/thrift/transport/TServerSocket.java
+++ b/lib/java/src/org/apache/thrift/transport/TServerSocket.java
@@ -19,13 +19,13 @@
 
 package org.apache.thrift.transport;
 
+import org.apache.log4j.Logger;
+
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.net.ServerSocket;
 import java.net.Socket;
 import java.net.SocketException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * Wrapper around ServerSocket for Thrift.
@@ -105,7 +105,7 @@
       try {
         serverSocket_.setSoTimeout(0);
       } catch (SocketException sx) {
-        LOGGER.log(Level.WARNING, "Could not set socket timeout.", sx);
+        LOGGER.error("Could not set socket timeout.", sx);
       }
     }
   }
@@ -129,7 +129,7 @@
       try {
         serverSocket_.close();
       } catch (IOException iox) {
-        LOGGER.log(Level.WARNING, "Could not close server socket.", iox);
+        LOGGER.warn("Could not close server socket.", iox);
       }
       serverSocket_ = null;
     }
diff --git a/lib/java/src/org/apache/thrift/transport/TSocket.java b/lib/java/src/org/apache/thrift/transport/TSocket.java
index 333e9be..cdf1bcc 100644
--- a/lib/java/src/org/apache/thrift/transport/TSocket.java
+++ b/lib/java/src/org/apache/thrift/transport/TSocket.java
@@ -19,14 +19,14 @@
 
 package org.apache.thrift.transport;
 
+import org.apache.log4j.Logger;
+
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.IOException;
 import java.net.InetSocketAddress;
 import java.net.Socket;
 import java.net.SocketException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 
 /**
  * Socket implementation of the TTransport interface. To be commented soon!
@@ -68,7 +68,7 @@
       socket_.setSoLinger(false, 0);
       socket_.setTcpNoDelay(true);
     } catch (SocketException sx) {
-      LOGGER.log(Level.WARNING, "Could not configure socket.", sx);
+      LOGGER.warn("Could not configure socket.", sx);
     }
 
     if (isOpen()) {
@@ -118,7 +118,7 @@
       socket_.setTcpNoDelay(true);
       socket_.setSoTimeout(timeout_);
     } catch (SocketException sx) {
-      LOGGER.log(Level.WARNING, "Could not configure socket.", sx);
+      LOGGER.error("Could not configure socket.", sx);
     }
   }
 
@@ -132,7 +132,7 @@
     try {
       socket_.setSoTimeout(timeout);
     } catch (SocketException sx) {
-      LOGGER.log(Level.WARNING, "Could not set socket timeout.", sx);
+      LOGGER.warn("Could not set socket timeout.", sx);
     }
   }
 
@@ -197,7 +197,7 @@
       try {
         socket_.close();
       } catch (IOException iox) {
-        LOGGER.log(Level.WARNING, "Could not close socket.", iox);
+        LOGGER.warn("Could not close socket.", iox);
       }
       socket_ = null;
     }