[ https://issues.apache.org/jira/browse/WW-5387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lukasz Lenart updated WW-5387: ------------------------------ Fix Version/s: 6.4.0 > ApplicationMap.remove does not remove the entry from the ServletContext > ----------------------------------------------------------------------- > > Key: WW-5387 > URL: https://issues.apache.org/jira/browse/WW-5387 > Project: Struts 2 > Issue Type: Bug > Components: Core > Affects Versions: 6.2.0, 6.3.0 > Reporter: Jon Pulice > Priority: Minor > Fix For: 6.4.0 > > > 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"); //This works fine > } > > protected Object testRemoveFromApplicationMap() { > return applicationMap.remove(APPLICATION_MAP_TEST_KEY); //Does not > work > } > ... > } {code} > > > The issue appears to be the change to the remove method signature in 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)