diff --git a/bindings/java/src/org/sleuthkit/datamodel/CaseDatabaseFactory.java b/bindings/java/src/org/sleuthkit/datamodel/CaseDatabaseFactory.java index 7cbe2b0f91f40d0661f6a38ef671c67d87d92d50..d7782fef832654f1879281e63b29581c43c451ab 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/CaseDatabaseFactory.java +++ b/bindings/java/src/org/sleuthkit/datamodel/CaseDatabaseFactory.java @@ -264,9 +264,9 @@ private void createArtifactTables(Statement stmt) throws SQLException { private void createTagTables(Statement stmt) throws SQLException { stmt.execute("CREATE TABLE tsk_tag_sets (tag_set_id " + dbQueryHelper.getPrimaryKey() + " PRIMARY KEY, name TEXT UNIQUE)"); - stmt.execute("CREATE TABLE tag_names (tag_name_id " + dbQueryHelper.getPrimaryKey() + " PRIMARY KEY, display_name TEXT, " + stmt.execute("CREATE TABLE tag_names (tag_name_id " + dbQueryHelper.getPrimaryKey() + " PRIMARY KEY, display_name TEXT UNIQUE, " + "description TEXT NOT NULL, color TEXT NOT NULL, knownStatus INTEGER NOT NULL," - + " tag_set_id " + dbQueryHelper.getBigIntType() + ", rank INTEGER, CONSTRAINT ck_name_set_id UNIQUE(display_name, tag_set_id),FOREIGN KEY(tag_set_id) REFERENCES tsk_tag_sets(tag_set_id) ON DELETE SET NULL)"); + + " tag_set_id " + dbQueryHelper.getBigIntType() + ", rank INTEGER, FOREIGN KEY(tag_set_id) REFERENCES tsk_tag_sets(tag_set_id) ON DELETE SET NULL)"); stmt.execute("CREATE TABLE tsk_examiners (examiner_id " + dbQueryHelper.getPrimaryKey() + " PRIMARY KEY, " + "login_name TEXT NOT NULL, display_name TEXT, UNIQUE(login_name))"); diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java index 12d121f1b98a17189b8984e3d7841304a401897b..2c2e6f32076dfd12369c428a621eac25cf3296ce 100644 --- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java +++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java @@ -2148,7 +2148,7 @@ private CaseDbSchemaVersionNumber updateFromSchema8dot4toSchema8dot5(CaseDbSchem throw new TskCoreException("Failed to retrieve the default tag_set_id from DB"); } } - + // Add data_source_obj_id column to the tsk_files table. For newly created cases // this column will have a foreign key constraint on the data_source_info table. // There does not seem to be a reasonable way to do this in an upgrade, @@ -2171,7 +2171,7 @@ private CaseDbSchemaVersionNumber updateFromSchema8dot4toSchema8dot5(CaseDbSchem } finally { closeStatement(updateStatement); } - + return new CaseDbSchemaVersionNumber(8, 5); } finally { @@ -6093,7 +6093,7 @@ public FileSystem addFileSystem(long parentObjId, long imgOffset, TskData.TSK_FS // Get the data source object ID long dataSourceId = getDataSourceObjectId(connection, newObjId); - + // Add a row to tsk_fs_info // INSERT INTO tsk_fs_info (obj_id, data_source_obj_id, img_offset, fs_type, block_size, block_count, root_inum, first_inum, last_inum, display_name) PreparedStatement preparedStatement = connection.getPreparedStatement(PREPARED_STATEMENT.INSERT_FS_INFO); @@ -7888,13 +7888,13 @@ Directory getDirectoryById(long id, FileSystem parentFs) throws TskCoreException * @param image Image to lookup FileSystem for * * @return Collection of FileSystems in the image - * + * * @throws TskCoreException */ - public Collection<FileSystem> getImageFileSystems(Image image) throws TskCoreException { + public Collection<FileSystem> getImageFileSystems(Image image) throws TskCoreException { List<FileSystem> fileSystems = new ArrayList<>(); CaseDbConnection connection = connections.getConnection(); - + acquireSingleUserCaseReadLock(); Statement s = null; ResultSet rs = null; @@ -11307,7 +11307,7 @@ void addLayoutFileRangeJNI(long objId, long byteStart, long byteLen, releaseSingleUserCaseWriteLock(); } } - + /** * Stores a pair of object ID and its type */ @@ -11507,7 +11507,7 @@ private enum PREPARED_STATEMENT { + "FROM tsk_objects INNER JOIN blackboard_artifacts " //NON-NLS + "ON tsk_objects.obj_id=blackboard_artifacts.obj_id " //NON-NLS + "WHERE (tsk_objects.par_obj_id = ?)"), - INSERT_OR_UPDATE_TAG_NAME("INSERT INTO tag_names (display_name, description, color, knownStatus) VALUES (?, ?, ?, ?) ON CONFLICT (display_name, tag_set_id) DO UPDATE SET description = ?, color = ?, knownStatus = ?"), + INSERT_OR_UPDATE_TAG_NAME("INSERT INTO tag_names (display_name, description, color, knownStatus) VALUES (?, ?, ?, ?) ON CONFLICT (display_name) DO UPDATE SET description = ?, color = ?, knownStatus = ?"), SELECT_EXAMINER_BY_ID("SELECT * FROM tsk_examiners WHERE examiner_id = ?"), SELECT_EXAMINER_BY_LOGIN_NAME("SELECT * FROM tsk_examiners WHERE login_name = ?"), INSERT_EXAMINER_POSTGRESQL("INSERT INTO tsk_examiners (login_name) VALUES (?) ON CONFLICT DO NOTHING"), @@ -12865,15 +12865,16 @@ public LocalFile addLocalFile(String fileName, String localPath, public AddImageProcess makeAddImageProcess(String timezone, boolean addUnallocSpace, boolean noFatFsOrphans) { return this.caseHandle.initAddImageProcess(timezone, addUnallocSpace, noFatFsOrphans, "", this); } - + /** * Helper to return FileSystems in an Image * * @param image Image to lookup FileSystem for * * @return Collection of FileSystems in the image - * - * @deprecated Use getImageFileSystems which throws an exception if an error occurs. + * + * @deprecated Use getImageFileSystems which throws an exception if an error + * occurs. */ @Deprecated public Collection<FileSystem> getFileSystems(Image image) { diff --git a/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java b/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java index 284a86cde5a985048eccf073a8ad0662380b597b..97e8b7b4b7a42e1d4b963e9c234104a3f25c3c95 100755 --- a/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java +++ b/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java @@ -173,55 +173,6 @@ public void deleteTagSet(TagSet tagSet) throws TskCoreException { } } - /** - * Add the given TagName to the TagSet. - * - * @param tagSet The tag set being added to. - * @param tagName The tag name to add to the set. - * - * @return TagSet TagSet object with newly added TagName. - * - * @throws TskCoreException - */ - public TagSet addTagNameToTagSet(TagSet tagSet, TagName tagName) throws TskCoreException { - if (tagSet == null || tagName == null) { - throw new IllegalArgumentException("NULL value passed to addTagToTagSet"); - } - - // Make sure the tagName is not already in the list. - List<TagName> setTagNameList = tagSet.getTagNames(); - for (TagName tag : setTagNameList) { - if (tagName.getId() == tag.getId()) { - return tagSet; - } - } - - CaseDbConnection connection = skCase.getConnection(); - skCase.acquireSingleUserCaseWriteLock(); - - try (Statement stmt = connection.createStatement()) { - connection.beginTransaction(); - - String queryTemplate = "UPDATE tag_names SET tag_set_id = %d where tag_name_id = %d"; - stmt.executeUpdate(String.format(queryTemplate, tagSet.getId(), tagName.getId())); - - connection.commitTransaction(); - - List<TagName> newTagNameList = new ArrayList<>(); - newTagNameList.addAll(setTagNameList); - newTagNameList.add(new TagName(skCase, tagName.getId(), tagName.getDisplayName(), tagName.getDescription(), tagName.getColor(), tagName.getKnownStatus(), tagSet.getId(), tagName.getRank())); - - return new TagSet(tagSet.getId(), tagSet.getName(), newTagNameList); - - } catch (SQLException ex) { - connection.rollbackTransaction(); - throw new TskCoreException(String.format("Error adding TagName (id=%d) to TagSet (id=%s)", tagName.getId(), tagSet.getId()), ex); - } finally { - connection.close(); - skCase.releaseSingleUserCaseWriteLock(); - } - } - /** * Inserts a row into the blackboard_artifact_tags table in the case * database.