Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManoj Palat2020-11-16 06:01:31 +0000
committerManoj Palat2020-11-16 06:47:51 +0000
commit5c287a0cdd528acaed0af3f16707b1be6d9232b0 (patch)
tree5fcb28b3bfb7feb46b68bfc09f14c363f8db75b7
parent70db0e282bbc29dd42b39947c7295e82d7a63440 (diff)
downloadeclipse.jdt.core-5c287a0cdd528acaed0af3f16707b1be6d9232b0.tar.gz
eclipse.jdt.core-5c287a0cdd528acaed0af3f16707b1be6d9232b0.tar.xz
eclipse.jdt.core-5c287a0cdd528acaed0af3f16707b1be6d9232b0.zip
Bug 561199 - [14] [quick fix] Serializable record doesn't require aI20201116-0600
serialVersionUID Change-Id: Ib22727590181bb936b067437da3b13489d504875
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/RecordsRestrictedClassTest.java21
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java1
2 files changed, 22 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/RecordsRestrictedClassTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/RecordsRestrictedClassTest.java
index d3947c97a0..ee7a55fb30 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/RecordsRestrictedClassTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/RecordsRestrictedClassTest.java
@@ -7993,4 +7993,25 @@ public void testBug566846_2() {
new String[] {"--enable-preview"},
getCompilerOptions());
}
+public void testBug561199_001() {
+ Map<String, String> options = getCompilerOptions();
+ options.put(CompilerOptions.OPTION_ReportMissingSerialVersion, CompilerOptions.ERROR);
+ runNegativeTest(
+ new String[] {
+ "R.java",
+ "record R() implements java.io.Serializable {}\n",
+ "X.java",
+ "class X implements java.io.Serializable {}\n"
+ },
+ "----------\n" +
+ "1. ERROR in X.java (at line 1)\n" +
+ " class X implements java.io.Serializable {}\n" +
+ " ^\n" +
+ "The serializable class X does not declare a static final serialVersionUID field of type long\n" +
+ "----------\n",
+ null,
+ true,
+ new String[] {"--enable-preview"},
+ options);
+}
} \ No newline at end of file
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java
index af9e1087a9..124ccb240b 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/TypeDeclaration.java
@@ -1316,6 +1316,7 @@ public void resolve() {
boolean needSerialVersion =
this.scope.compilerOptions().getSeverity(CompilerOptions.MissingSerialVersion) != ProblemSeverities.Ignore
&& sourceType.isClass()
+ && !sourceType.isRecord()
&& sourceType.findSuperTypeOriginatingFrom(TypeIds.T_JavaIoExternalizable, false /*Externalizable is not a class*/) == null
&& sourceType.findSuperTypeOriginatingFrom(TypeIds.T_JavaIoSerializable, false /*Serializable is not a class*/) != null;

Back to the top