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 "Bryan Pendleton (JIRA)" <de...@db.apache.org> on 2006/03/22 18:26:08 UTC
[jira] Commented: (DERBY-428) NetworkClient
PreparedStatement.executeBatch() hangs if batch is too large
(ArrayIndexOutOfBoundsException in Network Server)
[ http://issues.apache.org/jira/browse/DERBY-428?page=comments#action_12371436 ]
Bryan Pendleton commented on DERBY-428:
---------------------------------------
I've committed this patch: http://svn.apache.org/viewcvs?rev=387895&view=rev
> NetworkClient PreparedStatement.executeBatch() hangs if batch is too large (ArrayIndexOutOfBoundsException in Network Server)
> -----------------------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-428
> URL: http://issues.apache.org/jira/browse/DERBY-428
> Project: Derby
> Type: Bug
> Components: Network Client
> 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
> Assignee: Bryan Pendleton
> Attachments: b428.java, derby-428.diff
>
> 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:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira