From 59592994bae36971c7a0090a44299f86fd27aded Mon Sep 17 00:00:00 2001 From: tastybento Date: Fri, 1 May 2020 16:04:25 -0700 Subject: [PATCH] Return true if database save executed. Fixes bug where if no change was made it was reporting an error. --- .../bentobox/database/mongodb/MongoDBDatabaseHandler.java | 3 ++- .../bentobox/bentobox/database/sql/SQLDatabaseHandler.java | 3 ++- .../database/sql/postgresql/PostgreSQLDatabaseHandler.java | 3 ++- .../bentobox/database/sql/sqlite/SQLiteDatabaseHandler.java | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/world/bentobox/bentobox/database/mongodb/MongoDBDatabaseHandler.java b/src/main/java/world/bentobox/bentobox/database/mongodb/MongoDBDatabaseHandler.java index 6f4c7692a..754d0c58b 100644 --- a/src/main/java/world/bentobox/bentobox/database/mongodb/MongoDBDatabaseHandler.java +++ b/src/main/java/world/bentobox/bentobox/database/mongodb/MongoDBDatabaseHandler.java @@ -133,7 +133,8 @@ public class MongoDBDatabaseHandler extends AbstractJSONDatabaseHandler { // Set the options to upsert (update or insert if doc is not there) FindOneAndReplaceOptions options = new FindOneAndReplaceOptions().upsert(true); // Do the deed - completableFuture.complete(collection.findOneAndReplace(filter, document, options) != null); + collection.findOneAndReplace(filter, document, options); + completableFuture.complete(true); } catch (Exception e) { plugin.logError("Could not save object " + instance.getClass().getName() + " " + e.getMessage()); completableFuture.complete(false); diff --git a/src/main/java/world/bentobox/bentobox/database/sql/SQLDatabaseHandler.java b/src/main/java/world/bentobox/bentobox/database/sql/SQLDatabaseHandler.java index b471be236..863c7db3e 100644 --- a/src/main/java/world/bentobox/bentobox/database/sql/SQLDatabaseHandler.java +++ b/src/main/java/world/bentobox/bentobox/database/sql/SQLDatabaseHandler.java @@ -169,7 +169,8 @@ public class SQLDatabaseHandler extends AbstractJSONDatabaseHandler { try (PreparedStatement preparedStatement = connection.prepareStatement(sb)) { preparedStatement.setString(1, toStore); preparedStatement.setString(2, toStore); - completableFuture.complete(preparedStatement.execute()); + preparedStatement.execute(); + completableFuture.complete(true); } catch (SQLException e) { plugin.logError("Could not save object " + name + " " + e.getMessage()); completableFuture.complete(false); diff --git a/src/main/java/world/bentobox/bentobox/database/sql/postgresql/PostgreSQLDatabaseHandler.java b/src/main/java/world/bentobox/bentobox/database/sql/postgresql/PostgreSQLDatabaseHandler.java index e70e7200a..eef8dd939 100644 --- a/src/main/java/world/bentobox/bentobox/database/sql/postgresql/PostgreSQLDatabaseHandler.java +++ b/src/main/java/world/bentobox/bentobox/database/sql/postgresql/PostgreSQLDatabaseHandler.java @@ -73,7 +73,8 @@ public class PostgreSQLDatabaseHandler extends SQLDatabaseHandler { preparedStatement.setString(1, uniqueId); // INSERT preparedStatement.setString(2, toStore); // INSERT preparedStatement.setString(3, toStore); // ON CONFLICT - completableFuture.complete(preparedStatement.execute()); + preparedStatement.execute(); + completableFuture.complete(true); } catch (SQLException e) { plugin.logError("Could not save object " + instance.getClass().getName() + " " + e.getMessage()); completableFuture.complete(false); diff --git a/src/main/java/world/bentobox/bentobox/database/sql/sqlite/SQLiteDatabaseHandler.java b/src/main/java/world/bentobox/bentobox/database/sql/sqlite/SQLiteDatabaseHandler.java index 97d5f76b0..e8a25aede 100644 --- a/src/main/java/world/bentobox/bentobox/database/sql/sqlite/SQLiteDatabaseHandler.java +++ b/src/main/java/world/bentobox/bentobox/database/sql/sqlite/SQLiteDatabaseHandler.java @@ -60,7 +60,8 @@ public class SQLiteDatabaseHandler extends SQLDatabaseHandler { preparedStatement.setString(1, toStore); preparedStatement.setString(2, ((DataObject)instance).getUniqueId()); preparedStatement.setString(3, toStore); - completableFuture.complete(preparedStatement.execute()); + preparedStatement.execute(); + completableFuture.complete(true); } catch (SQLException e) { plugin.logError("Could not save object " + instance.getClass().getName() + " " + e.getMessage()); completableFuture.complete(false);