db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erick Lichtas" <elich...@lichtasweb.com>
Subject NPE when compressing large table
Date Tue, 04 Sep 2012 20:11:11 GMT
Hi Everyone,

 

I am having an issue with the SYSCS_UTIL.SYSCS_COMPRESS_TABLE operation on a
large table in Derby 10.8.2.2.

 

Statement stmt = null;

CallableStatement cs = null;

try {

       String sql = "select schemaname, tablename from sys.sysschemas s, "

              + "sys.systables t where s.schemaid=t.schemaid and
t.tabletype='T'";

       stmt = con.createStatement();

       ResultSet rs = stmt.executeQuery(sql);

       cs = con.prepareCall("call SYSCS_UTIL.SYSCS_COMPRESS_TABLE(?, ?,
?)");

       while (rs.next()) {

              String schema = rs.getString(1).trim();

              String table = rs.getString(2).trim();

              log("Compressing " + schema + "." + table + "...");

              cs.setString(1, schema);

              cs.setString(2, table);

              cs.setShort(3, (short) 1);

              cs.execute();

       }

}

finally {

       if (stmt != null) {

              stmt.close();

       }

       if (cs != null) {

              cs.close();

       }

}

 

The above code, successfully runs over 3 of 20 some tables, then hits the
4th table with over 2 million records.  After working on this table for
about 5 minutes, the process terminates with an SQLException wrapping a NPE.


This happened in a production instance and I have not yet set up a
reproduction in a development environment.  I'm wondering if anyone has any
thoughts based on the stacktrace below?

 

com.linoma.gaservices.upgrader.UpgradeException: Java exception: ':
java.lang.NullPointerException'.

                at
com.linoma.gaservices.upgrader.DefaultUpgrader.upgrade(DefaultUpgrader.java:
227)

                at
com.linoma.gaservices.upgrader.UnixUpgrader.upgrade(UnixUpgrader.java:32)

                at
com.linoma.gaservices.upgrader.UpgradeStarter.startUpgrade(UpgradeStarter.ja
va:25)

                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)

                at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79
)

                at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:43)

                at java.lang.reflect.Method.invoke(Method.java:618)

                at my.app.upgrader.Startup.main(Startup.java:72)

Caused by: java.sql.SQLException: Java exception: ':
java.lang.NullPointerException'.

                at
org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown
Source)

                at
org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)

                at org.apache.derby.impl.jdbc.Util.javaException(Unknown
Source)

                at
org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknow
n Source)

                at
org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown
Source)

                at
org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)

                at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown
Source)

                at
org.apache.derby.jdbc.Driver30.getNewEmbedConnection(Unknown Source)

                at org.apache.derby.jdbc.InternalDriver.connect(Unknown
Source)

                at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown
Source)

                at
java.sql.DriverManager.getConnection(DriverManager.java:572)

                at
java.sql.DriverManager.getConnection(DriverManager.java:218)

                at
my.app.upgrader.db.DerbyDatabaseUpgrader.closeDB(DerbyDatabaseUpgrader.java:
99)

                at
my.app.upgrader.DefaultUpgrader.upgrade(DefaultUpgrader.java:223)

                ... 7 more                             

Caused by: java.lang.NullPointerException

                at
org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unkno
wn Source)

                at
org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unkno
wn Source)

                at
org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown Source)

                at
org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknow
n Source)

                at org.apache.derby.impl.store.access.heap.Heap.open(Unknown
Source)

                at
org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown
Source)

                at
org.apache.derby.impl.store.access.RAMTransaction.openConglomerate(Unknown
Source)

                at
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getDescriptorViaIndexMi
nion(Unknown Source)

                at
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getDescriptorViaIndex(U
nknown Source)

                at
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.locateSchemaRow(Unknown
Source)

                at
org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getSchemaDescriptor(Unk
nown Source)

                at
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.initDefaultS
chemaDescriptor(Unknown Source)

                at
org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.initialize(U
nknown Source)

                at
org.apache.derby.impl.db.BasicDatabase.setupConnection(Unknown Source)

                at
org.apache.derby.impl.jdbc.TransactionResourceImpl.startTransaction(Unknown
Source)

                at
org.apache.derby.impl.jdbc.EmbedConnection.checkUserIsNotARole(Unknown
Source)

                at
org.apache.derby.impl.jdbc.EmbedConnection.checkUserCredentials(Unknown
Source)

                ... 15 more  

 

Regards,

 

Erick

 


Mime
View raw message