[
https://issues.apache.org/jira/browse/DERBY-5470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13130402#comment-13130402
]
Knut Anders Hatlen commented on DERBY-5470:
-------------------------------------------
The NullPointerException is thrown by
org.apache.commons.io.input.ProxyInputStream, which is not a Derby class.
Assuming your version of the class looks something like this
http://svn.apache.org/viewvc/commons/proper/io/tags/commons-io-2.1/src/main/java/org/apache/commons/io/input/ProxyInputStream.java?view=markup
I think the NullPointerException happens because the underlying stream (the
field "in") is null. I don't think there's any way Derby can set that field to
null, so I would suspect that your application somehow passes null to
ProxyInputStream's constructor.
If you modify the application class that overrides ProxyInputStream (assuming
that's how you use it) and make its constructor throw a NullPointerException if
the passed in stream is null, you might get a better indication of what's going
wrong.
> Intermittent NPE executing a prepared statement inserting a blob.
> -----------------------------------------------------------------
>
> Key: DERBY-5470
> URL: https://issues.apache.org/jira/browse/DERBY-5470
> Project: Derby
> Issue Type: Bug
> Components: Store
> Affects Versions: 10.8.1.2
> Environment: Linux 64-bit, java 1.6 build 26.
> Reporter: Benson Margulies
>
> We cannot reproduce this consistently, let alone minimize it for you.
> However, the backtrace may be suggestive enough to give you some traction.
> I have never been able to repro this on a Mac with the corresponding version
> of Java.
> {noformat}
> Caused by: java.lang.NullPointerException
> at
> org.apache.commons.io.input.ProxyInputStream.read(ProxyInputStream.java:75)
> at java.io.FilterInputStream.read(FilterInputStream.java:116)
> at org.apache.derby.iapi.services.io.LimitInputStream.read(Unknown
> Source)
> at org.apache.derby.iapi.types.RawToBinaryFormatStream.read(Unknown
> Source)
> at org.apache.derby.impl.store.raw.data.MemByteHolder.write(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.data.RememberBytesInputStream.fillBuf(Unknown
> Source)
> at org.apache.derby.impl.store.raw.data.StoredPage.logColumn(Unknown
> Source)
> at org.apache.derby.impl.store.raw.data.StoredPage.logRow(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.data.InsertOperation.writeOptionalDataToBuffer(Unknown
> Source)
> at org.apache.derby.impl.store.raw.data.InsertOperation.<init>(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.data.LoggableActions.actionInsert(Unknown
> Source)
> at
> org.apache.derby.impl.store.raw.data.BasePage.insertNoOverflow(Unknown Source)
> at org.apache.derby.impl.store.raw.data.BasePage.insertAtSlot(Unknown
> Source)
> at org.apache.derby.impl.store.raw.data.StoredPage.insertAtSlot(Unknown
> Source)
> at org.apache.derby.impl.store.raw.data.BasePage.insert(Unknown Source)
> at
> org.apache.derby.impl.store.access.heap.HeapController.doInsert(Unknown
> Source)
> at
> org.apache.derby.impl.store.access.heap.HeapController.insertAndFetchLocation(Unknown
> Source)
> at org.apache.derby.impl.sql.execute.RowChangerImpl.insertRow(Unknown
> Source)
> at
> org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown
> Source)
> at org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown
> Source)
> at
> org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source)
> at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown
> Source)
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira