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

newta [E-MAIL ADDRESS DELETED]
2011年 3月 10日 (木) 11:29:08 JST


お世話になります。
newtaです。

以前メールしました、
java.lang.IllegalAccessError
が出る件ですが、やはり何度か発生します。
現在複数のプロジェクトにまたがってDomaを使用していることも関係があるかもしれません。

プロジェクト共通
↑        ↑
参照      ↑
プロジェクトA ↑
↑        ↑
参照      ↑
プロジェクトB--参照

プロジェクト共通
プロジェクトA
プロジェクトB

のすべてでDomaを使用しています。

このときSQLファイルやEntitiyクラス、Listenerクラスなどが不足していてエラーになるときに
コンパイルが全て停止してしまう現象がやはり起きています。
そうするとクリーンしても、eclipse再起動をしてもだめなようです。
毎回起きる箇所はMessageFormatterのところなので
MessageFormatterの問題の箇所をtry-catchしたものでjarを作り
毎回一時的にaptに適応して凌いでいます。

以下に実装しているコードを載せておきます。
一時しのぎのようですが、ちょくちょく問題が起きて、
作業の手間になってしまうので、一時しのぎと分かっていても
出来れば本体側に追加してもらえればと思います。
よろしくお願いします。

public final class MessageFormatter {

    public static String getMessage(MessageResource messageResource,
            Object... args) {
        try {
            ResourceBundle bundle = ResourceBundle
                    .getBundle(MessageResourceBundle.class.getName());
            String pattern = bundle.getString(messageResource.getCode());
            return MessageFormat.format("[" + messageResource.getCode() + "] "
                    + pattern, args);
        } catch (Throwable t) {
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            PrintStream stream = new PrintStream(outputStream);
            t.printStackTrace(stream);

            StringBuffer sb = new StringBuffer();
            try{
                sb.append("CODE[");
                sb.append(messageResource.getCode());
                sb.append("]");
                sb.append("ARGS[");
                for(Object a : args) {
                    sb.append("[");
                    sb.append(a);
                    sb.append("]");
                }
                sb.append("]");

            }catch(Exception e2){
                sb.append("EXCEPTION[");
                sb.append(e2.getMessage());
                sb.append("]");
            }

            sb.append("EXCEPTION[");
            sb.append(t.getMessage() + "\n" + outputStream.toString());
            sb.append("]");
            return sb.toString();
        }
    }
}

2011年1月26日20:53 Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>:
> 中村(taedium)です。
>
>> Ecpliseでビルドするときにユーザーの操作ロックが掛かるときと
>> 掛かっていないときがあって、そのあたりで平行してapt処理が走ったときに
>> なにか起きるのかも知れません。
>> Eclipse側の問題ですかね?
>> aptでのクラスロードに問題が出たりするのかな?
>
> そうですね。
> 根本的な原因はわかりませんが
> これまでの話からするとEclipse側の問題のようですね。
>
> ただ、頻発するようであれば
> こちらでも調査したいと思います。
>
> --
> Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


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