0

playORMでエンティティをマッピングしましたが、プロジェクトは正常に実行され、エンティティは元の状態でマッピングされました。ただし、Mavenでリリースされた最新バージョンであるplayORM 1.4.1をインストールした後、次のnullポインターを取得しました。

エラーを見つけたいのですが、どこから探し始めるのかわかりません。

ヒントはありますか?

情報:meta =Userがローカルで見つかりました2012-11-0919:32:22,918 com.alvazan.orm.layer9z.spi.db.cassandra.ColumnFamilyHelper waitForNodesToBeUpToDate情報:すべてのノードが同じスキーマバージョンになるまでループするか、300000ミリ秒でタイムアウトします2012- 11-09 17:32:22,939 com.alvazan.orm.layer9z.spi.db.cassandra.ColumnFamilyHelper tryToLoadColumnFamilyImpl情報:まあ、cassandraにロードする列family = Userが見つかりませんでした(virt = Userから)2012-11 -09 17:32:22,939 com.alvazan.orm.layer9z.spi.db.cassandra.ColumnFamilyHelper tryToLoadColumnFamilyVirt情報:com.alvazan.orm.implでcassandra =21java.lang.NullPointerExceptionから列ファミリーメタをロードする合計時間。 meta.data.MetaEmbeddedSimple.translateToColumnImpl(MetaEmbeddedSimple.java:105)at com.alvazan.orm.impl.meta.data.MetaEmbeddedSimple.translateToColumn(MetaEmbeddedSimple.java:93)atcom.alvazan.orm。impl.meta.data.MetaClassSingle.translateToRow(MetaClassSingle.java:82)at com.alvazan.orm.layer0.base.BaseEntityManagerImpl.putImpl(BaseEntityManagerImpl.java:102)atcom.alvazan.orm.layer0.base.BaseEntityManagerImpl。 put(BaseEntityManagerImpl.java:68)at com.s1mbi0se.dmp.da.dao.UserDao.insertOrUpdateUser(UserDao.java:23)at com.s1mbi0se.dmp.module.UserModule.persistData(UserModule.java:116)at com .s1mbi0se.dmp.processor.mapred.SelectorReducer.reduce(SelectorReducer.java:60)at com.s1mbi0se.dmp.processor.mapred.SelectorReducer.reduce(SelectorReducer.java:1)at org.apache.hadoop.mapreduce.Reducer .run(Reducer.java:176)at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649)at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:417)atorg。 apache.hadoop.mapred.LocalJobRunner$Job。run(LocalJobRunner.java:260)17:32:22,946警告スレッド-3 mapred.LocalJobRunner:298 --job_local_0001 java.lang.InterruptedException at com.s1mbi0se.dmp.processor.mapred.SelectorReducer.reduce(SelectorReducer.java:63) com.s1mbi0se.dmp.processor.mapred.SelectorReducer.reduce(SelectorReducer.java:1)at org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:176)at org.apache.hadoop.mapred.ReduceTask .runNewReducer(ReduceTask.java:649)at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:417)at org.apache.hadoop.mapred.LocalJobRunner $ Job.run(LocalJobRunner.java:260)2012 -11-09 17:32:27,237 com.s1mbi0se.dmp.processor.main.DmpProcessorRunner runorg.apache.hadoop.mapreduce.Reducer.run(Reducer.java:176)のcom.s1mbi0se.dmp.processor.mapred.SelectorReducer.reduce(SelectorReducer.java:1)のreduce(SelectorReducer.java:63) .apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649)at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:417)at org.apache.hadoop.mapred.LocalJobRunner $ Job.run (LocalJobRunner.java:260)2012-11-09 17:32:27,237 com.s1mbi0se.dmp.processor.main.DmpProcessorRunner runorg.apache.hadoop.mapreduce.Reducer.run(Reducer.java:176)のcom.s1mbi0se.dmp.processor.mapred.SelectorReducer.reduce(SelectorReducer.java:1)のreduce(SelectorReducer.java:63) .apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649)at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:417)at org.apache.hadoop.mapred.LocalJobRunner $ Job.run (LocalJobRunner.java:260)2012-11-09 17:32:27,237 com.s1mbi0se.dmp.processor.main.DmpProcessorRunner runLocalJobRunner $ Job.run(LocalJobRunner.java:260)2012-11-09 17:32:27,237 com.s1mbi0se.dmp.processor.main.DmpProcessorRunner runLocalJobRunner $ Job.run(LocalJobRunner.java:260)2012-11-09 17:32:27,237 com.s1mbi0se.dmp.processor.main.DmpProcessorRunner run

4

2 に答える 2

2

編集: これは master ブランチで修正され、まもなくリリースされます。12/11/27

ログのフォーマットは少しずれているように見えますが、これは重要な部分です

java.lang.NullPointerException at com.alvazan.orm.impl.meta.data.MetaEmbeddedSimple.translateToColumnImpl(MetaEmbeddedSimple.java:105)

105行目はこのコードを見つけます...

    for(T val : toBeAdded) {
        byte[] name = formTheName(val);
        Column c = new Column();
        c.setName(name);

        row.getColumns().add(c);
    }

具体的には、105行目が最初の行であるため、何らかの理由で toBeAdded がnullです....このメソッドを呼び出した人を見てください。

うーん、エンティティの 1 つに何かの null リストがあることがわかりました。ここにコードを追加する必要があるため、エンティティに null リストがある場合は代わりに空のリストを作成します。チケットを提出して、この URL にリンクしていただけますか。これは簡単に修正できます。

注:私は、そのようなフィールドを持つすべてのエンティティの習慣を持っています

プライベート リスト 何か;

私は100%常にこのように定義しています

プライベート リスト 何か = 新しい ArrayList();

これにより、いたるところで Nullpointers が回避されるため、これを見逃しました :( :(.....とにかく、この null リストを許可するように修正します。

ありがとう、ディーン

于 2012-11-10T02:59:40.867 に答える
1

これは、Maven リポジトリで利用可能なリリース 1.4.2 で修正されています。

于 2012-11-29T12:54:02.250 に答える