code: @Override
      public Object doHandleRequest(MBeanServerExecutor pServerManager, JmxListRequest pRequest)
              throws IOException, NotChangedException {
          // Throw an exception if list has not changed
          checkForModifiedSince(pServerManager, pRequest);
  
          Stack<String> originalPathStack = EscapeUtil.reversePath(pRequest.getPathParts());
          int maxDepth = pRequest.getParameterAsInt(ConfigKey.MAX_DEPTH);
          boolean useCanonicalName = pRequest.getParameterAsBool(ConfigKey.CANONICAL_NAMING);
  
          ObjectName oName = null;
          try {
              Stack<String> pathStack = (Stack<String>) originalPathStack.clone();
              oName = objectNameFromPath(pathStack);
  
              ListMBeanEachAction action = new ListMBeanEachAction(maxDepth,pathStack,useCanonicalName);
              if (oName == null || oName.isPattern()) {
                  pServerManager.each(oName, action);
              } else {
                  pServerManager.call(oName,action);
              }
  
              return action.getResult();
          } catch (MalformedObjectNameException e) {
              throw new IllegalArgumentException("Invalid path within the MBean part given. (Path: " + pRequest.getPath() + ")",e);
          } catch (InstanceNotFoundException e) {
              throw new IllegalArgumentException("No MBean '" + oName + "' found",e);
          } catch (JMException e) {
              throw new IllegalStateException("Internal error while retrieving list: " + e, e);
          }
      }
docs: {@inheritDoc}