Neil Griffin created PLUTO-770: ---------------------------------- Summary: PortletSessionScopedBeanMap.remove() does not remove bean instances from the underlying map Key: PLUTO-770 URL: https://issues.apache.org/jira/browse/PLUTO-770 Project: Pluto Issue Type: Task Components: portlet container Affects Versions: 3.0.1, 3.0.0 Reporter: Neil Griffin Assignee: Neil Griffin Fix For: 3.0.2
The {{PortletSessionScopedBeanMap.remove()}} method contains the following code: {code:java|title=PortletSessionScopedBeanMap.java} if (bi != null) { beans.remove(bean); bi.crco.release(); bean.destroy((T)bi.instance, (CreationalContext<T>)bi.crco); } {code} The problem is that the {{beans}} variable is a {{java.util.Map}} whose keys are of type {{String}} (the windowId of the portlet) and not of type {{javax.enterprise.inject.spi.Bean}}. Therefore the call to {{beans.remove(bean)}} is incorrect and does not actually remove the bean from the underlying map. The fix would be to pass the windowId instead: {code:java|title=PortletSessionScopedBeanMap.java} if (bi != null) { beans.remove(id); bi.crco.release(); bean.destroy((T)bi.instance, (CreationalContext<T>)bi.crco); } {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)