Anilkumar Gingade created GEODE-4872:
----------------------------------------

             Summary: JdbcReader throws serialization exception for byte[] when 
the field type is Object
                 Key: GEODE-4872
                 URL: https://issues.apache.org/jira/browse/GEODE-4872
             Project: Geode
          Issue Type: Bug
          Components: extensions, regions
            Reporter: Anilkumar Gingade


JdbcReader when creating PdxInstance throws serialization exception for byte[] 
when its field type is treated as Object. This field is mapped in the table as 
blob column.

{noformat}

Caused by: org.apache.geode.cache.client.ServerOperationException: remote 
server on 10.118.33.196(66546:loner):64576:da7cbe2f: 
org.apache.geode.pdx.PdxSerializationException: Exception while serializing a 
PDX field
    at 
org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:680)
    at 
org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:739)
    at 
org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:622)
    at 
org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:179)
    at 
org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:127)
    at 
org.apache.geode.cache.client.internal.PoolImpl.execute(PoolImpl.java:782)
    at org.apache.geode.cache.client.internal.GetOp.execute(GetOp.java:91)
    at 
org.apache.geode.cache.client.internal.ServerRegionProxy.get(ServerRegionProxy.java:113)
    at 
org.apache.geode.internal.cache.LocalRegion.findObjectInSystem(LocalRegion.java:2768)
    at 
org.apache.geode.internal.cache.LocalRegion.nonTxnFindObject(LocalRegion.java:1490)
    at 
org.apache.geode.internal.cache.LocalRegionDataView.findObject(LocalRegionDataView.java:176)
    at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1379)
    at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1313)
    at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1298)
    at 
org.apache.geode.internal.cache.AbstractRegion.get(AbstractRegion.java:313)
    at 
org.apache.geode.connectors.jdbc.JdbcDUnitTest.lambda$clientGetReadsFromDBWithPdxClassName$bb17a952$1(JdbcDUnitTest.java:348)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at hydra.MethExecutor.executeObject(MethExecutor.java:244)
    at 
org.apache.geode.test.dunit.standalone.RemoteDUnitVM.executeMethodOnObject(RemoteDUnitVM.java:70)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
    at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
    at java.security.AccessController.doPrivileged(Native Method)
    at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    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.pdx.PdxSerializationException: Exception while 
serializing a PDX field
    at 
org.apache.geode.pdx.internal.PdxOutputStream.writeObject(PdxOutputStream.java:84)
    at 
org.apache.geode.pdx.internal.PdxWriterImpl.writeObject(PdxWriterImpl.java:329)
    at 
org.apache.geode.pdx.internal.PdxInstanceFactoryImpl.writeObject(PdxInstanceFactoryImpl.java:210)
    at 
org.apache.geode.pdx.internal.PdxInstanceFactoryImpl.writeObject(PdxInstanceFactoryImpl.java:123)
    at 
org.apache.geode.connectors.jdbc.internal.SqlToPdxInstanceCreator.writeField(SqlToPdxInstanceCreator.java:172)
    at 
org.apache.geode.connectors.jdbc.internal.SqlToPdxInstanceCreator.create(SqlToPdxInstanceCreator.java:54)
    at 
org.apache.geode.connectors.jdbc.internal.SqlHandler.read(SqlHandler.java:74)
    at org.apache.geode.connectors.jdbc.JdbcLoader.load(JdbcLoader.java:55)
    at 
org.apache.geode.internal.cache.SearchLoadAndWriteProcessor.doLocalLoad(SearchLoadAndWriteProcessor.java:792)
    at 
org.apache.geode.internal.cache.SearchLoadAndWriteProcessor.load(SearchLoadAndWriteProcessor.java:603)
    at 
org.apache.geode.internal.cache.SearchLoadAndWriteProcessor.searchAndLoad(SearchLoadAndWriteProcessor.java:462)
    at 
org.apache.geode.internal.cache.SearchLoadAndWriteProcessor.doSearchAndLoad(SearchLoadAndWriteProcessor.java:177)
    at 
org.apache.geode.internal.cache.DistributedRegion.findUsingSearchLoad(DistributedRegion.java:2333)
    at 
org.apache.geode.internal.cache.DistributedRegion.findObjectInSystem(DistributedRegion.java:2203)
    at 
org.apache.geode.internal.cache.LocalRegion.nonTxnFindObject(LocalRegion.java:1490)
    at 
org.apache.geode.internal.cache.LocalRegionDataView.findObject(LocalRegionDataView.java:176)
    at org.apache.geode.internal.cache.LocalRegion.get(LocalRegion.java:1379)
    at 
org.apache.geode.internal.cache.LocalRegion.getRetained(LocalRegion.java:1340)
    at 
org.apache.geode.internal.cache.LocalRegion.getRetained(LocalRegion.java:1325)
    at 
org.apache.geode.internal.cache.tier.sockets.command.Get70.getEntryRetained(Get70.java:342)
    at 
org.apache.geode.internal.cache.tier.sockets.command.Get70.getEntry(Get70.java:236)
    at 
org.apache.geode.internal.cache.tier.sockets.command.Get70.cmdExecute(Get70.java:154)
    at 
org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:163)
    at 
org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMsg(ServerConnection.java:868)
    at 
org.apache.geode.internal.cache.tier.sockets.OriginalServerConnection.doOneMessage(OriginalServerConnection.java:85)
    at 
org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1248)
    at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at 
org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$4$1.run(AcceptorImpl.java:644)
    ... 1 more
Caused by: java.io.NotSerializableException: 
org.apache.derby.impl.jdbc.EmbedBlob
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
    at 
org.apache.geode.internal.InternalDataSerializer.writeSerializableObject(InternalDataSerializer.java:2372)
    at 
org.apache.geode.internal.InternalDataSerializer.basicWriteObject(InternalDataSerializer.java:2247)
    at 
org.apache.geode.pdx.internal.PdxOutputStream.writeObject(PdxOutputStream.java:82)
    ... 29 more

{noformat}

 



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

Reply via email to