From b26c135e3a401815924f628d40b94f4b6fcd55ec Mon Sep 17 00:00:00 2001 From: Bananeweizen Date: Sun, 4 Jan 2015 09:27:52 +0100 Subject: fix #4557: NPE when performing backup --- main/src/cgeo/geocaching/DataStore.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'main/src') diff --git a/main/src/cgeo/geocaching/DataStore.java b/main/src/cgeo/geocaching/DataStore.java index b5a4a7a..2b51db9 100644 --- a/main/src/cgeo/geocaching/DataStore.java +++ b/main/src/cgeo/geocaching/DataStore.java @@ -1945,7 +1945,7 @@ public class DataStore { init(); final Cursor cursor = database.rawQuery( - /* 0 1 2 3 4 5 6 7 8 9 10 */ + // 0 1 2 3 4 5 6 7 8 9 10 "SELECT cg_logs._id as cg_logs_id, type, author, log, date, found, friend, " + dbTableLogImages + "._id as cg_logImages_id, log_id, title, url" + " FROM " + dbTableLogs + " LEFT OUTER JOIN " + dbTableLogImages + " ON ( cg_logs._id = log_id ) WHERE geocode = ? ORDER BY date desc, cg_logs._id asc", new String[]{geocode}); @@ -2978,18 +2978,19 @@ public class DataStore { } private SQLiteStatement getStatement() { - if (statement == null) { - init(); - statement = database.compileStatement(query); - statements.add(this); + synchronized (statements) { + if (statement == null) { + init(); + statement = database.compileStatement(query); + statements.add(this); + } + return statement; } - return statement; } private static void clearPreparedStatements() { for (final PreparedStatement preparedStatement : statements) { preparedStatement.statement.close(); - preparedStatement.statement = null; } statements.clear(); } -- cgit v1.1