2

UnmappedResourceHandlerリソースフォルダー内に複合コンポーネントのxhtmlファイルをロードしているようです。その結果、メモリリークが徐々に増加しているようです。

リークは 内にありますFaceletViewHandlingStrategy.metadataCache。ハッシュマップに依存し、上記のハンドラーが使用される場合、インスタンスUnmappedResourcesのキーとして使用されCompositeComponentBeanInfoます。

が使用されていない場合UnmappedResourceHandler、キーには が含まれますResourceImpl。違いは、UnmappedResource実装されていないequals()ことResourceImplです。

@Override
public boolean equals(Object o) {
    if (this == o) {
        return true;
    }
    if (o == null || getClass() != o.getClass()) {
        return false;
    }

    ResourceImpl resource = (ResourceImpl) o;
    return resourceInfo.equals(resource.resourceInfo);
}

したがって、問題は最初のケースCompositeComponentBeanInfoで に何度も追加されるようmetadataCacheです。2 番目では、すべてが期待どおりに機能します。

他の誰かがこの問題を確認できますか?

4

1 に答える 1