[ 
https://issues.apache.org/jira/browse/IGNITE-3429?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15548523#comment-15548523
 ] 

Fred edited comment on IGNITE-3429 at 10/5/16 12:14 PM:
--------------------------------------------------------

Having issues when using OptimizedMarshaller and @EmbeddedId.

OptimizedMarshaller.marhsal(Object obj)
obj.type appears to be org.hibernate.type.ComponentType which doesnt appear to 
be marshalled / unmarshalled correctly (assuming since has reference to 
SessionFactoryImpl, etc):

Caused by: org.hibernate.cache.CacheException: class 
org.apache.ignite.IgniteCheckedException: Failed to deserialize object with 
given class loader: 
org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CacheClassLoader@1ca4a47
        at 
org.apache.ignite.cache.hibernate.HibernateReadWriteAccessStrategy.get(HibernateReadWriteAccessStrategy.java:89)
        at 
org.apache.ignite.cache.hibernate.HibernateAbstractRegionAccessStrategy.get(HibernateAbstractRegionAccessStrategy.java:41)
        at 
org.hibernate.engine.internal.CacheHelper.fromSharedCache(CacheHelper.java:55)
        at 
org.hibernate.engine.internal.CacheHelper.fromSharedCache(CacheHelper.java:67)
        at 
org.hibernate.event.internal.DefaultLoadEventListener.loadFromSecondLevelCache(DefaultLoadEventListener.java:598)
        at 
org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:452)
        at 
org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:213)
        at 
org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:275)
        at 
org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:151)
        at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1106)
        at org.hibernate.internal.SessionImpl.access$2000(SessionImpl.java:176)
        at 
org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load(SessionImpl.java:2587)
        at org.hibernate.internal.SessionImpl.get(SessionImpl.java:991)
        at 
org.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1110)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to 
deserialize object with given class loader: 
org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CacheClassLoader@1ca4a47
        at 
org.apache.ignite.marshaller.optimized.OptimizedMarshaller.unmarshal(OptimizedMarshaller.java:250)
        at 
org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessorImpl.unmarshal(IgniteCacheObjectProcessorImpl.java:111)
        at 
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.unmarshal(CacheObjectBinaryProcessorImpl.java:766)
        at 
org.apache.ignite.internal.processors.cache.KeyCacheObjectImpl.finishUnmarshal(KeyCacheObjectImpl.java:147)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearSingleGetRequest.finishUnmarshal(GridNearSingleGetRequest.java:246)
        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.unmarshall(GridCacheIoManager.java:1215)
        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:348)
        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:277)
        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:88)
        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:231)
        at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1238)
        at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:866)
        at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:106)
        at 
org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:829)
Caused by: java.io.InvalidObjectException: Could not find a SessionFactory 
[uuid=66fcaa43-9434-45f8-8f34-e3f9f3e11d51,name=null]
        at 
org.hibernate.internal.SessionFactoryImpl.locateSessionFactoryOnDeserialization(SessionFactoryImpl.java:1781)
        at 
org.hibernate.internal.SessionFactoryImpl.readResolve(SessionFactoryImpl.java:1761)


was (Author: fwvista):
Having issues when using OptimizedMarshaller and @EmbeddedId.

OptimizedMarshaller.marhsal(Object obj)
obj.type appears to be org.hibernate.type.ComponentType which doesnt appear to 
be marshalled / unmarshalled correctly:

Caused by: org.hibernate.cache.CacheException: class 
org.apache.ignite.IgniteCheckedException: Failed to deserialize object with 
given class loader: 
org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CacheClassLoader@1ca4a47
        at 
org.apache.ignite.cache.hibernate.HibernateReadWriteAccessStrategy.get(HibernateReadWriteAccessStrategy.java:89)
        at 
org.apache.ignite.cache.hibernate.HibernateAbstractRegionAccessStrategy.get(HibernateAbstractRegionAccessStrategy.java:41)
        at 
org.hibernate.engine.internal.CacheHelper.fromSharedCache(CacheHelper.java:55)
        at 
org.hibernate.engine.internal.CacheHelper.fromSharedCache(CacheHelper.java:67)
        at 
org.hibernate.event.internal.DefaultLoadEventListener.loadFromSecondLevelCache(DefaultLoadEventListener.java:598)
        at 
org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:452)
        at 
org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:213)
        at 
org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:275)
        at 
org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:151)
        at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1106)
        at org.hibernate.internal.SessionImpl.access$2000(SessionImpl.java:176)
        at 
org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load(SessionImpl.java:2587)
        at org.hibernate.internal.SessionImpl.get(SessionImpl.java:991)
        at 
org.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1110)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to 
deserialize object with given class loader: 
org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager$CacheClassLoader@1ca4a47
        at 
org.apache.ignite.marshaller.optimized.OptimizedMarshaller.unmarshal(OptimizedMarshaller.java:250)
        at 
org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessorImpl.unmarshal(IgniteCacheObjectProcessorImpl.java:111)
        at 
org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.unmarshal(CacheObjectBinaryProcessorImpl.java:766)
        at 
org.apache.ignite.internal.processors.cache.KeyCacheObjectImpl.finishUnmarshal(KeyCacheObjectImpl.java:147)
        at 
org.apache.ignite.internal.processors.cache.distributed.near.GridNearSingleGetRequest.finishUnmarshal(GridNearSingleGetRequest.java:246)
        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.unmarshall(GridCacheIoManager.java:1215)
        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:348)
        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:277)
        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:88)
        at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:231)
        at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1238)
        at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:866)
        at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:106)
        at 
org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:829)
Caused by: java.io.InvalidObjectException: Could not find a SessionFactory 
[uuid=66fcaa43-9434-45f8-8f34-e3f9f3e11d51,name=null]
        at 
org.hibernate.internal.SessionFactoryImpl.locateSessionFactoryOnDeserialization(SessionFactoryImpl.java:1781)
        at 
org.hibernate.internal.SessionFactoryImpl.readResolve(SessionFactoryImpl.java:1761)

> org.hibernate.cache.spi.CacheKey not properly serialized by binary marshaller
> -----------------------------------------------------------------------------
>
>                 Key: IGNITE-3429
>                 URL: https://issues.apache.org/jira/browse/IGNITE-3429
>             Project: Ignite
>          Issue Type: Bug
>          Components: cache
>    Affects Versions: 1.6
>            Reporter: Valentin Kulichenko
>            Priority: Critical
>             Fix For: 1.8
>
>
> {{org.hibernate.cache.spi.CacheKey}} is a class used as a key for all entries 
> in the Hibernate L2 cache. This class contains {{type}} field and custom 
> {{equals}} logic where the type is used as a helper and does not participate 
> in comparison. Instances of the same type are producing different hash codes 
> in different JVMs, which actually breaks comparison when binary format is 
> used, where byte arrays are compared.
> The issue is described in more detail here: 
> http://stackoverflow.com/questions/38132263/apache-ignite-as-hibernate-l2-cache-storing-duplicate-entities



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to