This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 350d9321ef HDDS-9252. NPE in TestNSSummaryTask (#5283)
350d9321ef is described below
commit 350d9321efa9dbd9b95a46b40e35646cdeac0846
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Fri Sep 15 21:48:34 2023 +0200
HDDS-9252. NPE in TestNSSummaryTask (#5283)
---
.../hadoop/ozone/recon/ReconTestInjector.java | 104 +++++++++++----------
.../ozone/recon/tasks/TestNSSummaryTask.java | 59 ++++++------
.../recon/tasks/TestNSSummaryTaskWithFSO.java | 65 +++++++------
.../recon/tasks/TestNSSummaryTaskWithLegacy.java | 71 +++++++-------
4 files changed, 151 insertions(+), 148 deletions(-)
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/ReconTestInjector.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/ReconTestInjector.java
index e4484cd5a0..86d5d676e9 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/ReconTestInjector.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/ReconTestInjector.java
@@ -44,7 +44,7 @@ import
org.apache.hadoop.ozone.recon.spi.OzoneManagerServiceProvider;
import
org.apache.hadoop.ozone.recon.spi.impl.ReconContainerMetadataManagerImpl;
import org.apache.hadoop.ozone.recon.spi.impl.ReconNamespaceSummaryManagerImpl;
import org.apache.hadoop.ozone.recon.spi.impl.ReconDBProvider;
-import org.junit.Assert;
+import org.apache.ratis.util.Preconditions;
import org.junit.rules.TemporaryFolder;
import com.google.inject.AbstractModule;
@@ -69,13 +69,17 @@ public class ReconTestInjector {
private boolean withContainerDB = false;
private List<Module> additionalModules = new ArrayList<>();
private boolean withReconSqlDb = false;
- private TemporaryFolder temporaryFolder;
+ private File tmpDir;
private Map<Class, Class> extraInheritedBindings = new HashMap<>();
private Map<Class, Object> extraInstanceBindings = new HashMap<>();
private Set<Class> extraClassBindings = new HashSet<>();
- public ReconTestInjector(TemporaryFolder temporaryFolder) {
- this.temporaryFolder = temporaryFolder;
+ public ReconTestInjector(TemporaryFolder temporaryFolder) throws IOException
{
+ this.tmpDir = temporaryFolder.newFolder();
+ }
+
+ public ReconTestInjector(File tmpDir) {
+ this.tmpDir = tmpDir;
}
public void setWithReconSqlDb(boolean withReconSqlDb) {
@@ -148,55 +152,53 @@ public class ReconTestInjector {
return injector;
}
- void setupInjector() throws IOException {
+ void setupInjector() {
+ Preconditions.assertNotNull(tmpDir, "no temp dir");
+
List<Module> modules = new ArrayList<>();
modules.add(new AbstractModule() {
@Override
protected void configure() {
- try {
- bind(OzoneConfiguration.class).toInstance(
- getTestOzoneConfiguration(temporaryFolder.newFolder()));
-
- if (reconOMMetadataManager != null) {
- bind(ReconOMMetadataManager.class)
- .toInstance(reconOMMetadataManager);
- }
-
- if (ozoneManagerServiceProvider != null) {
- bind(OzoneManagerServiceProvider.class)
- .toInstance(ozoneManagerServiceProvider);
- }
-
- if (reconScm != null) {
- bind(OzoneStorageContainerManager.class).toInstance(reconScm);
- }
-
- if (withContainerDB) {
- bind(ReconContainerMetadataManager.class)
- .to(ReconContainerMetadataManagerImpl.class)
- .in(Singleton.class);
- bind(ReconNamespaceSummaryManager.class)
- .to(ReconNamespaceSummaryManagerImpl.class)
- .in(Singleton.class);
- bind(ReconDBProvider.class).in(Singleton.class);
- }
-
- for (Map.Entry<Class, Object> entry :
- extraInstanceBindings.entrySet()) {
- bind(entry.getKey()).toInstance(entry.getValue());
- }
-
- for (Map.Entry<Class, Class> entry :
- extraInheritedBindings.entrySet()) {
- bind(entry.getKey()).to(entry.getValue()).in(Singleton.class);
- }
-
- for (Class type : extraClassBindings) {
- bind(type).in(Singleton.class);
- }
- } catch (IOException e) {
- Assert.fail();
+ bind(OzoneConfiguration.class).toInstance(
+ getTestOzoneConfiguration(tmpDir));
+
+ if (reconOMMetadataManager != null) {
+ bind(ReconOMMetadataManager.class)
+ .toInstance(reconOMMetadataManager);
+ }
+
+ if (ozoneManagerServiceProvider != null) {
+ bind(OzoneManagerServiceProvider.class)
+ .toInstance(ozoneManagerServiceProvider);
+ }
+
+ if (reconScm != null) {
+ bind(OzoneStorageContainerManager.class).toInstance(reconScm);
+ }
+
+ if (withContainerDB) {
+ bind(ReconContainerMetadataManager.class)
+ .to(ReconContainerMetadataManagerImpl.class)
+ .in(Singleton.class);
+ bind(ReconNamespaceSummaryManager.class)
+ .to(ReconNamespaceSummaryManagerImpl.class)
+ .in(Singleton.class);
+ bind(ReconDBProvider.class).in(Singleton.class);
+ }
+
+ for (Map.Entry<Class, Object> entry :
+ extraInstanceBindings.entrySet()) {
+ bind(entry.getKey()).toInstance(entry.getValue());
+ }
+
+ for (Map.Entry<Class, Class> entry :
+ extraInheritedBindings.entrySet()) {
+ bind(entry.getKey()).to(entry.getValue()).in(Singleton.class);
+ }
+
+ for (Class type : extraClassBindings) {
+ bind(type).in(Singleton.class);
}
}
});
@@ -236,10 +238,14 @@ public class ReconTestInjector {
public static class Builder {
private ReconTestInjector reconTestInjector;
- public Builder(TemporaryFolder temporaryFolder) {
+ public Builder(TemporaryFolder temporaryFolder) throws IOException {
reconTestInjector = new ReconTestInjector(temporaryFolder);
}
+ public Builder(File tmpDir) {
+ reconTestInjector = new ReconTestInjector(tmpDir);
+ }
+
/**
* Use if you need the Recon SQL DB instance.
*/
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTask.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTask.java
index 7b78319b84..4f1761ff51 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTask.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTask.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.ozone.recon.tasks;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
@@ -35,13 +36,12 @@ import org.apache.hadoop.ozone.recon.api.types.NSSummary;
import org.apache.hadoop.ozone.recon.recovery.ReconOMMetadataManager;
import org.apache.hadoop.ozone.recon.spi.ReconNamespaceSummaryManager;
import org.apache.hadoop.ozone.recon.spi.impl.OzoneManagerServiceProviderImpl;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
import org.junit.Assert;
-import org.junit.experimental.runners.Enclosed;
-import org.junit.rules.TemporaryFolder;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.io.TempDir;
import java.io.File;
import java.io.IOException;
@@ -60,12 +60,9 @@ import static
org.apache.hadoop.ozone.recon.OMMetadataManagerTestUtils.getTestRe
* support for OBS buckets. Check that the NSSummary
* for the OBS bucket is null.
*/
-@RunWith(Enclosed.class)
+@SuppressFBWarnings
public final class TestNSSummaryTask {
- @ClassRule
- public static final TemporaryFolder TEMPORARY_FOLDER = new TemporaryFolder();
-
private static ReconNamespaceSummaryManager reconNamespaceSummaryManager;
private static OMMetadataManager omMetadataManager;
private static ReconOMMetadataManager reconOMMetadataManager;
@@ -107,16 +104,16 @@ public final class TestNSSummaryTask {
private TestNSSummaryTask() {
}
- @BeforeClass
- public static void setUp() throws Exception {
- initializeNewOmMetadataManager(TEMPORARY_FOLDER.newFolder());
+ @BeforeAll
+ public static void setUp(@TempDir File tmpDir) throws Exception {
+ initializeNewOmMetadataManager(new File(tmpDir, "om"));
OzoneManagerServiceProviderImpl ozoneManagerServiceProvider =
getMockOzoneManagerServiceProvider();
reconOMMetadataManager = getTestReconOmMetadataManager(omMetadataManager,
- TEMPORARY_FOLDER.newFolder());
+ new File(tmpDir, "recon"));
ReconTestInjector reconTestInjector =
- new ReconTestInjector.Builder(TEMPORARY_FOLDER)
+ new ReconTestInjector.Builder(tmpDir)
.withReconOm(reconOMMetadataManager)
.withOmServiceProvider(ozoneManagerServiceProvider)
.withReconSqlDb()
@@ -138,14 +135,15 @@ public final class TestNSSummaryTask {
/**
* Nested class for testing NSSummaryTaskWithLegacy reprocess.
*/
- public static class TestReprocess {
+ @Nested
+ public class TestReprocess {
- private static NSSummary nsSummaryForBucket1;
- private static NSSummary nsSummaryForBucket2;
- private static NSSummary nsSummaryForBucket3;
+ private NSSummary nsSummaryForBucket1;
+ private NSSummary nsSummaryForBucket2;
+ private NSSummary nsSummaryForBucket3;
- @BeforeClass
- public static void setUp() throws IOException {
+ @BeforeEach
+ public void setUp() throws Exception {
// write a NSSummary prior to reprocess
// verify it got cleaned up after.
NSSummary staleNSSummary = new NSSummary();
@@ -212,17 +210,18 @@ public final class TestNSSummaryTask {
/**
* Nested class for testing NSSummaryTaskWithLegacy process.
*/
- public static class TestProcess {
+ @Nested
+ public class TestProcess {
- private static NSSummary nsSummaryForBucket1;
- private static NSSummary nsSummaryForBucket2;
- private static NSSummary nsSummaryForBucket3;
+ private NSSummary nsSummaryForBucket1;
+ private NSSummary nsSummaryForBucket2;
+ private NSSummary nsSummaryForBucket3;
- private static OMDBUpdateEvent keyEvent1;
- private static OMDBUpdateEvent keyEvent2;
+ private OMDBUpdateEvent keyEvent1;
+ private OMDBUpdateEvent keyEvent2;
- @BeforeClass
- public static void setUp() throws IOException {
+ @BeforeEach
+ public void setUp() throws IOException {
nSSummaryTask.reprocess(reconOMMetadataManager);
nSSummaryTask.process(processEventBatch());
@@ -237,7 +236,7 @@ public final class TestNSSummaryTask {
Assert.assertNull(nsSummaryForBucket3);
}
- private static OMUpdateEventBatch processEventBatch() throws IOException {
+ private OMUpdateEventBatch processEventBatch() throws IOException {
// put file5 under bucket 2
String omPutKey =
OM_KEY_PREFIX + VOL +
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTaskWithFSO.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTaskWithFSO.java
index 41ea757976..72bfdd81e7 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTaskWithFSO.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTaskWithFSO.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.ozone.recon.tasks;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
@@ -32,14 +33,14 @@ import org.apache.hadoop.ozone.recon.api.types.NSSummary;
import org.apache.hadoop.ozone.recon.recovery.ReconOMMetadataManager;
import org.apache.hadoop.ozone.recon.spi.OzoneManagerServiceProvider;
import org.apache.hadoop.ozone.recon.spi.ReconNamespaceSummaryManager;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
import org.junit.Assert;
-import org.junit.experimental.runners.Enclosed;
-import org.junit.rules.TemporaryFolder;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.io.TempDir;
+import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashSet;
@@ -56,12 +57,9 @@ import static
org.apache.hadoop.ozone.recon.ReconServerConfigKeys.OZONE_RECON_NS
/**
* Test for NSSummaryTaskWithFSO.
*/
-@RunWith(Enclosed.class)
+@SuppressFBWarnings
public final class TestNSSummaryTaskWithFSO {
- @ClassRule
- public static final TemporaryFolder TEMPORARY_FOLDER = new TemporaryFolder();
-
private static ReconNamespaceSummaryManager reconNamespaceSummaryManager;
private static OMMetadataManager omMetadataManager;
private static ReconOMMetadataManager reconOMMetadataManager;
@@ -119,20 +117,19 @@ public final class TestNSSummaryTaskWithFSO {
private TestNSSummaryTaskWithFSO() {
}
- @BeforeClass
- public static void setUp() throws Exception {
+ @BeforeAll
+ public static void setUp(@TempDir File tmpDir) throws Exception {
ozoneConfiguration = new OzoneConfiguration();
ozoneConfiguration.setLong(OZONE_RECON_NSSUMMARY_FLUSH_TO_DB_MAX_THRESHOLD,
10);
- omMetadataManager = initializeNewOmMetadataManager(
- TEMPORARY_FOLDER.newFolder());
+ omMetadataManager = initializeNewOmMetadataManager(new File(tmpDir, "om"));
OzoneManagerServiceProvider ozoneManagerServiceProvider =
getMockOzoneManagerServiceProviderWithFSO();
reconOMMetadataManager = getTestReconOmMetadataManager(omMetadataManager,
- TEMPORARY_FOLDER.newFolder());
+ new File(tmpDir, "recon"));
ReconTestInjector reconTestInjector =
- new ReconTestInjector.Builder(TEMPORARY_FOLDER)
+ new ReconTestInjector.Builder(tmpDir)
.withReconOm(reconOMMetadataManager)
.withOmServiceProvider(ozoneManagerServiceProvider)
.withReconSqlDb()
@@ -155,13 +152,14 @@ public final class TestNSSummaryTaskWithFSO {
/**
* Nested class for testing NSSummaryTaskWithFSO reprocess.
*/
- public static class TestReprocess {
+ @Nested
+ public class TestReprocess {
- private static NSSummary nsSummaryForBucket1;
- private static NSSummary nsSummaryForBucket2;
+ private NSSummary nsSummaryForBucket1;
+ private NSSummary nsSummaryForBucket2;
- @BeforeClass
- public static void setUp() throws IOException {
+ @BeforeEach
+ public void setUp() throws IOException {
// write a NSSummary prior to reprocess
// verify it got cleaned up after.
NSSummary staleNSSummary = new NSSummary();
@@ -277,22 +275,23 @@ public final class TestNSSummaryTaskWithFSO {
/**
* Nested class for testing NSSummaryTaskWithFSO process.
*/
- public static class TestProcess {
- private static OMDBUpdateEvent keyEvent1;
- private static OMDBUpdateEvent keyEvent2;
- private static OMDBUpdateEvent keyEvent3;
- private static OMDBUpdateEvent keyEvent4;
- private static OMDBUpdateEvent keyEvent5;
- private static OMDBUpdateEvent keyEvent6;
- private static OMDBUpdateEvent keyEvent7;
-
- @BeforeClass
- public static void setUp() throws IOException {
+ @Nested
+ public class TestProcess {
+ private OMDBUpdateEvent keyEvent1;
+ private OMDBUpdateEvent keyEvent2;
+ private OMDBUpdateEvent keyEvent3;
+ private OMDBUpdateEvent keyEvent4;
+ private OMDBUpdateEvent keyEvent5;
+ private OMDBUpdateEvent keyEvent6;
+ private OMDBUpdateEvent keyEvent7;
+
+ @BeforeEach
+ public void setUp() throws IOException {
nSSummaryTaskWithFso.reprocessWithFSO(reconOMMetadataManager);
nSSummaryTaskWithFso.processWithFSO(processEventBatch());
}
- private static OMUpdateEventBatch processEventBatch() throws IOException {
+ private OMUpdateEventBatch processEventBatch() throws IOException {
// Events for keyTable change:
// put file5 under bucket 2
String omPutKey = BUCKET_TWO_OBJECT_ID + OM_KEY_PREFIX + FILE_FIVE;
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTaskWithLegacy.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTaskWithLegacy.java
index 17230beb4c..1e32db78da 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTaskWithLegacy.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/tasks/TestNSSummaryTaskWithLegacy.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.ozone.recon.tasks;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import org.apache.hadoop.hdds.client.StandaloneReplicationConfig;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
@@ -35,13 +36,12 @@ import org.apache.hadoop.ozone.recon.api.types.NSSummary;
import org.apache.hadoop.ozone.recon.recovery.ReconOMMetadataManager;
import org.apache.hadoop.ozone.recon.spi.ReconNamespaceSummaryManager;
import org.apache.hadoop.ozone.recon.spi.impl.OzoneManagerServiceProviderImpl;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Nested;
+import org.junit.jupiter.api.Test;
import org.junit.Assert;
-import org.junit.experimental.runners.Enclosed;
-import org.junit.rules.TemporaryFolder;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.io.TempDir;
import java.io.File;
import java.io.IOException;
@@ -59,12 +59,9 @@ import static
org.apache.hadoop.ozone.recon.OMMetadataManagerTestUtils.getTestRe
/**
* Test for NSSummaryTaskWithLegacy.
*/
-@RunWith(Enclosed.class)
+@SuppressFBWarnings
public final class TestNSSummaryTaskWithLegacy {
- @ClassRule
- public static final TemporaryFolder TEMPORARY_FOLDER = new TemporaryFolder();
-
private static ReconNamespaceSummaryManager reconNamespaceSummaryManager;
private static OMMetadataManager omMetadataManager;
private static ReconOMMetadataManager reconOMMetadataManager;
@@ -124,16 +121,16 @@ public final class TestNSSummaryTaskWithLegacy {
private TestNSSummaryTaskWithLegacy() {
}
- @BeforeClass
- public static void setUp() throws Exception {
- initializeNewOmMetadataManager(TEMPORARY_FOLDER.newFolder());
+ @BeforeAll
+ public static void setUp(@TempDir File tmpDir) throws Exception {
+ initializeNewOmMetadataManager(new File(tmpDir, "om"));
OzoneManagerServiceProviderImpl ozoneManagerServiceProvider =
getMockOzoneManagerServiceProvider();
reconOMMetadataManager = getTestReconOmMetadataManager(omMetadataManager,
- TEMPORARY_FOLDER.newFolder());
+ new File(tmpDir, "recon"));
ReconTestInjector reconTestInjector =
- new ReconTestInjector.Builder(TEMPORARY_FOLDER)
+ new ReconTestInjector.Builder(tmpDir)
.withReconOm(reconOMMetadataManager)
.withOmServiceProvider(ozoneManagerServiceProvider)
.withReconSqlDb()
@@ -156,13 +153,14 @@ public final class TestNSSummaryTaskWithLegacy {
/**
* Nested class for testing NSSummaryTaskWithLegacy reprocess.
*/
- public static class TestReprocess {
+ @Nested
+ public class TestReprocess {
- private static NSSummary nsSummaryForBucket1;
- private static NSSummary nsSummaryForBucket2;
+ private NSSummary nsSummaryForBucket1;
+ private NSSummary nsSummaryForBucket2;
- @BeforeClass
- public static void setUp() throws IOException {
+ @BeforeEach
+ public void setUp() throws IOException {
// write a NSSummary prior to reprocess
// verify it got cleaned up after.
NSSummary staleNSSummary = new NSSummary();
@@ -280,21 +278,22 @@ public final class TestNSSummaryTaskWithLegacy {
/**
* Nested class for testing NSSummaryTaskWithLegacy process.
*/
- public static class TestProcess {
-
- private static NSSummary nsSummaryForBucket1;
- private static NSSummary nsSummaryForBucket2;
-
- private static OMDBUpdateEvent keyEvent1;
- private static OMDBUpdateEvent keyEvent2;
- private static OMDBUpdateEvent keyEvent3;
- private static OMDBUpdateEvent keyEvent4;
- private static OMDBUpdateEvent keyEvent5;
- private static OMDBUpdateEvent keyEvent6;
- private static OMDBUpdateEvent keyEvent7;
-
- @BeforeClass
- public static void setUp() throws IOException {
+ @Nested
+ public class TestProcess {
+
+ private NSSummary nsSummaryForBucket1;
+ private NSSummary nsSummaryForBucket2;
+
+ private OMDBUpdateEvent keyEvent1;
+ private OMDBUpdateEvent keyEvent2;
+ private OMDBUpdateEvent keyEvent3;
+ private OMDBUpdateEvent keyEvent4;
+ private OMDBUpdateEvent keyEvent5;
+ private OMDBUpdateEvent keyEvent6;
+ private OMDBUpdateEvent keyEvent7;
+
+ @BeforeEach
+ public void setUp() throws IOException {
nSSummaryTaskWithLegacy.reprocessWithLegacy(reconOMMetadataManager);
nSSummaryTaskWithLegacy.processWithLegacy(processEventBatch());
@@ -306,7 +305,7 @@ public final class TestNSSummaryTaskWithLegacy {
Assert.assertNotNull(nsSummaryForBucket2);
}
- private static OMUpdateEventBatch processEventBatch() throws IOException {
+ private OMUpdateEventBatch processEventBatch() throws IOException {
// put file5 under bucket 2
String omPutKey =
OM_KEY_PREFIX + VOL +
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]