code: @Override
      @Trivial
      public void open() throws ClassSource_Exception {
          String methodName = "open";
          if ( tc.isEntryEnabled() ) {
              String msg = MessageFormat.format(
                  "[ {0} ] State [ {1} ]",
                  new Object[] { getHashText(), Integer.valueOf(opens) });
              Tr.entry(tc, methodName, msg);
          }
  
          if ( (opens < 0) ||
               ((opens == 0) && (jarFile != null)) ||
               ((opens > 0) && (jarFile == null)) ) {
  
              Tr.warning(tc, "ANNO_CLASSSOURCE_JAR_STATE_BAD", getHashText(), getJarPath(), Integer.valueOf(opens));
  
              String eMsg = "[ " + getHashText() + " ]" +
                  " Failed to open [ " + getJarPath() + " ]" +
                  " Count of opens [ " + opens + " ]" +
                  " Jar state [ " + jarFile + " ]";
              throw getFactory().newClassSourceException(eMsg);
          }
  
          opens++;
  
          if ( jarFile == null ) {
              try {
                  jarFile = UtilImpl_FileUtils.createJarFile(jarPath); // throws IOException
              } catch ( IOException e ) {
                  Tr.warning(tc, "ANNO_CLASSSOURCE_OPEN4_EXCEPTION", getHashText(), jarPath);
                  String eMsg = "[ " + getHashText() + " ] Failed to open [ " + jarPath + " ]";
                  throw getFactory().wrapIntoClassSourceException(CLASS_NAME, methodName, eMsg, e);
              }
  
              if ( tc.isEntryEnabled() ) {
                  Tr.exit(tc, methodName, MessageFormat.format("[ {0} ] RETURN (new open)", getHashText()));
              }
  
          } else {
              if ( tc.isEntryEnabled() ) {
                  Tr.exit(tc, methodName, MessageFormat.format("[ {0} ] RETURN (already open)", getHashText()));
              }
          }
      }
docs: <p>Open the ClassSource for processing. If this is the first open, the underlying jar
  file will be opened.</p>
  
  @throws ClassSource_Exception Thrown if the open failed.