From ba0e2099f18fc222c05abb0e293c2eb1bb01f0e9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Fri, 27 Nov 2015 14:01:16 +0100 Subject: [PATCH] fix: a coverity issue with multi-thread --- .../cacert/gigi/database/DatabaseConnection.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/org/cacert/gigi/database/DatabaseConnection.java b/src/org/cacert/gigi/database/DatabaseConnection.java index 868f4233..3c25d9df 100644 --- a/src/org/cacert/gigi/database/DatabaseConnection.java +++ b/src/org/cacert/gigi/database/DatabaseConnection.java @@ -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 e : statements.entrySet()) { -- 2.39.2