java.io.StreamCorruptedException

If you like a tip written by other Samebug users, mark is as helpful! Marks help our algorithm provide you better solutions and also help other users.
tip

Update Tomcat container adapters to 1.0.0.CR8 or further. If that doesn't work, "0D0A3C21" in ASCII is "

tip

If you're using Liferay, check the steps in the last message on how to fix it: https://goo.gl/feXWKU

You have a different solution? A short tip here would help you and many other users who saw this issue last week.

  • Re:StreamCorruptedException
    via by mcintosh,
  • Sending XML to Servlet from Action Script
    via Stack Overflow by John Doe
    ,
  • after upgrading from annotations 3.3.0GA to 3.3.1GA, my mapped collection (ManyToMany) is broken. i've identified the commit that broke it: http://fisheye.jboss.com/browse/Hibernate/annotations/trunk/src/java/org/hibernate/cfg/annotations/MapBinder.java?r1=12963&r2=14425 The issue is that unless the type is given now expliticly in the @MapKey's @Type, the code now assumes a 'Serializable' type, and attempts to deserialize an object stream from the database column value. the exact exception is: java.io.StreamCorruptedException: invalid stream header at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:764) at java.io.ObjectInputStream.<init>(ObjectInputStream.java:277) at org.hibernate.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:252) at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:209) at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:240) at org.hibernate.type.SerializableType.fromBytes(SerializableType.java:82) at org.hibernate.type.SerializableType.get(SerializableType.java:39) at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163) ... The fix is simple: if @Type is NOT given in the @MapKey annotation, keep the old behavior which at least tries to set the type, even if it may not work in all situations. The attached patch fixes the problem for me. In my particular situation, the map key type is a java.lang.Enum. Here's what my annotated property looks like: @ManyToMany @JoinTable( name="chargeback_owner" ,joinColumns=@JoinColumn(name="person_id",referencedColumnName="person_id") ,inverseJoinColumns=@JoinColumn(name="owner_person_id") ) @MapKey(columns=@Column(name="owner_type_cd"),targetElement=ChargebackOwnerType.class) @Enumerated(EnumType.STRING) @Sort(type=SortType.NATURAL) private SortedMap<ChargebackOwnerType,Person> owners = new TreeMap<ChargebackOwnerType, Person>();
    via by David Mansfield,
    • java.io.StreamCorruptedException: invalid stream header at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:764) at java.io.ObjectInputStream.<init>(ObjectInputStream.java:277) at net.sf.ehcache.store.compound.factories.DiskStorageFactory$2.<init>(DiskStorageFactory.java:272) at net.sf.ehcache.store.compound.factories.DiskStorageFactory.read(DiskStorageFactory.java:272) at net.sf.ehcache.store.compound.factories.DiskPersistentStorageFactory.retrieve(DiskPersistentStorageFactory.java:203)

    Users with the same issue

    Unknown visitor1 times, last one,
    Axelo
    1 times, last one,
    Unknown visitor1 times, last one,
    Unknown visitor1 times, last one,
    tererecool
    6 times, last one,
    48 more bugmates