You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "John Blum (Jira)" <ji...@apache.org> on 2019/10/31 17:33:00 UTC

[jira] [Updated] (GEODE-7381) PDX Serialization throws an Exception with an incorrect incorrect error message when a domain type does not have a public, no-arg constructor

     [ https://issues.apache.org/jira/browse/GEODE-7381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

John Blum updated GEODE-7381:
-----------------------------
    Summary: PDX Serialization throws an Exception with an incorrect incorrect error message when a domain type does not have a public, no-arg constructor  (was: PDX Serialization throws an Exception with an incorrect incorrect error message when a domain type does not have a public, no-arg Constructor)

> PDX Serialization throws an Exception with an incorrect incorrect error message when a domain type does not have a public, no-arg constructor
> ---------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GEODE-7381
>                 URL: https://issues.apache.org/jira/browse/GEODE-7381
>             Project: Geode
>          Issue Type: Bug
>            Reporter: John Blum
>            Priority: Major
>
> Apache Geode throws an incorrect {{PdxSerializationException}} with message "_Could not deserialize pdx because the pdx serializer's fromData returned false for a pdx of class com.springone.austin.vursys.battle.model.Vote_", instead.
> The Stack Trace is:
> {code:java}
> Caused by: org.apache.geode.pdx.PdxSerializationException: Could not deserialize pdx because the pdx serializer's fromData returned false for a pdx of class com.springone.austin.vursys.battle.model.Vote
> 	at org.apache.geode.pdx.internal.PdxReaderImpl.basicGetObject(PdxReaderImpl.java:823)
> 	at org.apache.geode.pdx.internal.PdxReaderImpl.getObject(PdxReaderImpl.java:753)
> 	at org.apache.geode.internal.InternalDataSerializer.readPdxSerializable(InternalDataSerializer.java:3153)
> 	at org.apache.geode.internal.InternalDataSerializer.basicReadObject(InternalDataSerializer.java:2916)
> 	at org.apache.geode.DataSerializer.readObject(DataSerializer.java:2978)
> 	at org.apache.geode.internal.util.BlobHelper.deserializeBlob(BlobHelper.java:90)
> 	at org.apache.geode.internal.cache.EntryEventImpl.deserialize(EntryEventImpl.java:2013)
> 	at org.apache.geode.internal.cache.EntryEventImpl.deserialize(EntryEventImpl.java:2006)
> 	at org.apache.geode.internal.cache.VMCachedDeserializable.getDeserializedValue(VMCachedDeserializable.java:132)
> 	at org.apache.geode.internal.cache.LocalRegion.getDeserialized(LocalRegion.java:1336)
> 	at org.apache.geode.internal.cache.NonTXEntry.getValue(NonTXEntry.java:91)
> 	at org.apache.geode.internal.cache.LocalDataSet$LocalEntriesSet$LocalEntriesSetIterator.moveNext(LocalDataSet.java:781)
> 	at org.apache.geode.internal.cache.LocalDataSet$LocalEntriesSet$LocalEntriesSetIterator.<init>(LocalDataSet.java:735)
> 	at org.apache.geode.internal.cache.LocalDataSet$LocalEntriesSet.iterator(LocalDataSet.java:722)
> 	at org.apache.geode.cache.query.internal.ResultsCollectionWrapper.iterator(ResultsCollectionWrapper.java:199)
> 	at org.apache.geode.cache.query.internal.QRegion.iterator(QRegion.java:282)
> 	at org.apache.geode.cache.query.internal.CompiledSelect.doNestedIterations(CompiledSelect.java:834)
> 	at org.apache.geode.cache.query.internal.CompiledSelect.doIterationEvaluate(CompiledSelect.java:701)
> 	at org.apache.geode.cache.query.internal.CompiledSelect.evaluate(CompiledSelect.java:545)
> 	at org.apache.geode.cache.query.internal.CompiledGroupBySelect.evaluate(CompiledGroupBySelect.java:157)
> 	at org.apache.geode.cache.query.internal.CompiledGroupBySelect.evaluate(CompiledGroupBySelect.java:42)
> 	at org.apache.geode.cache.query.internal.DefaultQuery.executeUsingContext(DefaultQuery.java:430)
> 	at org.apache.geode.internal.cache.PRQueryProcessor.executeQueryOnBuckets(PRQueryProcessor.java:246)
> 	at org.apache.geode.internal.cache.PRQueryProcessor.executeSequentially(PRQueryProcessor.java:204)
> 	at org.apache.geode.internal.cache.PRQueryProcessor.executeQuery(PRQueryProcessor.java:122)
> 	at org.apache.geode.internal.cache.PartitionedRegionQueryEvaluator.executeQueryOnLocalNode(PartitionedRegionQueryEvaluator.java:962)
> 	at org.apache.geode.internal.cache.PartitionedRegionQueryEvaluator.executeQueryOnRemoteAndLocalNodes(PartitionedRegionQueryEvaluator.java:378)
> 	at org.apache.geode.internal.cache.PartitionedRegionQueryEvaluator.queryBuckets(PartitionedRegionQueryEvaluator.java:495)
> 	at org.apache.geode.internal.cache.PartitionedRegion.doExecuteQuery(PartitionedRegion.java:1963)
> 	at org.apache.geode.internal.cache.PartitionedRegion.executeQuery(PartitionedRegion.java:1890)
> 	at org.apache.geode.cache.query.internal.DefaultQuery.execute(DefaultQuery.java:831)
> 	at com.springone.austin.vursys.battle.geode.function.impl.FindWinningCharacter.execute(FindWinningCharacter.java:60)
> 	at org.apache.geode.internal.cache.execute.AbstractExecution.executeFunctionLocally(AbstractExecution.java:335)
> 	at org.apache.geode.internal.cache.execute.AbstractExecution$1.run(AbstractExecution.java:275)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at org.apache.geode.distributed.internal.ClusterDistributionManager.runUntilShutdown(ClusterDistributionManager.java:960)
> 	at org.apache.geode.distributed.internal.ClusterDistributionManager.doFunctionExecutionThread(ClusterDistributionManager.java:814)
> 	at org.apache.geode.internal.logging.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:121)
> 	at java.lang.Thread.run(Thread.java:748)
> {code}
> The Apache Geode code did *not* properly consider that there was simply no public, no-arg constructor on the application domain type (e.g. {{Vote}})!  Of course, after adding a public, no-arg constructor to the application domain type, everything works as expected!
> The error and message is very misleading!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)