diff --git a/java/java-analysis-impl/src/com/siyeh/ig/psiutils/SerializationUtils.java b/java/java-analysis-impl/src/com/siyeh/ig/psiutils/SerializationUtils.java index 73aca2048e93..75e56e360735 100644 --- a/java/java-analysis-impl/src/com/siyeh/ig/psiutils/SerializationUtils.java +++ b/java/java-analysis-impl/src/com/siyeh/ig/psiutils/SerializationUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2021 Dave Griffith, Bas Leijdekkers + * Copyright 2003-2024 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -120,20 +120,18 @@ public final class SerializationUtils { } public static boolean isSerialVersionUid(@NotNull PsiField field) { - return isConstant(field) + return field.hasModifierProperty(PsiModifier.STATIC) + && field.hasModifierProperty(PsiModifier.FINAL) && field.getName().equals(CommonClassNames.SERIAL_VERSION_UID_FIELD_NAME) && field.getType().equals(PsiTypes.longType()); } public static boolean isSerialPersistentFields(@NotNull PsiField field) { - return isConstant(field) && field.getName().equals("serialPersistentFields") && - field.getType().equalsToText("java.io.ObjectStreamField[]"); - } - - private static boolean isConstant(@NotNull PsiField field) { return field.hasModifierProperty(PsiModifier.PRIVATE) && field.hasModifierProperty(PsiModifier.STATIC) - && field.hasModifierProperty(PsiModifier.FINAL); + && field.hasModifierProperty(PsiModifier.FINAL) + && field.getName().equals("serialPersistentFields") + && field.getType().equalsToText("java.io.ObjectStreamField[]"); } public static boolean isProbablySerializable(PsiType type) { diff --git a/java/java-tests/testData/ig/com/siyeh/igtest/serialization/missing_serial_annotation/ExternalizableClassInJava14Negative.java b/java/java-tests/testData/ig/com/siyeh/igtest/serialization/missing_serial_annotation/ExternalizableClassInJava14Negative.java index 809003005798..3be34f510e06 100644 --- a/java/java-tests/testData/ig/com/siyeh/igtest/serialization/missing_serial_annotation/ExternalizableClassInJava14Negative.java +++ b/java/java-tests/testData/ig/com/siyeh/igtest/serialization/missing_serial_annotation/ExternalizableClassInJava14Negative.java @@ -3,7 +3,7 @@ import java.io.*; class Test implements Externalizable { private static final long serialVersionID = 7874493593505141603L; - static final long serialVersionUID = 7874493593505141603L; + static final long serialVersionUID = 7874493593505141603L; private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0]; diff --git a/java/java-tests/testData/ig/com/siyeh/igtest/serialization/missing_serial_annotation/SerializableClassInJava14Negative.java b/java/java-tests/testData/ig/com/siyeh/igtest/serialization/missing_serial_annotation/SerializableClassInJava14Negative.java index fb7e56323d19..14045b78b09c 100644 --- a/java/java-tests/testData/ig/com/siyeh/igtest/serialization/missing_serial_annotation/SerializableClassInJava14Negative.java +++ b/java/java-tests/testData/ig/com/siyeh/igtest/serialization/missing_serial_annotation/SerializableClassInJava14Negative.java @@ -3,7 +3,7 @@ import java.io.*; class Test implements Serializable { private static final long serialVersionID = 7874493593505141603L; - static final long serialVersionUID = 7874493593505141603L; + static final long serialVersionUID = 7874493593505141603L; private static final ObjectStreamField[] serialPersistentFiels = new ObjectStreamField[0]; private static ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0]; diff --git a/java/java-tests/testData/ig/com/siyeh/igtest/serialization/serial_annotation_used_on_wrong_member/ExternalizableClassPositive.java b/java/java-tests/testData/ig/com/siyeh/igtest/serialization/serial_annotation_used_on_wrong_member/ExternalizableClassPositive.java index 24df5bf48d3b..86013ad18c5e 100644 --- a/java/java-tests/testData/ig/com/siyeh/igtest/serialization/serial_annotation_used_on_wrong_member/ExternalizableClassPositive.java +++ b/java/java-tests/testData/ig/com/siyeh/igtest/serialization/serial_annotation_used_on_wrong_member/ExternalizableClassPositive.java @@ -4,7 +4,7 @@ class Test implements Externalizable { @Serial private static final long serialVersionID = 7874493593505141603L; - @Serial + @Serial static final long serialVersionUID = 7874493593505141603L; @Serial diff --git a/java/java-tests/testData/ig/com/siyeh/igtest/serialization/serial_annotation_used_on_wrong_member/SerializableClassPositive.java b/java/java-tests/testData/ig/com/siyeh/igtest/serialization/serial_annotation_used_on_wrong_member/SerializableClassPositive.java index 5e0731b0ed64..6c9e3c79fdb8 100644 --- a/java/java-tests/testData/ig/com/siyeh/igtest/serialization/serial_annotation_used_on_wrong_member/SerializableClassPositive.java +++ b/java/java-tests/testData/ig/com/siyeh/igtest/serialization/serial_annotation_used_on_wrong_member/SerializableClassPositive.java @@ -4,7 +4,7 @@ class Test implements Serializable { @Serial private static final long serialVersionID = 7874493593505141603L; - @Serial + @Serial static final long serialVersionUID = 7874493593505141603L; @Serial