container-common/src/main/java/com/streamsets/datacollector/security/SdcSecurityManager.java
private void setExceptions(Configuration configuration) {
    this.exceptions.clear();
    this.stageLibExceptions.clear();

    // Load general exceptions
    for(String path : configuration.get(PROPERTY_EXCEPTIONS, "").split(",")) {
      this.exceptions.add(replaceVariables(path));
    }

    // Load Stage library specific exceptions
    Configuration stageSpecific = configuration.getSubSetConfiguration(PROPERTY_STAGE_EXCEPTIONS, true);
    for(Map.Entry<String, String> entry : stageSpecific.getValues().entrySet()) {
      Set<String> stageExceptions = new HashSet<>();
      for(String path : entry.getValue().split(",")) {
        stageExceptions.add(replaceVariables(path));
      }

      this.stageLibExceptions.put(entry.getKey(), stageExceptions);
    }
  }
private void setExceptions(Configuration configuration) {
    this.exceptions.clear();
    this.stageLibExceptions.clear();

    // Load general exceptions
    for(String path : configuration.get(PROPERTY_EXCEPTIONS, "").split(",")) {
      this.exceptions.add(replaceVariables(path));
    }

    // Load Stage library specific exceptions
    Configuration stageSpecific = configuration.getSubSetConfiguration(PROPERTY_STAGE_EXCEPTIONS, true);
    for(Map.Entry<String, String> entry : stageSpecific.getValues().entrySet()) {
      Set<String> stageExceptions = new HashSet<>();
      for(String path : entry.getValue().split(",")) {
        stageExceptions.add(replaceVariables(path));
      }

      this.stageLibExceptions.put(entry.getKey(), stageExceptions);
    }
  }
This method should be called only once and before any stages are loaded.