docs: public void removeWebApplication(DeployedModule deployedModule, String contextRoot) {
          //boolean restarting = deployedModule.isRestarting();
          if (TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE))
              logger.logp(Level.FINE, CLASS_NAME, "removeWebApplication", "ContextRoot : " + contextRoot);
        
          String ct = makeProperContextRoot(deployedModule.getContextRoot()); // proper
          String mapRoot = makeMappingContextRoot(ct);
  
          //PK37449 adding synchronization block
          // removeMappedObject uses the mapped root (the same format that was used to add it)
          // removeMappedObject is synchronized, and returns the object that was removed from the map (if there was one)
          WebGroup webGroup = (WebGroup) removeMappedObject(mapRoot);
  
          if (webGroup != null) {
              // Begin 284644, reverse removal of web applications from map to prevent requests from coming in after app removed
              // Liberty: removed redundant call to remove mapping: call to removeMappedObject does what is needed
              
              webGroup.removeWebApplication(deployedModule);
              // End 284644, reverse removal of web applications from map to prevent requests from coming in after app removed
  
              //PK37449 adding trace and call to removeSubContainer() from AbstractContainer.  
              //        The call that was in WebGroup was removed.
              if (TraceComponent.isAnyTracingEnabled() && logger.isLoggable(Level.FINE))
                  logger.logp(Level.FINE, CLASS_NAME, "removeWebApplication", "name: " + webGroup.getName());
              
              //if (!restarting)
              removeSubContainer(webGroup.getName());
              //PK37449 end
          }
      }