Skip to content
Snippets Groups Projects
Commit 2a5ffb81 authored by kohleman's avatar kohleman
Browse files

Make file operations monitored in SegmentedStoreUtils.

SVN: 26552
parent c1cfb705
No related branches found
No related tags found
No related merge requests found
...@@ -32,12 +32,15 @@ import java.util.regex.Pattern; ...@@ -32,12 +32,15 @@ import java.util.regex.Pattern;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel; import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel;
import ch.systemsx.cisd.base.exceptions.IOExceptionUnchecked;
import ch.systemsx.cisd.base.utilities.OSUtilities; import ch.systemsx.cisd.base.utilities.OSUtilities;
import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException; import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException; import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.common.exceptions.UserFailureException;
import ch.systemsx.cisd.common.filesystem.FileOperations;
import ch.systemsx.cisd.common.filesystem.FileUtilities; import ch.systemsx.cisd.common.filesystem.FileUtilities;
import ch.systemsx.cisd.common.filesystem.HostAwareFile; import ch.systemsx.cisd.common.filesystem.HostAwareFile;
import ch.systemsx.cisd.common.filesystem.IFileOperations;
import ch.systemsx.cisd.common.filesystem.IFreeSpaceProvider; import ch.systemsx.cisd.common.filesystem.IFreeSpaceProvider;
import ch.systemsx.cisd.common.filesystem.rsync.RsyncCopier; import ch.systemsx.cisd.common.filesystem.rsync.RsyncCopier;
import ch.systemsx.cisd.common.logging.ISimpleLogger; import ch.systemsx.cisd.common.logging.ISimpleLogger;
...@@ -86,7 +89,7 @@ public class SegmentedStoreUtils ...@@ -86,7 +89,7 @@ public class SegmentedStoreUtils
@Override @Override
public boolean accept(File pathname) public boolean accept(File pathname)
{ {
if (pathname.isDirectory() == false) if (FileOperations.getMonitoredInstanceForCurrentThread().isDirectory(pathname) == false)
{ {
return false; return false;
} }
...@@ -100,7 +103,9 @@ public class SegmentedStoreUtils ...@@ -100,7 +103,9 @@ public class SegmentedStoreUtils
*/ */
public static File[] getShares(File storeRootDir) public static File[] getShares(File storeRootDir)
{ {
File[] files = storeRootDir.listFiles(FILTER_ON_SHARES); File[] files =
FileOperations.getMonitoredInstanceForCurrentThread().listFiles(storeRootDir,
FILTER_ON_SHARES);
if (files == null) if (files == null)
{ {
throw new ConfigurationFailureException( throw new ConfigurationFailureException(
...@@ -116,12 +121,13 @@ public class SegmentedStoreUtils ...@@ -116,12 +121,13 @@ public class SegmentedStoreUtils
*/ */
public static String findIncomingShare(File incomingFolder, File storeRoot, ISimpleLogger logger) public static String findIncomingShare(File incomingFolder, File storeRoot, ISimpleLogger logger)
{ {
if (incomingFolder.isDirectory() == false) final IFileOperations fileOp = FileOperations.getMonitoredInstanceForCurrentThread();
if (fileOp.isDirectory(incomingFolder) == false)
{ {
throw new ConfigurationFailureException( throw new ConfigurationFailureException(
"Incoming folder does not exist or is not a folder: " + incomingFolder); "Incoming folder does not exist or is not a folder: " + incomingFolder);
} }
if (storeRoot.isDirectory() == false) if (fileOp.isDirectory(storeRoot) == false)
{ {
throw new ConfigurationFailureException( throw new ConfigurationFailureException(
"Store root does not exist or is not a folder: " + storeRoot); "Store root does not exist or is not a folder: " + storeRoot);
...@@ -129,8 +135,8 @@ public class SegmentedStoreUtils ...@@ -129,8 +135,8 @@ public class SegmentedStoreUtils
File testFile = new File(incomingFolder, ".DDS_TEST"); File testFile = new File(incomingFolder, ".DDS_TEST");
try try
{ {
testFile.createNewFile(); fileOp.createNewFile(testFile);
} catch (IOException ex) } catch (IOExceptionUnchecked ex)
{ {
throw new ConfigurationFailureException( throw new ConfigurationFailureException(
"Couldn't create a test file in the following incoming folder: " "Couldn't create a test file in the following incoming folder: "
...@@ -216,7 +222,8 @@ public class SegmentedStoreUtils ...@@ -216,7 +222,8 @@ public class SegmentedStoreUtils
} else } else
{ {
File dataSetInStore = new File(share.getShare(), dataSet.getDataSetLocation()); File dataSetInStore = new File(share.getShare(), dataSet.getDataSetLocation());
if (dataSetInStore.exists()) if (FileOperations.getMonitoredInstanceForCurrentThread()
.exists(dataSetInStore))
{ {
if (dataSet.getDataSetSize() == null) if (dataSet.getDataSetSize() == null)
{ {
...@@ -406,7 +413,7 @@ public class SegmentedStoreUtils ...@@ -406,7 +413,7 @@ public class SegmentedStoreUtils
File source, File destinationRoot, File destination, IChecksumProvider checksumProvider) File source, File destinationRoot, File destination, IChecksumProvider checksumProvider)
{ {
assertSameName(source, destination); assertSameName(source, destination);
if (source.isFile()) if (FileOperations.getMonitoredInstanceForCurrentThread().isFile(source))
{ {
assertFile(destination); assertFile(destination);
return assertSameSizeAndCheckSum(dataSetCode, sourceRoot, source, destinationRoot, return assertSameSizeAndCheckSum(dataSetCode, sourceRoot, source, destinationRoot,
...@@ -443,8 +450,9 @@ public class SegmentedStoreUtils ...@@ -443,8 +450,9 @@ public class SegmentedStoreUtils
private static long assertSameSizeAndCheckSum(String dataSetCode, File sourceRoot, File source, private static long assertSameSizeAndCheckSum(String dataSetCode, File sourceRoot, File source,
File destinationRoot, File destination, IChecksumProvider checksumProvider) File destinationRoot, File destination, IChecksumProvider checksumProvider)
{ {
long sourceSize = source.length(); final IFileOperations fileOp = FileOperations.getMonitoredInstanceForCurrentThread();
long destinationSize = destination.length(); long sourceSize = fileOp.length(source);
long destinationSize = fileOp.length(destination);
if (sourceSize != destinationSize) if (sourceSize != destinationSize)
{ {
throw new EnvironmentFailureException("Destination file '" throw new EnvironmentFailureException("Destination file '"
...@@ -501,11 +509,12 @@ public class SegmentedStoreUtils ...@@ -501,11 +509,12 @@ public class SegmentedStoreUtils
private static void assertFile(File file) private static void assertFile(File file)
{ {
if (file.exists() == false) final IFileOperations fileOp = FileOperations.getMonitoredInstanceForCurrentThread();
if (fileOp.exists(file) == false)
{ {
throw new EnvironmentFailureException("File does not exist: " + file.getAbsolutePath()); throw new EnvironmentFailureException("File does not exist: " + file.getAbsolutePath());
} }
if (file.isFile() == false) if (fileOp.isFile(file) == false)
{ {
throw new EnvironmentFailureException("File is a directory: " + file.getAbsolutePath()); throw new EnvironmentFailureException("File is a directory: " + file.getAbsolutePath());
} }
...@@ -513,12 +522,13 @@ public class SegmentedStoreUtils ...@@ -513,12 +522,13 @@ public class SegmentedStoreUtils
private static void assertDirectory(File file) private static void assertDirectory(File file)
{ {
if (file.exists() == false) final IFileOperations fileOp = FileOperations.getMonitoredInstanceForCurrentThread();
if (fileOp.exists(file) == false)
{ {
throw new EnvironmentFailureException("Directory does not exist: " throw new EnvironmentFailureException("Directory does not exist: "
+ file.getAbsolutePath()); + file.getAbsolutePath());
} }
if (file.isDirectory() == false) if (fileOp.isDirectory(file) == false)
{ {
throw new EnvironmentFailureException("Directory is a file: " + file.getAbsolutePath()); throw new EnvironmentFailureException("Directory is a file: " + file.getAbsolutePath());
} }
...@@ -526,7 +536,7 @@ public class SegmentedStoreUtils ...@@ -526,7 +536,7 @@ public class SegmentedStoreUtils
private static File[] getFiles(File file) private static File[] getFiles(File file)
{ {
File[] files = file.listFiles(); File[] files = FileOperations.getMonitoredInstanceForCurrentThread().listFiles(file);
Arrays.sort(files); Arrays.sort(files);
return files; return files;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment