1

这是代码:

Selector selector = Pelops.createSelector(CASSANDRA_POOL);
Column column = selector.getSubColumnFromRow("Neighbours", user, neighbour, "Link_ID", CL_ONE);
String linkID = new String(column.getValue());
Mutator mutator = Pelops.createMutator(CASSANDRA_POOL);
System.out.println(linkID);
System.out.println(topic);
mutator.deleteSubColumns("Links",linkID,topic);
mutator.execute(CL_ONE);

结果如下:

ERROR - Exception being returned to browser when processing /ajax_request/F314921638127GLWWRG/: Message: java.lang.NullPointerException
  org.scale7.cassandra.pelops.Validation.validateColumnNames(Validation.java:60)
  org.scale7.cassandra.pelops.Mutator.deleteSubColumns(Mutator.java:724)
  org.scale7.cassandra.pelops.Mutator.deleteSubColumns(Mutator.java:698)

但我不明白为什么它给了我异常,linkID 和主题字符串具有正确的值。

PS:cassandra的版本是1.0.0,pelops的版本是1.3-1.0.x-20111021.060203-2

有人能帮我吗 ?

4

1 回答 1

2

根据提供的信息,我似乎无法复制您的问题,但是我可以通过将 null 作为列名(在您的示例中为主题)传递来进行复制。

我已经向 MutatorIntegrationTest 添加了一个测试,以验证测试 Mutator.deleteSubColumns 是否按预期工作,并且我还对 Validator 类进行了细微更改以避免 NullPointerException 而是抛出 org.scale7.cassandra.pelops.exceptions.ModelException .

请参阅MutatorIntegrationtest.testDeleteSubColumns()MutatorIntegrationtest。testDeleteSubColumnsWithNullColumnNameThrowsCorrectException()

简而言之;确保您的“主题”变量不为空并升级到最新的 Pelops SNAPSHOT(以获得更好的错误消息)。

于 2011-11-01T23:10:49.593 回答