protected void doScanReferenceClasses() throws AnnotationTargets_Exception {
        if (haveScannedReferencedClasses) {
            return;
        }

        try {
            doScanDirectClasses();

        } catch (AnnotationTargets_Exception e) {
            haveScannedReferencedClasses = true;
            rootClassSource = null;

            throw e;
        }

        haveScannedReferencedClasses = true;

        ClassSource_Aggregate useRootClassSource = rootClassSource;
        rootClassSource = null;

        if (useRootClassSource == null) {
            if (tc.isDebugEnabled()) {
                Tr.debug(tc, "Attempt scan referenced classes before activation");
            }

        } else {
            if (externalClassSourceCount == 0) {
                if (tc.isDebugEnabled()) {
                    Tr.debug(tc, "Strange call to scan reference classes with no external class sources");
                }
            }

            createScanner(useRootClassSource).scanReferenced();
            // 'createScanner' and 'scan' both throw AnnotationTargets_Exception
        }
    }
protected void doScanReferenceClasses ( ) throws AnnotationTargets_Exception { if ( haveScannedReferencedClasses ) { return ; } try { doScanDirectClasses ( ) ; } catch ( AnnotationTargets_Exception e ) { haveScannedReferencedClasses = true ; rootClassSource = null ; throw e ; } haveScannedReferencedClasses = true ; ClassSource_Aggregate useRootClassSource = rootClassSource ; rootClassSource = null ; if ( useRootClassSource == null ) { if ( tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Attempt scan referenced classes before activation" ) ; } } else { if ( externalClassSourceCount == 0 ) { if ( tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Strange call to scan reference classes with no external class sources" ) ; } } createScanner ( useRootClassSource ) . scanReferenced ( ) ; } }
PostCondition: rootClassSource == null