[ https://issues.apache.org/jira/browse/DERBY-2353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12697782#action_12697782 ]
Knut Anders Hatlen commented on DERBY-2353: ------------------------------------------- (Commenting via mail. JIRA is down so it's not possible to update the status of the issue at the moment.) The regression tests passed, and I committed the patch to trunk (revision 763900) and to 10.5 (revision 763901). > intermittent NPEs during DELETE ops in a reasonably large transaction > --------------------------------------------------------------------- > > Key: DERBY-2353 > URL: https://issues.apache.org/jira/browse/DERBY-2353 > Project: Derby > Issue Type: Bug > Components: Store > Affects Versions: 10.2.2.0 > Environment: Seen on both Windows XP and Mac OS X 10.4 > Reporter: Dan Karp > Assignee: Knut Anders Hatlen > Attachments: d2353.diff > > > I'm intermittently seeing NPEs thrown while using the embedded driver to > rewrite several rows in a single transaction. Here's the set of commands > that were executed on the transaction; the last one is the one that failed: > SELECT entry_id FROM zimbra.directory WHERE UPPER(zimbra_id) = > '0F850D84-7096-4534-9389-9D85AFC17E8A' AND entry_type = 'acct' > DELETE FROM zimbra.directory_attrs WHERE entry_id = 8 AND UPPER(name) = > 'ZIMBRACONTACTMAXNUMENTRIES' > INSERT INTO zimbra.directory_attrs (entry_id, name, value) VALUES (8, > 'zimbraContactMaxNumEntries', '0') > DELETE FROM zimbra.directory_attrs WHERE entry_id = 8 AND UPPER(name) = > 'ZIMBRAPREFGALAUTOCOMPLETEENABLED' > INSERT INTO zimbra.directory_attrs (entry_id, name, value) VALUES (8, > 'zimbraPrefGalAutoCompleteEnabled', 'FALSE') > DELETE FROM zimbra.directory_attrs WHERE entry_id = 8 AND UPPER(name) = > 'ZIMBRAPREFMAILPOLLINGINTERVAL' > INSERT INTO zimbra.directory_attrs (entry_id, name, value) VALUES (8, > 'zimbraPrefMailPollingInterval', '5m') > DELETE FROM zimbra.directory_attrs WHERE entry_id = 8 AND UPPER(name) = > 'ZIMBRAPREFGROUPMAILBY' > INSERT INTO zimbra.directory_attrs (entry_id, name, value) VALUES (8, > 'zimbraPrefGroupMailBy', 'conversation') > DELETE FROM zimbra.directory_attrs WHERE entry_id = 8 AND UPPER(name) = > 'ZIMBRAFEATUREVIEWINHTMLENABLED' > INSERT INTO zimbra.directory_attrs (entry_id, name, value) VALUES (8, > 'zimbraFeatureViewInHtmlEnabled', 'TRUE') > DELETE FROM zimbra.directory_attrs WHERE entry_id = 8 AND UPPER(name) = > 'ZIMBRAPREFMESSAGEVIEWHTMLPREFERRED' > INSERT INTO zimbra.directory_attrs (entry_id, name, value) VALUES (8, > 'zimbraPrefMessageViewHtmlPreferred', 'TRUE') > DELETE FROM zimbra.directory_attrs WHERE entry_id = 8 AND UPPER(name) = > 'ZIMBRAPREFREADINGPANEENABLED' > INSERT INTO zimbra.directory_attrs (entry_id, name, value) VALUES (8, > 'zimbraPrefReadingPaneEnabled', 'TRUE') > DELETE FROM zimbra.directory_attrs WHERE entry_id = 8 AND UPPER(name) = > 'ZIMBRAFEATUREGALAUTOCOMPLETEENABLED' > INSERT INTO zimbra.directory_attrs (entry_id, name, value) VALUES (8, > 'zimbraFeatureGalAutoCompleteEnabled', 'TRUE') > DELETE FROM zimbra.directory_attrs WHERE entry_id = 8 AND UPPER(name) = > 'ZIMBRAPREFCALENDARUSEQUICKADD' > Here's the stack trace: > Caused by: java.sql.SQLException: Java exception: ': > java.lang.NullPointerException'. > at > org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(SQLExceptionFactory.java:45) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:89) > at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Util.java:100) > at org.apache.derby.impl.jdbc.Util.javaException(Util.java:219) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(TransactionResourceImpl.java:386) > at > org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(TransactionResourceImpl.java:345) > at > org.apache.derby.impl.jdbc.EmbedConnection.handleException(EmbedConnection.java:1378) > at > org.apache.derby.impl.jdbc.ConnectionChild.handleException(ConnectionChild.java:81) > at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(EmbedStatement.java:1272) > at > org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(EmbedPreparedStatement.java:1635) > at > org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(EmbedPreparedStatement.java:299) > at > org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:233) > at > com.zimbra.cs.db.DebugPreparedStatement.executeUpdate(DebugPreparedStatement.java:154) > And here's the schema: > CREATE TABLE directory ( > entry_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, > entry_type CHAR(4) NOT NULL, > entry_name VARCHAR(128) NOT NULL, > zimbra_id CHAR(36), > modified SMALLINT NOT NULL > ); > CREATE UNIQUE INDEX i_directory_zimbra_id ON directory(zimbra_id); > CREATE UNIQUE INDEX i_directory_entry_type_name ON directory(entry_type, > entry_name); > CREATE TABLE directory_attrs ( > entry_id INTEGER NOT NULL, > name VARCHAR(255) NOT NULL, > value VARCHAR(10240) NOT NULL, > CONSTRAINT fk_dattr_entry_id FOREIGN KEY (entry_id) REFERENCES > directory(entry_id) > ON DELETE CASCADE > ); > CREATE INDEX i_dattr_entry_id_name ON directory_attrs(entry_id, name); > CREATE INDEX i_dattr_name ON directory_attrs(name); -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.