[teiid-issues] [JBoss JIRA] (TEIID-5148) Native: Executing procedures without return values yields an error

Steven Hawkins (JIRA) issues at jboss.org
Wed Nov 15 08:22:00 EST 2017


    [ https://issues.jboss.org/browse/TEIID-5148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13490411#comment-13490411 ] 

Steven Hawkins commented on TEIID-5148:
---------------------------------------

> will this be fixed? Or is it considered normal to have this exception thrown?

Can you be clear on what you expect with a fix?

We are returning what the driver provides to us.  Postgresql is returning a PGObject to represent void - which may require a type mapping at the driver level or other logic to map to something else.  Unless you are asking for general handling of PGObject results, it doesn't seem like additional code is needed to cover this case as most functions will be non void and there is an easy workaround.

> Native: Executing procedures without return values yields an error
> ------------------------------------------------------------------
>
>                 Key: TEIID-5148
>                 URL: https://issues.jboss.org/browse/TEIID-5148
>             Project: Teiid
>          Issue Type: Bug
>    Affects Versions: 9.3.3
>         Environment: * teiid 9.3.3
> * jdbc driver: postgresql-9.4.1212.jre7.jar
> * PostgreSQL 9.6.2 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit
> * java 1.8.0_141-b15
>            Reporter: Fábio Franco
>            Assignee: Steven Hawkins
>
> Executing procedures without return values yields an error when executed via native function from within teiid. The stacktrace is as follows:
> {code}
> [2017-11-14 11:25:48] [38000] org.postgresql.util.PGobject
> [2017-11-14 11:25:48] java.lang.ClassNotFoundException: org.postgresql.util.PGobject
> [2017-11-14 11:25:48] 	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
> [2017-11-14 11:25:48] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> [2017-11-14 11:25:48] 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
> [2017-11-14 11:25:48] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> [2017-11-14 11:25:48] 	at java.lang.Class.forName0(Native Method)
> [2017-11-14 11:25:48] 	at java.lang.Class.forName(Class.java:348)
> [2017-11-14 11:25:48] 	at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:677)
> [2017-11-14 11:25:48] 	at org.teiid.netty.handler.codec.serialization.CompactObjectInputStream.resolveClass(CompactObjectInputStream.java:112)
> [2017-11-14 11:25:48] 	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1819)
> [2017-11-14 11:25:48] 	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1713)
> [2017-11-14 11:25:48] 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1986)
> [2017-11-14 11:25:48] 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
> [2017-11-14 11:25:48] 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
> [2017-11-14 11:25:48] 	at org.teiid.client.BatchSerializer$ColumnSerializer.readObject(BatchSerializer.java:552)
> [2017-11-14 11:25:48] 	at org.teiid.client.BatchSerializer$ObjectColumnSerializer.readObject(BatchSerializer.java:283)
> [2017-11-14 11:25:48] 	at org.teiid.client.BatchSerializer$ObjectColumnSerializer.access$2400(BatchSerializer.java:228)
> [2017-11-14 11:25:48] 	at org.teiid.client.BatchSerializer$ArrayColumnSerializer2.readObject(BatchSerializer.java:177)
> [2017-11-14 11:25:48] 	at org.teiid.client.BatchSerializer$ColumnSerializer.readColumn(BatchSerializer.java:543)
> [2017-11-14 11:25:48] 	at org.teiid.client.BatchSerializer.readBatch(BatchSerializer.java:924)
> [2017-11-14 11:25:48] 	at org.teiid.client.ResultsMessage.processResults(ResultsMessage.java:120)
> [2017-11-14 11:25:48] 	at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:755)
> [2017-11-14 11:25:48] 	at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:65)
> [2017-11-14 11:25:48] 	at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:561)
> [2017-11-14 11:25:48] 	at org.teiid.client.util.ResultsFuture.done(ResultsFuture.java:135)
> [2017-11-14 11:25:48] 	at org.teiid.client.util.ResultsFuture.access$200(ResultsFuture.java:40)
> [2017-11-14 11:25:48] 	at org.teiid.client.util.ResultsFuture$1.receiveResults(ResultsFuture.java:79)
> [2017-11-14 11:25:48] 	at org.teiid.net.socket.SocketServerInstanceImpl.receivedMessage(SocketServerInstanceImpl.java:285)
> [2017-11-14 11:25:48] 	at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:337)
> [2017-11-14 11:25:48] 	at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
> [2017-11-14 11:25:48] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> [2017-11-14 11:25:48] 	at java.lang.reflect.Method.invoke(Method.java:498)
> [2017-11-14 11:25:48] 	at org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:98)
> [2017-11-14 11:25:48] 	at com.sun.proxy.$Proxy3.read(Unknown Source)
> [2017-11-14 11:25:48] 	at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:427)
> [2017-11-14 11:25:48] 	at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:570)
> [2017-11-14 11:25:48] 	at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:423)
> [2017-11-14 11:25:48] 	at org.teiid.jdbc.StatementImpl.executeQuery(StatementImpl.java:354)
> [2017-11-14 11:25:48] 	at com.intellij.database.remote.jdbc.impl.RemoteStatementImpl.executeQuery(RemoteStatementImpl.java:161)
> [2017-11-14 11:25:48] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [2017-11-14 11:25:48] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> [2017-11-14 11:25:48] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> [2017-11-14 11:25:48] 	at java.lang.reflect.Method.invoke(Method.java:498)
> [2017-11-14 11:25:48] 	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
> [2017-11-14 11:25:48] 	at sun.rmi.transport.Transport$1.run(Transport.java:200)
> [2017-11-14 11:25:48] 	at sun.rmi.transport.Transport$1.run(Transport.java:197)
> [2017-11-14 11:25:48] 	at java.security.AccessController.doPrivileged(Native Method)
> [2017-11-14 11:25:48] 	at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
> [2017-11-14 11:25:48] 	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
> [2017-11-14 11:25:48] 	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
> [2017-11-14 11:25:48] 	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
> [2017-11-14 11:25:48] 	at java.security.AccessController.doPrivileged(Native Method)
> [2017-11-14 11:25:48] 	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
> [2017-11-14 11:25:48] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [2017-11-14 11:25:48] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [2017-11-14 11:25:48] 	at java.lang.Thread.run(Thread.java:745) (no stack trace)
> {code}



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)



More information about the teiid-issues mailing list