Author: amitj
Date: Wed Jun 21 06:58:24 2017
New Revision: 1799393
URL: http://svn.apache.org/viewvc?rev=1799393&view=rev
Log:
OAK-6374: S3Backend masks actual thrown error when problem in filtering
properties
- Fixed by not using Maps.fromProperties
- Logging error before filtering also instead of debug
Modified:
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/aws/s3/S3Backend.java
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/Utils.java
jackrabbit/oak/trunk/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3DataStoreUtils.java
jackrabbit/oak/trunk/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3DataStore.java
Modified:
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/aws/s3/S3Backend.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/aws/s3/S3Backend.java?rev=1799393&r1=1799392&r2=1799393&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/aws/s3/S3Backend.java
(original)
+++
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/aws/s3/S3Backend.java
Wed Jun 21 06:58:24 2017
@@ -214,10 +214,10 @@ public class S3Backend implements Shared
LOG.debug("S3 Backend initialized in [{}] ms",
+(System.currentTimeMillis() - startTime.getTime()));
} catch (Exception e) {
- LOG.debug(" error ", e);
- Map<String, String> filteredMap = Maps.newHashMap();
+ LOG.error(" error ", e);
+ Map<String, Object> filteredMap = Maps.newHashMap();
if (prop != null) {
- filteredMap = Maps.filterKeys(Maps.fromProperties(prop), new
Predicate<String>() {
+ filteredMap = Maps.filterKeys(Utils.asMap(prop), new
Predicate<String>() {
@Override public boolean apply(String input) {
return !input.equals(S3Constants.ACCESS_KEY) &&
!input.equals(S3Constants
.SECRET_KEY);
Modified:
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java?rev=1799393&r1=1799392&r2=1799393&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
(original)
+++
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
Wed Jun 21 06:58:24 2017
@@ -164,13 +164,13 @@ public class S3Backend extends AbstractS
LOG.debug("S3 Backend initialized in [{}] ms",
+(System.currentTimeMillis() - startTime.getTime()));
} catch (Exception e) {
- LOG.debug(" error ", e);
- Map<String, String> filteredMap = Maps.newHashMap();
+ LOG.error("Error ", e);
+ Map<String, Object> filteredMap = Maps.newHashMap();
if (properties != null) {
- filteredMap = Maps.filterKeys(Maps.fromProperties(properties),
new Predicate<String>() {
+ filteredMap = Maps.filterKeys(Utils.asMap(properties), new
Predicate<String>() {
@Override public boolean apply(String input) {
- return !input.equals(S3Constants.ACCESS_KEY) &&
!input.equals(S3Constants
- .SECRET_KEY);
+ return !input.equals(S3Constants.ACCESS_KEY) &&
+ !input.equals(S3Constants.SECRET_KEY);
}
});
}
Modified:
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/Utils.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/Utils.java?rev=1799393&r1=1799392&r2=1799393&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/Utils.java
(original)
+++
jackrabbit/oak/trunk/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/Utils.java
Wed Jun 21 06:58:24 2017
@@ -21,8 +21,10 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.Map;
import java.util.Properties;
+import com.google.common.collect.Maps;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -222,4 +224,12 @@ public final class Utils {
cc.setMaxErrorRetry(maxErrorRetry);
return cc;
}
+
+ public static Map<String, Object> asMap(Properties props) {
+ Map<String, Object> map = Maps.newHashMap();
+ for (Object key : props.keySet()) {
+ map.put((String)key, props.get(key));
+ }
+ return map;
+ }
}
Modified:
jackrabbit/oak/trunk/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3DataStoreUtils.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3DataStoreUtils.java?rev=1799393&r1=1799392&r2=1799393&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3DataStoreUtils.java
(original)
+++
jackrabbit/oak/trunk/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3DataStoreUtils.java
Wed Jun 21 06:58:24 2017
@@ -122,7 +122,7 @@ public class S3DataStoreUtils extends Da
public static DataStore getS3DataStore(String className, Properties props,
String homeDir) throws Exception {
DataStore ds =
Class.forName(className).asSubclass(DataStore.class).newInstance();
- PropertiesUtil.populate(ds, Maps.fromProperties(props), false);
+ PropertiesUtil.populate(ds, Utils.asMap(props), false);
// Set the props object
if (S3.getName().equals(className)) {
((S3DataStore) ds).setProperties(props);
Modified:
jackrabbit/oak/trunk/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3DataStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3DataStore.java?rev=1799393&r1=1799392&r2=1799393&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3DataStore.java
(original)
+++
jackrabbit/oak/trunk/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3DataStore.java
Wed Jun 21 06:58:24 2017
@@ -84,11 +84,12 @@ public class TestS3DataStore {
@Test
public void testAccessParamLeakOnError() throws Exception {
expectedEx.expect(RepositoryException.class);
- expectedEx.expectMessage("Could not initialize S3 from
{s3Region=us-standard}");
+ expectedEx.expectMessage("Could not initialize S3 from
{s3Region=us-standard, intValueKey=25}");
props.put(S3Constants.ACCESS_KEY, "abcd");
props.put(S3Constants.SECRET_KEY, "123456");
props.put(S3Constants.S3_REGION, "us-standard");
+ props.put("intValueKey", 25);
ds = getS3DataStore(s3Class, props, dataStoreDir.getAbsolutePath());
}