You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mb...@apache.org on 2017/10/07 12:07:16 UTC

svn commit: r1811413 - in /ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start: AdminClient.java AdminServer.java Classpath.java Config.java Start.java StartupCommandUtil.java StartupControlPanel.java

Author: mbrohl
Date: Sat Oct  7 12:07:16 2017
New Revision: 1811413

URL: http://svn.apache.org/viewvc?rev=1811413&view=rev
Log:
Improved: Fixing defects reported by FindBugs, package 
org.apache.ofbiz.base.start.
(OFBIZ-9573)

I slighly modified the patch because of a conflicting change.

Thanks Dennis Balkir for reporting and providing the patch.

Modified:
    ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/AdminClient.java
    ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/AdminServer.java
    ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Classpath.java
    ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Config.java
    ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Start.java
    ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/StartupCommandUtil.java
    ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/StartupControlPanel.java

Modified: ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/AdminClient.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/AdminClient.java?rev=1811413&r1=1811412&r2=1811413&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/AdminClient.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/AdminClient.java Sat Oct  7 12:07:16 2017
@@ -21,9 +21,11 @@ package org.apache.ofbiz.base.start;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.net.ConnectException;
 import java.net.Socket;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.ofbiz.base.start.AdminServer.OfbizSocketCommand;
 
@@ -74,9 +76,8 @@ class AdminClient {
     private static String sendSocketCommand(OfbizSocketCommand socketCommand, Config config) throws IOException {
         String response = "OFBiz is Down";
         try (Socket socket = new Socket(config.adminAddress, config.adminPort);
-                PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
-                BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
-
+                PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream(), StandardCharsets.UTF_8), true);
+                BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8))) {
             // send the command
             writer.println(config.adminKey + ":" + socketCommand);
             writer.flush();

Modified: ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/AdminServer.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/AdminServer.java?rev=1811413&r1=1811412&r2=1811413&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/AdminServer.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/AdminServer.java Sat Oct  7 12:07:16 2017
@@ -21,13 +21,16 @@ package org.apache.ofbiz.base.start;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.net.ServerSocket;
 import java.net.Socket;
+import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.ofbiz.base.start.Start.ServerState;
+import org.apache.ofbiz.base.util.UtilValidate;
 
 /**
  * The AdminServer provides a way to communicate with a running
@@ -81,8 +84,8 @@ final class AdminServer extends Thread {
 
     private void processClientRequest(Socket client, List<StartupLoader> loaders, AtomicReference<ServerState> serverState) throws IOException {
 
-        try (BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
-                PrintWriter writer = new PrintWriter(client.getOutputStream(), true)) {
+        try (BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream(), StandardCharsets.UTF_8));
+                PrintWriter writer = new PrintWriter(new OutputStreamWriter(client.getOutputStream(), StandardCharsets.UTF_8), true)) {
 
             // read client request and prepare response
             String clientRequest = reader.readLine();
@@ -101,17 +104,22 @@ final class AdminServer extends Thread {
     }
 
     private OfbizSocketCommand determineClientCommand(String request) {
-        OfbizSocketCommand clientCommand;
-        if(request == null 
-                || request.isEmpty()
-                || !request.contains(":")
-                || !request.substring(0, request.indexOf(':')).equals(config.adminKey)
-                || request.substring(request.indexOf(':') + 1) == null) {
-            clientCommand = OfbizSocketCommand.FAIL;
-        } else {
-            clientCommand = OfbizSocketCommand.valueOf(request.substring(request.indexOf(':') + 1));
+        if(!isValidRequest(request)) {
+            return OfbizSocketCommand.FAIL;
         }
-        return clientCommand;
+        return OfbizSocketCommand.valueOf(request.substring(request.indexOf(':') + 1));
+    }
+
+    /**
+     * Validates if request is a suitable String
+     * @param request
+     * @return boolean which shows if request is suitable
+     */
+    private boolean isValidRequest(String request) {
+        return UtilValidate.isNotEmpty(request)
+                && request.contains(":")
+                && request.substring(0, request.indexOf(':')).equals(config.adminKey)
+                && !request.substring(request.indexOf(':') + 1).isEmpty();
     }
 
     private String prepareResponseToClient(OfbizSocketCommand control, AtomicReference<ServerState> serverState) {

Modified: ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Classpath.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Classpath.java?rev=1811413&r1=1811412&r2=1811413&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Classpath.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Classpath.java Sat Oct  7 12:07:16 2017
@@ -27,6 +27,9 @@ import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Locale;
+
+import org.apache.poi.util.LocaleUtil;
 
 /**
  * A class path accumulator.
@@ -35,7 +38,7 @@ import java.util.List;
  */
 public final class Classpath {
 
-    private List<File> elements = new ArrayList<File>();
+    private List<File> elements = new ArrayList<>();
 
     /**
      * Default constructor.
@@ -99,10 +102,16 @@ public final class Classpath {
         if (path == null) {
             throw new IllegalArgumentException("path cannot be null");
         }
+        File[] listedFiles;
         if (path.isDirectory() && path.exists()) {
             // load all .jar, .zip files and native libs in this directory
-            for (File file : path.listFiles()) {
-                String fileName = file.getName().toLowerCase();
+            listedFiles = path.listFiles();
+        } else {
+            listedFiles = null;
+        }
+        if (listedFiles != null) {
+            for (File file : listedFiles) {
+                String fileName = file.getName().toLowerCase(Locale.getDefault());
                 if (fileName.endsWith(".jar") || fileName.endsWith(".zip")) {
                     File key = file.getCanonicalFile();
                     synchronized (elements) {

Modified: ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Config.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Config.java?rev=1811413&r1=1811412&r2=1811413&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Config.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Config.java Sat Oct  7 12:07:16 2017
@@ -161,6 +161,8 @@ public final class Config {
         case 3:
             locale = new Locale(locales[0], locales[1], locales[2]);
             break;
+        default:
+            throw new IllegalArgumentException("The combination of properties, ofbiz.locale.default and defaultLocale is invalid. " + Arrays.toString(locales));
         }
         System.setProperty("user.language", localeString);
         return locale;

Modified: ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Start.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Start.java?rev=1811413&r1=1811412&r2=1811413&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Start.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/Start.java Sat Oct  7 12:07:16 2017
@@ -19,6 +19,7 @@
 package org.apache.ofbiz.base.start;
 
 import java.util.List;
+import java.util.Locale;
 import java.util.concurrent.atomic.AtomicReference;
 
 /**
@@ -118,7 +119,7 @@ public final class Start {
 
         @Override
         public String toString() {
-            return name().charAt(0) + name().substring(1).toLowerCase();
+            return name().charAt(0) + name().substring(1).toLowerCase(Locale.getDefault());
         }
     }
 

Modified: ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/StartupCommandUtil.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/StartupCommandUtil.java?rev=1811413&r1=1811412&r2=1811413&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/StartupCommandUtil.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/StartupCommandUtil.java Sat Oct  7 12:07:16 2017
@@ -18,8 +18,10 @@
  *******************************************************************************/
 package org.apache.ofbiz.base.start;
 
+import java.io.OutputStreamWriter;
 import java.io.PrintStream;
 import java.io.PrintWriter;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
@@ -175,7 +177,7 @@ public final class StartupCommandUtil {
     static final void printOfbizStartupHelp(final PrintStream printStream) {
         HelpFormatter formatter = new HelpFormatter();
         formatter.printHelp(
-                new PrintWriter(printStream, true),
+                new PrintWriter(new OutputStreamWriter(printStream, StandardCharsets.UTF_8), true),
                 HelpFormatter.DEFAULT_WIDTH + 6,
                 "ofbiz|ofbizDebug|ofbizBackground",
                 System.lineSeparator() + "Executes OFBiz command e.g. start, shutdown, check status, etc",

Modified: ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/StartupControlPanel.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/StartupControlPanel.java?rev=1811413&r1=1811412&r2=1811413&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/StartupControlPanel.java (original)
+++ ofbiz/ofbiz-framework/trunk/framework/start/src/main/java/org/apache/ofbiz/base/start/StartupControlPanel.java Sat Oct  7 12:07:16 2017
@@ -158,6 +158,14 @@ final class StartupControlPanel {
                 stream.close();
             } catch (IOException e) {
                 throw new StartupException("Couldn't load global system props", e);
+            } finally {
+                try {
+                    if (stream != null) {
+                    stream.close();
+                    } 
+                } catch (IOException e) {
+                    System.out.println("There was a problem while closing the Stream " + e);
+                }
             }
         }
     }