java-topology/test/langtools/tools/javac/warnings/Serial/EnumExtern.java
russell@unturf.com 0a580b313d undefect. CWE-407 — 63 sites patched across 27 ecosystems
Authors: russell@unturf.com · brackishbert@gmail.com · foxhop.net · TimeHexOn.com

Patches, unit tests, benchmarks, whitepaper, and outreach briefs.
Public domain — no copyright claimed. Use freely.
2026-03-26 17:11:57 -04:00

59 lines
1.4 KiB
Java

/*
* @test /nodynamiccopyright/
* @bug 8310835
* @compile/ref=EnumExtern.out -XDrawDiagnostics -Xlint:serial EnumExtern.java
* @compile/ref=empty.out -XDrawDiagnostics EnumExtern.java
*/
import java.io.*;
enum EnumExtern implements Externalizable {
INSTANCE;
// Verify a warning is generated in an enum class for each of the
// distinguished serial fields and methods as well as extern methods.
private static final long serialVersionUID = 42;
private static final ObjectStreamField[] serialPersistentFields = {};
private void writeObject(ObjectOutputStream stream) throws IOException {
stream.defaultWriteObject();
}
private Object writeReplace() throws ObjectStreamException {
return null;
}
private void readObject(ObjectInputStream stream)
throws IOException, ClassNotFoundException {
stream.defaultReadObject();
}
private void readObjectNoData() throws ObjectStreamException {
return;
}
private Object readResolve() throws ObjectStreamException {
return null;
}
// ineffective Externalizable methods
@Override
public void writeExternal(ObjectOutput oo) {
;
}
@Override
public void readExternal(ObjectInput oi) {
;
}
// _Not_ Externalizable methods; shouldn't generate a warning
public void writeExternal() {
;
}
public void readExternal() {
;
}
}