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)