[
https://issues.apache.org/jira/browse/DERBY-3746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12636274#action_12636274
]
Trejkaz commented on DERBY-3746:
--------------------------------
In our case this is being caused by a database stored on a file server.
At some point in time, the network goes out for a moment, resulting in Derby
recording a corruption error. Subsequent queries then receive a
NullPointerException as some field is set to null in this case, and then
closing and reopening the database makes it work again because the database
itself has not actually been corrupted.
So the problem appears to be twofold:
1. We're getting a NPE instead of a exception saying something about corruption
or an inability to read from the store.
2. Derby is assuming that a failure reading from the store now guarantees a
failure to read from the store later, which is not the case for a file store
where the files are on another computer being accessed over the network.
> java.sql.SQLException: The exception 'java.lang.NullPointerException' was
> thrown while evaluating an expression.
> ----------------------------------------------------------------------------------------------------------------
>
> Key: DERBY-3746
> URL: https://issues.apache.org/jira/browse/DERBY-3746
> Project: Derby
> Issue Type: Bug
> Components: Store
> Affects Versions: 10.3.1.4
> Environment: SUSE LINUX 10, Embedded Derby
> Reporter: vibhuti gupta
>
> Hi
>
> Following exception occurs while running our application with embedded derby
> database. The application uses multithreading. This exception occurs while
> insert query is executed. The insert query is run using JDBC:
>
> insert into sign (sign, month, day, offset, digest) values (?,?,?,?,?).
>
> The table for which insert query is fired is:
>
> create table sign(ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY
> KEY, sign varchar(32), month char(6) not null, day char(2) not null, offset
> bigint not null, digest varchar(32) for bit data not null)
>
> There are multiple threads inserting data in database. I tried to search a
> lot on net but could not find any solution. We're using derby 10.3.1.4. Not
> sure about the root cause. It will be great if anybody provides some solution
> because it is creating lot of problems in our application.
>
> -------------------------------------------------------------------------------------------------------------
>
> Caused by: java.sql.SQLException: The exception
> 'java.lang.NullPointerException' was thrown while evaluating an expression.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.Util.seeNextException(Unknown Source)
> at
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown
> 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.ConnectionChild.handleException(Unknown
> Source)
> at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown
> Source)
> at
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown
> Source)
> at
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown
> Source)
> at
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
> at
> org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:101)
> at src.app.database.derby.Derby.insertData(Derby.java:132)
> ... 17 more
> Caused by: java.sql.SQLException: The exception
> 'java.lang.NullPointerException' was thrown while evaluating an expression.
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
> Source)
> ... 30 more
> 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.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown
> Source)
> at
> org.apache.derby.impl.jdbc.SQLExceptionFactory40.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(Unknown
> Source)
> ... 27 more
> Caused by: java.lang.NullPointerException
> at
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.data.BaseDataFileFactory.openContainer(Unknown
> Source)
> at org.apache.derby.impl.store.raw.xact.Xact.openContainer(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.conglomerate.OpenConglomerate.init(Unknown
> 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.getSetAutoincrementValue(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.InsertResultSet.getSetAutoincrementValue(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.BaseActivation.getSetAutoincrementValue(Unknown
> Source)
> at
> org.apache.derby.exe.acd89d8024x0119xf710x52e1x000002ea2ea00.e0(Unknown
> Source)
> at org.apache.derby.impl.services.reflect.DirectCall.invoke(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.RowResultSet.getNextRowCore(Unknown Source)
> at
> org.apache.derby.impl.sql.execute.NormalizeResultSet.getNextRowCore(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.DMLWriteResultSet.getNextRowCore(Unknown
> Source)
> at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown
> Source)
> at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown
> Source)
> ... 23 more
> ----------------------------------------------------------------------------------
>
> Also please find the output of sysinfo:
>
> ------------------ Java Information ------------------
> Java Version: 1.6.0_01
> Java Vendor: Sun Microsystems Inc.
> Java home: C:\Java\jdk1.6.0_01\jre
> Java classpath: .\config;.\lib\activation.jar;.\lib\aperture-1.0.1-beta.jar;
> .\lib\bcmail-jdk14-132.jar;.\lib\bcprov-jdk14-132.jar;.\lib\castor-0.9.3.21-xml.jar;
> .\lib\checkstyle-all-4.2.jar;.\lib\cjkanalyzer.jar;.\lib\commons-beanutils.jar;
> .\lib\commons-collections-3.0.jar;.\lib\commons-dbcp-1.2.1.jar;
> .\lib\commons-digester.jar;.\lib\commons-fileupload.jar;.\lib\commons-lang-2.0.jar;
> .\lib\commons-logging.jar;.\lib\commons-net-1.4.1.jar;.\lib\commons-pool-1.2.jar;
> .\lib\commons-validator.jar;.\lib\app.jar;.\lib\app_13.jar;.\lib\appsync.jar;
> .\lib\derby.jar;.\lib\derbyclient.jar;.\lib\derbynet.jar;.\lib\derbytools.jar;
> .\lib\displaytag-1.0-rc1.jar;.\lib\FontBox-0.1.0-dev.jar;
> .\lib\jakarta-regexp-1.2.jar;.\lib\javaee.jar;.\lib\jcharset.jar;
> .\lib\jcifs-1.2.17.jar;.\lib\jcommon-0.9.6.jar;.\lib\jfreechart-0.9.21.jar;
> .\lib\jtnef.jar;.\lib\junit.jar;.\lib\ldap.jar;.\lib\log4j-1.2.8.jar;
> .\lib\lucene-core-2.2.0.jar;.\lib\lucene-highlighter.jar;.\lib\mail.jar;
> .\lib\mysql-connector-java-3.0.9-stable-bin.jar;
> .\lib\openrdf-rdf2go-2.0.0-beta6.jar;.\lib\openrdf-sesame-2.0-beta6-onejar.jar;
> .\lib\org.semweb4j.rdf2go.api_4.4.7.jar;
> .\lib\org.semweb4j.rdf2go.impl.base_4.4.6.jar;.\lib\pd4ml.jar;
> .\lib\PDFBox-0.7.3.jar;.\lib\poi-3.0.1-FINAL-20070705.jar;.\lib\quartz-1.5.2.jar;
> .\lib\slf4j-api-1.3.0.jar;.\lib\slf4j-simple-1.3.0.jar;.\lib\SNMP4J.jar;
> .\lib\ss_css2.jar;.\lib\struts.jar;.\lib\textmining_v1.jar;
> .\lib\tm-extractors-0.4.jar;.\lib\truezip-6.jar;.\lib\xerces-2_6_2.jar;
> .\lib\windows\FPLibrary.jar
> OS name: Windows XP
> OS architecture: x86
> OS version: 5.1
> Java user name: vibhuti
> Java user home: C:\Documents and Settings\vibhuti
> Java user dir: D:\projects\src\app\dist\app
> java.specification.name: Java Platform API Specification
> java.specification.version: 1.6
> --------- Derby Information --------
> JRE - JDBC: Java SE 6 - JDBC 4.0
> [D:\projects\src\app\dist\app\lib\derby.jar] 10.3.1.4 - (561794)
> [D:\projects\src\app\dist\app\lib\derbytools.jar] 10.3.1.4 - (5617
> 94)
> [D:\projects\src\app\dist\app\lib\derbynet.jar] 10.3.1.4 - (561794
> )
> [D:\projects\src\app\dist\app\lib\derbyclient.jar] 10.3.1.4 - (561
> 794)
> ------------------------------------------------------
> ----------------- Locale Information -----------------
> ------------------------------------------------------
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.