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

Fábio Franco (JIRA) issues at jboss.org
Wed Nov 15 14:59:00 EST 2017


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

Fábio Franco edited comment on TEIID-5148 at 11/15/17 2:58 PM:
---------------------------------------------------------------

Thank you for replying. A fix in my perspective would be, as you said, a general handling of the PGObject which would mean calling the native function and not having an exception thrown since there were no errors, just a void function. I agree when you say most functions will be non void and the workaround is easy... nevertheless it would be interesting to have this case covered as well. I mean, if possible, of course. Thanks in advance.


was (Author: mrfabiofranco):
Thank you for replying. A fix in my perspective would be, as you said, a general handling of the PGObject which would mean calling the native function and not having an exception thrown since there were no errors, just a void function. I agree when you say most functions will be non void and the workaround is easy... nevertheless it would be interesting to have this case covered as well, if possible, of course. Thanks in advance.

> 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