Fix: Correctly handle invalid agent port file
[lttng-ust.git] / liblttng-ust-java-agent / java / lttng-ust-agent-common / org / lttng / ust / agent / client / LttngTcpSessiondClient.java
index f78fdbd0f7c515d6bbecb589ae3454f2d2c83636..a0adceae6d32b0e9c1f9031b20dc422b07953678 100644 (file)
@@ -204,27 +204,34 @@ public class LttngTcpSessiondClient implements Runnable {
         * @return port value if found else 0.
         */
        private static int getPortFromFile(String path) throws IOException {
-               int port;
                BufferedReader br = null;
 
                try {
                        br = new BufferedReader(new InputStreamReader(new FileInputStream(path), PORT_FILE_ENCODING));
                        String line = br.readLine();
-                       port = Integer.parseInt(line, 10);
+                       if (line == null) {
+                               /* File exists but is empty. */
+                               return 0;
+                       }
+
+                       int port = Integer.parseInt(line, 10);
                        if (port < 0 || port > 65535) {
                                /* Invalid value. Ignore. */
                                port = 0;
                        }
+                       return port;
+
+               } catch (NumberFormatException e) {
+                       /* File contained something that was not a number. */
+                       return 0;
                } catch (FileNotFoundException e) {
                        /* No port available. */
-                       port = 0;
+                       return 0;
                } finally {
                        if (br != null) {
                                br.close();
                        }
                }
-
-               return port;
        }
 
        private void registerToSessiond() throws IOException {
This page took 0.023082 seconds and 4 git commands to generate.