Index: jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java =================================================================== --- jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java (revision 1600813) +++ jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/CachingDataStore.java (working copy) @@ -219,13 +219,10 @@ try { if (path == null) { path = homeDir + "/repository/datastore"; - tmpDir = new File(homeDir, "/repository/s3tmp"); - } else { - // cache is moved from 'path' to 'path'/repository/datastore - tmpDir = new File(path, "/repository/s3tmp"); - path = path + "/repository/datastore"; } - LOG.info("path=[{}], tmpPath=[{}]", path, tmpDir.getPath()); + // create tmp inside path + tmpDir = new File(path, "tmp"); + LOG.info("path=[{}], tmpPath=[{}]", path, tmpDir.getAbsolutePath()); directory = new File(path); mkdirs(directory); if (!mkdirs(tmpDir)) { Index: jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/LocalCache.java =================================================================== --- jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/LocalCache.java (revision 1600813) +++ jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/LocalCache.java (working copy) @@ -572,12 +572,20 @@ LOG.debug("Time taken to sort [{}] took [{}] sec", allFiles.size(), ((t2 - t1) / 1000)); String dataStorePath = directory.getAbsolutePath(); + String tmpPath = tmp.getAbsolutePath(); + LOG.debug("tmp path [{}]", tmpPath); long time = System.currentTimeMillis(); int count = 0; for (File f : allFiles) { if (f.exists()) { count++; String name = f.getPath(); + String filePath = f.getAbsolutePath(); + // skipped any temp file + if(filePath.startsWith(tmpPath) ) { + LOG.info ("tmp file [{}] skipped ", filePath); + continue; + } if (name.startsWith(dataStorePath)) { name = name.substring(dataStorePath.length()); }