You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Anilkumar Gingade (JIRA)" <ji...@apache.org> on 2017/06/21 22:41:00 UTC
[jira] [Created] (GEODE-3114) Inconsistency between partition and
non-partition region with pdx persistence.
Anilkumar Gingade created GEODE-3114:
----------------------------------------
Summary: Inconsistency between partition and non-partition region with pdx persistence.
Key: GEODE-3114
URL: https://issues.apache.org/jira/browse/GEODE-3114
Project: Geode
Issue Type: Bug
Components: persistence
Reporter: Anilkumar Gingade
When there is a persistent partition region and non-persistent non-partition region; a pdx value could be added into non-persistent non-partition region. But when there is persistent partition and non-persistent partition region, an error is thrown while adding pdx into non-persistent region.
Case 1:
Create region1 with persistent partition
Create region2 with non-persistent non-partition
Add pdx to region2, there is no exception.
Case 2:
Create region1 with persistent partition
Create region2 with non-persistent partition
Add pdx to region2, following exception is thrown.
Exception:
Caused by: org.apache.geode.pdx.PdxInitializationException: The PDX metadata must be persistent in a member that has persistent data. See CacheFactory.setPdxPersistent.
Failed to Load Region.
org.apache.geode.ToDataException: toData failed on PdxSerializable class PortfolioPdx
at org.apache.geode.internal.InternalDataSerializer.writePdx(InternalDataSerializer.java:3007)
at org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2077)
at org.apache.geode.DataSerializer.writeObject(DataSerializer.java:2936)
at org.apache.geode.internal.cache.CachedDeserializableFactory.calcSerializedSize(CachedDeserializableFactory.java:243)
at org.apache.geode.internal.cache.EntryEventImpl.getNewValSizeForPR(EntryEventImpl.java:2215)
at org.apache.geode.internal.cache.PartitionedRegion.virtualPut(PartitionedRegion.java:1998)
at org.apache.geode.internal.cache.LocalRegionDataView.putEntry(LocalRegionDataView.java:151)
at org.apache.geode.internal.cache.LocalRegion.basicPut(LocalRegion.java:5043)
at org.apache.geode.internal.cache.LocalRegion.validatedPut(LocalRegion.java:1592)
at org.apache.geode.internal.cache.LocalRegion.put(LocalRegion.java:1579)
at org.apache.geode.internal.cache.AbstractRegion.put(AbstractRegion.java:325)
at CqServer.loadPdx(CqServer.java:356)
at CqServer.main(CqServer.java:66)
Caused by: org.apache.geode.pdx.PdxInitializationException: The PDX metadata must be persistent in a member that has persistent data. See CacheFactory.setPdxPersistent.
at org.apache.geode.pdx.internal.PeerTypeRegistration.checkAllowed(PeerTypeRegistration.java:543)
at org.apache.geode.pdx.internal.PeerTypeRegistration.verifyConfiguration(PeerTypeRegistration.java:518)
at org.apache.geode.pdx.internal.PeerTypeRegistration.defineType(PeerTypeRegistration.java:373)
at org.apache.geode.pdx.internal.TypeRegistry.defineType(TypeRegistry.java:200)
at org.apache.geode.pdx.internal.TypeRegistry.defineLocalType(TypeRegistry.java:241)
at org.apache.geode.pdx.internal.PdxWriterImpl.completeByteStreamGeneration(PdxWriterImpl.java:515)
at org.apache.geode.internal.InternalDataSerializer.writePdx(InternalDataSerializer.java:3010)
at org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2077)
at org.apache.geode.pdx.internal.PdxOutputStream.writeObject(PdxOutputStream.java:82)
at org.apache.geode.pdx.internal.PdxWriterImpl.writeObject(PdxWriterImpl.java:329)
at org.apache.geode.pdx.internal.PdxWriterImpl.writeObject(PdxWriterImpl.java:319)
at PortfolioPdx.toData(PortfolioPdx.java:270)
at org.apache.geode.internal.InternalDataSerializer.writePdx(InternalDataSerializer.java:2977)
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)