2011-10-31 5 views
1

このコード:Pelop deleteSubColumns => NullPointerExceptionが

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:カサンドラのバージョンは1.0.0で、ペロプスのバージョンが1.3-1.0.x-20111021.060203から2

で誰かが私を助けることができますか?

答えて

2

提供された情報に基づいて問題を再現できないようですが、列名(例のトピック)としてnullを渡すことでレプリケートできます。

は私が期待通りに動作するテストMutator.deleteSubColumnsを検証するためにMutatorIntegrationTestにテストを追加しましたし、私もorg.scale7.cassandra.pelopsを投げる代わりにNullPointerExceptionを避けるとするValidatorクラスにマイナーチェンジを行いました.exceptions.ModelException。

は要するにのでMutatorIntegrationtest.testDeleteSubColumns()MutatorIntegrationtest. testDeleteSubColumnsWithNullColumnNameThrowsCorrectException()

を参照してください。あなたの 'topic'変数がnullでないことを確認して、最新のPelops SNAPSHOTにアップグレードしてください(より良いエラーメッセージのために)。