docs: public NonDelayedClassInfo getClassInfo() {
  
          String useName = getName();
  
          NonDelayedClassInfo useClassInfo = this.classInfo;
  
          if (useClassInfo != null) {
              if (!useClassInfo.isJavaClass() &&
                  !(useClassInfo.isAnnotationPresent() ||
                    useClassInfo.isFieldAnnotationPresent() ||
                  useClassInfo.isMethodAnnotationPresent())) {
                  getInfoStore().recordAccess(useClassInfo);
              }
              return useClassInfo;
          }
  
          useClassInfo = getInfoStore().resolveClassInfo(useName);
  
          String[] useLogParms = getLogParms();
          if (useLogParms != null) {
              useLogParms[EXTRA_DATA_OFFSET_0] = useName;
          }
  
          if (useClassInfo == null) {
              // defect 84235: If an error caused this, the warning was reported at a lower level. Since this is 
              // going to be 'handled', we should not generate another warning message.
              //Tr.warning(tc, "ANNO_CLASSINFO_CLASS_NOTFOUND", getHashText(), useName); // CWWKC0025W
  
              if (useLogParms != null) {
                  Tr.debug(tc, MessageFormat.format("[ {0} ] - Class not found [ {1} ]",
                                                    (Object[]) useLogParms));
              }
  
              useClassInfo = new NonDelayedClassInfo(useName, getInfoStore());
  
              this.isArtificial = true;
  
              // START: TFB: Defect 59284: More required updates:
              //
              // The newly created class info was not properly added as a class info,
              // leading to an NPE in the cache list management (in ClassInfoCache.makeFirst).
  
              getInfoStore().getClassInfoCache().addClassInfo(useClassInfo);
  
              // END: TFB: Defect 59284: More required updates:
          }
  
          // START: TFB: Defect 59284: Don't throw an exception for a failed load.
          //
          // Tracing enablement for defect 59284 showed an error of the sequence
          // of assigning the result class info hash text into the logging parameters.
          //
          // Prior to the assignment steps, 'this.classInfo' is null.
          //
          // A NullPointerException results, respective only of trace enablement
          // and irrespective of the d59284 changes.
          //
          // Move the logging code to after the 'this.classInfo' assignment.
  
          // if (useLogParms != null) {
          //     useLogParms[EXTRA_DATA_OFFSET_1] = this.classInfo.getHashText();
          // }
  
          useClassInfo.setDelayedClassInfo(this);
          this.classInfo = useClassInfo;
  
          if (useLogParms != null) {
              useLogParms[EXTRA_DATA_OFFSET_1] = this.classInfo.getHashText(); // D59284
  
              if (this.isArtificial) {
                  Tr.debug(tc, MessageFormat.format("[ {0} ] RETURN [ {1} ] as [ {2} ] ** ARTFICIAL **",
                                                    (Object[]) useLogParms));
              } else {
                  Tr.debug(tc, MessageFormat.format("[ {0} ] RETURN [ {1} ] as [ {2} ] ",
                                                    (Object[]) useLogParms));
              }
          }
  
          // END: TFB: Defect 59284: Don't throw an exception for a failed load.
  
          return useClassInfo;
      }