docs: private boolean investigateHandlesTypes(ServletContainerInitializer sci, HashMap<ServletContainerInitializer, Class[]> handleTypesHashMap, HashMap<ServletContainerInitializer, HashSet<Class<?>>> onStartupHashMap){
          boolean needToScan = false;
          try {
              HandlesTypes handles = sci.getClass().getAnnotation(HandlesTypes.class);
              //handles is the classes which we are to look for and find all implementing classes.
              if (handles!=null) {
                  Class[] classes = handles.value();
                  needToScan=true;
                  if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE)) {
                      for (Class c:classes) {
                          logger.logp(Level.FINE, CLASS_NAME, "initializeServletContainerInitializers","Handles class to look contains " + c);
                      }
                  }
                  handleTypesHashMap.put(sci, classes);
                  onStartupHashMap.put(sci, new HashSet<Class<?>>());
              }
          } catch (RuntimeException e) {
              //the HandlesTypes class wasn't found in the classloader
              if (WCCustomProperties.LOG_SERVLET_CONTAINER_INITIALIZER_CLASSLOADER_ERRORS) {
                  logger.logp(Level.WARNING, CLASS_NAME,"initializeServletContainerInitializers", "exception.occurred.while.initializing.ServletContainerInitializers.HandlesTypes", new Object[] {sci.getClass().getName(), this.config.getDisplayName()});
              } else {
                  if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE)){
                      logger.logp(Level.FINE, CLASS_NAME,"initializeServletContainerInitializers", "exception.occurred.while.initializing.ServletContainerInitializers.HandlesTypes", new Object[] {sci.getClass().getName(), this.config.getDisplayName()});
                  }
              }
          }
          return needToScan;
      }