diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/ExternalizableWithoutPublicNoArgConstructorInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/ExternalizableWithoutPublicNoArgConstructorInspection.java
index 4a23293bac41..27920b1343b0 100644
--- a/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/ExternalizableWithoutPublicNoArgConstructorInspection.java
+++ b/plugins/InspectionGadgets/src/com/siyeh/ig/serialization/ExternalizableWithoutPublicNoArgConstructorInspection.java
@@ -52,6 +52,10 @@ public class ExternalizableWithoutPublicNoArgConstructorInspection extends BaseI
final PsiMethod constructor = (PsiMethod)infos[1];
if (constructor == null) {
final PsiClass aClass = (PsiClass)infos[0];
+ if (aClass instanceof PsiAnonymousClass) {
+ // can't create constructor for anonymous class
+ return null;
+ }
return new DelegatingFix(new AddDefaultConstructorFix(aClass, PsiModifier.PUBLIC));
}
else {
@@ -73,6 +77,7 @@ public class ExternalizableWithoutPublicNoArgConstructorInspection extends BaseI
private static class MakeConstructorPublicFix extends InspectionGadgetsFix {
+ @Override
@NotNull
public String getName() {
return InspectionGadgetsBundle.message("make.constructor.public");
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/serialization/externalizable_without_public_no_arg_constructor/ExternalizableWithoutPublicNoArgConstructor.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/serialization/externalizable_without_public_no_arg_constructor/ExternalizableWithoutPublicNoArgConstructor.java
index b0676d8bdd07..0be95608c044 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igtest/serialization/externalizable_without_public_no_arg_constructor/ExternalizableWithoutPublicNoArgConstructor.java
+++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/serialization/externalizable_without_public_no_arg_constructor/ExternalizableWithoutPublicNoArgConstructor.java
@@ -31,4 +31,30 @@ class eImpl2 extends e {
public void writeExternal(ObjectOutput out) throws IOException {
}
}
+class AnonymousTest {
+ public static void main(String[] args) throws IOException, ClassNotFoundException {
+ final String h = "Hello World";
+ final Externalizable externalizable = new Externalizable() {
+
+ private String string = h;
+
+ @Override
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeUTF(string);
+ }
+
+ @Override
+ public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+ string = in.readUTF();
+ }
+ };
+ final ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+ final ObjectOutputStream out = new ObjectOutputStream(bytes);
+ out.writeObject(externalizable);
+ out.close();
+ final ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes.toByteArray()));
+ final Object o = in.readObject();
+ System.out.println("o = " + o);
+ }
+}
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/serialization/externalizable_without_public_no_arg_constructor/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/serialization/externalizable_without_public_no_arg_constructor/expected.xml
index e03eea5d8a6b..1a66108a074d 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igtest/serialization/externalizable_without_public_no_arg_constructor/expected.xml
+++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/serialization/externalizable_without_public_no_arg_constructor/expected.xml
@@ -3,7 +3,6 @@
ExternalizableWithoutPublicNoArgConstructor.java
9
- test_5975879954938100914
Externalizable class without public no-arg constructor
Externalizable class <code>eImpl</code> has no public no-arg constructor
@@ -11,7 +10,6 @@
ExternalizableWithoutPublicNoArgConstructor.java
16
-
Externalizable class without public no-arg constructor
Externalizable class <code>eImpl1</code> has no public no-arg constructor
@@ -19,8 +17,14 @@
ExternalizableWithoutPublicNoArgConstructor.java
24
-
Externalizable class without public no-arg constructor
Externalizable class <code>eImpl2</code> has no public no-arg constructor
+
+
+ ExternalizableWithoutPublicNoArgConstructor.java
+ 37
+ Externalizable class without public no-arg constructor
+ Externalizable class <code>Externalizable</code> has no public no-arg constructor #loc
+
\ No newline at end of file