[jboss-jira] [JBoss JIRA] (WFLY-4278) byte[] saved to Oracle BLOB can not be read back
Lubos Pechac (JIRA)
issues at jboss.org
Mon Feb 16 07:02:49 EST 2015
[ https://issues.jboss.org/browse/WFLY-4278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13040473#comment-13040473 ]
Lubos Pechac commented on WFLY-4278:
------------------------------------
I think it's this: https://hibernate.atlassian.net/browse/HHH-9263
> byte[] saved to Oracle BLOB can not be read back
> ------------------------------------------------
>
> Key: WFLY-4278
> URL: https://issues.jboss.org/browse/WFLY-4278
> Project: WildFly
> Issue Type: Bug
> Components: JPA / Hibernate
> Affects Versions: 8.2.0.Final
> Environment: Linux 64bit, Oracle JDK 7 or 8, WildFly 8.2.0.Final
> Reporter: Lubos Pechac
> Assignee: Scott Marlow
> Attachments: wildfly-testcase.zip
>
>
> Since upgrading to Wildfly (Hibernate 4.3.7) we are experiencing problems persisting certain entities to an Oracle database.
> The entity contains an attribute of type java.lang.Serializable and is mapped to an Oracle BLOB column.
> When the value of the Serializable attribute is a byte[] then this is not properly serialized to the database.
> The value stored does not correspond to the Java Object Serialization Specification, instead the exact contents of the byte array are saved, without the usual header information associated with Java Object Serialization.
>
> When we try to read this back from the database into our entity we get the exception shown below, so basically Hibernate cannot read what it wrote.
>
> We have attached a test case to demonstrate this problem.
>
> Caused by: org.hibernate.type.SerializationException: could not deserialize
> at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:262) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.internal.util.SerializationHelper.deserialize(SerializationHelper.java:306) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.fromBytes(SerializableTypeDescriptor.java:155) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:130) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:44) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.type.descriptor.sql.VarbinaryTypeDescriptor$2.doExtract(VarbinaryTypeDescriptor.java:71) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:267) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:263) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:338) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2969) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.loader.plan.exec.process.internal.EntityReferenceInitializerImpl.loadFromResultSet(EntityReferenceInitializerImpl.java:324) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.loader.plan.exec.process.internal.EntityReferenceInitializerImpl.hydrateEntityState(EntityReferenceInitializerImpl.java:251) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.readRow(AbstractRowReader.java:107) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.loader.plan.exec.internal.EntityLoadQueryDetails$EntityLoaderRowReader.readRow(EntityLoadQueryDetails.java:255) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl.extractResults(ResultSetProcessorImpl.java:129) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:138) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:102) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.loader.entity.plan.AbstractLoadPlanBasedEntityLoader.load(AbstractLoadPlanBasedEntityLoader.java:186) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.loader.entity.plan.LegacyBatchingEntityLoaderBuilder$LegacyBatchingEntityLoader.load(LegacyBatchingEntityLoaderBuilder.java:130) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:4126) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:503) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:468) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:213) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:275) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:151) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1070) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.internal.SessionImpl.access$2000(SessionImpl.java:176) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load(SessionImpl.java:2551) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.internal.SessionImpl.get(SessionImpl.java:955) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1110) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
> ... 183 more
> Caused by: java.io.StreamCorruptedException: invalid stream header: 63726561
> at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:804) [rt.jar:1.7.0_71]
> at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299) [rt.jar:1.7.0_71]
> at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:328) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:318) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:237) [hibernate-core-4.3.7.Final.jar:4.3.7.Final]
> ... 214 more
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
More information about the jboss-jira
mailing list