[teiid-commits] teiid SVN: r1362 - in branches/6.2.x: connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc and 1 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Wed Sep 16 13:09:12 EDT 2009


Author: shawkins
Date: 2009-09-16 13:09:12 -0400 (Wed, 16 Sep 2009)
New Revision: 1362

Modified:
   branches/6.2.x/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCProcedureExecution.java
   branches/6.2.x/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/TestJDBCProcedureExecution.java
   branches/6.2.x/documentation/salesforce-connector-guide/
Log:
TEIID-831 fix for invalid index with out parameters and in parameters

Modified: branches/6.2.x/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCProcedureExecution.java
===================================================================
--- branches/6.2.x/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCProcedureExecution.java	2009-09-15 20:21:08 UTC (rev 1361)
+++ branches/6.2.x/connectors/connector-jdbc/src/main/java/org/teiid/connector/jdbc/JDBCProcedureExecution.java	2009-09-16 17:09:12 UTC (rev 1362)
@@ -115,10 +115,14 @@
         		}
 			}
         	for (IParameter parameter : proc.getParameters()) {
-        		if (parameter.getDirection() == Direction.RETURN || parameter.getDirection() == Direction.RESULT_SET) {
+        		switch (parameter.getDirection()) {
+        		case IN:
+        			paramIndex++;
+        		case RETURN:
+        		case RESULT_SET:
         			continue;
-        		}
-        		if (parameter.getDirection() == Direction.INOUT || parameter.getDirection() == Direction.OUT) {
+        		case INOUT:
+        		case OUT:
         			addParameterValue(result, paramIndex++, parameter);
         		}
 			}

Modified: branches/6.2.x/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/TestJDBCProcedureExecution.java
===================================================================
--- branches/6.2.x/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/TestJDBCProcedureExecution.java	2009-09-15 20:21:08 UTC (rev 1361)
+++ branches/6.2.x/connectors/connector-jdbc/src/test/java/org/teiid/connector/jdbc/TestJDBCProcedureExecution.java	2009-09-16 17:09:12 UTC (rev 1362)
@@ -58,5 +58,21 @@
 		assertEquals(Arrays.asList(5), procedureExecution.getOutputParameterValues());
 		Mockito.verify(cs, Mockito.times(1)).registerOutParameter(1, Types.INTEGER);
 	}
+	
+	@Test public void testProcedureExecution1() throws Exception {
+		ICommand command = MetadataFactory.helpTranslate(MetadataFactory.BQT_VDB, "exec pm2.spTest8(1)"); //$NON-NLS-1$
+		Connection connection = Mockito.mock(Connection.class);
+		CallableStatement cs = Mockito.mock(CallableStatement.class);
+		Mockito.stub(cs.getUpdateCount()).toReturn(-1);
+		Mockito.stub(cs.getInt(2)).toReturn(5);
+		Mockito.stub(connection.prepareCall("{  call spTest8(?,?)}")).toReturn(cs); //$NON-NLS-1$
+		Translator sqlTranslator = new Translator();
+		ExecutionContext context = EnvironmentUtility.createSecurityContext("user"); //$NON-NLS-1$
+		RuntimeMetadataImpl runtimeMetadata = new RuntimeMetadataImpl(FakeMetadataFactory.exampleBQTCached());
+		JDBCProcedureExecution procedureExecution = new JDBCProcedureExecution(command, connection, sqlTranslator, Mockito.mock(ConnectorLogger.class), new Properties(), runtimeMetadata, context, EnvironmentUtility.createEnvironment(new Properties()) );
+		procedureExecution.execute();
+		assertEquals(Arrays.asList(5), procedureExecution.getOutputParameterValues());
+		Mockito.verify(cs, Mockito.times(1)).registerOutParameter(2, Types.INTEGER);
+	}
 
 }


Property changes on: branches/6.2.x/documentation/salesforce-connector-guide
___________________________________________________________________
Name: svn:ignore
   + .classpath

target

.settings

.project




More information about the teiid-commits mailing list