diff options
3 files changed, 26 insertions, 28 deletions
diff --git a/plugins/org.eclipse.osee.orcs.db.test/src/org/eclipse/osee/orcs/db/intergration/PurgeAttributeTest.java b/plugins/org.eclipse.osee.orcs.db.test/src/org/eclipse/osee/orcs/db/intergration/PurgeAttributeTest.java index ab72b35ee6d..318f460ca10 100644 --- a/plugins/org.eclipse.osee.orcs.db.test/src/org/eclipse/osee/orcs/db/intergration/PurgeAttributeTest.java +++ b/plugins/org.eclipse.osee.orcs.db.test/src/org/eclipse/osee/orcs/db/intergration/PurgeAttributeTest.java @@ -15,6 +15,7 @@ import static org.eclipse.osee.orcs.db.intergration.IntegrationUtil.integrationR import java.util.LinkedList; import java.util.List; import org.eclipse.osee.framework.core.data.ArtifactId; +import org.eclipse.osee.framework.core.data.AttributeId; import org.eclipse.osee.framework.core.enums.CoreArtifactTokens; import org.eclipse.osee.framework.core.enums.CoreAttributeTypes; import org.eclipse.osee.framework.jdk.core.type.OseeStateException; @@ -84,21 +85,13 @@ public class PurgeAttributeTest { tx.createAttribute(CoreArtifactTokens.OseeAdmin, CoreAttributeTypes.Annotation, UNIQUE_ATTR_VALUE); tx.commit(); - JdbcStatement stmt = jdbcClient.getStatement(); - int prePurgeAttributeCount = getCount(jdbcClient, "osee_attribute"); - int preAttributeRows = - getCount(jdbcClient, String.format("osee_attribute where value = '%s'", UNIQUE_ATTR_VALUE)); + int preAttributeRows = getCount(jdbcClient, "osee_attribute where value = ?", UNIQUE_ATTR_VALUE); - Assert.assertTrue(preAttributeRows == 3); + Assert.assertEquals(3, preAttributeRows); int prePurgeTxsCount = getCount(jdbcClient, "osee_txs"); - - stmt.runPreparedQuery(String.format("select attr_id from osee_attribute where value = '%s'", UNIQUE_ATTR_VALUE)); - List<Long> toPurge = new LinkedList<>(); - while (stmt.next()) { - toPurge.add(stmt.getLong("attr_id")); - } + List<AttributeId> toPurge = getAttributesToPurge(jdbcClient); PurgeAttributesDatabaseTxCallable callable = new PurgeAttributesDatabaseTxCallable(null, null, jdbcClient, sqlJoinFactory, toPurge, null); @@ -116,13 +109,19 @@ public class PurgeAttributeTest { Assert.assertTrue(postPurgeTxsCount < prePurgeTxsCount); } - private int getCount(JdbcClient jdbcClient, String table) { - JdbcStatement stmt = jdbcClient.getStatement(); - int toReturn = -1; - stmt.runPreparedQuery("select count(1) from " + table); - while (stmt.next()) { - toReturn = stmt.getInt(1); + private List<AttributeId> getAttributesToPurge(JdbcClient jdbcClient) { + List<AttributeId> toPurge = new LinkedList<>(); + try (JdbcStatement stmt = jdbcClient.getStatement()) { + stmt.runPreparedQuery( + String.format("select attr_id from osee_attribute where value = '%s'", UNIQUE_ATTR_VALUE)); + while (stmt.next()) { + toPurge.add(AttributeId.valueOf(stmt.getLong("attr_id"))); + } } - return toReturn; + return toPurge; + } + + private int getCount(JdbcClient jdbcClient, String table, Object... data) { + return jdbcClient.fetch(-1, "select count(1) from " + table, data); } } diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/PurgeAttributesDatabaseTxCallable.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/PurgeAttributesDatabaseTxCallable.java index 75b84103046..ff1958c3e08 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/PurgeAttributesDatabaseTxCallable.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/callable/PurgeAttributesDatabaseTxCallable.java @@ -12,6 +12,7 @@ package org.eclipse.osee.orcs.db.internal.callable; import java.util.Collection; import org.eclipse.osee.console.admin.Console; +import org.eclipse.osee.framework.core.data.AttributeId; import org.eclipse.osee.framework.jdk.core.type.OseeCoreException; import org.eclipse.osee.jdbc.JdbcClient; import org.eclipse.osee.jdbc.JdbcConnection; @@ -27,10 +28,10 @@ public final class PurgeAttributesDatabaseTxCallable extends AbstractDatastoreTx "select gamma_id from osee_attribute, osee_join_id where attr_id = id and query_id = ?"; private final SqlJoinFactory joinFactory; - private final Collection<Long> idsToPurge; + private final Collection<AttributeId> idsToPurge; private final Console console; - public PurgeAttributesDatabaseTxCallable(Log logger, OrcsSession session, JdbcClient jdbcClient, SqlJoinFactory joinFactory, Collection<Long> idsToPurge, Console console) { + public PurgeAttributesDatabaseTxCallable(Log logger, OrcsSession session, JdbcClient jdbcClient, SqlJoinFactory joinFactory, Collection<AttributeId> idsToPurge, Console console) { super(logger, session, jdbcClient); this.joinFactory = joinFactory; this.idsToPurge = idsToPurge; @@ -40,14 +41,13 @@ public final class PurgeAttributesDatabaseTxCallable extends AbstractDatastoreTx @Override protected Void handleTxWork(JdbcConnection connection) throws OseeCoreException { IdJoinQuery idJoin = joinFactory.createIdJoinQuery(); - JdbcStatement chStmt = getJdbcClient().getStatement(connection); - try { + try (JdbcStatement chStmt = getJdbcClient().getStatement(connection)) { OseePreparedStatement attrBatch = getJdbcClient().getBatchStatement(connection, "delete from osee_attribute where attr_id = ?"); OseePreparedStatement txBatch = getJdbcClient().getBatchStatement(connection, "delete from osee_txs where gamma_id = ?"); - for (Long id : idsToPurge) { + for (AttributeId id : idsToPurge) { idJoin.add(id); attrBatch.addToBatch(id); } @@ -68,7 +68,6 @@ public final class PurgeAttributesDatabaseTxCallable extends AbstractDatastoreTx writeToConsole(deleted + " rows deleted."); writeToConsole("Operation Finished"); } finally { - chStmt.close(); idJoin.delete(connection); } return null; @@ -79,5 +78,4 @@ public final class PurgeAttributesDatabaseTxCallable extends AbstractDatastoreTx console.writeln(s); } } - -} +}
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/PurgeAttributeCommand.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/PurgeAttributeCommand.java index c55e5e2eaee..d517a62168e 100644 --- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/PurgeAttributeCommand.java +++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/console/PurgeAttributeCommand.java @@ -15,6 +15,7 @@ import java.util.Set; import java.util.concurrent.Callable; import org.eclipse.osee.console.admin.Console; import org.eclipse.osee.console.admin.ConsoleParameters; +import org.eclipse.osee.framework.core.data.AttributeId; import org.eclipse.osee.framework.jdk.core.util.Collections; import org.eclipse.osee.jdbc.JdbcClient; import org.eclipse.osee.orcs.db.internal.callable.PurgeAttributesDatabaseTxCallable; @@ -49,9 +50,9 @@ public class PurgeAttributeCommand extends AbstractDatastoreConsoleCommand { @Override public Callable<Void> createCallable(final Console console, final ConsoleParameters params) { String[] attrIds = params.getArray("attr_id"); - Set<Long> longIds = new HashSet<>(); + Set<AttributeId> longIds = new HashSet<>(); for (String id : attrIds) { - longIds.add(Long.parseLong(id)); + longIds.add(AttributeId.valueOf(id)); } boolean force = params.getBoolean("force"); |