1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
/*
* @test /nodynamiccopyright/
* @bug 8310835
* @compile/ref=RecordExtern.out -XDrawDiagnostics -Xlint:serial RecordExtern.java
*/
import java.io.*;
record RecordExtern(int foo) implements Externalizable {
// Verify a warning is generated in a record class for each of the
// ineffectual extern methods.
// 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() {
;
}
// Check warnings for serialization methods and fields too
// partially effective
private static final long serialVersionUID = 42;
// ineffectual
private static final ObjectStreamField[] serialPersistentFields = {};
// ineffectual
private void writeObject(ObjectOutputStream stream) throws IOException {
stream.defaultWriteObject();
}
// (possibly) effective
private Object writeReplace() throws ObjectStreamException {
return null;
}
// ineffectual
private void readObject(ObjectInputStream stream)
throws IOException, ClassNotFoundException {
stream.defaultReadObject();
}
// ineffectual
private void readObjectNoData() throws ObjectStreamException {
return;
}
// (possibly) effective
private Object readResolve() throws ObjectStreamException {
return null;
}
}
|