[ https://issues.apache.org/jira/browse/WW-5387?focusedWorklogId=899990&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-899990 ]
ASF GitHub Bot logged work on WW-5387: -------------------------------------- Author: ASF GitHub Bot Created on: 16/Jan/24 19:46 Start Date: 16/Jan/24 19:46 Worklog Time Spent: 10m Work Description: sonarcloud[bot] commented on PR #844: URL: https://github.com/apache/struts/pull/844#issuecomment-1894404495 ## [](https://sonarcloud.io/dashboard?id=apache_struts&pullRequest=844) **Quality Gate failed** Failed conditions [60.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_struts&pullRequest=844&metric=new_coverage&view=list) (required ≥ 80%) [See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=apache_struts&pullRequest=844) Issue Time Tracking ------------------- Worklog Id: (was: 899990) Time Spent: 20m (was: 10m) > 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 > > Time Spent: 20m > Remaining Estimate: 0h > > 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)