[
https://issues.jboss.org/browse/TEIID-2769?page=com.atlassian.jira.plugin...
]
Filip Nguyen edited comment on TEIID-2769 at 12/13/13 7:27 AM:
---------------------------------------------------------------
I think the ERROR message would be the best, maybe together with some more explanation in
docs about how the streaming results work in Teiid. The problem was I didn't
understand what causes the problem. Your explanation here is sufficient and
workarounds/best practices to use xmlparse and http streaming results is great, but it is
not possible to deduce that information from neither documentation nor error message.
was (Author: fnguyen):
I think the ERROR message would be the best. The problem was I didn't understand
what causes the problem. Your explanation here is sufficient and workarounds/best
practices to use xmlparse and http streaming results is great, but it is not possible to
deduce that information from neither documentation nor error message.
BLOB as virtual procedure parameter is getting closed
-----------------------------------------------------
Key: TEIID-2769
URL:
https://issues.jboss.org/browse/TEIID-2769
Project: Teiid
Issue Type: Bug
Components: Server
Affects Versions: 8.4.1
Reporter: Van Halbert
Assignee: Steven Hawkins
Not sure what is the cause.
I have two virtual procedures [1][2]. [2] has a XMLLiteral parameter. I call [2] inside
[1]. However I get exception [3] because the response.result blob stream is apparently
closed.
[1] CREATE VIRTUAL PROCEDURE
BEGIN
SELECT t.* FROM (EXEC PeopleRestXmlSource.invokeHttp('GET', null, null, TRUE))
AS response, TABLE(EXEC PeopleRestXmlView.getPeople_response(XMLPARSE(DOCUMENT
response.result))) AS t;
END
[2] CREATE VIRTUAL PROCEDURE
BEGIN
SELECT t.* FROM XMLTABLE('//return' PASSING
PeopleJaxwsView.getPeopleByName_response.xml_in COLUMNS name string PATH 'text()')
AS t;
END
[3]
org.teiid.jdbc.TeiidSQLException: TEIID30328 Unable to evaluate XMLPARSE(DOCUMENT
response.result): TEIID30331 java.sql.SQLException: Already Freed.
at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71)
at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:668)
at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:63)
at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:516)
at org.teiid.client.util.ResultsFuture.done(ResultsFuture.java:135)
at org.teiid.client.util.ResultsFuture.access$200(ResultsFuture.java:40)
at org.teiid.client.util.ResultsFuture$1.receiveResults(ResultsFuture.java:79)
at
org.teiid.net.socket.SocketServerInstanceImpl.receivedMessage(SocketServerInstanceImpl.java:242)
at
org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:278)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:102)
at $Proxy1.read(Unknown Source)
at
org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:377)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:525)
at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:393)
at org.teiid.jdbc.StatementImpl.executeQuery(StatementImpl.java:327)
at JDBCClient.execute(JDBCClient.java:81)
at JDBCClient.main(JDBCClient.java:48)
Caused by: org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30328 Unable
to evaluate XMLPARSE(DOCUMENT response.result): TEIID30331 java.sql.SQLException: Already
Freed.
at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:608)
at
org.teiid.query.processor.proc.ProcedurePlan.evaluateExpression(ProcedurePlan.java:804)
at org.teiid.query.processor.proc.ProcedurePlan.open(ProcedurePlan.java:211)
at
org.teiid.query.processor.relational.PlanExecutionNode.open(PlanExecutionNode.java:82)
at org.teiid.query.processor.relational.RelationalNode.open(RelationalNode.java:254)
at org.teiid.query.processor.relational.JoinStrategy.openRight(JoinStrategy.java:105)
at
org.teiid.query.processor.relational.NestedTableJoinStrategy.process(NestedTableJoinStrategy.java:114)
at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:211)
at
org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
at
org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
at
org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
at
org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:149)
at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:149)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
at org.teiid.query.processor.BatchIterator.finalRow(BatchIterator.java:69)
at
org.teiid.common.buffer.AbstractTupleSource.getCurrentTuple(AbstractTupleSource.java:70)
at org.teiid.query.processor.BatchIterator.getCurrentTuple(BatchIterator.java:84)
at org.teiid.common.buffer.AbstractTupleSource.hasNext(AbstractTupleSource.java:92)
at org.teiid.query.processor.proc.ProcedurePlan.executePlan(ProcedurePlan.java:563)
at
org.teiid.query.processor.proc.CreateCursorResultSetInstruction.process(CreateCursorResultSetInstruction.java:68)
at
org.teiid.query.processor.proc.ProcedurePlan.processProcedure(ProcedurePlan.java:356)
at org.teiid.query.processor.proc.ProcedurePlan.nextBatchDirect(ProcedurePlan.java:283)
at org.teiid.query.processor.proc.ProcedurePlan.nextBatch(ProcedurePlan.java:257)
at
org.teiid.query.processor.relational.PlanExecutionNode.nextBatchDirect(PlanExecutionNode.java:118)
at
org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
at
org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
at
org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
at
org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
at
org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
at
org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
at
org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278)
at
org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:149)
at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:149)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:112)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:157)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:139)
at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:435)
at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:320)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51)
at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:248)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:269)
at
org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
at
org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:214)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.teiid.api.exception.query.ExpressionEvaluationException: TEIID30331
java.sql.SQLException: Already Freed.
at org.teiid.query.eval.Evaluator.evaluateXMLParse(Evaluator.java:734)
at org.teiid.query.eval.Evaluator.internalEvaluate(Evaluator.java:668)
at org.teiid.query.eval.Evaluator.evaluate(Evaluator.java:606)
... 45 more
Caused by: java.sql.SQLException: java.sql.SQLException: Already Freed.
at org.teiid.core.types.BaseLob.getBinaryStream(BaseLob.java:105)
at org.teiid.core.types.BaseLob.getCharacterStream(BaseLob.java:98)
at org.teiid.query.eval.Evaluator.evaluateXMLParse(Evaluator.java:727)
... 47 more
Caused by: java.io.IOException: java.sql.SQLException: Already Freed.
at
org.teiid.core.types.InputStreamFactory$BlobInputStreamFactory.getInputStream(InputStreamFactory.java:205)
at org.teiid.core.types.BaseLob.getBinaryStream(BaseLob.java:103)
... 49 more
Caused by: java.sql.SQLException: Already Freed.
at
org.teiid.translator.ws.BinaryWSProcedureExecution$StreamingBlob.getBinaryStream(BinaryWSProcedureExecution.java:72)
at
org.teiid.core.types.InputStreamFactory$BlobInputStreamFactory.getInputStream(InputStreamFactory.java:203)
... 50 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira