[ http://issues.apache.org/jira/browse/DERBY-428?page=all ]
Kathey Marsden resolved DERBY-428.
----------------------------------
Resolution: Fixed
Assignee: Bryan Pendleton (was: Kathey Marsden)
After rebooting my computer I was no longer able to reproduce the
testProperties hang. I think it may have been at least triggered by my
firewall sofware and the code path for testProperties should not really trigger
any problems with this change which would only be relevant when the DDMWriter
buffer exceeds 32K.
I think the hang may have been related to some interaction with my firewall
software. I will post separately to derby-dev about that as I think there may
be a Network Server issue there.
Date: Thu Jul 20 04:47:54 2006
New Revision: 423910
URL: http://svn.apache.org/viewvc?rev=423910&view=rev
Log:
DERBY-428 NetworkClient PreparedStatement.executeBatch() hangs if batch is too
large (ArrayIndexOutOfBoundsException in Network Server)
> 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
> 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.0.0
>
> 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:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira