docs: @Override
      public InputStream openResourceStream(String className, String resourceName)
                      throws ClassSource_Exception {
          String methodName = "openResourceStream";
  
          if (!isProviderResource(resourceName)) {
              if (tc.isDebugEnabled()) {
                  Tr.debug(tc, MessageFormat.format("[ {0} ] [ {1} ] ENTER/RETURN [ null ]: Provider does not contain [ {2} ]",
                                                    getHashText(), methodName, resourceName));
              }
              return null;
          }
  
          InputStream result;
  
          try {
              long initialTime = getTime();
              result = getProvider().openResource(resourceName); // throws IOException
              long finalTime = getTime();
              addStreamTime(finalTime - initialTime);
  
          } catch (Throwable th) {
              // defect 84235:we are generating multiple Warning/Error messages for each error
              // due to each level reporting them.
              // Disable the following warning and defer message generation to a higher level, 
              // preferably the ultimate consumer of the exception.
              //Tr.warning(tc, "ANNO_CLASSSOURCE_OPEN2_EXCEPTION",
              //           getHashText(), resourceName, null, null, className);
  
              String eMsg = "[ " + getHashText() + " ]" +
                            " Failed to open [ " + resourceName + " ]" +
                            " for class [ " + className + " ]";
              throw getFactory().wrapIntoClassSourceException(CLASS_NAME, methodName, eMsg, th);
          }
  
          if (result == null) {
              // defect 84235:we are generating multiple Warning/Error messages for each error
              // due to each level reporting them.
              // Disable the following warning and defer message generation to a higher level, 
              // preferably the ultimate consumer of the exception.
              //Tr.warning(tc, "ANNO_CLASSSOURCE_OPEN2_EXCEPTION",
              //           getHashText(), resourceName, null, null, className);
  
              String eMsg = "[ " + getHashText() + " ]" +
                            " Failed to open [ " + resourceName + " ]" +
                            " for class [ " + className + " ]";
              throw getFactory().newClassSourceException(eMsg);
          }
  
          return result;
      }