diff options
author | Manoj Palat | 2020-11-16 06:01:31 +0000 |
---|---|---|
committer | Manoj Palat | 2020-11-16 06:47:51 +0000 |
commit | 5c287a0cdd528acaed0af3f16707b1be6d9232b0 (patch) | |
tree | 5fcb28b3bfb7feb46b68bfc09f14c363f8db75b7 | |
parent | 70db0e282bbc29dd42b39947c7295e82d7a63440 (diff) | |
download | eclipse.jdt.core-5c287a0cdd528acaed0af3f16707b1be6d9232b0.tar.gz eclipse.jdt.core-5c287a0cdd528acaed0af3f16707b1be6d9232b0.tar.xz eclipse.jdt.core-5c287a0cdd528acaed0af3f16707b1be6d9232b0.zip |
serialVersionUID
Change-Id: Ib22727590181bb936b067437da3b13489d504875
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; |