[jira] Updated: (DERBY-3243) (jdbc net client) exception during normal iteration through "ResultSet" of "select * from t"
[ https://issues.apache.org/jira/browse/DERBY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kathey Marsden updated DERBY-3243: -- Derby Info: [Existing Application Impact, Regression] (was: [Existing Application Impact]) When I run the program at:http://www.os1.net/error.java with trunk, 10.3.2.1, and 10.3.1.4 I get a different exception than the one reported: java.sql.SQLException: Insufficient data while reading from the network - expected a minimum of 6 bytes and received on y -1 bytes. The connection has been terminated. at org.apache.derby.client.am.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:46) at org.apache.derby.client.am.SqlException.getSQLException(SqlException.java:362) at org.apache.derby.client.am.PreparedStatement.executeUpdate(PreparedStatement.java:391) at error.fill_db(error.java:147) at error.main(error.java:171) Caused by: org.apache.derby.client.am.DisconnectException: Insufficient data while reading from the network - expected minimum of 6 bytes and received only -1 bytes. The connection has been terminated. at org.apache.derby.client.net.Reply.fill(Reply.java:195) at org.apache.derby.client.net.Reply.ensureALayerDataInBuffer(Reply.java:215) at org.apache.derby.client.net.Reply.readDssHeader(Reply.java:317) at org.apache.derby.client.net.Reply.startSameIdChainParse(Reply.java:1147) at org.apache.derby.client.net.NetStatementReply.readExecute(NetStatementReply.java:69) at org.apache.derby.client.net.StatementReply.readExecute(StatementReply.java:55) at org.apache.derby.client.net.NetPreparedStatement.readExecute_(NetPreparedStatement.java:183) at org.apache.derby.client.am.PreparedStatement.readExecute(PreparedStatement.java:1796) at org.apache.derby.client.am.PreparedStatement.flowExecute(PreparedStatement.java:2116) at org.apache.derby.client.am.PreparedStatement.executeUpdateX(PreparedStatement.java:396) at org.apache.derby.client.am.PreparedStatement.executeUpdate(PreparedStatement.java:382) ... 2 more With 10.2.2.0 the program runs cleanly. Marking as a regression. > (jdbc net client) exception during normal iteration through "ResultSet" of > "select * from t" > > > Key: DERBY-3243 > URL: https://issues.apache.org/jira/browse/DERBY-3243 > Project: Derby > Issue Type: Bug > Components: JDBC >Affects Versions: 10.3.2.1 > Environment: -- Java Information -- > Java Version:1.4.2_03 > Java Vendor: Sun Microsystems Inc. > Java home: C:\Programme\Java\j2re1.4.2_03 > Java classpath: derbyclient.jar > OS name: Windows XP > OS architecture: x86 > OS version: 5.1 > Java user name: cbdqok > Java user home: C:\Dokumente und Einstellungen\cbdqok > Java user dir: D:\users\cbdqok\privat\osj\lib_derby_net\lib > java.specification.name: Java Platform API Specification > java.specification.version: 1.4 > - Derby Information > JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 > [D:\users\cbdqok\privat\osj\lib_derby_net\lib\derbyclient.jar] 10.3.1.4 - > (561794) > -- > - Locale Information - > -- >Reporter: Oliver Seidel >Priority: Critical > > Thanks again to the DERBY developers. > For my convenience I use the client/server variant of DERBY. This is where > the error occurs. I have temporarily alleviated the problem for my case by > using the embedded version. > I'm forced to use outlook and have built a program which siphons the messages > into a derby database (phase 1 -- table has two varchar fields and a clob). > When reading them back (phase 2 -- simple select of all records in no > particular order, all 3 attributes), it has developed an exception. This is > a result of data volume. I have reduced the problem to a single > demonstration program. > This behaviour, and the fact that the error is not a "DERBY Exception", but a > proper exception coming back from the JDBC call, leads me to the diagnosis > that it is a derby network client jdbc problem. > The problem has been reproduced once by Bryan Pendleton: > http://www.nabble.com/IndexOutOfBoundsException-t4926228.html > I'll try to attach the code "error.java"; it can also be found on: > http://www.os1.net/error.java > Please use as follows: > javac -classpath derby.jar:derbynet.jar error.java > java -cp .:derby.jar:derbynet.jar error > It will create a directory "test_db" and fill it with approx 120mb data. > Then you will observe the failure. > /* -*- Mode:Java; c-basic-offset
[jira] Updated: (DERBY-3243) (jdbc net client) exception during normal iteration through "ResultSet" of "select * from t"
[ https://issues.apache.org/jira/browse/DERBY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kathey Marsden updated DERBY-3243: -- Attachment: derby-3243_fix_double_hashmap_entry_stat.txt derby-3243_fix_double_hashmap_entry_diff.txt Attached is a patch to fix the double entry of lobs in the lob hashmap for network server. We now store the locator in the lob so network server can retrieve it instead of doing a second store of the lob. The test case still fails but retrieves double the number of rows before failing, so it does not fix the core bug. I just thought I would fix this while it was in front of me. I didn't add a functional test. I wasn't sure how appropriate it was to add a test with a table with 32K rows to the functional tests. The patch also resets the lob key on commit/rollback which will help prevent this bug from hitting upon retrieving 32K lobs even across transaction boundaries. > (jdbc net client) exception during normal iteration through "ResultSet" of > "select * from t" > > > Key: DERBY-3243 > URL: https://issues.apache.org/jira/browse/DERBY-3243 > Project: Derby > Issue Type: Bug > Components: JDBC >Affects Versions: 10.3.2.1 > Environment: -- Java Information -- > Java Version:1.4.2_03 > Java Vendor: Sun Microsystems Inc. > Java home: C:\Programme\Java\j2re1.4.2_03 > Java classpath: derbyclient.jar > OS name: Windows XP > OS architecture: x86 > OS version: 5.1 > Java user name: cbdqok > Java user home: C:\Dokumente und Einstellungen\cbdqok > Java user dir: D:\users\cbdqok\privat\osj\lib_derby_net\lib > java.specification.name: Java Platform API Specification > java.specification.version: 1.4 > - Derby Information > JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 > [D:\users\cbdqok\privat\osj\lib_derby_net\lib\derbyclient.jar] 10.3.1.4 - > (561794) > -- > - Locale Information - > -- >Reporter: Oliver Seidel >Priority: Critical > Attachments: derby-3243_fix_double_hashmap_entry_diff.txt, > derby-3243_fix_double_hashmap_entry_stat.txt > > > Thanks again to the DERBY developers. > For my convenience I use the client/server variant of DERBY. This is where > the error occurs. I have temporarily alleviated the problem for my case by > using the embedded version. > I'm forced to use outlook and have built a program which siphons the messages > into a derby database (phase 1 -- table has two varchar fields and a clob). > When reading them back (phase 2 -- simple select of all records in no > particular order, all 3 attributes), it has developed an exception. This is > a result of data volume. I have reduced the problem to a single > demonstration program. > This behaviour, and the fact that the error is not a "DERBY Exception", but a > proper exception coming back from the JDBC call, leads me to the diagnosis > that it is a derby network client jdbc problem. > The problem has been reproduced once by Bryan Pendleton: > http://www.nabble.com/IndexOutOfBoundsException-t4926228.html > I'll try to attach the code "error.java"; it can also be found on: > http://www.os1.net/error.java > Please use as follows: > javac -classpath derby.jar:derbynet.jar error.java > java -cp .:derby.jar:derbynet.jar error > It will create a directory "test_db" and fill it with approx 120mb data. > Then you will observe the failure. > /* -*- Mode:Java; c-basic-offset:8 -*- */ > // > > public class error { > // > > public static final int port = 1527; > public static final String host = "127.0.0.1"; > // > > public static void log(String x) { System.out.println(x); }; > // > > public static void log_stacktrace(Exception e) { > java.io.StringWriter sw = new java.io.StringWriter(); > java.io.PrintWriter pw = new java.io.PrintWriter(sw); > e.printStackTrace(pw); > log(sw.toString()); > }; > // > > public static void start_server() { > try { > org.apache.derby.drda.NetworkServerControl server = > new > org.apache.derby.drda.NetworkServerContro
[jira] Updated: (DERBY-3243) (jdbc net client) exception during normal iteration through "ResultSet" of "select * from t"
[ https://issues.apache.org/jira/browse/DERBY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kathey Marsden updated DERBY-3243: -- Derby Info: [Patch Available, Existing Application Impact, Regression] (was: [Regression, Existing Application Impact]) partial patch available. > (jdbc net client) exception during normal iteration through "ResultSet" of > "select * from t" > > > Key: DERBY-3243 > URL: https://issues.apache.org/jira/browse/DERBY-3243 > Project: Derby > Issue Type: Bug > Components: JDBC >Affects Versions: 10.3.2.1 > Environment: -- Java Information -- > Java Version:1.4.2_03 > Java Vendor: Sun Microsystems Inc. > Java home: C:\Programme\Java\j2re1.4.2_03 > Java classpath: derbyclient.jar > OS name: Windows XP > OS architecture: x86 > OS version: 5.1 > Java user name: cbdqok > Java user home: C:\Dokumente und Einstellungen\cbdqok > Java user dir: D:\users\cbdqok\privat\osj\lib_derby_net\lib > java.specification.name: Java Platform API Specification > java.specification.version: 1.4 > - Derby Information > JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 > [D:\users\cbdqok\privat\osj\lib_derby_net\lib\derbyclient.jar] 10.3.1.4 - > (561794) > -- > - Locale Information - > -- >Reporter: Oliver Seidel >Priority: Critical > Attachments: derby-3243_fix_double_hashmap_entry_diff.txt, > derby-3243_fix_double_hashmap_entry_stat.txt > > > Thanks again to the DERBY developers. > For my convenience I use the client/server variant of DERBY. This is where > the error occurs. I have temporarily alleviated the problem for my case by > using the embedded version. > I'm forced to use outlook and have built a program which siphons the messages > into a derby database (phase 1 -- table has two varchar fields and a clob). > When reading them back (phase 2 -- simple select of all records in no > particular order, all 3 attributes), it has developed an exception. This is > a result of data volume. I have reduced the problem to a single > demonstration program. > This behaviour, and the fact that the error is not a "DERBY Exception", but a > proper exception coming back from the JDBC call, leads me to the diagnosis > that it is a derby network client jdbc problem. > The problem has been reproduced once by Bryan Pendleton: > http://www.nabble.com/IndexOutOfBoundsException-t4926228.html > I'll try to attach the code "error.java"; it can also be found on: > http://www.os1.net/error.java > Please use as follows: > javac -classpath derby.jar:derbynet.jar error.java > java -cp .:derby.jar:derbynet.jar error > It will create a directory "test_db" and fill it with approx 120mb data. > Then you will observe the failure. > /* -*- Mode:Java; c-basic-offset:8 -*- */ > // > > public class error { > // > > public static final int port = 1527; > public static final String host = "127.0.0.1"; > // > > public static void log(String x) { System.out.println(x); }; > // > > public static void log_stacktrace(Exception e) { > java.io.StringWriter sw = new java.io.StringWriter(); > java.io.PrintWriter pw = new java.io.PrintWriter(sw); > e.printStackTrace(pw); > log(sw.toString()); > }; > // > > public static void start_server() { > try { > org.apache.derby.drda.NetworkServerControl server = > new > org.apache.derby.drda.NetworkServerControl(java.net.InetAddress.getByName(host),port); > server.start(null); > try { java.lang.Thread.sleep(5000); } catch (Exception > e) { }; > log("started DERBY on host "+host+" port > "+Integer.toString(port)+"."); > } catch (Exception e) { > log_stacktrace(e); > }; > }; > // > > public static java.sql.Connection con() > throws java.sql.SQLException, java.lang.ClassNotFoundException { > Class.forName("org.apache.derby.jdbc.Clie
[jira] Updated: (DERBY-3243) (jdbc net client) exception during normal iteration through "ResultSet" of "select * from t"
[ https://issues.apache.org/jira/browse/DERBY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kathey Marsden updated DERBY-3243: -- Attachment: derby-3243_fix_double_hashmap_entry_diff2.txt Here is the patch to fix the double hashmap entries without resetting the lob key. I plan to commit this tomorrow if I don't hear back. Kathey > (jdbc net client) exception during normal iteration through "ResultSet" of > "select * from t" > > > Key: DERBY-3243 > URL: https://issues.apache.org/jira/browse/DERBY-3243 > Project: Derby > Issue Type: Bug > Components: JDBC >Affects Versions: 10.3.2.1 > Environment: -- Java Information -- > Java Version:1.4.2_03 > Java Vendor: Sun Microsystems Inc. > Java home: C:\Programme\Java\j2re1.4.2_03 > Java classpath: derbyclient.jar > OS name: Windows XP > OS architecture: x86 > OS version: 5.1 > Java user name: cbdqok > Java user home: C:\Dokumente und Einstellungen\cbdqok > Java user dir: D:\users\cbdqok\privat\osj\lib_derby_net\lib > java.specification.name: Java Platform API Specification > java.specification.version: 1.4 > - Derby Information > JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 > [D:\users\cbdqok\privat\osj\lib_derby_net\lib\derbyclient.jar] 10.3.1.4 - > (561794) > -- > - Locale Information - > -- >Reporter: Oliver Seidel >Priority: Critical > Attachments: derby-3243_fix_double_hashmap_entry_diff.txt, > derby-3243_fix_double_hashmap_entry_diff2.txt, > derby-3243_fix_double_hashmap_entry_stat.txt > > > Thanks again to the DERBY developers. > For my convenience I use the client/server variant of DERBY. This is where > the error occurs. I have temporarily alleviated the problem for my case by > using the embedded version. > I'm forced to use outlook and have built a program which siphons the messages > into a derby database (phase 1 -- table has two varchar fields and a clob). > When reading them back (phase 2 -- simple select of all records in no > particular order, all 3 attributes), it has developed an exception. This is > a result of data volume. I have reduced the problem to a single > demonstration program. > This behaviour, and the fact that the error is not a "DERBY Exception", but a > proper exception coming back from the JDBC call, leads me to the diagnosis > that it is a derby network client jdbc problem. > The problem has been reproduced once by Bryan Pendleton: > http://www.nabble.com/IndexOutOfBoundsException-t4926228.html > I'll try to attach the code "error.java"; it can also be found on: > http://www.os1.net/error.java > Please use as follows: > javac -classpath derby.jar:derbynet.jar error.java > java -cp .:derby.jar:derbynet.jar error > It will create a directory "test_db" and fill it with approx 120mb data. > Then you will observe the failure. > /* -*- Mode:Java; c-basic-offset:8 -*- */ > // > > public class error { > // > > public static final int port = 1527; > public static final String host = "127.0.0.1"; > // > > public static void log(String x) { System.out.println(x); }; > // > > public static void log_stacktrace(Exception e) { > java.io.StringWriter sw = new java.io.StringWriter(); > java.io.PrintWriter pw = new java.io.PrintWriter(sw); > e.printStackTrace(pw); > log(sw.toString()); > }; > // > > public static void start_server() { > try { > org.apache.derby.drda.NetworkServerControl server = > new > org.apache.derby.drda.NetworkServerControl(java.net.InetAddress.getByName(host),port); > server.start(null); > try { java.lang.Thread.sleep(5000); } catch (Exception > e) { }; > log("started DERBY on host "+host+" port > "+Integer.toString(port)+"."); > } catch (Exception e) { > log_stacktrace(e); > }; > }; > // > > public static java.sql.Connection con() > throws java.s
[jira] Updated: (DERBY-3243) (jdbc net client) exception during normal iteration through "ResultSet" of "select * from t"
[ https://issues.apache.org/jira/browse/DERBY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kathey Marsden updated DERBY-3243: -- Attachment: derby-3243_stat.txt derby-3243_diff.txt Attached is a patch which implements Oystein's suggestion to exclude the extended length value from being a valid locator value. I had to exclude 0x8000, 0x8002, 0x8004, and 0x8008 as these are all possible valid values with 10.1. I tried the repro with the patch with various version combinations of 10.1, 10.2 and trunk with the patch. I am running tests now. > (jdbc net client) exception during normal iteration through "ResultSet" of > "select * from t" > > > Key: DERBY-3243 > URL: https://issues.apache.org/jira/browse/DERBY-3243 > Project: Derby > Issue Type: Bug > Components: JDBC >Affects Versions: 10.3.2.1 > Environment: -- Java Information -- > Java Version:1.4.2_03 > Java Vendor: Sun Microsystems Inc. > Java home: C:\Programme\Java\j2re1.4.2_03 > Java classpath: derbyclient.jar > OS name: Windows XP > OS architecture: x86 > OS version: 5.1 > Java user name: cbdqok > Java user home: C:\Dokumente und Einstellungen\cbdqok > Java user dir: D:\users\cbdqok\privat\osj\lib_derby_net\lib > java.specification.name: Java Platform API Specification > java.specification.version: 1.4 > - Derby Information > JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 > [D:\users\cbdqok\privat\osj\lib_derby_net\lib\derbyclient.jar] 10.3.1.4 - > (561794) > -- > - Locale Information - > -- >Reporter: Oliver Seidel >Priority: Critical > Attachments: derby-3243_diff.txt, > derby-3243_fix_double_hashmap_entry_diff.txt, > derby-3243_fix_double_hashmap_entry_diff2.txt, > derby-3243_fix_double_hashmap_entry_stat.txt, derby-3243_stat.txt > > > Thanks again to the DERBY developers. > For my convenience I use the client/server variant of DERBY. This is where > the error occurs. I have temporarily alleviated the problem for my case by > using the embedded version. > I'm forced to use outlook and have built a program which siphons the messages > into a derby database (phase 1 -- table has two varchar fields and a clob). > When reading them back (phase 2 -- simple select of all records in no > particular order, all 3 attributes), it has developed an exception. This is > a result of data volume. I have reduced the problem to a single > demonstration program. > This behaviour, and the fact that the error is not a "DERBY Exception", but a > proper exception coming back from the JDBC call, leads me to the diagnosis > that it is a derby network client jdbc problem. > The problem has been reproduced once by Bryan Pendleton: > http://www.nabble.com/IndexOutOfBoundsException-t4926228.html > I'll try to attach the code "error.java"; it can also be found on: > http://www.os1.net/error.java > Please use as follows: > javac -classpath derby.jar:derbynet.jar error.java > java -cp .:derby.jar:derbynet.jar error > It will create a directory "test_db" and fill it with approx 120mb data. > Then you will observe the failure. > /* -*- Mode:Java; c-basic-offset:8 -*- */ > // > > public class error { > // > > public static final int port = 1527; > public static final String host = "127.0.0.1"; > // > > public static void log(String x) { System.out.println(x); }; > // > > public static void log_stacktrace(Exception e) { > java.io.StringWriter sw = new java.io.StringWriter(); > java.io.PrintWriter pw = new java.io.PrintWriter(sw); > e.printStackTrace(pw); > log(sw.toString()); > }; > // > > public static void start_server() { > try { > org.apache.derby.drda.NetworkServerControl server = > new > org.apache.derby.drda.NetworkServerControl(java.net.InetAddress.getByName(host),port); > server.start(null); > try { java.lang.Thread.sleep(5000); } catch (Exception > e) { }; > log("started DERBY on host "+host+" port > "+Integer.toString(port)+".");
[jira] Updated: (DERBY-3243) (jdbc net client) exception during normal iteration through "ResultSet" of "select * from t"
[ https://issues.apache.org/jira/browse/DERBY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kathey Marsden updated DERBY-3243: -- Attachment: derby-3243_diff2.txt Attached is derby-3243_diff.txt addressing Knut's comments to skip negative and 0 locators. > (jdbc net client) exception during normal iteration through "ResultSet" of > "select * from t" > > > Key: DERBY-3243 > URL: https://issues.apache.org/jira/browse/DERBY-3243 > Project: Derby > Issue Type: Bug > Components: JDBC >Affects Versions: 10.3.2.1 > Environment: -- Java Information -- > Java Version:1.4.2_03 > Java Vendor: Sun Microsystems Inc. > Java home: C:\Programme\Java\j2re1.4.2_03 > Java classpath: derbyclient.jar > OS name: Windows XP > OS architecture: x86 > OS version: 5.1 > Java user name: cbdqok > Java user home: C:\Dokumente und Einstellungen\cbdqok > Java user dir: D:\users\cbdqok\privat\osj\lib_derby_net\lib > java.specification.name: Java Platform API Specification > java.specification.version: 1.4 > - Derby Information > JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 > [D:\users\cbdqok\privat\osj\lib_derby_net\lib\derbyclient.jar] 10.3.1.4 - > (561794) > -- > - Locale Information - > -- >Reporter: Oliver Seidel >Priority: Critical > Attachments: derby-3243_diff.txt, derby-3243_diff2.txt, > derby-3243_fix_double_hashmap_entry_diff.txt, > derby-3243_fix_double_hashmap_entry_diff2.txt, > derby-3243_fix_double_hashmap_entry_stat.txt, derby-3243_stat.txt > > > Thanks again to the DERBY developers. > For my convenience I use the client/server variant of DERBY. This is where > the error occurs. I have temporarily alleviated the problem for my case by > using the embedded version. > I'm forced to use outlook and have built a program which siphons the messages > into a derby database (phase 1 -- table has two varchar fields and a clob). > When reading them back (phase 2 -- simple select of all records in no > particular order, all 3 attributes), it has developed an exception. This is > a result of data volume. I have reduced the problem to a single > demonstration program. > This behaviour, and the fact that the error is not a "DERBY Exception", but a > proper exception coming back from the JDBC call, leads me to the diagnosis > that it is a derby network client jdbc problem. > The problem has been reproduced once by Bryan Pendleton: > http://www.nabble.com/IndexOutOfBoundsException-t4926228.html > I'll try to attach the code "error.java"; it can also be found on: > http://www.os1.net/error.java > Please use as follows: > javac -classpath derby.jar:derbynet.jar error.java > java -cp .:derby.jar:derbynet.jar error > It will create a directory "test_db" and fill it with approx 120mb data. > Then you will observe the failure. > /* -*- Mode:Java; c-basic-offset:8 -*- */ > // > > public class error { > // > > public static final int port = 1527; > public static final String host = "127.0.0.1"; > // > > public static void log(String x) { System.out.println(x); }; > // > > public static void log_stacktrace(Exception e) { > java.io.StringWriter sw = new java.io.StringWriter(); > java.io.PrintWriter pw = new java.io.PrintWriter(sw); > e.printStackTrace(pw); > log(sw.toString()); > }; > // > > public static void start_server() { > try { > org.apache.derby.drda.NetworkServerControl server = > new > org.apache.derby.drda.NetworkServerControl(java.net.InetAddress.getByName(host),port); > server.start(null); > try { java.lang.Thread.sleep(5000); } catch (Exception > e) { }; > log("started DERBY on host "+host+" port > "+Integer.toString(port)+"."); > } catch (Exception e) { > log_stacktrace(e); > }; > }; > // > > public static java.sql.Connection con() > throws java.sql.SQLExcept
[jira] Updated: (DERBY-3243) (jdbc net client) exception during normal iteration through "ResultSet" of "select * from t"
[ https://issues.apache.org/jira/browse/DERBY-3243?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kathey Marsden updated DERBY-3243: -- Derby Info: [Patch Available, Regression] (was: [Regression, Existing Application Impact, Patch Available]) Unchecking Existing Application Impact. This fix does not require any action or have impact on existing applications. > (jdbc net client) exception during normal iteration through "ResultSet" of > "select * from t" > > > Key: DERBY-3243 > URL: https://issues.apache.org/jira/browse/DERBY-3243 > Project: Derby > Issue Type: Bug > Components: JDBC >Affects Versions: 10.3.2.1 > Environment: -- Java Information -- > Java Version:1.4.2_03 > Java Vendor: Sun Microsystems Inc. > Java home: C:\Programme\Java\j2re1.4.2_03 > Java classpath: derbyclient.jar > OS name: Windows XP > OS architecture: x86 > OS version: 5.1 > Java user name: cbdqok > Java user home: C:\Dokumente und Einstellungen\cbdqok > Java user dir: D:\users\cbdqok\privat\osj\lib_derby_net\lib > java.specification.name: Java Platform API Specification > java.specification.version: 1.4 > - Derby Information > JRE - JDBC: J2SE 1.4.2 - JDBC 3.0 > [D:\users\cbdqok\privat\osj\lib_derby_net\lib\derbyclient.jar] 10.3.1.4 - > (561794) > -- > - Locale Information - > -- >Reporter: Oliver Seidel >Assignee: Kathey Marsden >Priority: Critical > Fix For: 10.3.2.2, 10.4.0.0 > > Attachments: derby-3243_diff.txt, derby-3243_diff2.txt, > derby-3243_fix_double_hashmap_entry_diff.txt, > derby-3243_fix_double_hashmap_entry_diff2.txt, > derby-3243_fix_double_hashmap_entry_stat.txt, derby-3243_stat.txt > > > Thanks again to the DERBY developers. > For my convenience I use the client/server variant of DERBY. This is where > the error occurs. I have temporarily alleviated the problem for my case by > using the embedded version. > I'm forced to use outlook and have built a program which siphons the messages > into a derby database (phase 1 -- table has two varchar fields and a clob). > When reading them back (phase 2 -- simple select of all records in no > particular order, all 3 attributes), it has developed an exception. This is > a result of data volume. I have reduced the problem to a single > demonstration program. > This behaviour, and the fact that the error is not a "DERBY Exception", but a > proper exception coming back from the JDBC call, leads me to the diagnosis > that it is a derby network client jdbc problem. > The problem has been reproduced once by Bryan Pendleton: > http://www.nabble.com/IndexOutOfBoundsException-t4926228.html > I'll try to attach the code "error.java"; it can also be found on: > http://www.os1.net/error.java > Please use as follows: > javac -classpath derby.jar:derbynet.jar error.java > java -cp .:derby.jar:derbynet.jar error > It will create a directory "test_db" and fill it with approx 120mb data. > Then you will observe the failure. > /* -*- Mode:Java; c-basic-offset:8 -*- */ > // > > public class error { > // > > public static final int port = 1527; > public static final String host = "127.0.0.1"; > // > > public static void log(String x) { System.out.println(x); }; > // > > public static void log_stacktrace(Exception e) { > java.io.StringWriter sw = new java.io.StringWriter(); > java.io.PrintWriter pw = new java.io.PrintWriter(sw); > e.printStackTrace(pw); > log(sw.toString()); > }; > // > > public static void start_server() { > try { > org.apache.derby.drda.NetworkServerControl server = > new > org.apache.derby.drda.NetworkServerControl(java.net.InetAddress.getByName(host),port); > server.start(null); > try { java.lang.Thread.sleep(5000); } catch (Exception > e) { }; > log("started DERBY on host "+host+" port > "+Integer.toString(port)+"."); > } catch (Exception e) { > log_stacktrace(e); > }; >