From 1c16b535dfb39c648a99028f9ced0e0e5364c3a3 Mon Sep 17 00:00:00 2001 From: cramakri <cramakri> Date: Fri, 27 Jul 2012 11:19:12 +0000 Subject: [PATCH] BIS-38 SP-204 : Close hierarchical content objects SVN: 26238 --- ...InfoDBConsistencyCheckProcessingPlugin.java | 18 ++++++++++++++---- ...DBConsistencyCheckProcessingPluginTest.java | 10 +++++++++- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetAndPathInfoDBConsistencyCheckProcessingPlugin.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetAndPathInfoDBConsistencyCheckProcessingPlugin.java index b20e20712a7..2a20b05af54 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetAndPathInfoDBConsistencyCheckProcessingPlugin.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetAndPathInfoDBConsistencyCheckProcessingPlugin.java @@ -94,12 +94,12 @@ public class DataSetAndPathInfoDBConsistencyCheckProcessingPlugin implements IPr for (DatasetDescription dataset : datasets) { + IHierarchicalContent fileContent = null; + IHierarchicalContent pathInfoContent = null; try { - IHierarchicalContent fileContent = - getFileProvider().asContent(dataset.getDataSetCode()); - IHierarchicalContent pathInfoContent = - getPathInfoProvider().asContent(dataset.getDataSetCode()); + fileContent = getFileProvider().asContent(dataset.getDataSetCode()); + pathInfoContent = getPathInfoProvider().asContent(dataset.getDataSetCode()); List<Difference> datasetDifferences = new ArrayList<Difference>(); @@ -128,6 +128,16 @@ public class DataSetAndPathInfoDBConsistencyCheckProcessingPlugin implements IPr Status.createError("Couldn't check consistency of the file system and the path info database for a data set: " + dataset.getDataSetCode() + " because of the following exception: " + e.getMessage())); + } finally + { + if (null != fileContent) + { + fileContent.close(); + } + if (null != pathInfoContent) + { + pathInfoContent.close(); + } } } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetAndPathInfoDBConsistencyCheckProcessingPluginTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetAndPathInfoDBConsistencyCheckProcessingPluginTest.java index 05806ea72bd..242538962b9 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetAndPathInfoDBConsistencyCheckProcessingPluginTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetAndPathInfoDBConsistencyCheckProcessingPluginTest.java @@ -116,6 +116,7 @@ public class DataSetAndPathInfoDBConsistencyCheckProcessingPluginTest extends childIsDirectory(); getChildFileLength(); childIsChecksumPrecalculated(); + closeContent(); sendEmail(); } @@ -127,6 +128,12 @@ public class DataSetAndPathInfoDBConsistencyCheckProcessingPluginTest extends new EMailAddress("a@bc.de")); } + protected void closeContent() + { + oneOf(fileContent).close(); + oneOf(pathInfoContent).close(); + } + protected void childIsChecksumPrecalculated() { oneOf(pathInfoChildNode).isChecksumCRC32Precalculated(); @@ -145,7 +152,7 @@ public class DataSetAndPathInfoDBConsistencyCheckProcessingPluginTest extends { exactly(2).of(fileChildNode).isDirectory(); will(returnValue(false)); - exactly(2).of(pathInfoChildNode).isDirectory(); + exactly(1).of(pathInfoChildNode).isDirectory(); will(returnValue(false)); } @@ -214,5 +221,6 @@ public class DataSetAndPathInfoDBConsistencyCheckProcessingPluginTest extends } }); plugin.process(Arrays.asList(ds1), processingContext); + context.assertIsSatisfied(); } } -- GitLab