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

ASF subversion and git services commented on GEODE-4989:
--------------------------------------------------------

Commit 445c8b7a4d60f06b096c1d8c9ab0fa0db41537d2 in geode's branch 
refs/heads/develop from jinmeiliao
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=445c8b7 ]

GEODE-5369: fix for Lucene Stats (#2115)

* GEODE-5369: fix for Lucene Stats

Co-authored-by: Mark Hanson <mhan...@pivotal.io>

* more test clean up as what was done in GEODE-4989
* Change Dunit tests to integration tests


> CQ reply message fromData method deserializes query results
> -----------------------------------------------------------
>
>                 Key: GEODE-4989
>                 URL: https://issues.apache.org/jira/browse/GEODE-4989
>             Project: Geode
>          Issue Type: Bug
>          Components: serialization
>            Reporter: Bruce Schuchardt
>            Assignee: Bruce Schuchardt
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.6.0
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Recent changes in DataSerializableFixedID serialization have left CQ reply 
> message handling in a bad state.  When results are read they are deserialized 
> into POJOs and this can cause queries to hang if the domain classes aren't 
> available in the server.  Even if they are it will hit performance because 
> the objects are completely deserialized and then have to be re-serialized to 
> be sent to clients.
> If the classes aren't available an exception like this will be thrown:
> {noformat}
> org.apache.geode.SerializationException: Could not create an instance of  
> org.apache.geode.distributed.internal.streaming.StreamingOperation$StreamingReplyMessage
>  .
>       at 
> org.apache.geode.internal.InternalDataSerializer.invokeFromData(InternalDataSerializer.java:2505)
>       at org.apache.geode.internal.DSFIDFactory.create(DSFIDFactory.java:994)
>       at 
> org.apache.geode.internal.InternalDataSerializer.readDSFID(InternalDataSerializer.java:2703)
>       at 
> org.apache.geode.internal.tcp.Connection.processNIOBuffer(Connection.java:3543)
>       at 
> org.apache.geode.internal.tcp.Connection.runNioReader(Connection.java:1827)
>       at org.apache.geode.internal.tcp.Connection.run(Connection.java:1688)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>       at java.lang.Thread.run(Thread.java:748)
> Caused by: org.apache.geode.SerializationException: Could not create an 
> instance of  org.apache.geode.cache.query.internal.CqEntry .
>       at 
> org.apache.geode.internal.InternalDataSerializer.invokeFromData(InternalDataSerializer.java:2505)
>       at org.apache.geode.internal.DSFIDFactory.create(DSFIDFactory.java:994)
>       at 
> org.apache.geode.internal.InternalDataSerializer.basicReadObject(InternalDataSerializer.java:2862)
>       at org.apache.geode.DataSerializer.readObject(DataSerializer.java:2961)
>       at 
> org.apache.geode.internal.InternalDataSerializer.readUserObject(InternalDataSerializer.java:2817)
>       at 
> org.apache.geode.distributed.internal.streaming.StreamingOperation$StreamingReplyMessage.fromData(StreamingOperation.java:559)
>       at 
> org.apache.geode.internal.InternalDataSerializer.invokeFromData(InternalDataSerializer.java:2494)
>       ... 8 more
> Caused by: org.apache.geode.pdx.PdxSerializationException: Could not create 
> an instance of a class util.PdxVersionedQueryObject
>       at org.apache.geode.pdx.internal.PdxType.getPdxClass(PdxType.java:239)
>       at 
> org.apache.geode.pdx.internal.PdxReaderImpl.basicGetObject(PdxReaderImpl.java:687)
>       at 
> org.apache.geode.pdx.internal.PdxReaderImpl.getObject(PdxReaderImpl.java:682)
>       at 
> org.apache.geode.internal.InternalDataSerializer.readPdxSerializable(InternalDataSerializer.java:3226)
>       at 
> org.apache.geode.internal.InternalDataSerializer.basicReadObject(InternalDataSerializer.java:3031)
>       at org.apache.geode.DataSerializer.readObject(DataSerializer.java:2961)
>       at 
> org.apache.geode.cache.query.internal.CqEntry.fromData(CqEntry.java:95)
>       at 
> org.apache.geode.internal.InternalDataSerializer.invokeFromData(InternalDataSerializer.java:2494)
>       ... 14 more
> Caused by: java.lang.ClassNotFoundException: util.PdxVersionedQueryObject
>       at 
> org.apache.geode.internal.ClassPathLoader.forName(ClassPathLoader.java:170)
>       at 
> org.apache.geode.internal.InternalDataSerializer.getCachedClass(InternalDataSerializer.java:3870)
>       at org.apache.geode.pdx.internal.PdxType.getPdxClass(PdxType.java:235)
>       ... 21 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to