private void handleChildren()

in fxcop-agent/src/jetbrains/buildServer/fxcop/agent/FxCopFileProcessor.java [86:117]


  private void handleChildren() {
    while (myStream.hasMoreChildren()) {
      myStream.moveDown();

      final String nodeName = myStream.getNodeName();
      try {
        Method handler = getHandlerMethod(nodeName);
        //handler.setAccessible(true);
        handler.invoke(this);
      } catch (NoSuchMethodException e) {
        myLogger.message(getMessage(nodeName) + ": Unknown tag '" + nodeName + "'");
      } catch (InvocationTargetException e) {
        Loggers.AGENT.debug(getMessage(nodeName), e);
        String additionalDetails = "";
        if (!StringUtil.isEmpty(e.getMessage())) {
          additionalDetails += e.toString();
        }
        if (e.getTargetException() != null) {
          additionalDetails += (StringUtil.isEmpty(additionalDetails) ? "" : ", caused by: ") + e.getTargetException().toString();
        }
        myLogger.error(getMessage(nodeName) + (StringUtil.isEmpty(additionalDetails) ? "" : ": " + additionalDetails));
      } catch (IllegalAccessException e) {
        Loggers.AGENT.debug(getMessage(nodeName), e);
        myLogger.error(getMessage(nodeName) + ":" + e.toString());
      } catch (RuntimeException e) {
        // Java 9
        if (!"java.lang.reflect.InaccessibleObjectException".equals(e.getClass().getName())) throw e;
        myLogger.message(getMessage(nodeName) + ": Unknown tag '" + nodeName + "'");
      }
      myStream.moveUp();
    }
  }