org_aspectj_ajde_core_tests_model_SavedModelConsistencyTest_java
org.aspectj.weaver.AjAttribute
public static AjAttribute read(WeaverVersionInfo v, String name, byte[] bytes, ISourceContext context, World w, ConstantPoolReader dataDecompressor) {
        try {
            if (bytes == null) {
                bytes = new byte[]{};
            }
            VersionedDataInputStream s = new VersionedDataInputStream(new ByteArrayInputStream(bytes), dataDecompressor);
            s.setVersion(v);
            if (name.equals("org.aspectj.weaver.Aspect")) {
                return new Aspect(PerClause.readPerClause(s, context));
            }
            if (name.equals("org.aspectj.weaver.MethodDeclarationLineNumber")) {
                return MethodDeclarationLineNumberAttribute.read(s);
            }
            if (name.equals("org.aspectj.weaver.WeaverState")) {
                return new WeaverState(WeaverStateInfo.read(s, context));
            }
            if (name.equals("org.aspectj.weaver.WeaverVersion")) {
                return WeaverVersionInfo.read(s);
            }
            if (name.equals("org.aspectj.weaver.Advice")) {
                AdviceAttribute aa = AdviceAttribute.read(s, context);
                aa.getPointcut().check(context, w);
                return aa;
            }
            if (name.equals("org.aspectj.weaver.PointcutDeclaration")) {
                PointcutDeclarationAttribute pda = new PointcutDeclarationAttribute(ResolvedPointcutDefinition.read(s, context));
                pda.pointcutDef.getPointcut().check(context, w);
                return pda;
            }
            if (name.equals("org.aspectj.weaver.TypeMunger")) {
                return new TypeMunger(ResolvedTypeMunger.read(s, context));
            }
            if (name.equals("org.aspectj.weaver.AjSynthetic")) {
                return new AjSynthetic();
            }
            if (name.equals("org.aspectj.weaver.Declare")) {
                return new DeclareAttribute(Declare.read(s, context));
            }
            if (name.equals("org.aspectj.weaver.Privileged")) {
                return PrivilegedAttribute.read(s, context);
            }
            if (name.equals("org.aspectj.weaver.SourceContext")) {
                return SourceContextAttribute.read(s);
            }
            if (name.equals("org.aspectj.weaver.EffectiveSignature")) {
                return EffectiveSignatureAttribute.read(s, context);
            }
            if (w == null || w.getMessageHandler() == null) {
                throw new BCException("unknown attribute" + name);
            }
            w.getMessageHandler().handleMessage(MessageUtil.warn("unknown attribute encountered " + name));
            return null;
        }
        catch (BCException e) {
            throw new BCException("malformed " + name + " attribute (length:" + bytes.length + ")" + e);
        }
        catch (IOException e) {
            throw new BCException("malformed " + name + " attribute (length:" + bytes.length + ")" + e);
        }
    }
 -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.io.DataInputStream.readUTF(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.indexOf(int): int -> java.io.DataInputStream.readShort(): short -> java.io.DataInputStream.readByte(): byte -> java.io.DataInputStream.readByte(): byte -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.charAt(int): char -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.indexOf(int): int -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int -> java.lang.String.length(): int -> java.lang.String.toCharArray(): char[] -> java.lang.String.hashCode(): int -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String
 [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean -> java.lang.String.equals(java.lang.Object): boolean [CALL] [CALL] -> java.io.DataInputStream.readUTF(): java.lang.String -> java.lang.String.equals(java.lang.Object): boolean [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.charAt(int): char [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.indexOf(int): int [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] -> java.io.DataInputStream.readShort(): short [EXIT] [CALL] [CALL] [CALL] -> java.io.DataInputStream.readByte(): byte [EXIT] [CALL] [CALL] -> java.io.DataInputStream.readByte(): byte [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.String.startsWith(java.lang.String): boolean -> java.lang.String.contains(java.lang.CharSequence): boolean -> java.lang.String.charAt(int): char [CALL] -> java.lang.String.charAt(int): char -> java.lang.String.length(): int -> java.lang.String.indexOf(int): int [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int [EXIT] [EXIT] [EXIT] [EXIT] [CALL] -> java.lang.String.length(): int [CALL] -> java.lang.String.toCharArray(): char[] [CALL] [CALL] [EXIT] -> java.lang.String.hashCode(): int [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] -> java.io.DataInputStream.readInt(): int -> java.io.DataInputStream.readInt(): int [EXIT] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [CALL] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder [CALL] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [EXIT]