Bug 780320 (SOA-2727)

Summary: Execution of a Prepared Statement may receive LanguageBridgeFactory AssertionError
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: Paul Nittel <pnittel>
Component: EDSAssignee: Van Halbert <vhalbert>
Status: CLOSED NEXTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: high    
Version: 5.1.0.ER6   
Target Milestone: ---   
Target Release: 5.1.0.CR1   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-2727
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-02-03 15:50:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

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.