From fdf4e6e108fd009108c24cadd2ed52ebcb543969 Mon Sep 17 00:00:00 2001 From: apriestman Date: Wed, 29 Oct 2025 15:52:14 -0400 Subject: [PATCH] Switch to try with resources. Fix format string arg --- .../org/sleuthkit/datamodel/LibraryUtils.java | 16 +++++----- .../sleuthkit/datamodel/SleuthkitCase.java | 31 ++++++------------- .../sleuthkit/datamodel/TimelineManager.java | 2 +- 3 files changed, 19 insertions(+), 30 deletions(-) diff --git a/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java b/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java index 173a6c4c00..8a9a87c0e2 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java +++ b/bindings/java/src/org/sleuthkit/datamodel/LibraryUtils.java @@ -196,16 +196,16 @@ private static boolean loadNativeLibFromTskJar(Lib library) { } // copy it - InputStream in = urlInJar.openStream(); - OutputStream out = new FileOutputStream(tempLibFile); + try ( + InputStream in = urlInJar.openStream(); + OutputStream out = new FileOutputStream(tempLibFile);) { - byte[] buffer = new byte[1024]; - int length; - while ((length = in.read(buffer)) > 0) { - out.write(buffer, 0, length); + byte[] buffer = new byte[1024]; + int length; + while ((length = in.read(buffer)) > 0) { + out.write(buffer, 0, length); + } } - in.close(); - out.close(); // load it System.load(tempLibFile.getAbsolutePath()); diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java index 130ec153f4..08986de050 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java +++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java @@ -1184,31 +1184,19 @@ public void copyCaseDB(String newDBPath) throws IOException { if (dbPath.isEmpty()) { throw new IOException("Copying case database files is not supported for this type of case database"); //NON-NLS } - InputStream in = null; - OutputStream out = null; + acquireSingleUserCaseWriteLock(); - try { - InputStream inFile = new FileInputStream(dbPath); - in = new BufferedInputStream(inFile); + try(InputStream inFile = new FileInputStream(dbPath); + InputStream in = new BufferedInputStream(inFile); OutputStream outFile = new FileOutputStream(newDBPath); - out = new BufferedOutputStream(outFile); + OutputStream out = new BufferedOutputStream(outFile);) { + int bytesRead = in.read(); while (bytesRead != -1) { out.write(bytesRead); bytesRead = in.read(); } } finally { - try { - if (in != null) { - in.close(); - } - if (out != null) { - out.flush(); - out.close(); - } - } catch (IOException e) { - logger.log(Level.WARNING, "Could not close streams after db copy", e); //NON-NLS - } releaseSingleUserCaseWriteLock(); } } @@ -13994,7 +13982,7 @@ public void execute() throws SQLException { * supported. * * NOTE: We run into deadlock risks when we start to lock multiple - * tables. If that need arrises, consider changing to opportunistic + * tables. If that need arises, consider changing to opportunistic * locking and single-step transactions. */ private class AggregateScoreTablePostgreSQLWriteLock implements DbCommand { @@ -14007,9 +13995,10 @@ private class AggregateScoreTablePostgreSQLWriteLock implements DbCommand { @Override public void execute() throws SQLException { - PreparedStatement preparedStatement = connection.prepareStatement("LOCK TABLE ONLY tsk_aggregate_score in SHARE ROW EXCLUSIVE MODE"); - preparedStatement.execute(); - + try (PreparedStatement preparedStatement = + connection.prepareStatement("LOCK TABLE ONLY tsk_aggregate_score in SHARE ROW EXCLUSIVE MODE")) { + preparedStatement.execute(); + } } } diff --git a/bindings/java/src/org/sleuthkit/datamodel/TimelineManager.java b/bindings/java/src/org/sleuthkit/datamodel/TimelineManager.java index 0b215868d6..3311e1648f 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/TimelineManager.java +++ b/bindings/java/src/org/sleuthkit/datamodel/TimelineManager.java @@ -882,7 +882,7 @@ private Optional addArtifactEvent(TimelineEventDescriptionWithTim Long dataSourceObjectID = artifact.getDataSourceObjectID(); if(dataSourceObjectID == null) { - logger.log(Level.SEVERE, String.format("Failed to create timeline event for artifact (%d), artifact data source was null"), artifact.getId()); + logger.log(Level.SEVERE, String.format("Failed to create timeline event for artifact (%d), artifact data source was null", artifact.getId())); return Optional.empty(); }