made exception on init recoverable

This commit is contained in:
IrynaMatveieva 2024-07-01 12:17:47 +03:00
parent 4307d6f13a
commit 47afd13cf7
2 changed files with 5 additions and 10 deletions

View File

@ -21,8 +21,6 @@ import com.datastax.oss.driver.api.core.cql.BoundStatement;
import com.datastax.oss.driver.api.core.cql.BoundStatementBuilder; import com.datastax.oss.driver.api.core.cql.BoundStatementBuilder;
import com.datastax.oss.driver.api.core.cql.PreparedStatement; import com.datastax.oss.driver.api.core.cql.PreparedStatement;
import com.datastax.oss.driver.api.core.cql.Statement; import com.datastax.oss.driver.api.core.cql.Statement;
import com.datastax.oss.driver.api.core.metadata.schema.KeyspaceMetadata;
import com.datastax.oss.driver.api.core.metadata.schema.TableMetadata;
import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode; import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.base.Function; import com.google.common.base.Function;
@ -100,7 +98,7 @@ public class TbSaveToCustomCassandraTableNode implements TbNode {
throw new TbNodeException("Unable to connect to Cassandra database", true); throw new TbNodeException("Unable to connect to Cassandra database", true);
} }
if (!isTableExists()) { if (!isTableExists()) {
throw new TbNodeException("Table '" + TABLE_PREFIX + config.getTableName() + "' does not exist in Cassandra cluster.", true); throw new TbNodeException("Table '" + TABLE_PREFIX + config.getTableName() + "' does not exist in Cassandra cluster.");
} }
ctx.addTenantProfileListener(this::onTenantProfileUpdate); ctx.addTenantProfileListener(this::onTenantProfileUpdate);
onTenantProfileUpdate(ctx.getTenantProfile()); onTenantProfileUpdate(ctx.getTenantProfile());
@ -138,12 +136,9 @@ public class TbSaveToCustomCassandraTableNode implements TbNode {
} }
private boolean isTableExists() { private boolean isTableExists() {
KeyspaceMetadata keyspaceMetadata = getSession().getMetadata().getKeyspace(cassandraCluster.getKeyspaceName()).orElse(null); var keyspaceMdOpt = getSession().getMetadata().getKeyspace(cassandraCluster.getKeyspaceName());
if (keyspaceMetadata != null) { return keyspaceMdOpt.map(keyspaceMetadata ->
TableMetadata tableMetadata = keyspaceMetadata.getTable(TABLE_PREFIX + config.getTableName()).orElse(null); keyspaceMetadata.getTable(TABLE_PREFIX + config.getTableName()).isPresent()).orElse(false);
return tableMetadata != null;
}
return false;
} }
private PreparedStatement prepare(String query) { private PreparedStatement prepare(String query) {

View File

@ -165,7 +165,7 @@ public class TbSaveToCustomCassandraTableNodeTest extends AbstractRuleNodeUpgrad
.isInstanceOf(TbNodeException.class) .isInstanceOf(TbNodeException.class)
.hasMessage("Table 'cs_tb_test_table' does not exist in Cassandra cluster.") .hasMessage("Table 'cs_tb_test_table' does not exist in Cassandra cluster.")
.extracting(e -> ((TbNodeException) e).isUnrecoverable()) .extracting(e -> ((TbNodeException) e).isUnrecoverable())
.isEqualTo(true); .isEqualTo(false);
} }
@Test @Test