首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用复合组件时,OmniFaces UnmappedResourceHandler似乎会泄漏资源。

当使用复合组件时,OmniFaces UnmappedResourceHandler似乎会泄漏资源。
EN

Stack Overflow用户
提问于 2015-06-03 08:28:28
回答 1查看 130关注 0票数 2

UnmappedResourceHandler似乎正在资源文件夹中加载复合组件xhtml文件。结果似乎是一个逐渐增加的内存泄漏。

泄漏可以在FaceletViewHandlingStrategy.metadataCache中找到。它依赖于hashmap,当使用上面的处理程序时,UnmappedResources被用作CompositeComponentBeanInfo实例的键。

如果没有使用UnmappedResourceHandler,则密钥包含ResourceImpl。不同之处在于,UnmappedResource不像ResourceImpl那样实现equals()

代码语言:javascript
复制
@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中。在第二阶段,一切都如预期的那样工作。

还有人能证实这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-03 11:45:33

复合组件上的UnmappedResourceHandler内存泄漏得到了确认,并已由此承诺 ( 2.1 )、此承诺 ( 1.11 )和此承诺 ( 1.8.3 )解决。

到今天为止,所有版本都可以在Maven中使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30614722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档