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)

Reply via email to