RFR [15] 8241921: Remove leftover diagnostic from test/jdk/java/io/Serializable/records/SerialPersistentFieldsTest.java
Lance Andersen
lance.andersen at oracle.com
Tue Mar 31 11:59:59 UTC 2020
+1
> On Mar 31, 2020, at 6:40 AM, Chris Hegarty <chris.hegarty at oracle.com> wrote:
>
> Remove leftover diagnostic that dumps generated class from test/jdk/java/io/Serializable/records/SerialPersistentFieldsTest.java
>
> At one point it was useful to be able to inspect the generated bytecode using javap, but it was noticed recently for a different reason that the output file is always R1.class, which is clearly wrong. Anyway, this can simply be removed.
>
> --- a/test/jdk/java/io/Serializable/records/SerialPersistentFieldsTest.java
> +++ b/test/jdk/java/io/Serializable/records/SerialPersistentFieldsTest.java
> @@ -25,28 +25,26 @@
> * @test
> * @summary Basic tests for prohibited magic serialPersistentFields
> * @library /test/lib
> * @modules java.base/jdk.internal.org.objectweb.asm
> * @compile --enable-preview -source ${jdk.version} SerialPersistentFieldsTest.java
> * @run testng/othervm --enable-preview SerialPersistentFieldsTest
> */
>
> import java.io.ByteArrayInputStream;
> import java.io.ByteArrayOutputStream;
> -import java.io.FileOutputStream;
> import java.io.IOException;
> import java.io.ObjectInputStream;
> import java.io.ObjectOutputStream;
> import java.io.ObjectStreamClass;
> import java.io.ObjectStreamField;
> import java.io.Serializable;
> -import java.io.UncheckedIOException;
> import java.lang.reflect.Field;
> import java.lang.reflect.Modifier;
> import java.math.BigDecimal;
> import jdk.internal.org.objectweb.asm.ClassReader;
> import jdk.internal.org.objectweb.asm.ClassVisitor;
> import jdk.internal.org.objectweb.asm.ClassWriter;
> import jdk.internal.org.objectweb.asm.FieldVisitor;
> import jdk.internal.org.objectweb.asm.MethodVisitor;
> import jdk.internal.org.objectweb.asm.Type;
> import jdk.test.lib.ByteCodeLoader;
> @@ -222,27 +220,20 @@
> return deserialize(serialize(obj));
> }
>
> // -- machinery for augmenting a record class with prohibited serial field --
>
> static byte[] addSerialPersistentFields(byte[] classBytes,
> ObjectStreamField[] spf) {
> ClassReader reader = new ClassReader(classBytes);
> ClassWriter writer = new ClassWriter(reader, COMPUTE_MAXS | COMPUTE_FRAMES);
> reader.accept(new SerialPersistentFieldsVisitor(writer, spf), 0);
> - try {
> - FileOutputStream fos = new FileOutputStream("R1.class");
> - fos.write(writer.toByteArray());
> - fos.close();
> - } catch (IOException ioe) {
> - throw new UncheckedIOException(ioe);
> - }
> return writer.toByteArray();
> }
>
> /** A visitor that adds a serialPersistentFields field, and assigns it in clinit. */
> static final class SerialPersistentFieldsVisitor extends ClassVisitor {
> static final String FIELD_NAME = "serialPersistentFields";
> static final String FIELD_DESC = "[Ljava/io/ObjectStreamField;";
> final ObjectStreamField[] spf;
> String className;
> SerialPersistentFieldsVisitor(ClassVisitor cv, ObjectStreamField[] spf) {
>
>
> -Chris.
>
<http://oracle.com/us/design/oracle-email-sig-198324.gif>
<http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif>
<http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering
1 Network Drive
Burlington, MA 01803
Lance.Andersen at oracle.com <mailto:Lance.Andersen at oracle.com>
More information about the core-libs-dev
mailing list