ライブラリのコードをデコンパイルしたコードの中に以下のようなコードがあり、変数eの中身が見られなかった。
CsdlEntityContainerInfo e = this.provider.getEntityContainerInfo(containerName);
return e != null?new EdmEntityContainerImpl(this, this.provider, e):null;
原因はコンパイラによって最適化されたため、元のコードと変数名が違っていることだった。 コンパイル前のコードは以下のようになっていた。
CsdlEntityContainerInfo entityContainerInfo = provider.getEntityContainerInfo(containerName);
if (entityContainerInfo != null) {
return new EdmEntityContainerImpl(this, provider, entityContainerInfo);
}
entityContainerInfoがeに変更されているとは。。entityContainerInfoならローカル変数の一覧に出ていた。 妙にスペースが少ないコードがあったら要注意だな。