这段代码:
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和主题String具有正确的值。
PS:cassandra的版本是1.0.0,pelops的版本是1.3-1.0.x-20111021.060203-2
有人可以帮助我吗?
答案 0 :(得分:2)
我似乎无法根据提供的信息复制您的问题,但是我可以通过传递null作为列名称(示例中的主题)进行复制。
我已经在MutatorIntegrationTest中添加了一个测试来验证测试Mutator.deleteSubColumns是否按预期工作,我还对Validator类进行了一些小改动,以避免NullPointerException,而是抛出一个org.scale7.cassandra.pelops。 exceptions.ModelException。
请参阅MutatorIntegrationtest.testDeleteSubColumns()和MutatorIntegrationtest. testDeleteSubColumnsWithNullColumnNameThrowsCorrectException()
总之;确保你的'topic'变量不为null并升级到最新的Pelops SNAPSHOT(以获得更好的错误消息)。