From 27be86c4193db7ba1504337f9ec62270f6e99ea1 Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Tue, 20 Feb 2024 13:53:10 -0600 Subject: [PATCH] fix: clean resources after sql usage --- .../hmccosmetics/database/types/MySQLData.java | 7 ++++++- .../hmccosmetics/database/types/SQLData.java | 14 ++++++++++++-- .../hmccosmetics/database/types/SQLiteData.java | 7 ++++++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/MySQLData.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/MySQLData.java index b2cd4a2a..45c5b85c 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/MySQLData.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/MySQLData.java @@ -59,12 +59,17 @@ public class MySQLData extends SQLData { @Override public void clear(UUID uniqueId) { Bukkit.getScheduler().runTaskAsynchronously(HMCCosmeticsPlugin.getInstance(), () -> { + PreparedStatement preparedSt = null; try { - PreparedStatement preparedSt = preparedStatement("DELETE FROM COSMETICDATABASE WHERE UUID=?;"); + preparedSt = preparedStatement("DELETE FROM COSMETICDATABASE WHERE UUID=?;"); preparedSt.setString(1, uniqueId.toString()); preparedSt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); + } finally { + try { + if (preparedSt != null) preparedSt.close(); + } catch (SQLException e) {} } }); } diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLData.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLData.java index 2b0c605f..8ebad613 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLData.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLData.java @@ -20,8 +20,9 @@ public abstract class SQLData extends Data { CosmeticUser user = new CosmeticUser(uniqueId); Bukkit.getScheduler().runTaskAsynchronously(HMCCosmeticsPlugin.getInstance(), () -> { + PreparedStatement preparedStatement = null; try { - PreparedStatement preparedStatement = preparedStatement("SELECT * FROM COSMETICDATABASE WHERE UUID = ?;"); + preparedStatement = preparedStatement("SELECT * FROM COSMETICDATABASE WHERE UUID = ?;"); preparedStatement.setString(1, uniqueId.toString()); ResultSet rs = preparedStatement.executeQuery(); if (rs.next()) { @@ -38,6 +39,10 @@ public abstract class SQLData extends Data { } } catch (SQLException e) { e.printStackTrace(); + } finally { + try { + if (preparedStatement != null) preparedStatement.close(); + } catch (SQLException e) {} } }); @@ -48,13 +53,18 @@ public abstract class SQLData extends Data { @SuppressWarnings("resource") public void save(CosmeticUser user) { Runnable run = () -> { + PreparedStatement preparedSt = null; try { - PreparedStatement preparedSt = preparedStatement("REPLACE INTO COSMETICDATABASE(UUID,COSMETICS) VALUES(?,?);"); + preparedSt = preparedStatement("REPLACE INTO COSMETICDATABASE(UUID,COSMETICS) VALUES(?,?);"); preparedSt.setString(1, user.getUniqueId().toString()); preparedSt.setString(2, serializeData(user)); preparedSt.executeUpdate(); } catch (SQLException e) { throw new RuntimeException(e); + } finally { + try { + if (preparedSt != null) preparedSt.close(); + } catch (SQLException e) {} } }; if (!HMCCosmeticsPlugin.getInstance().isDisabled()) { diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLiteData.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLiteData.java index d7bb53a5..c18ae726 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLiteData.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLiteData.java @@ -48,12 +48,17 @@ public class SQLiteData extends SQLData { @SuppressWarnings("resource") public void clear(UUID uniqueId) { Bukkit.getScheduler().runTaskAsynchronously(HMCCosmeticsPlugin.getInstance(), () -> { + PreparedStatement preparedSt = null; try { - PreparedStatement preparedSt = preparedStatement("DELETE FROM COSMETICDATABASE WHERE UUID=?;"); + preparedSt = preparedStatement("DELETE FROM COSMETICDATABASE WHERE UUID=?;"); preparedSt.setString(1, uniqueId.toString()); preparedSt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); + } finally { + try { + if (preparedSt != null) preparedSt.close(); + } catch (SQLException e) {} } }); }