public void visitClass()

in src/main/java/org/apache/maven/shared/dependency/analyzer/asm/DependencyClassFileVisitor.java [55:83]


    public void visitClass(String className, InputStream in) {
        try {
            byte[] byteCode = IOUtils.toByteArray(in);
            ClassReader reader = new ClassReader(byteCode);

            final Set<String> constantPoolClassRefs = ConstantPoolParser.getConstantPoolClassReferences(byteCode);
            for (String string : constantPoolClassRefs) {
                resultCollector.addName(string);
            }

            AnnotationVisitor annotationVisitor = new DefaultAnnotationVisitor(resultCollector);
            SignatureVisitor signatureVisitor = new DefaultSignatureVisitor(resultCollector);
            FieldVisitor fieldVisitor = new DefaultFieldVisitor(annotationVisitor, resultCollector);
            MethodVisitor mv = new DefaultMethodVisitor(annotationVisitor, signatureVisitor, resultCollector);
            ClassVisitor classVisitor =
                    new DefaultClassVisitor(signatureVisitor, annotationVisitor, fieldVisitor, mv, resultCollector);

            reader.accept(classVisitor, 0);
        } catch (IOException exception) {
            exception.printStackTrace();
        } catch (IndexOutOfBoundsException e) {
            // some bug inside ASM causes an IOB exception. Log it and move on?
            // this happens when the class isn't valid.
            logger.warn("Unable to process: " + className, e);
        } catch (IllegalArgumentException e) {
            // [MSHARED-1248] should log instead of failing when analyzing a corrupted jar file
            logger.warn("Byte code of '" + className + "' is corrupt", e);
        }
    }