java.io.ObjectStreamConstants Java Examples
The following examples show how to use
java.io.ObjectStreamConstants.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: FatJar.java From buck with Apache License 2.0 | 6 votes |
/** Serialize this instance as binary to {@code outputStream}. */ public void store(OutputStream outputStream) throws IOException { ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream); try { // Explicitly specify a protocol version, just in case the default protocol gets updated with // a new version of Java. We need to ensure the serialized data can be read by older versions // of Java, as the fat jar stub, which references this class, is compiled against an older // version of Java for compatibility purposes, unlike the main Buck jar, which also references // this class. objectOutputStream.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2); objectOutputStream.writeObject(this); } finally { objectOutputStream.close(); } }
Example #2
Source File: BinaryIn.java From joshua with Apache License 2.0 | 6 votes |
public E readObject() throws ClassNotFoundException, IOException { int b = peek(); if (b == ObjectStreamConstants.TC_NULL) { return null; } else { E obj; try { obj = type.newInstance(); obj.readExternal(this); return obj; } catch (InstantiationException | IllegalAccessException e) { throw new RuntimeException(e); } } }
Example #3
Source File: RMIReplyDataParser.java From BaRMIe with MIT License | 6 votes |
/******************* * Handle a string element. * * @param obj The RMIObject to populate with class names. ******************/ private void handleStringElement(LinkedList<Byte> dataStack) throws BaRMIeInvalidReplyDataPacketException { //Handle a string based on the type switch(dataStack.pop()) { //Standard string case ObjectStreamConstants.TC_STRING: this.extractUtf8(dataStack); break; //Long string case ObjectStreamConstants.TC_LONGSTRING: this.extractLongUtf8(dataStack); break; //References case ObjectStreamConstants.TC_REFERENCE: this.extractInt(dataStack); break; //Invalid string type default: throw new BaRMIeInvalidReplyDataPacketException("Invalid string element type."); } }
Example #4
Source File: MarshalledObject.java From JDKSourceCode1.8 with MIT License | 5 votes |
/** * Creates a new <code>MarshalledObjectOutputStream</code> whose * non-location bytes will be written to <code>objOut</code> and whose * location annotations (if any) will be written to * <code>locOut</code>. */ MarshalledObjectOutputStream(OutputStream objOut, OutputStream locOut) throws IOException { super(objOut); this.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2); this.locOut = new ObjectOutputStream(locOut); hadAnnotations = false; }
Example #5
Source File: MarshalledObject.java From dragonwell8_jdk with GNU General Public License v2.0 | 5 votes |
/** * Creates a new <code>MarshalledObjectOutputStream</code> whose * non-location bytes will be written to <code>objOut</code> and whose * location annotations (if any) will be written to * <code>locOut</code>. */ MarshalledObjectOutputStream(OutputStream objOut, OutputStream locOut) throws IOException { super(objOut); this.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2); this.locOut = new ObjectOutputStream(locOut); hadAnnotations = false; }
Example #6
Source File: AbstractTCKTest.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
/** * Verify the class cannot be deserialized from a handcoded stream. * Fail if the deserialization does <em>not</em> throw an Exception. * @param serClass the class to embed in the handcoded stream * @throws Exception if an unexpected condition occurs */ protected static void assertNotSerializable(Class<?> serClass) throws Exception { Field field = serClass.getDeclaredField("serialVersionUID"); field.setAccessible(true); long serVer = (Long) field.get(null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (DataOutputStream out = new DataOutputStream(baos)) { out.writeShort(ObjectStreamConstants.STREAM_MAGIC); out.writeShort(ObjectStreamConstants.STREAM_VERSION); out.writeByte(ObjectStreamConstants.TC_OBJECT); out.writeByte(ObjectStreamConstants.TC_CLASSDESC); out.writeUTF(serClass.getName()); out.writeLong(serVer); out.writeByte(ObjectStreamConstants.SC_SERIALIZABLE); // Flags ObjectStreamConstants out.writeShort(0); // number of fields out.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); out.writeByte(ObjectStreamConstants.TC_NULL); // no superclasses } byte[] bytes = baos.toByteArray(); try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes); ObjectInputStream in = new ObjectInputStream(bis)) { Object o = in.readObject(); } catch (Exception ioe) { // Expected exception return; } fail("Class should not be deserializable " + serClass.getName()); }
Example #7
Source File: TCKChronoLocalDateSerialization.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
@Test() public void test_hijrahSerialization_format() throws Exception { HijrahChronology chrono = HijrahChronology.INSTANCE; HijrahDate date = HijrahDate.of(1433, 10, 29); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // Expect the type of the HijrahDate in the stream byte[] hijrahDateBytes = new byte[] {HIJRAH_DATE_TYPE}; // Literal reference to Hijrah-Umalqura Chronology byte[] hijrahChronoBytes = new byte[] { 115, 113, 0, 126, 0, 0, /* p w \u0001 \u0006 s q \u0000 ~ \u0000 \u0000 */ 119, 18, 1, 0, 15, 72, 105, 106, 114, 97, /* w \u0012 \u0001 \u0000 \u000f H i j r a */ 104, 45, 117, 109, 97, 108, 113, 117, 114, 97, /* h - u m a l q u r a */ 120, /* \u001d x */ }; // Build the sequence that represents the data in the stream baos = new ByteArrayOutputStream(); try (DataOutputStream dos = new DataOutputStream(baos) ) { dos.writeByte(ObjectStreamConstants.TC_BLOCKDATA); dos.writeByte(6); // 6 bytes follow dos.writeInt(date.get(YEAR)); dos.writeByte(date.get(MONTH_OF_YEAR)); dos.writeByte(date.get(DAY_OF_MONTH)); dos.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); } byte[] dateBytes = baos.toByteArray(); assertSerializedBySer(date, hijrahDateBytes, hijrahChronoBytes, dateBytes); }
Example #8
Source File: MarshalledObject.java From Java8CN with Apache License 2.0 | 5 votes |
/** * Creates a new <code>MarshalledObjectOutputStream</code> whose * non-location bytes will be written to <code>objOut</code> and whose * location annotations (if any) will be written to * <code>locOut</code>. */ MarshalledObjectOutputStream(OutputStream objOut, OutputStream locOut) throws IOException { super(objOut); this.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2); this.locOut = new ObjectOutputStream(locOut); hadAnnotations = false; }
Example #9
Source File: MarshalledObject.java From hottub with GNU General Public License v2.0 | 5 votes |
/** * Creates a new <code>MarshalledObjectOutputStream</code> whose * non-location bytes will be written to <code>objOut</code> and whose * location annotations (if any) will be written to * <code>locOut</code>. */ MarshalledObjectOutputStream(OutputStream objOut, OutputStream locOut) throws IOException { super(objOut); this.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2); this.locOut = new ObjectOutputStream(locOut); hadAnnotations = false; }
Example #10
Source File: AbstractTCKTest.java From hottub with GNU General Public License v2.0 | 5 votes |
/** * Verify the class cannot be deserialized from a handcoded stream. * Fail if the deserialization does <em>not</em> throw an Exception. * @param serClass the class to embed in the handcoded stream * @throws Exception if an unexpected condition occurs */ protected static void assertNotSerializable(Class<?> serClass) throws Exception { Field field = serClass.getDeclaredField("serialVersionUID"); field.setAccessible(true); long serVer = (Long) field.get(null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (DataOutputStream out = new DataOutputStream(baos)) { out.writeShort(ObjectStreamConstants.STREAM_MAGIC); out.writeShort(ObjectStreamConstants.STREAM_VERSION); out.writeByte(ObjectStreamConstants.TC_OBJECT); out.writeByte(ObjectStreamConstants.TC_CLASSDESC); out.writeUTF(serClass.getName()); out.writeLong(serVer); out.writeByte(ObjectStreamConstants.SC_SERIALIZABLE); // Flags ObjectStreamConstants out.writeShort(0); // number of fields out.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); out.writeByte(ObjectStreamConstants.TC_NULL); // no superclasses } byte[] bytes = baos.toByteArray(); try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes); ObjectInputStream in = new ObjectInputStream(bis)) { Object o = in.readObject(); } catch (Exception ioe) { // Expected exception return; } fail("Class should not be deserializable " + serClass.getName()); }
Example #11
Source File: TCKChronoLocalDateSerialization.java From hottub with GNU General Public License v2.0 | 5 votes |
@Test() public void test_hijrahSerialization_format() throws Exception { HijrahChronology chrono = HijrahChronology.INSTANCE; HijrahDate date = HijrahDate.of(1433, 10, 29); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // Expect the type of the HijrahDate in the stream byte[] hijrahDateBytes = new byte[] {HIJRAH_DATE_TYPE}; // Literal reference to Hijrah-Umalqura Chronology byte[] hijrahChronoBytes = new byte[] { 115, 113, 0, 126, 0, 0, /* p w \u0001 \u0006 s q \u0000 ~ \u0000 \u0000 */ 119, 18, 1, 0, 15, 72, 105, 106, 114, 97, /* w \u0012 \u0001 \u0000 \u000f H i j r a */ 104, 45, 117, 109, 97, 108, 113, 117, 114, 97, /* h - u m a l q u r a */ 120, /* \u001d x */ }; // Build the sequence that represents the data in the stream baos = new ByteArrayOutputStream(); try (DataOutputStream dos = new DataOutputStream(baos) ) { dos.writeByte(ObjectStreamConstants.TC_BLOCKDATA); dos.writeByte(6); // 6 bytes follow dos.writeInt(date.get(YEAR)); dos.writeByte(date.get(MONTH_OF_YEAR)); dos.writeByte(date.get(DAY_OF_MONTH)); dos.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); } byte[] dateBytes = baos.toByteArray(); assertSerializedBySer(date, hijrahDateBytes, hijrahChronoBytes, dateBytes); }
Example #12
Source File: MarshalledObject.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
/** * Creates a new <code>MarshalledObjectOutputStream</code> whose * non-location bytes will be written to <code>objOut</code> and whose * location annotations (if any) will be written to * <code>locOut</code>. */ MarshalledObjectOutputStream(OutputStream objOut, OutputStream locOut) throws IOException { super(objOut); this.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2); this.locOut = new ObjectOutputStream(locOut); hadAnnotations = false; }
Example #13
Source File: AbstractTCKTest.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
/** * Verify the class cannot be deserialized from a handcoded stream. * Fail if the deserialization does <em>not</em> throw an Exception. * @param serClass the class to embed in the handcoded stream * @throws Exception if an unexpected condition occurs */ protected static void assertNotSerializable(Class<?> serClass) throws Exception { Field field = serClass.getDeclaredField("serialVersionUID"); field.setAccessible(true); long serVer = (Long) field.get(null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (DataOutputStream out = new DataOutputStream(baos)) { out.writeShort(ObjectStreamConstants.STREAM_MAGIC); out.writeShort(ObjectStreamConstants.STREAM_VERSION); out.writeByte(ObjectStreamConstants.TC_OBJECT); out.writeByte(ObjectStreamConstants.TC_CLASSDESC); out.writeUTF(serClass.getName()); out.writeLong(serVer); out.writeByte(ObjectStreamConstants.SC_SERIALIZABLE); // Flags ObjectStreamConstants out.writeShort(0); // number of fields out.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); out.writeByte(ObjectStreamConstants.TC_NULL); // no superclasses } byte[] bytes = baos.toByteArray(); try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes); ObjectInputStream in = new ObjectInputStream(bis)) { Object o = in.readObject(); } catch (Exception ioe) { // Expected exception return; } fail("Class should not be deserializable " + serClass.getName()); }
Example #14
Source File: TCKChronoLocalDateSerialization.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
@Test() public void test_hijrahSerialization_format() throws Exception { HijrahChronology chrono = HijrahChronology.INSTANCE; HijrahDate date = HijrahDate.of(1433, 10, 29); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // Expect the type of the HijrahDate in the stream byte[] hijrahDateBytes = new byte[] {HIJRAH_DATE_TYPE}; // Literal reference to Hijrah-Umalqura Chronology byte[] hijrahChronoBytes = new byte[] { 115, 113, 0, 126, 0, 0, /* p w \u0001 \u0006 s q \u0000 ~ \u0000 \u0000 */ 119, 18, 1, 0, 15, 72, 105, 106, 114, 97, /* w \u0012 \u0001 \u0000 \u000f H i j r a */ 104, 45, 117, 109, 97, 108, 113, 117, 114, 97, /* h - u m a l q u r a */ 120, /* \u001d x */ }; // Build the sequence that represents the data in the stream baos = new ByteArrayOutputStream(); try (DataOutputStream dos = new DataOutputStream(baos) ) { dos.writeByte(ObjectStreamConstants.TC_BLOCKDATA); dos.writeByte(6); // 6 bytes follow dos.writeInt(date.get(YEAR)); dos.writeByte(date.get(MONTH_OF_YEAR)); dos.writeByte(date.get(DAY_OF_MONTH)); dos.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); } byte[] dateBytes = baos.toByteArray(); assertSerializedBySer(date, hijrahDateBytes, hijrahChronoBytes, dateBytes); }
Example #15
Source File: MarshalledObject.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
/** * Creates a new <code>MarshalledObjectOutputStream</code> whose * non-location bytes will be written to <code>objOut</code> and whose * location annotations (if any) will be written to * <code>locOut</code>. */ MarshalledObjectOutputStream(OutputStream objOut, OutputStream locOut) throws IOException { super(objOut); this.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2); this.locOut = new ObjectOutputStream(locOut); hadAnnotations = false; }
Example #16
Source File: AbstractTCKTest.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
/** * Verify the class cannot be deserialized from a handcoded stream. * Fail if the deserialization does <em>not</em> throw an Exception. * @param serClass the class to embed in the handcoded stream * @throws Exception if an unexpected condition occurs */ protected static void assertNotSerializable(Class<?> serClass) throws Exception { Field field = serClass.getDeclaredField("serialVersionUID"); field.setAccessible(true); long serVer = (Long) field.get(null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (DataOutputStream out = new DataOutputStream(baos)) { out.writeShort(ObjectStreamConstants.STREAM_MAGIC); out.writeShort(ObjectStreamConstants.STREAM_VERSION); out.writeByte(ObjectStreamConstants.TC_OBJECT); out.writeByte(ObjectStreamConstants.TC_CLASSDESC); out.writeUTF(serClass.getName()); out.writeLong(serVer); out.writeByte(ObjectStreamConstants.SC_SERIALIZABLE); // Flags ObjectStreamConstants out.writeShort(0); // number of fields out.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); out.writeByte(ObjectStreamConstants.TC_NULL); // no superclasses } byte[] bytes = baos.toByteArray(); try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes); ObjectInputStream in = new ObjectInputStream(bis)) { Object o = in.readObject(); } catch (Exception ioe) { // Expected exception return; } fail("Class should not be deserializable " + serClass.getName()); }
Example #17
Source File: TCKChronoLocalDateSerialization.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
@Test() public void test_hijrahSerialization_format() throws Exception { HijrahChronology chrono = HijrahChronology.INSTANCE; HijrahDate date = HijrahDate.of(1433, 10, 29); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // Expect the type of the HijrahDate in the stream byte[] hijrahDateBytes = new byte[] {HIJRAH_DATE_TYPE}; // Literal reference to Hijrah-Umalqura Chronology byte[] hijrahChronoBytes = new byte[] { 115, 113, 0, 126, 0, 0, /* p w \u0001 \u0006 s q \u0000 ~ \u0000 \u0000 */ 119, 18, 1, 0, 15, 72, 105, 106, 114, 97, /* w \u0012 \u0001 \u0000 \u000f H i j r a */ 104, 45, 117, 109, 97, 108, 113, 117, 114, 97, /* h - u m a l q u r a */ 120, /* \u001d x */ }; // Build the sequence that represents the data in the stream baos = new ByteArrayOutputStream(); try (DataOutputStream dos = new DataOutputStream(baos) ) { dos.writeByte(ObjectStreamConstants.TC_BLOCKDATA); dos.writeByte(6); // 6 bytes follow dos.writeInt(date.get(YEAR)); dos.writeByte(date.get(MONTH_OF_YEAR)); dos.writeByte(date.get(DAY_OF_MONTH)); dos.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); } byte[] dateBytes = baos.toByteArray(); assertSerializedBySer(date, hijrahDateBytes, hijrahChronoBytes, dateBytes); }
Example #18
Source File: MarshalledObject.java From jdk8u_jdk with GNU General Public License v2.0 | 5 votes |
/** * Creates a new <code>MarshalledObjectOutputStream</code> whose * non-location bytes will be written to <code>objOut</code> and whose * location annotations (if any) will be written to * <code>locOut</code>. */ MarshalledObjectOutputStream(OutputStream objOut, OutputStream locOut) throws IOException { super(objOut); this.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2); this.locOut = new ObjectOutputStream(locOut); hadAnnotations = false; }
Example #19
Source File: AbstractTCKTest.java From jdk8u_jdk with GNU General Public License v2.0 | 5 votes |
/** * Verify the class cannot be deserialized from a handcoded stream. * Fail if the deserialization does <em>not</em> throw an Exception. * @param serClass the class to embed in the handcoded stream * @throws Exception if an unexpected condition occurs */ protected static void assertNotSerializable(Class<?> serClass) throws Exception { Field field = serClass.getDeclaredField("serialVersionUID"); field.setAccessible(true); long serVer = (Long) field.get(null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (DataOutputStream out = new DataOutputStream(baos)) { out.writeShort(ObjectStreamConstants.STREAM_MAGIC); out.writeShort(ObjectStreamConstants.STREAM_VERSION); out.writeByte(ObjectStreamConstants.TC_OBJECT); out.writeByte(ObjectStreamConstants.TC_CLASSDESC); out.writeUTF(serClass.getName()); out.writeLong(serVer); out.writeByte(ObjectStreamConstants.SC_SERIALIZABLE); // Flags ObjectStreamConstants out.writeShort(0); // number of fields out.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); out.writeByte(ObjectStreamConstants.TC_NULL); // no superclasses } byte[] bytes = baos.toByteArray(); try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes); ObjectInputStream in = new ObjectInputStream(bis)) { Object o = in.readObject(); } catch (Exception ioe) { // Expected exception return; } fail("Class should not be deserializable " + serClass.getName()); }
Example #20
Source File: TCKChronoLocalDateSerialization.java From jdk8u_jdk with GNU General Public License v2.0 | 5 votes |
@Test() public void test_hijrahSerialization_format() throws Exception { HijrahChronology chrono = HijrahChronology.INSTANCE; HijrahDate date = HijrahDate.of(1433, 10, 29); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // Expect the type of the HijrahDate in the stream byte[] hijrahDateBytes = new byte[] {HIJRAH_DATE_TYPE}; // Literal reference to Hijrah-Umalqura Chronology byte[] hijrahChronoBytes = new byte[] { 115, 113, 0, 126, 0, 0, /* p w \u0001 \u0006 s q \u0000 ~ \u0000 \u0000 */ 119, 18, 1, 0, 15, 72, 105, 106, 114, 97, /* w \u0012 \u0001 \u0000 \u000f H i j r a */ 104, 45, 117, 109, 97, 108, 113, 117, 114, 97, /* h - u m a l q u r a */ 120, /* \u001d x */ }; // Build the sequence that represents the data in the stream baos = new ByteArrayOutputStream(); try (DataOutputStream dos = new DataOutputStream(baos) ) { dos.writeByte(ObjectStreamConstants.TC_BLOCKDATA); dos.writeByte(6); // 6 bytes follow dos.writeInt(date.get(YEAR)); dos.writeByte(date.get(MONTH_OF_YEAR)); dos.writeByte(date.get(DAY_OF_MONTH)); dos.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); } byte[] dateBytes = baos.toByteArray(); assertSerializedBySer(date, hijrahDateBytes, hijrahChronoBytes, dateBytes); }
Example #21
Source File: CompatibleMarshallingDecoder.java From netty4.0.27Learn with Apache License 2.0 | 5 votes |
@Override protected void decodeLast(ChannelHandlerContext ctx, ByteBuf buffer, List<Object> out) throws Exception { switch (buffer.readableBytes()) { case 0: return; case 1: // Ignore the last TC_RESET if (buffer.getByte(buffer.readerIndex()) == ObjectStreamConstants.TC_RESET) { buffer.skipBytes(1); return; } } decode(ctx, buffer, out); }
Example #22
Source File: MarshalledObject.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
/** * Creates a new <code>MarshalledObjectOutputStream</code> whose * non-location bytes will be written to <code>objOut</code> and whose * location annotations (if any) will be written to * <code>locOut</code>. */ MarshalledObjectOutputStream(OutputStream objOut, OutputStream locOut) throws IOException { super(objOut); this.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2); this.locOut = new ObjectOutputStream(locOut); hadAnnotations = false; }
Example #23
Source File: AbstractTCKTest.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
/** * Verify the class cannot be deserialized from a handcoded stream. * Fail if the deserialization does <em>not</em> throw an Exception. * @param serClass the class to embed in the handcoded stream * @throws Exception if an unexpected condition occurs */ protected static void assertNotSerializable(Class<?> serClass) throws Exception { Field field = serClass.getDeclaredField("serialVersionUID"); field.setAccessible(true); long serVer = (Long) field.get(null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (DataOutputStream out = new DataOutputStream(baos)) { out.writeShort(ObjectStreamConstants.STREAM_MAGIC); out.writeShort(ObjectStreamConstants.STREAM_VERSION); out.writeByte(ObjectStreamConstants.TC_OBJECT); out.writeByte(ObjectStreamConstants.TC_CLASSDESC); out.writeUTF(serClass.getName()); out.writeLong(serVer); out.writeByte(ObjectStreamConstants.SC_SERIALIZABLE); // Flags ObjectStreamConstants out.writeShort(0); // number of fields out.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); out.writeByte(ObjectStreamConstants.TC_NULL); // no superclasses } byte[] bytes = baos.toByteArray(); try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes); ObjectInputStream in = new ObjectInputStream(bis)) { Object o = in.readObject(); } catch (Exception ioe) { // Expected exception return; } fail("Class should not be deserializable " + serClass.getName()); }
Example #24
Source File: TCKChronoLocalDateSerialization.java From jdk8u-jdk with GNU General Public License v2.0 | 5 votes |
@Test() public void test_hijrahSerialization_format() throws Exception { HijrahChronology chrono = HijrahChronology.INSTANCE; HijrahDate date = HijrahDate.of(1433, 10, 29); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // Expect the type of the HijrahDate in the stream byte[] hijrahDateBytes = new byte[] {HIJRAH_DATE_TYPE}; // Literal reference to Hijrah-Umalqura Chronology byte[] hijrahChronoBytes = new byte[] { 115, 113, 0, 126, 0, 0, /* p w \u0001 \u0006 s q \u0000 ~ \u0000 \u0000 */ 119, 18, 1, 0, 15, 72, 105, 106, 114, 97, /* w \u0012 \u0001 \u0000 \u000f H i j r a */ 104, 45, 117, 109, 97, 108, 113, 117, 114, 97, /* h - u m a l q u r a */ 120, /* \u001d x */ }; // Build the sequence that represents the data in the stream baos = new ByteArrayOutputStream(); try (DataOutputStream dos = new DataOutputStream(baos) ) { dos.writeByte(ObjectStreamConstants.TC_BLOCKDATA); dos.writeByte(6); // 6 bytes follow dos.writeInt(date.get(YEAR)); dos.writeByte(date.get(MONTH_OF_YEAR)); dos.writeByte(date.get(DAY_OF_MONTH)); dos.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); } byte[] dateBytes = baos.toByteArray(); assertSerializedBySer(date, hijrahDateBytes, hijrahChronoBytes, dateBytes); }
Example #25
Source File: MarshalledObject.java From jdk-1.7-annotated with Apache License 2.0 | 5 votes |
/** * Creates a new <code>MarshalledObjectOutputStream</code> whose * non-location bytes will be written to <code>objOut</code> and whose * location annotations (if any) will be written to * <code>locOut</code>. */ MarshalledObjectOutputStream(OutputStream objOut, OutputStream locOut) throws IOException { super(objOut); this.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2); this.locOut = new ObjectOutputStream(locOut); hadAnnotations = false; }
Example #26
Source File: MarshalledObject.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 5 votes |
/** * Creates a new <code>MarshalledObjectOutputStream</code> whose * non-location bytes will be written to <code>objOut</code> and whose * location annotations (if any) will be written to * <code>locOut</code>. */ MarshalledObjectOutputStream(OutputStream objOut, OutputStream locOut) throws IOException { super(objOut); this.useProtocolVersion(ObjectStreamConstants.PROTOCOL_VERSION_2); this.locOut = new ObjectOutputStream(locOut); hadAnnotations = false; }
Example #27
Source File: AbstractTCKTest.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 5 votes |
/** * Verify the class cannot be deserialized from a handcoded stream. * Fail if the deserialization does <em>not</em> throw an Exception. * @param serClass the class to embed in the handcoded stream * @throws Exception if an unexpected condition occurs */ protected static void assertNotSerializable(Class<?> serClass) throws Exception { Field field = serClass.getDeclaredField("serialVersionUID"); field.setAccessible(true); long serVer = (Long) field.get(null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (DataOutputStream out = new DataOutputStream(baos)) { out.writeShort(ObjectStreamConstants.STREAM_MAGIC); out.writeShort(ObjectStreamConstants.STREAM_VERSION); out.writeByte(ObjectStreamConstants.TC_OBJECT); out.writeByte(ObjectStreamConstants.TC_CLASSDESC); out.writeUTF(serClass.getName()); out.writeLong(serVer); out.writeByte(ObjectStreamConstants.SC_SERIALIZABLE); // Flags ObjectStreamConstants out.writeShort(0); // number of fields out.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); out.writeByte(ObjectStreamConstants.TC_NULL); // no superclasses } byte[] bytes = baos.toByteArray(); try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes); ObjectInputStream in = new ObjectInputStream(bis)) { Object o = in.readObject(); } catch (Exception ioe) { // Expected exception return; } fail("Class should not be deserializable " + serClass.getName()); }
Example #28
Source File: TCKChronoLocalDateSerialization.java From jdk8u-dev-jdk with GNU General Public License v2.0 | 5 votes |
@Test() public void test_hijrahSerialization_format() throws Exception { HijrahChronology chrono = HijrahChronology.INSTANCE; HijrahDate date = HijrahDate.of(1433, 10, 29); ByteArrayOutputStream baos = new ByteArrayOutputStream(); // Expect the type of the HijrahDate in the stream byte[] hijrahDateBytes = new byte[] {HIJRAH_DATE_TYPE}; // Literal reference to Hijrah-Umalqura Chronology byte[] hijrahChronoBytes = new byte[] { 115, 113, 0, 126, 0, 0, /* p w \u0001 \u0006 s q \u0000 ~ \u0000 \u0000 */ 119, 18, 1, 0, 15, 72, 105, 106, 114, 97, /* w \u0012 \u0001 \u0000 \u000f H i j r a */ 104, 45, 117, 109, 97, 108, 113, 117, 114, 97, /* h - u m a l q u r a */ 120, /* \u001d x */ }; // Build the sequence that represents the data in the stream baos = new ByteArrayOutputStream(); try (DataOutputStream dos = new DataOutputStream(baos) ) { dos.writeByte(ObjectStreamConstants.TC_BLOCKDATA); dos.writeByte(6); // 6 bytes follow dos.writeInt(date.get(YEAR)); dos.writeByte(date.get(MONTH_OF_YEAR)); dos.writeByte(date.get(DAY_OF_MONTH)); dos.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); } byte[] dateBytes = baos.toByteArray(); assertSerializedBySer(date, hijrahDateBytes, hijrahChronoBytes, dateBytes); }
Example #29
Source File: AbstractTCKTest.java From j2objc with Apache License 2.0 | 5 votes |
/** * Verify the class cannot be deserialized from a handcoded stream. * Fail if the deserialization does <em>not</em> throw an Exception. * @param serClass the class to embed in the handcoded stream * @throws Exception if an unexpected condition occurs */ protected static void assertNotSerializable(Class<?> serClass) throws Exception { Field field = serClass.getDeclaredField("serialVersionUID"); field.setAccessible(true); long serVer = (Long) field.get(null); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (DataOutputStream out = new DataOutputStream(baos)) { out.writeShort(ObjectStreamConstants.STREAM_MAGIC); out.writeShort(ObjectStreamConstants.STREAM_VERSION); out.writeByte(ObjectStreamConstants.TC_OBJECT); out.writeByte(ObjectStreamConstants.TC_CLASSDESC); out.writeUTF(serClass.getName()); out.writeLong(serVer); out.writeByte(ObjectStreamConstants.SC_SERIALIZABLE); // Flags ObjectStreamConstants out.writeShort(0); // number of fields out.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); out.writeByte(ObjectStreamConstants.TC_NULL); // no superclasses } byte[] bytes = baos.toByteArray(); try (ByteArrayInputStream bis = new ByteArrayInputStream(bytes); ObjectInputStream in = new ObjectInputStream(bis)) { Object o = in.readObject(); } catch (Exception ioe) { // Expected exception return; } fail("Class should not be deserializable " + serClass.getName()); }
Example #30
Source File: ObjectInputStreamInstantiator.java From objenesis with Apache License 2.0 | 5 votes |
public MockStream(Class<?> clazz) { this.pointer = 0; this.sequence = 0; this.data = HEADER; // (byte) TC_OBJECT // (byte) TC_CLASSDESC // (short length) // (byte * className.length) // (long)serialVersionUID // (byte) SC_SERIALIZABLE // (short)0 <fields> // TC_ENDBLOCKDATA // TC_NULL ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); DataOutputStream dout = new DataOutputStream(byteOut); try { dout.writeByte(ObjectStreamConstants.TC_OBJECT); dout.writeByte(ObjectStreamConstants.TC_CLASSDESC); dout.writeUTF(clazz.getName()); dout.writeLong(ObjectStreamClass.lookup(clazz).getSerialVersionUID()); dout.writeByte(ObjectStreamConstants.SC_SERIALIZABLE); dout.writeShort((short) 0); // Zero fields dout.writeByte(ObjectStreamConstants.TC_ENDBLOCKDATA); dout.writeByte(ObjectStreamConstants.TC_NULL); } catch(IOException e) { throw new Error("IOException: " + e.getMessage()); } this.FIRST_DATA = byteOut.toByteArray(); buffers = new byte[][] {HEADER, FIRST_DATA, REPEATING_DATA}; }