From b2180582a744e1d3e81a09697a90e932d7479589 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Mon, 6 Nov 2017 15:20:21 +0000
Subject: [PATCH] BdfList and BdfDictionary don't need to be thread-safe.

Same goes for Metadata.
---
 .../org/briarproject/bramble/api/data/BdfDictionary.java  | 7 +++++--
 .../java/org/briarproject/bramble/api/data/BdfList.java   | 6 ++++--
 .../java/org/briarproject/bramble/api/db/Metadata.java    | 8 ++++----
 .../org/briarproject/briar/blog/BlogPostValidator.java    | 2 +-
 4 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfDictionary.java b/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfDictionary.java
index 704e1e312e..50b861d895 100644
--- a/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfDictionary.java
+++ b/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfDictionary.java
@@ -4,11 +4,14 @@ import org.briarproject.bramble.api.Bytes;
 import org.briarproject.bramble.api.FormatException;
 
 import java.util.Map;
-import java.util.concurrent.ConcurrentSkipListMap;
+import java.util.Map.Entry;
+import java.util.TreeMap;
 
 import javax.annotation.Nullable;
+import javax.annotation.concurrent.NotThreadSafe;
 
-public class BdfDictionary extends ConcurrentSkipListMap<String, Object> {
+@NotThreadSafe
+public class BdfDictionary extends TreeMap<String, Object> {
 
 	public static final Object NULL_VALUE = new Object();
 
diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfList.java b/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfList.java
index 8f1d47e4ec..21ec227280 100644
--- a/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfList.java
+++ b/bramble-api/src/main/java/org/briarproject/bramble/api/data/BdfList.java
@@ -3,15 +3,17 @@ package org.briarproject.bramble.api.data;
 import org.briarproject.bramble.api.Bytes;
 import org.briarproject.bramble.api.FormatException;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Vector;
 
 import javax.annotation.Nullable;
+import javax.annotation.concurrent.NotThreadSafe;
 
 import static org.briarproject.bramble.api.data.BdfDictionary.NULL_VALUE;
 
-public class BdfList extends Vector<Object> {
+@NotThreadSafe
+public class BdfList extends ArrayList<Object> {
 
 	/**
 	 * Factory method for constructing lists inline.
diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/db/Metadata.java b/bramble-api/src/main/java/org/briarproject/bramble/api/db/Metadata.java
index 0b70a067f4..34358400c5 100644
--- a/bramble-api/src/main/java/org/briarproject/bramble/api/db/Metadata.java
+++ b/bramble-api/src/main/java/org/briarproject/bramble/api/db/Metadata.java
@@ -1,11 +1,11 @@
 package org.briarproject.bramble.api.db;
 
-import java.util.Hashtable;
+import java.util.TreeMap;
 
-import javax.annotation.concurrent.ThreadSafe;
+import javax.annotation.concurrent.NotThreadSafe;
 
-@ThreadSafe
-public class Metadata extends Hashtable<String, byte[]> {
+@NotThreadSafe
+public class Metadata extends TreeMap<String, byte[]> {
 
 	/**
 	 * Special value to indicate that a key is being removed.
diff --git a/briar-core/src/main/java/org/briarproject/briar/blog/BlogPostValidator.java b/briar-core/src/main/java/org/briarproject/briar/blog/BlogPostValidator.java
index eb3283c79c..6fa9be04f1 100644
--- a/briar-core/src/main/java/org/briarproject/briar/blog/BlogPostValidator.java
+++ b/briar-core/src/main/java/org/briarproject/briar/blog/BlogPostValidator.java
@@ -75,7 +75,7 @@ class BlogPostValidator extends BdfMessageValidator {
 		BdfMessageContext c;
 
 		int type = body.getLong(0).intValue();
-		body.removeElementAt(0);
+		body.remove(0);
 		switch (MessageType.valueOf(type)) {
 			case POST:
 				c = validatePost(m, g, body);
-- 
GitLab