You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rya.apache.org by mi...@apache.org on 2016/12/18 03:54:58 UTC
[2/2] incubator-rya git commit: Bug Fix: Issues with 'adding context'
Closes #128
Bug Fix: Issues with 'adding context'
Closes #128
Project: http://git-wip-us.apache.org/repos/asf/incubator-rya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rya/commit/7e25bdaa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rya/tree/7e25bdaa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rya/diff/7e25bdaa
Branch: refs/heads/master
Commit: 7e25bdaa0a244cfeec478b2d26cfcb5cb33c2dd2
Parents: 8f779fd
Author: Aaron Mihalik <mi...@alum.mit.edu>
Authored: Thu Dec 15 16:57:41 2016 -0500
Committer: Aaron Mihalik <aa...@gmail.com>
Committed: Sat Dec 17 22:53:33 2016 -0500
----------------------------------------------------------------------
.../rya/api/domain/StatementMetadata.java | 18 +++++++--
.../rya/api/domain/StatementMetadataTest.java | 39 ++++++++++++++++++++
.../SimpleMongoDBStorageStrategyTest.java | 2 +
3 files changed, 55 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/7e25bdaa/common/rya.api/src/main/java/org/apache/rya/api/domain/StatementMetadata.java
----------------------------------------------------------------------
diff --git a/common/rya.api/src/main/java/org/apache/rya/api/domain/StatementMetadata.java b/common/rya.api/src/main/java/org/apache/rya/api/domain/StatementMetadata.java
index 904f86c..a70e5da 100644
--- a/common/rya.api/src/main/java/org/apache/rya/api/domain/StatementMetadata.java
+++ b/common/rya.api/src/main/java/org/apache/rya/api/domain/StatementMetadata.java
@@ -1,4 +1,3 @@
-package org.apache.rya.api.domain;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -17,6 +16,7 @@ package org.apache.rya.api.domain;
* specific language governing permissions and limitations
* under the License.
*/
+package org.apache.rya.api.domain;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
@@ -43,9 +43,16 @@ public class StatementMetadata {
public StatementMetadata(byte[] value) throws RdfDAOException {
try {
- // try to convert back to a json string and then back to the map.
- String metadataString = new String(value, "UTF8");
- metadataMap = gson.fromJson(metadataString, HashMap.class);
+ if (value == null) {
+ metadataMap = new HashMap<>();
+ } else {
+ // try to convert back to a json string and then back to the map.
+ String metadataString = new String(value, "UTF8");
+ metadataMap = gson.fromJson(metadataString, HashMap.class);
+ if (metadataMap == null) {
+ metadataMap = new HashMap<>();
+ }
+ }
} catch (UnsupportedEncodingException e) {
throw new RdfDAOException(e);
}
@@ -65,6 +72,9 @@ public class StatementMetadata {
public byte[] toBytes() {
// convert the map to a json string
+ if (metadataMap.isEmpty()) {
+ return null;
+ }
String metadataString = gson.toJson(metadataMap);
// TODO may want to cache this for performance reasons
return metadataString.getBytes();
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/7e25bdaa/common/rya.api/src/test/java/org/apache/rya/api/domain/StatementMetadataTest.java
----------------------------------------------------------------------
diff --git a/common/rya.api/src/test/java/org/apache/rya/api/domain/StatementMetadataTest.java b/common/rya.api/src/test/java/org/apache/rya/api/domain/StatementMetadataTest.java
new file mode 100644
index 0000000..2252dc2
--- /dev/null
+++ b/common/rya.api/src/test/java/org/apache/rya/api/domain/StatementMetadataTest.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rya.api.domain;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class StatementMetadataTest {
+
+ @Test
+ public void simpleTests() throws Exception {
+ StatementMetadata empty = new StatementMetadata();
+ byte[] emptyData = empty.toBytes();
+ Assert.assertArrayEquals(emptyData, new StatementMetadata(emptyData).toBytes());
+
+
+ StatementMetadata single = new StatementMetadata();
+ single.addMetadata("This", "That");
+ byte[] singleData = single.toBytes();
+ Assert.assertArrayEquals(singleData, new StatementMetadata(singleData).toBytes());
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/7e25bdaa/dao/mongodb.rya/src/test/java/org/apache/rya/mongodb/SimpleMongoDBStorageStrategyTest.java
----------------------------------------------------------------------
diff --git a/dao/mongodb.rya/src/test/java/org/apache/rya/mongodb/SimpleMongoDBStorageStrategyTest.java b/dao/mongodb.rya/src/test/java/org/apache/rya/mongodb/SimpleMongoDBStorageStrategyTest.java
index 910a387..bec403c 100644
--- a/dao/mongodb.rya/src/test/java/org/apache/rya/mongodb/SimpleMongoDBStorageStrategyTest.java
+++ b/dao/mongodb.rya/src/test/java/org/apache/rya/mongodb/SimpleMongoDBStorageStrategyTest.java
@@ -40,6 +40,7 @@ public class SimpleMongoDBStorageStrategyTest {
private static final String PREDICATE = "http://temp.com";
private static final String OBJECT = "http://object.com";
private static final String CONTEXT = "http://context.com";
+ private static final String STATEMENT_METADATA = "{}";
private static final RyaStatement testStatement;
private static final DBObject testDBO;
@@ -61,6 +62,7 @@ public class SimpleMongoDBStorageStrategyTest {
testDBO.put("object", OBJECT);
testDBO.put("objectType", ANYURI.stringValue());
testDBO.put("context", CONTEXT);
+ testDBO.put("statementMetadata", STATEMENT_METADATA);
testDBO.put("insertTimestamp", null);
}