ArrayIndexOutOfBoundsException in DDMReader, on a specific data size --------------------------------------------------------------------
Key: DERBY-1533 URL: http://issues.apache.org/jira/browse/DERBY-1533 Project: Derby Issue Type: Bug Components: Network Server Affects Versions: 10.1.3.1, 10.1.2.1 Environment: --------- Derby Network Server Information -------- Version: CSS10011/10.1.3.1 Build: 417277 DRDA Product Id: CSS10011 -- listing properties -- derby.drda.maxThreads=0 derby.drda.keepAlive=true derby.drda.minThreads=0 derby.drda.portNumber=1527 derby.drda.logConnections=false derby.drda.timeSlice=0 derby.drda.startNetworkServer=false derby.drda.host=localhost derby.drda.traceAll=false ------------------ Java Information ------------------ Java Version: 1.4.2_08 Java Vendor: Sun Microsystems Inc. OS name: Windows XP OS architecture: x86 OS version: 5.1 java.specification.name: Java Platform API Specification java.specification.version: 1.4 --------- Derby Information -------- JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 [C:\dev\derby\lib\derby.jar] 10.1.3.1 - (417277) [C:\dev\derby\lib\derbytools.jar] 10.1.3.1 - (417277) [C:\dev\derby\lib\derbynet.jar] 10.1.3.1 - (417277) ------------------------------------------------------ Reporter: Wiktor Lisowicz As far as I know, this bug is not related to DERBY-428 bug. I got this bug both on 10.1.3.1 and 10.1.2.1 - an ArrayIndexOutOfBoundsException in DDMReader (in Network Server). To reproduce the bug: 1. Compile the attached DerbyTest.java 2. Start the Network Server (startNetworkServer.bat under Windows) 3. Run: java DerbyTest On client side you get: org.apache.derby.client.am.DisconnectException: The DDM object is not supported. Unsupported DDM object code point: 0x0 at org.apache.derby.client.net.NetConnectionReply.doObjnsprmSemantics(Unknown Source) at org.apache.derby.client.net.NetConnectionReply.parseCommonError(Unknown Source) at org.apache.derby.client.net.NetStatementReply.parseExecuteError(Unknown Source) at org.apache.derby.client.net.NetStatementReply.parseEXCSQLSTTreply(Unknown Source) at org.apache.derby.client.net.NetStatementReply.readExecute(Unknown Source) at org.apache.derby.client.net.StatementReply.readExecute(Unknown Source) at org.apache.derby.client.net.NetPreparedStatement.readExecute_(Unknown Source) at org.apache.derby.client.am.PreparedStatement.readExecute(Unknown Source) at org.apache.derby.client.am.PreparedStatement.flowExecute(Unknown Source) at org.apache.derby.client.am.PreparedStatement.executeX(Unknown Source) at org.apache.derby.client.am.PreparedStatement.execute(Unknown Source) at DerbyTest.main(DerbyTest.java:479) On server side you get: java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at org.apache.derby.impl.drda.DDMReader.compressBLayerData(Unknown Source) at org.apache.derby.impl.drda.DDMReader.ensureBLayerDataInBuffer(Unknown Source) at org.apache.derby.impl.drda.DDMReader.readNetworkShort(Unknown Source) at org.apache.derby.impl.drda.DDMReader.readLDStringData(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.readAndSetParams(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA_work(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTTobjects(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) agentThread[DRDAConnThread_11,5,main] null java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at org.apache.derby.impl.drda.DDMReader.compressBLayerData(Unknown Source) at org.apache.derby.impl.drda.DDMReader.ensureBLayerDataInBuffer(Unknown Source) at org.apache.derby.impl.drda.DDMReader.readNetworkShort(Unknown Source) at org.apache.derby.impl.drda.DDMReader.readLDStringData(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.readAndSetParams(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA_work(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.parseSQLDTA(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTTobjects(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.parseEXCSQLSTT(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) -- 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