]> WPIA git - gigi.git/commitdiff
fix: a coverity issue with multi-thread
authorFelix Dörre <felix@dogcraft.de>
Fri, 27 Nov 2015 13:01:16 +0000 (14:01 +0100)
committerFelix Dörre <felix@dogcraft.de>
Fri, 27 Nov 2015 14:25:18 +0000 (15:25 +0100)
src/org/cacert/gigi/database/DatabaseConnection.java

index 868f42331886ac67387f1ecf1218eaf09743db99..3c25d9df3a413cc2015e3a01d052ccf3596a836c 100644 (file)
@@ -48,7 +48,7 @@ public class DatabaseConnection {
 
         }
 
-        public PreparedStatement getTarget() {
+        public synchronized PreparedStatement getTarget() {
             return target;
         }
 
@@ -183,15 +183,11 @@ public class DatabaseConnection {
         lastAction = System.currentTimeMillis();
     }
 
-    private static DatabaseConnection instance;
+    private static volatile DatabaseConnection instance;
 
-    public static DatabaseConnection getInstance() {
+    public static synchronized DatabaseConnection getInstance() {
         if (instance == null) {
-            synchronized (DatabaseConnection.class) {
-                if (instance == null) {
-                    instance = new DatabaseConnection();
-                }
-            }
+            instance = new DatabaseConnection();
         }
         return instance;
     }
@@ -313,7 +309,7 @@ public class DatabaseConnection {
         return underUse.size();
     }
 
-    public void lockedStatements(PrintWriter writer) {
+    public synchronized void lockedStatements(PrintWriter writer) {
         writer.println(underUse.size());
         for (PreparedStatement ps : underUse) {
             for (Entry<StatementDescriptor, PreparedStatement> e : statements.entrySet()) {