You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by Kathey Marsden <km...@sbcglobal.net> on 2011/10/01 15:09:16 UTC
Re: Problem with a derby database - connection closed and ArrayIndexOutOfBoundsExeption
On 9/30/2011 8:24 AM, rob wrote:
> Sorry here are the full stacktrace:
Rob, I think you should go ahead and file a bug for this and work on a
reproduction that you can attach to the issue.
http://db.apache.org/derby/DerbyBugGuidelines.html
Please make sure you include the exact 10.5 version you are upgrading from.
Things to try:
1) See if a stand alone java program which just runs getIndexInfo()
runs against the upgraded database pops the issue.
2) If that reproduces the problem and you can't share your database, ry
creating one at the problematic 10.5 version, run getIndexInfo on that,
upgrade to 10.8 and then run getIndexInfo against that.
Below is a small Embedded template program that you can modify when
trying to get a reproduction. Just add a call to
conn.getMetaData().getIndexInfo
Thanks
Kathey
import java.sql.*;
import java.net.*;
import java.io.*;
public class EmbeddedTemplate {
public static void main(String[] args) throws Exception{
try {
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection conn =
DriverManager.getConnection("jdbc:derby:wombat;create=true");
// clean up from a previous run
Statement s = conn.createStatement();
try {
s.executeUpdate("DROP TABLE T");
} catch (SQLException se) {
if (!se.getSQLState().equals("42Y55"))
throw se;
}
// Do something with the database.
// Add a couple rows to a table and select
s.executeUpdate("CREATE TABLE T (I INT, C CLOB(1M))");
PreparedStatement ps = conn.prepareStatement("INSERT INTO T
VALUES(?,?)");
ps.setInt(1,1);
ps.setString(2,"Hello");
ps.executeUpdate();
ps.setInt(1,2);
ps.setString(2,"Goodbye");
ps.executeUpdate();
ResultSet rs = s.executeQuery("SELECT * FROM T");
System.out.println("--- RESULTS SELECT * FROM T ---");
while (rs.next()) {
System.out.println(rs.getInt(1) + "," + rs.getString(2));
}
rs.close();
ps.close();
s.close();
conn.close();
} catch (SQLException se) {
while (se != null) {
System.out.println("SQLState=" + se.getSQLState() +
se.getMessage());
se.printStackTrace();
se = se.getNextException();
}
}
}
}