Jon Pulice created WW-5387:
------------------------------
Summary: ApplicationMap.remove does not remove from ServletContext
Key: WW-5387
URL: https://issues.apache.org/jira/browse/WW-5387
Project: Struts 2
Issue Type: Bug
Components: Core
Affects Versions: 6.3.0, 6.2.0
Reporter: Jon Pulice
When implementing {{ApplicationAware}} in an action, and calling
{{remove(key)}} on the injected Map, the removed object reappears on subsequent
actions, and the object is not removed from the ServletContext (implementing a
ServletContextAttributeListener will show that only "added" and "replaced"
events are triggered, but not "removed" events)
{code:java}
public class TestAction extends ActionSupport implements ApplicationAware {
public static final String APPLICATION_MAP_TEST_KEY =
"com.testing.application.key";
private Map<String, Object> applicationMap;
@Override
public void withApplication(Map<String, Object> applicationMap) {
this.applicationMap = applicationMap;
}
protected void testPutToApplicationMap() {
applicationMap.put(APPLICATION_MAP_TEST_KEY, "Test application map
value");
}
protected Object testRemoveFromApplicationMap() {
return applicationMap.remove(APPLICATION_MAP_TEST_KEY);
}
} {code}
The issue appears to be the change to the remove method signature in
https://issues.apache.org/jira/browse/WW-5196 so that it no longer implements
the Map interface (which specifies an argument of Object, not String)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)