[Seasar-user:20530] Re: [Doma]Internal compiler errorが発生

newta [E-MAIL ADDRESS DELETED]
2011年 1月 26日 (水) 12:24:14 JST


newtaです。

何度クリーンをしても治らなかったのですが、
PCを再起動して、手動で全部一時ファイルなどを消した後に実行すると
再現しなくなってしまいました。(通常のDomaエラーだけ表示される)

起こっていたタイミングとしてはSVNからDao、Entity、Listenerやその他のクラスを取得して
一部のEntityのクラスを取得できていないまま、ビルド中に
SVNで取得できたEntityクラスを修正、Listenerクラスを削除していたときに発生しました。

SVNの取得タイミングやファイルリフレッシュに何かあるかも知れませんが、
色々やってもDOMA4039のメッセージの
「コンパイルが失敗している可能性があるためaptの処理を中止します。
コンパイルが失敗している原因については実行環境(Eclipseやjavac)のエラーメッセージを確認してください。
このメッセージが生成された箇所を知りたい場合は、ログ(EclipseならばError Logビュー、javacならばコンソールなど)を確認してください。」
がまれに出るくらいで、うまく発生させることが出来ませんでした。

クリーンをするとDOMA4039も消えて、いつも出るエラーメッセージだけになったりするので
なにかシビアなタイミングがあるのかもしれません。

DOMA4039の発生したときも、エンティティクラスの生成が
すべてストップして_Entityのクラスがすべて生成されずにDaoImplで参照エラーになることもあれば
問題のクラスだけちゃんと表示されていることもありました。
こちらはクリーンをすると再作成されるので大丈夫でした。

Ecpliseでビルドするときにユーザーの操作ロックが掛かるときと
掛かっていないときがあって、そのあたりで平行してapt処理が走ったときに
なにか起きるのかも知れません。
Eclipse側の問題ですかね?
aptでのクラスロードに問題が出たりするのかな?

とりあえず、再現したときにはEcpliseの再起動だけで直るか確認して
大丈夫そうであればその対応で行こうと思います。

ありがとうございました。


2011年1月25日21:49 Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>:
> 中村(taedium)です。
>
> IllegalAccessErrorがなぜスローされているのかはわかりません。
> DomaではIllegalAccessErrorが発生しうる処理は特にしていません。
>
> IllegalAccessErrorは、Domaが
> 「[DOMA4003] パラメータはエンティティクラスでなければいけません。」の
> エラーメッセージを表示する過程でおきています。
> まずはこのエラー状態を解消してみてください。
> [DOMA4003] はDaoの更新系メソッドのパラメータが
> エンティティクラス以外の場合に表示されます。
> 例えば、次のようなDaoのメソッドのパラメータにHogeクラスが指定され、
> Hogeに@Entityが注釈されていない場合が該当します。
>
>    @Update
>    int update(Hoge employee);
>
> 今回のIllegalAccessErrorが発生する現象ですが、再現性はありますか?
> これまで問題のなかった環境で突然発生するようになったのでしょうか?
>
> --
> Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


Seasar-user メーリングリストの案内