DATACASS-174 - Fix StackOverflowError in CassandraAdminTemplate#dropTable(Class<?>).

Delete recursive function to determine table name from entity class and reuse getTableName(...)

Original pull request: #28.
This commit is contained in:
Mark Paluch
2014-10-31 19:18:21 +01:00
committed by Mark Paluch
parent b3289af1e2
commit 58d6eb2b26
3 changed files with 16 additions and 5 deletions

View File

@@ -114,7 +114,7 @@ public class CassandraAdminTemplate extends CassandraTemplate implements Cassand
}
public void dropTable(Class<?> entityClass) {
dropTable(determineTableName(entityClass));
dropTable(getTableName(entityClass));
}
@Override

View File

@@ -516,10 +516,6 @@ public class CassandraTemplate extends CqlTemplate implements CassandraOperation
return doUpdateAsync(entity, listener, options);
}
protected <T> CqlIdentifier determineTableName(T obj) {
return obj == null ? null : determineTableName(obj.getClass());
}
protected <T> List<T> select(final String query, CassandraConverterRowCallback<T> readRowCallback) {
ResultSet resultSet = doExecute(new SessionCallback<ResultSet>() {

View File

@@ -94,4 +94,19 @@ public class CassandraAdminTemplateTest extends AbstractSpringDataEmbeddedCassan
cassandraAdminTemplate.createTable(true, CqlIdentifier.cqlId("book"), Book.class, null);
assertThat(getKeyspaceMetadata().getTables().size(), is(1));
}
@Test
public void testDropTable() throws Exception {
cassandraAdminTemplate.createTable(true, CqlIdentifier.cqlId("book"), Book.class, null);
assertThat(getKeyspaceMetadata().getTables().size(), is(1));
cassandraAdminTemplate.dropTable(Book.class);
assertThat(getKeyspaceMetadata().getTables().size(), is(0));
cassandraAdminTemplate.createTable(true, CqlIdentifier.cqlId("book"), Book.class, null);
cassandraAdminTemplate.dropTable(CqlIdentifier.cqlId("book"));
assertThat(getKeyspaceMetadata().getTables().size(), is(0));
}
}