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()

要するに; 「トピック」変数が null でないことを確認し、最新の Pelops SNAPSHOT にアップグレードしてください (エラー メッセージを改善するため)。

于 2011-11-01T23:10:49.593 に答える