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

Amit Jain commented on OAK-9153:
--------------------------------

Thanks [~thomasm]. Yes this shouldn't be called in a {{LOG.trace}}.

> File data store: creating "tmp" directory is not enforced
> ---------------------------------------------------------
>
>                 Key: OAK-9153
>                 URL: https://issues.apache.org/jira/browse/OAK-9153
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: blob
>            Reporter: Thomas Mueller
>            Assignee: Amit Jain
>            Priority: Major
>
> The AbstractSharedCachingDataStore creates the tmp directory as follows:
> {noformat}
> LOG.trace("Temporary file created [{}]", tmp.mkdirs()); 
> {noformat}
> This is bad for multiple reasons:
> * The call to mkdirs() might return false. It doesn't throw an exception if 
> the directory is not created. This is the biggest problem.
> * This isn't logged because log level isn't usually "trace".
> * It's hard to read that part, because the mkdirs is "hidden" as a parameter 
> in the LOG.trace call. It's better to do that in a separate line.
> Other places places in Oak might also be wrong. Here how this is done 
> elsewhere:
> {noformat}
> grep -R --include=*.java ".mkdirs()" . | grep -v "src/test"
> ./oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/IndexRootDirectory.java:
>                 checkState(indexDir.mkdirs(), "Not able to create folder 
> [%s]", indexDir);
> ./oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/directory/DefaultDirectoryFactory.java:
>             file.mkdirs();
> ./oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java:
>         checkState(workDir.mkdirs(), "Cannot create directory %s", workDir);
> ./oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/DataStoreCacheUtils.java:
>         file.mkdirs();
> ./oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java:
>         LOG.trace("Temporary file created [{}]", tmp.mkdirs());
> ./oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/FSBackend.java:
>             boolean created = fsPathDir.mkdirs();
> ./oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/FSBackend.java:
>                 parent.mkdirs();
> ./oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/DataStoreCacheUpgradeUtils.java:
>             newDownload.getParentFile().mkdirs();
> ./oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/DataStoreCacheUpgradeUtils.java:
>                 newUpload.getParentFile().mkdirs();
> ./oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/UploadStagingCache.java:
>             uploadCacheSpace.mkdirs();
> ./oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/FileBlobStore.java:
>         baseDir.mkdirs();
> ./oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/FileBlobStore.java:
>                 parent.mkdirs();
> ./oak-blob/src/main/java/org/apache/jackrabbit/oak/spi/blob/FileBlobStore.java:
>             parent.mkdirs();
> ./oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStoreBuilder.java:
>         directory.mkdirs();
> ./oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java:
>                 cfg.getSplitPersistenceDirectory().mkdirs();
> ./oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/PersistentCache.java:
>             dr.mkdirs();
> ./oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentTarFactory.java:
>             directory.mkdirs();
> ./oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/cli/node/SegmentFactory.java:
>             directory.mkdirs();
> ./oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/datastore/DataStoreTextWriter.java:
>             checkArgument(directory.mkdirs(), "Cannot create directory %s", 
> directory.getAbsolutePath());
> ./oak-examples/webapp/src/main/java/org/apache/jackrabbit/j2ee/Installer.java:
>             home.mkdirs();
> ./oak-examples/webapp/src/main/java/org/apache/jackrabbit/j2ee/Installer.java:
>             dest.getParentFile().mkdirs();
> ./oak-run/src/main/java/org/apache/jackrabbit/oak/index/SegmentPropertyIndexEditorProvider.java:
>             indexStoreDir.mkdirs();
> ./oak-run/src/main/java/org/apache/jackrabbit/oak/exporter/NodeStateSerializer.java:
>             checkState(dir.mkdirs(), "Cannot create directory [%s]", 
> dir.getAbsolutePath());
> ./oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java:  
>               outDir.mkdirs();
> ./oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/EmbeddedSolrServerProvider.java:
>             if (!solrHomePathFile.mkdirs()) {
> ./oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/EmbeddedSolrServerProvider.java:
>             if (!new File(solrCorePathFile, "conf").mkdirs()) {
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to