[teiid-commits] teiid SVN: r3647 - in trunk: test-integration/common/src/test/java/org/teiid/transport and 1 other directory.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Sun Nov 13 22:13:36 EST 2011
Author: shawkins
Date: 2011-11-13 22:13:36 -0500 (Sun, 13 Nov 2011)
New Revision: 3647
Modified:
trunk/runtime/src/main/java/org/teiid/transport/PgBackendProtocol.java
trunk/test-integration/common/src/test/java/org/teiid/transport/TestODBCSocketTransport.java
Log:
TEIID-1812 fix for indexoutofbounds exception
Modified: trunk/runtime/src/main/java/org/teiid/transport/PgBackendProtocol.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/PgBackendProtocol.java 2011-11-14 03:12:43 UTC (rev 3646)
+++ trunk/runtime/src/main/java/org/teiid/transport/PgBackendProtocol.java 2011-11-14 03:13:36 UTC (rev 3647)
@@ -801,7 +801,9 @@
initBuffer(estimatedLength);
}
this.dataOut.writeByte((byte)newMessageType);
- this.dataOut.writerIndex(this.dataOut.writerIndex() + 4);
+ int nextByte = this.dataOut.writerIndex() + 4;
+ this.dataOut.ensureWritableBytes(nextByte);
+ this.dataOut.writerIndex(nextByte);
}
private void initBuffer(int estimatedLength) {
Modified: trunk/test-integration/common/src/test/java/org/teiid/transport/TestODBCSocketTransport.java
===================================================================
--- trunk/test-integration/common/src/test/java/org/teiid/transport/TestODBCSocketTransport.java 2011-11-14 03:12:43 UTC (rev 3646)
+++ trunk/test-integration/common/src/test/java/org/teiid/transport/TestODBCSocketTransport.java 2011-11-14 03:13:36 UTC (rev 3647)
@@ -221,6 +221,20 @@
String clob = rs.getString(1);
assertEquals(3000, clob.length());
}
+
+ @Test public void testMultiRowBuffering() throws Exception {
+ Statement s = conn.createStatement();
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < 11; i++) {
+ sb.append("select '' union all ");
+ }
+ sb.append("select ''");
+ assertTrue(s.execute(sb.toString()));
+ ResultSet rs = s.getResultSet();
+ assertTrue(rs.next());
+ String str = rs.getString(1);
+ assertEquals(0, str.length());
+ }
@Test public void testTransactionCycle() throws Exception {
//TODO: drill in to ensure that the underlying statement has been set to autocommit false
More information about the teiid-commits
mailing list