diff --git a/bindings/java/jni/dataModel_SleuthkitJNI.cpp b/bindings/java/jni/dataModel_SleuthkitJNI.cpp index d86fc715757f0718213e7ead92280eb8895018b8..5ed1390a50f57317174ee518692d7f85f2b70008 100644 --- a/bindings/java/jni/dataModel_SleuthkitJNI.cpp +++ b/bindings/java/jni/dataModel_SleuthkitJNI.cpp @@ -2167,16 +2167,16 @@ JNIEXPORT jboolean JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_isImageSupp * @param obj the java object this was called from * @param a_img_info the image info pointer */ -JNIEXPORT void JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_finishImageWriterNat +JNIEXPORT jint JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_finishImageWriterNat (JNIEnv * env, jclass obj, jlong a_img_info) { // Set up the TSK_IMG_INFO object TSK_IMG_INFO *img_info = castImgInfo(env, a_img_info); IMG_RAW_INFO *raw_info = (IMG_RAW_INFO*)img_info; if (raw_info->img_writer != NULL) { - raw_info->img_writer->finish_image(raw_info->img_writer); + return raw_info->img_writer->finish_image(raw_info->img_writer); } - + return -1; } /* diff --git a/bindings/java/jni/dataModel_SleuthkitJNI.h b/bindings/java/jni/dataModel_SleuthkitJNI.h index 4fc585d766fb62acc06d49f42016dbed06d6b633..37200d99218948fed5f972a5913414debeabf798 100644 --- a/bindings/java/jni/dataModel_SleuthkitJNI.h +++ b/bindings/java/jni/dataModel_SleuthkitJNI.h @@ -410,9 +410,9 @@ JNIEXPORT jboolean JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_isImageSupp /* * Class: org_sleuthkit_datamodel_SleuthkitJNI * Method: finishImageWriterNat - * Signature: (J)V + * Signature: (J)I */ -JNIEXPORT void JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_finishImageWriterNat +JNIEXPORT jint JNICALL Java_org_sleuthkit_datamodel_SleuthkitJNI_finishImageWriterNat (JNIEnv *, jclass, jlong); /* diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java index 86c95eb659546c955e76995933c702353f8725cf..c01e2db19142481f1eb3e2d802cf3ebdac76367c 100755 --- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java +++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java @@ -1226,13 +1226,14 @@ public static SleuthkitCase newCase(String databaseName, CaseDbConnectionInfo in * unallocated space in the image. * @param noFatFsOrphans Set to true to skip processing orphan files of FAT * file systems. - * @param imageWriterPath Path that a copy of the image should be written to. - * Use empty string to disable image writing + * @param imageWriterSettings Settings for image writer from the local disk panel. + * Use null to disable image writing * * @return Object that encapsulates control of adding an image via the * SleuthKit native code layer. */ - public AddImageProcess makeAddImageProcess(String timezone, boolean addUnallocSpace, boolean noFatFsOrphans, String imageWriterPath) { + public AddImageProcess makeAddImageProcess(String timezone, boolean addUnallocSpace, boolean noFatFsOrphans, + String imageWriterPath) { return this.caseHandle.initAddImageProcess(timezone, addUnallocSpace, noFatFsOrphans, imageWriterPath); } @@ -6821,6 +6822,34 @@ public List<BlackboardArtifactTag> getBlackboardArtifactTagsByArtifact(Blackboar releaseSharedLock(); } } + + /** + * put stuff here!!!!! + * @param newPath + * @param objectId + * @throws TskCoreException + */ + public void updateImagePath(String newPath, long objectId) throws TskCoreException{ + System.out.println("\n#### Want to update path for " + objectId + " to " + newPath); + CaseDbConnection connection = connections.getConnection(); + acquireSharedLock(); + //ResultSet resultSet = null; + try { + // UPDATE tsk_image_names SET name = ? WHERE obj_id = ? + PreparedStatement statement = connection.getPreparedStatement(PREPARED_STATEMENT.UPDATE_IMAGE_PATH); + statement.clearParameters(); + statement.setString(1, newPath); + statement.setLong(2, objectId); + connection.executeUpdate(statement); + //connection.commitTransaction(); + } catch (SQLException ex) { + throw new TskCoreException("Error updating image path in database for object " + objectId, ex); + } finally { + //closeResultSet(resultSet); + connection.close(); + releaseSharedLock(); + } + } /** * Inserts a row into the reports table in the case database. @@ -7334,7 +7363,8 @@ private enum PREPARED_STATEMENT { INSERT_INGEST_JOB("INSERT INTO ingest_jobs (obj_id, host_name, start_date_time, end_date_time, status_id, settings_dir) VALUES (?, ?, ?, ?, ?, ?)"), //NON-NLS INSERT_INGEST_MODULE("INSERT INTO ingest_modules (display_name, unique_name, type_id, version) VALUES(?, ?, ?, ?)"), //NON-NLS SELECT_ATTR_BY_VALUE_BYTE("SELECT source FROM blackboard_attributes WHERE artifact_id = ? AND attribute_type_id = ? AND value_type = 4 AND value_byte = ?"), //NON-NLS - UPDATE_ATTR_BY_VALUE_BYTE("UPDATE blackboard_attributes SET source = ? WHERE artifact_id = ? AND attribute_type_id = ? AND value_type = 4 AND value_byte = ?"); //NON-NLS + UPDATE_ATTR_BY_VALUE_BYTE("UPDATE blackboard_attributes SET source = ? WHERE artifact_id = ? AND attribute_type_id = ? AND value_type = 4 AND value_byte = ?"), //NON-NLS + UPDATE_IMAGE_PATH("UPDATE tsk_image_names SET name = ? WHERE obj_id = ?"); // NON-NLS private final String sql; @@ -8543,10 +8573,10 @@ public LocalFile addLocalFile(String fileName, String localPath, * * @return Object that encapsulates control of adding an image via the * SleuthKit native code layer - * @Deprecated Use the newer version with explicit image writer path parameter + * @Deprecated Use the newer version with explicit image writer settings parameter */ public AddImageProcess makeAddImageProcess(String timezone, boolean addUnallocSpace, boolean noFatFsOrphans) { - return this.caseHandle.initAddImageProcess(timezone, addUnallocSpace, noFatFsOrphans, ""); + return this.caseHandle.initAddImageProcess(timezone, addUnallocSpace, noFatFsOrphans, null); } } diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java index 11f929ef9efec275c6ce343f96876fdab0786d7d..7248057dc1db88619f68c23719c19dfcd37a3563 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java +++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitJNI.java @@ -983,8 +983,8 @@ private static String timezoneLongToShort(String timezoneLongForm) { * @throws TskCoreException exception thrown if critical error occurs within * TSK */ - public static void finishImageWriter(long imgHandle) throws TskCoreException { - finishImageWriterNat(imgHandle); + public static int finishImageWriter(long imgHandle) throws TskCoreException { + return finishImageWriterNat(imgHandle); } /** @@ -1123,7 +1123,7 @@ public static boolean isImageSupported(String imagePath){ private static native boolean isImageSupportedNat(String imagePath); - private static native void finishImageWriterNat(long a_img_info); + private static native int finishImageWriterNat(long a_img_info); private static native int getFinishImageProgressNat(long a_img_info);