if (Const.CONSTRUCTOR_NAME.equals(getMethodName()) && "()V".equals(getMethodSig()) && (accessFlags & Const.ACC_PUBLIC) != 0) { hasPublicVoidConstructor = true; if ("readExternal".equals(getMethodName()) && "(Ljava/io/ObjectInput;)V".equals(getMethodSig())) { sawReadExternal = true; if (DEBUG && !obj.isPrivate()) { System.out.println("Non-private readExternal method in: " + getDottedClassName()); } else if ("writeExternal".equals(getMethodName()) && "(Ljava/io/Objectoutput;)V".equals(getMethodSig())) { sawWriteExternal = true; if (DEBUG && !obj.isPrivate()) { System.out.println("Non-private writeExternal method in: " + getDottedClassName()); } else if ("readResolve".equals(getMethodName()) && getMethodSig().startsWith("()") && isSerializable) { sawReadResolve = true; if (!"()Ljava/lang/Object;".equals(getMethodSig())) { bugReporter.reportBug(new BugInstance(this, "SE_READ_RESOLVE_MUST_RETURN_OBJECT", HIGH_PRIORITY) .addClassAndMethod(this)); } else if ("readObject".equals(getMethodName()) && "(Ljava/io/ObjectInputStream;)V".equals(getMethodSig()) && isSerializable) { sawReadObject = true; } else if ("readObjectNoData".equals(getMethodName()) && "()V".equals(getMethodSig()) && isSerializable) { } else if ("writeObject".equals(getMethodName()) && "(Ljava/io/ObjectOutputStream;)V".equals(getMethodSig()) && isSerializable) { sawWriteObject = true;
if ("<init>".equals(getMethodName()) && "()V".equals(getMethodSig()) && (accessFlags & ACC_PUBLIC) != 0) { hasPublicVoidConstructor = true; if ("readExternal".equals(getMethodName()) && "(Ljava/io/ObjectInput;)V".equals(getMethodSig())) { sawReadExternal = true; if (DEBUG && !obj.isPrivate()) { System.out.println("Non-private readExternal method in: " + getDottedClassName()); } else if ("writeExternal".equals(getMethodName()) && "(Ljava/io/Objectoutput;)V".equals(getMethodSig())) { sawWriteExternal = true; if (DEBUG && !obj.isPrivate()) { System.out.println("Non-private writeExternal method in: " + getDottedClassName()); } else if ("readResolve".equals(getMethodName()) && getMethodSig().startsWith("()") && isSerializable) { sawReadResolve = true; if (!"()Ljava/lang/Object;".equals(getMethodSig())) { bugReporter.reportBug(new BugInstance(this, "SE_READ_RESOLVE_MUST_RETURN_OBJECT", HIGH_PRIORITY) .addClassAndMethod(this)); } else if ("readObject".equals(getMethodName()) && "(Ljava/io/ObjectInputStream;)V".equals(getMethodSig()) && isSerializable) { sawReadObject = true; } else if ("readObjectNoData".equals(getMethodName()) && "()V".equals(getMethodSig()) && isSerializable) { } else if ("writeObject".equals(getMethodName()) && "(Ljava/io/ObjectOutputStream;)V".equals(getMethodSig()) && isSerializable) { sawWriteObject = true;