[ 
https://issues.apache.org/jira/browse/JCR-4814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17572326#comment-17572326
 ] 

Konrad Windszus commented on JCR-4814:
--------------------------------------

I would argue that at least debugging is broken/impossible for both 
`File.delete()` and `File.renameTo()`. As the risk for regressions when 
converting those only for NIO Files is pretty low IMHO, we should take this 
issue as opportunity to ease debugging in the future (if some other issues 
occur in the underlying filesystem) and do the migration.

> File.renameTo sometimes fails to move temporary file to data record location
> ----------------------------------------------------------------------------
>
>                 Key: JCR-4814
>                 URL: https://issues.apache.org/jira/browse/JCR-4814
>             Project: Jackrabbit Content Repository
>          Issue Type: Task
>          Components: jackrabbit-data
>            Reporter: Kunal Shubham
>            Priority: Major
>
> Getting this error intermittently when trying to add a binary to 
> filedatastore, ultimately throwing DataStoreException:
> {code:java}
> Caused by: org.apache.jackrabbit.core.data.DataStoreException: Could not add 
> record
>     at 
> org.apache.jackrabbit.core.data.FileDataStore.addRecord(FileDataStore.java:230)
>  [org.apache.jackrabbit.jackrabbit-data:2.18.3]
>     at 
> org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore.addRecord(DataStoreBlobStore.java:562)
>  [org.apache.jackrabbit.oak-blob-plugins:1.10.6]
>     at 
> org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore.writeStream(DataStoreBlobStore.java:661)
>  [org.apache.jackrabbit.oak-blob-plugins:1.10.6]
>     at 
> org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore.writeBlob(DataStoreBlobStore.java:237)
>  [org.apache.jackrabbit.oak-blob-plugins:1.10.6]
>     ... 13 common frames omitted
> Caused by: java.io.IOException: Can not rename 
> /sb/env/aem/aem-primary/crx-quickstart/datastore/tmp8078245415384830382.tmp 
> to 
> /sb/env/aem/aem-primary/crx-quickstart/datastore/40/62/95/406295aa1c0ba2cc6d64c30ac22c101bd256f38fb5fd8a70d97578974e4c568c
>  (media read only?)  {code}
> Apparently the File.renameTo() method fails at [1]. I checked that using 
> java.nio.file.Files.move() instead fixes the issue. So I propose to add 
> Files.move as a fall back to File.renameTo.
> [1] 
> [https://github.com/apache/jackrabbit/blob/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java#L199]
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to