Bug 780320 (SOA-2727) - Execution of a Prepared Statement may receive LanguageBridgeFactory AssertionError
Summary: Execution of a Prepared Statement may receive LanguageBridgeFactory Assertion...
Keywords:
Status: CLOSED NEXTRELEASE
Alias: SOA-2727
Product: JBoss Enterprise SOA Platform 5
Classification: JBoss
Component: EDS
Version: 5.1.0.ER6
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 5.1.0.CR1
Assignee: Van Halbert
QA Contact:
URL: http://jira.jboss.org/jira/browse/SOA...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-01-03 21:17 UTC by Paul Nittel
Modified: 2011-02-03 15:50 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-02-03 15:50:13 UTC
Type: Bug


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker SOA-2727 0 None None None Never
Red Hat Issue Tracker TEIID-1414 0 None None None Never

Description Paul Nittel 2011-01-03 21:17:33 UTC
project_key: SOA

I'm testing Prepared Statements and have a query that executes through SQuirreL as a non-prepared statement and fails with an assertion error when I run it through a Java application. Here's the SQL:

SELECT PART_NAME FROM PARTS WHERE PARTS.PART_ID IN
(SELECT SUPPLIER_PARTS.PART_ID FROM SUPPLIER_PARTS WHERE (SUPPLIER_PARTS.SUPPLIER_ID = 'S100')
AND (LEFT(SUPPLIER_PARTS.SUPPLIER_ID, 1) != LEFT(PARTS.PART_COLOR, 1)))

stmt = conn.prepareStatement("SELECT PART_NAME FROM PARTS WHERE PARTS.PART_ID IN "
        + "(SELECT SUPPLIER_PARTS.PART_ID FROM SUPPLIER_PARTS WHERE (SUPPLIER_PARTS.SUPPLIER_ID = ?) "
        + "AND (LEFT(SUPPLIER_PARTS.SUPPLIER_ID, 1) != LEFT(PARTS.PART_COLOR, 1))) ");

2011-01-03 14:30:22,515 ERROR [org.teiid.CONNECTOR] (Worker33_QueryProcessorQueue1000) Connector worker process failed for atomic-request=mQaVUbKNtiIi.20.2.219
java.lang.AssertionError
        at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:459)
        at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:311)
        at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:266)
        at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:319)
        at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:268)
        at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:207)
        at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:149)
        at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:399)
        at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:282)
        at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:207)
        at org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:130)
        at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:213)
        at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:281)
        at org.teiid.dqp.internal.process.DataTierTupleSource.access$000(DataTierTupleSource.java:71)
        at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:123)
        at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:120)
        at org.teiid.dqp.internal.process.DQPCore$FutureWork.run(DQPCore.java:108)
        at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:188)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:116)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:290)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
2011-01-03 14:30:22,524 WARN  [org.teiid.PROCESSOR] (Worker34_QueryProcessorQueue1001) Processing exception 'null' for request mQaVUbKNtiIi.20.  Exception type org.teiid.core.TeiidProcessingException thrown from org.teiid.dqp.internal.datamgr.LanguageBridgeFactory.translate(LanguageBridgeFactory.java:459). Enable more detailed logging to see the entire stacktrace.

[Steve indicated this is the result of skipping the final rewrite of pushed subqueries.]

Comment 1 Van Halbert 2011-01-03 21:26:34 UTC
Link: Added: This issue Cloned to SOA-2728


Comment 3 Paul Nittel 2011-02-03 15:50:13 UTC
Tested with ER9 and closed.


Note You need to log in before you can comment on or make changes to this bug.