You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Bernt M. Johnsen (JIRA)" <ji...@apache.org> on 2007/01/19 11:18:30 UTC
[jira] Closed: (DERBY-428) NetworkClient
PreparedStatement.executeBatch() hangs if batch is too large
(ArrayIndexOutOfBoundsException in Network Server)
[ https://issues.apache.org/jira/browse/DERBY-428?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bernt M. Johnsen closed DERBY-428.
----------------------------------
> NetworkClient PreparedStatement.executeBatch() hangs if batch is too large (ArrayIndexOutOfBoundsException in Network Server)
> -----------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-428
> URL: https://issues.apache.org/jira/browse/DERBY-428
> Project: Derby
> Issue Type: Bug
> Components: Network Client, Network Server
> Environment: Linux atum01 2.4.20-31.9 #1 Tue Apr 13 18:04:23 EDT 2004 i686 i686 i386 GNU/Linux
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_03-b07)
> Java HotSpot(TM) Client VM (build 1.5.0_03-b07, mixed mode, sharing)
> Reporter: Bernt M. Johnsen
> Assigned To: Bryan Pendleton
> Fix For: 10.1.3.2, 10.2.1.6
>
> Attachments: b428.java, derby-428.diff, derby428_10_1.diff, derby428_10_1.stat
>
>
> When running
> s.executeUpdate("create table t (i integer)");
> PreparedStatement p = c.prepareStatement("insert into t values(?)");
> for (int i=0; i<N; i++) {
> p.setInt(1,i);
> p.addBatch();
> }
> System.out.println("Ok");
> p.executeBatch();
> If N is 9000
> The server reports:
> 524272
> java.lang.ArrayIndexOutOfBoundsException: 524272
> at org.apache.derby.impl.drda.DDMWriter.startDdm(DDMWriter.java:315)
> at org.apache.derby.impl.drda.DRDAConnThread.writeSQLCARD(DRDAConnThread.java:4937)
> at org.apache.derby.impl.drda.DRDAConnThread.writeSQLCARDs(DRDAConnThread.java:4898)
> at org.apache.derby.impl.drda.DRDAConnThread.writeSQLCARDs(DRDAConnThread.java:4888)
> at org.apache.derby.impl.drda.DRDAConnThread.checkWarning(DRDAConnThread.java:7239)
> at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(DRDAConnThread.java:3605)
> at org.apache.derby.impl.drda.DRDAConnThread.processCommands(DRDAConnThread.java:859)
> at org.apache.derby.impl.drda.DRDAConnThread.run(DRDAConnThread.java:214)
> agentThread[DRDAConnThread_3,5,main]
> While the client hangs in executeBatch().
> If N is 8000, the client gets the following Exception:
> Exception in thread "main" org.apache.derby.client.am.BatchUpdateException: Non-atomic batch failure. The batch was submitted, but at least one exception occurred on an individual member of the batch. Use getNextException() to retrieve the exceptions for specific batched elements.
> at org.apache.derby.client.am.Agent.endBatchedReadChain(Agent.java:267)
> at org.apache.derby.client.am.PreparedStatement.executeBatchRequestX(PreparedStatement.java:1596)
> at org.apache.derby.client.am.PreparedStatement.executeBatchX(PreparedStatement.java:1467)
> at org.apache.derby.client.am.PreparedStatement.executeBatch(PreparedStatement.java:945)
> at AOIB.main(AOIB.java:24)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira