[
https://issues.apache.org/jira/browse/JCR-1329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jukka Zitting resolved JCR-1329.
--------------------------------
Resolution: Duplicate
Seems like a duplicate of JCR-1346.
> Unable to commit a new version of a nt:file node within a transaction using
> a specfic configuration
> -----------------------------------------------------------------------------------------------------
>
> Key: JCR-1329
> URL: https://issues.apache.org/jira/browse/JCR-1329
> Project: Jackrabbit
> Issue Type: Bug
> Components: config, transactions
> Affects Versions: 1.4
> Reporter: Eric Norman
> Attachments: repository.xml, TestCase.java
>
>
> A NullPointerException is thrown when committing a version of a nt:file node
> within a transaction using the following repository configuration:
> 1. File data size > 1024 bytes (causes the BLOB to use a temp file, otherwise
> the data is kept in memory)
> 2. Persistance Manager:
> org.apache.jackrabbit.core.state.db.DerbyPersistenceManager
> 3. No <DataStore> configured in repository.xml
> The cause appears to be that during the commit operation
> BLOBInTempFile.discard() is called which deletes the temp file, then later
> on, BLOBInTempFile.getStream() is called on the same object, but the file has
> already been deleted, so it fails resulting in the following exception:
> 121375 [main] ERROR
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager -
> failed to write property state:
> c4c5b6ec-b12d-419d-8a1f-03eb69f30aee/{http://www.jcp.org/jcr/1.0}data
> java.lang.NullPointerException
> at java.io.FileInputStream.<init>(FileInputStream.java:103)
> at
> org.apache.jackrabbit.core.value.BLOBInTempFile.getStream(BLOBInTempFile.java:145)
> at
> org.apache.jackrabbit.core.persistence.util.Serializer.serialize(Serializer.java:198)
> at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:476)
> at
> org.apache.jackrabbit.core.persistence.AbstractPersistenceManager.store(AbstractPersistenceManager.java:75)
> at
> org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager.store(DatabasePersistenceManager.java:282)
> at
> org.apache.jackrabbit.core.state.SharedItemStateManager$Update.end(SharedItemStateManager.java:688)
> at
> org.apache.jackrabbit.core.state.XAItemStateManager.commit(XAItemStateManager.java:162)
> at
> org.apache.jackrabbit.core.version.XAVersionManager.commit(XAVersionManager.java:476)
> at
> org.apache.jackrabbit.core.TransactionContext.commit(TransactionContext.java:189)
> at
> org.apache.jackrabbit.core.XASessionImpl.commit(XASessionImpl.java:339)
> at TestCase.main(TestCase.java:81)
> Workarounds:
> 1. Use a different persistance manager.
> 'org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager' does
> not fail.
> 2. Configure a <DataStore> in your repository.xml. This results in a
> different code path that seems to work.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.