Кажется UnmappedResourceHandler
загружает составные компоненты xhtml-файлов в папку ресурсов. В результате получается постепенное увеличение утечки памяти.OmniFaces UnmappedResourceHandler, кажется, утечка ресурсов при использовании составных компонентов
Утечка можно найти в пределах 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
. Во втором все работает так, как ожидалось.
Кто-нибудь еще может подтвердить эту проблему?