Repository: gora
Updated Branches:
  refs/heads/master 08c48d966 -> cfd1c52f3


Memstore problems is fixed


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/2df96a1d
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/2df96a1d
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/2df96a1d

Branch: refs/heads/master
Commit: 2df96a1db3908539321d61971ab581e21fcf16e9
Parents: c2d58dd
Author: cihad guzel <cguz...@gmail.com>
Authored: Thu Aug 27 22:40:28 2015 +0300
Committer: cihad guzel <cguz...@gmail.com>
Committed: Sat Aug 29 13:39:10 2015 +0300

----------------------------------------------------------------------
 .../org/apache/gora/memory/store/MemStore.java  | 30 +++++++++++---------
 1 file changed, 17 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/gora/blob/2df96a1d/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java
----------------------------------------------------------------------
diff --git a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java 
b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java
index 56ba4e3..973031a 100644
--- a/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java
+++ b/gora-core/src/main/java/org/apache/gora/memory/store/MemStore.java
@@ -24,7 +24,8 @@ import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 import java.util.NavigableMap;
-import java.util.TreeMap;
+import java.util.concurrent.ConcurrentNavigableMap;
+import java.util.concurrent.ConcurrentSkipListMap;
 
 
 import org.apache.avro.Schema.Field;
@@ -88,7 +89,9 @@ public class MemStore<K, T extends PersistentBase> extends 
DataStoreBase<K, T> {
     }
   }
 
-  private TreeMap<K, T> map = new TreeMap<K, T>();
+  // This map behaves like DB, has to be static and concurrent collection
+  @SuppressWarnings("rawtypes")
+  public static ConcurrentSkipListMap map = new ConcurrentSkipListMap();
 
   @Override
   public String getSchemaName() {
@@ -110,35 +113,36 @@ public class MemStore<K, T extends PersistentBase> 
extends DataStoreBase<K, T> {
         if(delete(result.getKey()))
           deletedRows++;
       }
-      return 0;
-    }
-    catch(Exception e){
+      return deletedRows;
+    } catch (Exception e) {
       return 0;
     }
   }
-
+  
+  @SuppressWarnings("unchecked")
   @Override
   public Result<K, T> execute(Query<K, T> query) {
     K startKey = query.getStartKey();
     K endKey = query.getEndKey();
     if(startKey == null) {
-      startKey = map.firstKey();
+      startKey = (K) map.firstKey();
     }
     if(endKey == null) {
-      endKey = map.lastKey();
+      endKey = (K) map.lastKey();
     }
 
     //check if query.fields is null
     query.setFields(getFieldsToQuery(query.getFields()));
 
-    NavigableMap<K, T> submap = map.subMap(startKey, true, endKey, true);
+    ConcurrentNavigableMap<K,T> submap = map.subMap(startKey, true, endKey, 
true);
 
     return new MemResult<K,T>(this, query, submap);
   }
-
+  
+  @SuppressWarnings("unchecked")
   @Override
   public T get(K key, String[] fields) {
-    T obj = map.get(key);
+    T obj = (T) map.get(key);
     if (obj == null) {
       return null;
     }
@@ -169,7 +173,8 @@ public class MemStore<K, T extends PersistentBase> extends 
DataStoreBase<K, T> {
   public Query<K, T> newQuery() {
     return new MemQuery<K, T>(this);
   }
-
+  
+  @SuppressWarnings("unchecked")
   @Override
   public void put(K key, T obj) {
     map.put(key, obj);
@@ -189,7 +194,6 @@ public class MemStore<K, T extends PersistentBase> extends 
DataStoreBase<K, T> {
 
   @Override
   public void close() {
-    map.clear();
   }
 
   @Override

Reply via email to