Eliminate tab character from datastore package

Change-Id: I6eea92ce72268c4ca90f1bd24bdccf7edf4cbb7f
diff --git a/src/main/java/net/onrc/onos/datastore/ramcloud/RCClient.java b/src/main/java/net/onrc/onos/datastore/ramcloud/RCClient.java
index 0f18d9c..a11e82f 100644
--- a/src/main/java/net/onrc/onos/datastore/ramcloud/RCClient.java
+++ b/src/main/java/net/onrc/onos/datastore/ramcloud/RCClient.java
@@ -47,16 +47,16 @@
 
     // FIXME come up with a proper way to retrieve configuration
     public static final int MAX_MULTI_READS = Math.max(1, Integer
-	    .valueOf(System.getProperty("ramcloud.max_multi_reads", "400")));
+            .valueOf(System.getProperty("ramcloud.max_multi_reads", "400")));
 
     public static final int MAX_MULTI_WRITES = Math.max(1, Integer
-	    .valueOf(System.getProperty("ramcloud.max_multi_writes", "800")));
+            .valueOf(System.getProperty("ramcloud.max_multi_writes", "800")));
 
     private static final ThreadLocal<JRamCloud> tlsRCClient = new ThreadLocal<JRamCloud>() {
-	@Override
-	protected JRamCloud initialValue() {
-	    return new JRamCloud(getCoordinatorUrl(config));
-	}
+        @Override
+        protected JRamCloud initialValue() {
+            return new JRamCloud(getCoordinatorUrl(config));
+        }
     };
 
     /**
@@ -66,47 +66,47 @@
      *       may be accessed later by another thread.
      */
     static JRamCloud getJRamCloudClient() {
-	return tlsRCClient.get();
+        return tlsRCClient.get();
     }
 
     // Currently RCClient is state-less
     private static final RCClient theInstance= new RCClient();
 
     public static RCClient getClient() {
-	return theInstance;
+        return theInstance;
     }
 
     public static final Configuration getConfiguration() {
-	final File configFile = new File(System.getProperty("ramcloud.config.path", DB_CONFIG_FILE));
-	return getConfiguration(configFile);
+        final File configFile = new File(System.getProperty("ramcloud.config.path", DB_CONFIG_FILE));
+        return getConfiguration(configFile);
     }
 
     public static final Configuration getConfiguration(final File configFile) {
-	if (configFile == null) {
-	    throw new IllegalArgumentException("Need to specify a configuration file or storage directory");
-	}
+        if (configFile == null) {
+            throw new IllegalArgumentException("Need to specify a configuration file or storage directory");
+        }
 
-	if (!configFile.isFile()) {
-	    throw new IllegalArgumentException("Location of configuration must be a file");
-	}
+        if (!configFile.isFile()) {
+            throw new IllegalArgumentException("Location of configuration must be a file");
+        }
 
-	try {
-	    return new PropertiesConfiguration(configFile);
-	} catch (ConfigurationException e) {
-	    throw new IllegalArgumentException("Could not load configuration at: " + configFile, e);
-	}
+        try {
+            return new PropertiesConfiguration(configFile);
+        } catch (ConfigurationException e) {
+            throw new IllegalArgumentException("Could not load configuration at: " + configFile, e);
+        }
     }
 
     public static String getCoordinatorUrl(final Configuration configuration) {
-	final String coordinatorIp = configuration.getString("ramcloud.coordinatorIp", "fast+udp:host=127.0.0.1");
-	final String coordinatorPort = configuration.getString("ramcloud.coordinatorPort", "port=12246");
-	final String coordinatorURL = coordinatorIp + "," + coordinatorPort;
-	return coordinatorURL;
+        final String coordinatorIp = configuration.getString("ramcloud.coordinatorIp", "fast+udp:host=127.0.0.1");
+        final String coordinatorPort = configuration.getString("ramcloud.coordinatorPort", "port=12246");
+        final String coordinatorURL = coordinatorIp + "," + coordinatorPort;
+        return coordinatorURL;
     }
 
     @Override
     public IMultiEntryOperation createOp(IKVTableID tableId, byte[] key, byte[] value) {
-	return RCMultiEntryOperation.create(tableId, key, value);
+        return RCMultiEntryOperation.create(tableId, key, value);
     }
 
     /**
@@ -114,459 +114,459 @@
      */
     @Override
     public long create(IKVTableID tableId, byte[] key, byte[] value)
-	    throws ObjectExistsException {
+            throws ObjectExistsException {
 
-	RCTableID rcTableId = (RCTableID) tableId;
-	JRamCloud rcClient = RCClient.getJRamCloudClient();
+        RCTableID rcTableId = (RCTableID) tableId;
+        JRamCloud rcClient = RCClient.getJRamCloudClient();
 
-	RejectRules rules = new RejectRules();
-	rules.rejectIfExists();
+        RejectRules rules = new RejectRules();
+        rules.rejectIfExists();
 
-	try {
-	    return rcClient.write(rcTableId.getTableID(), key, value, rules);
-	} catch (JRamCloud.ObjectExistsException e) {
-	    throw new ObjectExistsException(rcTableId, key, e);
-	} catch (JRamCloud.RejectRulesException e) {
-	    log.error("Unexpected RejectRulesException", e);
-	    return JRamCloud.VERSION_NONEXISTENT;
-	}
+        try {
+            return rcClient.write(rcTableId.getTableID(), key, value, rules);
+        } catch (JRamCloud.ObjectExistsException e) {
+            throw new ObjectExistsException(rcTableId, key, e);
+        } catch (JRamCloud.RejectRulesException e) {
+            log.error("Unexpected RejectRulesException", e);
+            return JRamCloud.VERSION_NONEXISTENT;
+        }
     }
 
     @Override
     public IMultiEntryOperation forceCreateOp(IKVTableID tableId, byte[] key, byte[] value) {
-	return RCMultiEntryOperation.forceCreate(tableId, key, value);
+        return RCMultiEntryOperation.forceCreate(tableId, key, value);
     }
 
     @Override
     public long forceCreate(IKVTableID tableId, byte[] key, byte[] value) {
-	RCTableID rcTableId = (RCTableID) tableId;
-	JRamCloud rcClient = RCClient.getJRamCloudClient();
+        RCTableID rcTableId = (RCTableID) tableId;
+        JRamCloud rcClient = RCClient.getJRamCloudClient();
 
-	long updated_version = rcClient.write(rcTableId.getTableID(), key, value);
-	return updated_version;
+        long updated_version = rcClient.write(rcTableId.getTableID(), key, value);
+        return updated_version;
     }
 
     @Override
     public IMultiEntryOperation readOp(IKVTableID tableId, byte[] key) {
-	return RCMultiEntryOperation.read(tableId, key);
+        return RCMultiEntryOperation.read(tableId, key);
     }
 
     @Override
     public IKVEntry read(IKVTableID tableId, byte[] key)
-	    throws ObjectDoesntExistException {
+            throws ObjectDoesntExistException {
 
-	RCTableID rcTableId = (RCTableID) tableId;
-	JRamCloud rcClient = RCClient.getJRamCloudClient();
+        RCTableID rcTableId = (RCTableID) tableId;
+        JRamCloud rcClient = RCClient.getJRamCloudClient();
 
-	RejectRules rules = new RejectRules();
-	rules.rejectIfDoesntExists();
-	try {
-	    JRamCloud.Object rcObj = rcClient.read(rcTableId.getTableID(), key, rules);
-	    return new Entry(rcObj.key, rcObj.value, rcObj.version);
-	} catch (JRamCloud.ObjectDoesntExistException e) {
-	    throw new ObjectDoesntExistException(rcTableId, key, e);
-	} catch (JRamCloud.RejectRulesException e) {
-	    log.error("Unexpected RejectRulesException", e);
-	    return null;
-	}
+        RejectRules rules = new RejectRules();
+        rules.rejectIfDoesntExists();
+        try {
+            JRamCloud.Object rcObj = rcClient.read(rcTableId.getTableID(), key, rules);
+            return new Entry(rcObj.key, rcObj.value, rcObj.version);
+        } catch (JRamCloud.ObjectDoesntExistException e) {
+            throw new ObjectDoesntExistException(rcTableId, key, e);
+        } catch (JRamCloud.RejectRulesException e) {
+            log.error("Unexpected RejectRulesException", e);
+            return null;
+        }
     }
 
     @Override
     public IMultiEntryOperation updateOp(IKVTableID tableId, byte[] key, byte[] value,long version) {
-	return RCMultiEntryOperation.update(tableId, key, value, version);
+        return RCMultiEntryOperation.update(tableId, key, value, version);
     }
 
     @Override
     public long update(IKVTableID tableId, byte[] key, byte[] value,
-	    long version) throws ObjectDoesntExistException,
-	    WrongVersionException {
+            long version) throws ObjectDoesntExistException,
+            WrongVersionException {
 
-	RCTableID rcTableId = (RCTableID) tableId;
-	JRamCloud rcClient = RCClient.getJRamCloudClient();
+        RCTableID rcTableId = (RCTableID) tableId;
+        JRamCloud rcClient = RCClient.getJRamCloudClient();
 
-	RejectRules rules = new RejectRules();
-	rules.rejectIfDoesntExists();
-	rules.rejectIfNeVersion(version);
+        RejectRules rules = new RejectRules();
+        rules.rejectIfDoesntExists();
+        rules.rejectIfNeVersion(version);
 
-	try {
-	    return rcClient.write(rcTableId.getTableID(), key, value, rules);
-	} catch (JRamCloud.ObjectDoesntExistException e) {
-	    throw new ObjectDoesntExistException(rcTableId, key, e);
-	} catch (JRamCloud.WrongVersionException e) {
-	    throw new WrongVersionException(rcTableId, key, version, e);
-	} catch (JRamCloud.RejectRulesException e) {
-	    log.error("Unexpected RejectRulesException", e);
-	    return JRamCloud.VERSION_NONEXISTENT;
-	}
+        try {
+            return rcClient.write(rcTableId.getTableID(), key, value, rules);
+        } catch (JRamCloud.ObjectDoesntExistException e) {
+            throw new ObjectDoesntExistException(rcTableId, key, e);
+        } catch (JRamCloud.WrongVersionException e) {
+            throw new WrongVersionException(rcTableId, key, version, e);
+        } catch (JRamCloud.RejectRulesException e) {
+            log.error("Unexpected RejectRulesException", e);
+            return JRamCloud.VERSION_NONEXISTENT;
+        }
     }
 
 
     @Override
     public long update(IKVTableID tableId, byte[] key, byte[] value)
-	    throws ObjectDoesntExistException {
+            throws ObjectDoesntExistException {
 
-	RCTableID rcTableId = (RCTableID) tableId;
-	JRamCloud rcClient = RCClient.getJRamCloudClient();
+        RCTableID rcTableId = (RCTableID) tableId;
+        JRamCloud rcClient = RCClient.getJRamCloudClient();
 
-	RejectRules rules = new RejectRules();
-	rules.rejectIfDoesntExists();
+        RejectRules rules = new RejectRules();
+        rules.rejectIfDoesntExists();
 
-	try {
-	    return rcClient.write(rcTableId.getTableID(), key, value, rules);
-	} catch (JRamCloud.ObjectDoesntExistException e) {
-	    throw new ObjectDoesntExistException(rcTableId, key, e);
-	} catch (JRamCloud.RejectRulesException e) {
-	    log.error("Unexpected RejectRulesException", e);
-	    return JRamCloud.VERSION_NONEXISTENT;
-	}
+        try {
+            return rcClient.write(rcTableId.getTableID(), key, value, rules);
+        } catch (JRamCloud.ObjectDoesntExistException e) {
+            throw new ObjectDoesntExistException(rcTableId, key, e);
+        } catch (JRamCloud.RejectRulesException e) {
+            log.error("Unexpected RejectRulesException", e);
+            return JRamCloud.VERSION_NONEXISTENT;
+        }
     }
 
     @Override
     public IMultiEntryOperation deleteOp(IKVTableID tableId, byte[] key, byte[] value,long version) {
-	return RCMultiEntryOperation.delete(tableId, key, value, version);
+        return RCMultiEntryOperation.delete(tableId, key, value, version);
     }
 
     @Override
     public long delete(IKVTableID tableId, byte[] key, long version)
-	    throws ObjectDoesntExistException, WrongVersionException {
+            throws ObjectDoesntExistException, WrongVersionException {
 
-	RCTableID rcTableId = (RCTableID) tableId;
-	JRamCloud rcClient = RCClient.getJRamCloudClient();
+        RCTableID rcTableId = (RCTableID) tableId;
+        JRamCloud rcClient = RCClient.getJRamCloudClient();
 
-	RejectRules rules = new RejectRules();
-	rules.rejectIfDoesntExists();
-	rules.rejectIfNeVersion(version);
+        RejectRules rules = new RejectRules();
+        rules.rejectIfDoesntExists();
+        rules.rejectIfNeVersion(version);
 
-	try {
-	    return rcClient.remove(rcTableId.getTableID(), key, rules);
-	} catch (JRamCloud.ObjectDoesntExistException e) {
-	    throw new ObjectDoesntExistException(rcTableId, key, e);
-	} catch (JRamCloud.WrongVersionException e) {
-	    throw new WrongVersionException(rcTableId, key, version, e);
-	} catch (JRamCloud.RejectRulesException e) {
-	    log.error("Unexpected RejectRulesException", e);
-	    return JRamCloud.VERSION_NONEXISTENT;
-	}
+        try {
+            return rcClient.remove(rcTableId.getTableID(), key, rules);
+        } catch (JRamCloud.ObjectDoesntExistException e) {
+            throw new ObjectDoesntExistException(rcTableId, key, e);
+        } catch (JRamCloud.WrongVersionException e) {
+            throw new WrongVersionException(rcTableId, key, version, e);
+        } catch (JRamCloud.RejectRulesException e) {
+            log.error("Unexpected RejectRulesException", e);
+            return JRamCloud.VERSION_NONEXISTENT;
+        }
     }
 
     @Override
     public IMultiEntryOperation forceDeleteOp(IKVTableID tableId, byte[] key) {
-	return RCMultiEntryOperation.forceDelete(tableId, key);
+        return RCMultiEntryOperation.forceDelete(tableId, key);
     }
 
     @Override
     public long forceDelete(IKVTableID tableId, byte[] key) {
-	RCTableID rcTableId = (RCTableID) tableId;
-	JRamCloud rcClient = RCClient.getJRamCloudClient();
-	long removed_version = rcClient.remove(rcTableId.getTableID(), key);
-	return removed_version;
+        RCTableID rcTableId = (RCTableID) tableId;
+        JRamCloud rcClient = RCClient.getJRamCloudClient();
+        long removed_version = rcClient.remove(rcTableId.getTableID(), key);
+        return removed_version;
     }
 
     @Override
     public Iterable<IKVEntry> getAllEntries(IKVTableID tableId) {
-	return new RCTableEntryIterable((RCTableID) tableId);
+        return new RCTableEntryIterable((RCTableID) tableId);
     }
 
     static class RCTableEntryIterable implements Iterable<IKVEntry> {
-	private final RCTableID tableId;
+        private final RCTableID tableId;
 
-	public RCTableEntryIterable(final RCTableID tableId) {
-	    this.tableId = tableId;
-	}
+        public RCTableEntryIterable(final RCTableID tableId) {
+            this.tableId = tableId;
+        }
 
-	@Override
-	public Iterator<IKVEntry> iterator() {
-	    return new RCClient.RCTableIterator(tableId);
-	}
+        @Override
+        public Iterator<IKVEntry> iterator() {
+            return new RCClient.RCTableIterator(tableId);
+        }
     }
 
     public static class RCTableIterator implements Iterator<IKVEntry> {
-	private final RCTableID tableId;
-	protected final TableEnumerator2 enumerator;
-	private JRamCloud.Object last;
+        private final RCTableID tableId;
+        protected final TableEnumerator2 enumerator;
+        private JRamCloud.Object last;
 
-	public RCTableIterator(final RCTableID tableId) {
-	    this.tableId = tableId;
-	    this.enumerator = getJRamCloudClient().new TableEnumerator2(tableId.getTableID());
-	    this.last = null;
-	}
+        public RCTableIterator(final RCTableID tableId) {
+            this.tableId = tableId;
+            this.enumerator = getJRamCloudClient().new TableEnumerator2(tableId.getTableID());
+            this.last = null;
+        }
 
-	@Override
-	public boolean hasNext() {
-	    return this.enumerator.hasNext();
-	}
+        @Override
+        public boolean hasNext() {
+            return this.enumerator.hasNext();
+        }
 
-	@Override
-	public RCTable.Entry next() {
-	    last = enumerator.next();
-	    return new RCTable.Entry(last.key, last.value, last.version);
-	}
+        @Override
+        public RCTable.Entry next() {
+            last = enumerator.next();
+            return new RCTable.Entry(last.key, last.value, last.version);
+        }
 
-	@Override
-	public void remove() {
-	    if (last != null) {
-		getJRamCloudClient();
-		JRamCloud rcClient = RCClient.getJRamCloudClient();
+        @Override
+        public void remove() {
+            if (last != null) {
+                getJRamCloudClient();
+                JRamCloud rcClient = RCClient.getJRamCloudClient();
 
-		RejectRules rules = new RejectRules();
-		rules.rejectIfNeVersion(last.version);
-		try {
-		    rcClient.remove(tableId.getTableID(), last.key, rules);
-		} catch (RejectRulesException e) {
-		    log.trace("remove failed", e);
-		}
-		last = null;
-	    }
-	}
+                RejectRules rules = new RejectRules();
+                rules.rejectIfNeVersion(last.version);
+                try {
+                    rcClient.remove(tableId.getTableID(), last.key, rules);
+                } catch (RejectRulesException e) {
+                    log.trace("remove failed", e);
+                }
+                last = null;
+            }
+        }
     }
 
     @Override
     public boolean multiRead(final Collection<IMultiEntryOperation> ops) {
 
-	if ( ops.size() <= MAX_MULTI_READS && ops instanceof ArrayList) {
-	    @SuppressWarnings({ "unchecked", "rawtypes" })
-	    final ArrayList<RCMultiEntryOperation> arrays = (ArrayList)ops;
-	    return multiReadInternal(arrays);
-	}
+        if ( ops.size() <= MAX_MULTI_READS && ops instanceof ArrayList) {
+            @SuppressWarnings({ "unchecked", "rawtypes" })
+            final ArrayList<RCMultiEntryOperation> arrays = (ArrayList)ops;
+            return multiReadInternal(arrays);
+        }
 
-	boolean fail_exists = false;
+        boolean fail_exists = false;
 
-	ArrayList<RCMultiEntryOperation> req = new ArrayList<>();
-	Iterator<IMultiEntryOperation> it = ops.iterator();
-	while (it.hasNext()) {
+        ArrayList<RCMultiEntryOperation> req = new ArrayList<>();
+        Iterator<IMultiEntryOperation> it = ops.iterator();
+        while (it.hasNext()) {
 
-	    req.add((RCMultiEntryOperation) it.next());
+            req.add((RCMultiEntryOperation) it.next());
 
-	    if (req.size() >= MAX_MULTI_READS) {
-		// dispatch multiRead
-		fail_exists |= multiReadInternal(req);
-		req.clear();
-	    }
-	}
+            if (req.size() >= MAX_MULTI_READS) {
+                // dispatch multiRead
+                fail_exists |= multiReadInternal(req);
+                req.clear();
+            }
+        }
 
-	if (!req.isEmpty()) {
-	    // dispatch multiRead
-	    fail_exists |= multiReadInternal(req);
-	    req.clear();
-	}
+        if (!req.isEmpty()) {
+            // dispatch multiRead
+            fail_exists |= multiReadInternal(req);
+            req.clear();
+        }
 
-	return fail_exists;
+        return fail_exists;
     }
 
     @Override
     public boolean multiWrite(final List<IMultiEntryOperation> ops) {
 
-	if ( ops.size() <= MAX_MULTI_WRITES && ops instanceof ArrayList) {
-	    @SuppressWarnings({ "unchecked", "rawtypes" })
-	    final ArrayList<RCMultiEntryOperation> arrays = (ArrayList)ops;
-	    return multiWriteInternal(arrays);
-	}
+        if ( ops.size() <= MAX_MULTI_WRITES && ops instanceof ArrayList) {
+            @SuppressWarnings({ "unchecked", "rawtypes" })
+            final ArrayList<RCMultiEntryOperation> arrays = (ArrayList)ops;
+            return multiWriteInternal(arrays);
+        }
 
-	boolean fail_exists = false;
+        boolean fail_exists = false;
 
-	ArrayList<RCMultiEntryOperation> req = new ArrayList<>();
-	Iterator<IMultiEntryOperation> it = ops.iterator();
-	while (it.hasNext()) {
+        ArrayList<RCMultiEntryOperation> req = new ArrayList<>();
+        Iterator<IMultiEntryOperation> it = ops.iterator();
+        while (it.hasNext()) {
 
-	    req.add((RCMultiEntryOperation) it.next());
+            req.add((RCMultiEntryOperation) it.next());
 
-	    if (req.size() >= MAX_MULTI_WRITES) {
-		// dispatch multiWrite
-		fail_exists |= multiWriteInternal(req);
-		req.clear();
-	    }
-	}
+            if (req.size() >= MAX_MULTI_WRITES) {
+                // dispatch multiWrite
+                fail_exists |= multiWriteInternal(req);
+                req.clear();
+            }
+        }
 
-	if (!req.isEmpty()) {
-	    // dispatch multiWrite
-	    fail_exists |= multiWriteInternal(req);
-	    req.clear();
-	}
+        if (!req.isEmpty()) {
+            // dispatch multiWrite
+            fail_exists |= multiWriteInternal(req);
+            req.clear();
+        }
 
-	return fail_exists;
+        return fail_exists;
     }
 
     @Override
     public boolean multiDelete(final Collection<IMultiEntryOperation> ops) {
 
-	// TODO implement multiRemove JNI, etc. if we need performance
+        // TODO implement multiRemove JNI, etc. if we need performance
 
-	boolean fail_exists = false;
-	JRamCloud rcClient = getJRamCloudClient();
+        boolean fail_exists = false;
+        JRamCloud rcClient = getJRamCloudClient();
 
-	for (IMultiEntryOperation iop : ops) {
-	    RCMultiEntryOperation op = (RCMultiEntryOperation)iop;
-	    switch (op.getOperation()) {
-	    case DELETE:
-		RejectRules rules = new RejectRules();
-		rules.rejectIfDoesntExists();
-		rules.rejectIfNeVersion(op.getVersion());
+        for (IMultiEntryOperation iop : ops) {
+            RCMultiEntryOperation op = (RCMultiEntryOperation)iop;
+            switch (op.getOperation()) {
+            case DELETE:
+                RejectRules rules = new RejectRules();
+                rules.rejectIfDoesntExists();
+                rules.rejectIfNeVersion(op.getVersion());
 
-		try {
-		    long removed_version = rcClient.remove(op.tableId.getTableID(), op.entry.getKey(), rules);
-		    op.entry.setVersion(removed_version);
-		    op.status = STATUS.SUCCESS;
-		} catch (JRamCloud.ObjectDoesntExistException|JRamCloud.WrongVersionException e) {
-		    log.error("Failed to remove key:" + ByteArrayUtil.toHexStringBuffer(op.entry.getKey(), "") + " from tableID:" + op.tableId, e );
-		    fail_exists = true;
-		    op.status = STATUS.FAILED;
-		} catch (JRamCloud.RejectRulesException e) {
-		    log.error("Failed to remove key:" + ByteArrayUtil.toHexStringBuffer(op.entry.getKey(), "") + " from tableID:" + op.tableId, e );
-		    fail_exists = true;
-		    op.status = STATUS.FAILED;
-		}
-		break;
+                try {
+                    long removed_version = rcClient.remove(op.tableId.getTableID(), op.entry.getKey(), rules);
+                    op.entry.setVersion(removed_version);
+                    op.status = STATUS.SUCCESS;
+                } catch (JRamCloud.ObjectDoesntExistException|JRamCloud.WrongVersionException e) {
+                    log.error("Failed to remove key:" + ByteArrayUtil.toHexStringBuffer(op.entry.getKey(), "") + " from tableID:" + op.tableId, e );
+                    fail_exists = true;
+                    op.status = STATUS.FAILED;
+                } catch (JRamCloud.RejectRulesException e) {
+                    log.error("Failed to remove key:" + ByteArrayUtil.toHexStringBuffer(op.entry.getKey(), "") + " from tableID:" + op.tableId, e );
+                    fail_exists = true;
+                    op.status = STATUS.FAILED;
+                }
+                break;
 
-	    case FORCE_DELETE:
-		long removed_version = rcClient.remove(op.tableId.getTableID(), op.entry.getKey());
-		if (removed_version != JRamCloud.VERSION_NONEXISTENT) {
-		    op.entry.setVersion(removed_version);
-		    op.status = STATUS.SUCCESS;
-		} else {
-		    log.error("Failed to remove key:{} from tableID:{}", ByteArrayUtil.toHexStringBuffer(op.entry.getKey(), ""), op.tableId );
-		    fail_exists = true;
-		    op.status = STATUS.FAILED;
-		}
-		break;
+            case FORCE_DELETE:
+                long removed_version = rcClient.remove(op.tableId.getTableID(), op.entry.getKey());
+                if (removed_version != JRamCloud.VERSION_NONEXISTENT) {
+                    op.entry.setVersion(removed_version);
+                    op.status = STATUS.SUCCESS;
+                } else {
+                    log.error("Failed to remove key:{} from tableID:{}", ByteArrayUtil.toHexStringBuffer(op.entry.getKey(), ""), op.tableId );
+                    fail_exists = true;
+                    op.status = STATUS.FAILED;
+                }
+                break;
 
-	    default:
-		log.error("Invalid operation {} specified on multiDelete", op.getOperation() );
-		fail_exists = true;
-		op.status = STATUS.FAILED;
-		break;
-	    }
-	}
-	return fail_exists;
+            default:
+                log.error("Invalid operation {} specified on multiDelete", op.getOperation() );
+                fail_exists = true;
+                op.status = STATUS.FAILED;
+                break;
+            }
+        }
+        return fail_exists;
     }
 
     private boolean multiReadInternal(final ArrayList<RCMultiEntryOperation> ops) {
-	boolean fail_exists = false;
-	JRamCloud rcClient = RCClient.getJRamCloudClient();
+        boolean fail_exists = false;
+        JRamCloud rcClient = RCClient.getJRamCloudClient();
 
-	final int reqs = ops.size();
+        final int reqs = ops.size();
 
-	MultiReadObject multiReadObjects = new MultiReadObject(reqs);
+        MultiReadObject multiReadObjects = new MultiReadObject(reqs);
 
-	// setup multi-read operation objects
-	for (int i = 0; i < reqs; ++i) {
-	    IMultiEntryOperation op = ops.get(i);
-	    multiReadObjects.setObject(i, ((RCTableID)op.getTableId()).getTableID(), op.getKey());
-	}
+        // setup multi-read operation objects
+        for (int i = 0; i < reqs; ++i) {
+            IMultiEntryOperation op = ops.get(i);
+            multiReadObjects.setObject(i, ((RCTableID)op.getTableId()).getTableID(), op.getKey());
+        }
 
-	// execute
-	JRamCloud.Object[] results = rcClient.multiRead(multiReadObjects.tableId, multiReadObjects.key, multiReadObjects.keyLength, reqs);
-	if (results.length != reqs) {
-	    log.error("multiRead returned unexpected number of results. (requested:{}, returned:{})", reqs, results.length);
-	    fail_exists = true;
-	}
+        // execute
+        JRamCloud.Object[] results = rcClient.multiRead(multiReadObjects.tableId, multiReadObjects.key, multiReadObjects.keyLength, reqs);
+        if (results.length != reqs) {
+            log.error("multiRead returned unexpected number of results. (requested:{}, returned:{})", reqs, results.length);
+            fail_exists = true;
+        }
 
-	for (int i = 0; i < results.length; ++i) {
-	    IModifiableMultiEntryOperation op = ops.get(i);
-	    if (results[i] == null) {
-		log.error("MultiRead error, skipping {}, {}", op.getTableId(), op);
-		fail_exists = true;
-		op.setStatus(STATUS.FAILED);
-		continue;
-	    }
-	    assert (Arrays.equals(results[i].key, op.getKey()));
+        for (int i = 0; i < results.length; ++i) {
+            IModifiableMultiEntryOperation op = ops.get(i);
+            if (results[i] == null) {
+                log.error("MultiRead error, skipping {}, {}", op.getTableId(), op);
+                fail_exists = true;
+                op.setStatus(STATUS.FAILED);
+                continue;
+            }
+            assert (Arrays.equals(results[i].key, op.getKey()));
 
-	    op.setValue(results[i].value, results[i].version);
-	    if (results[i].version == JRamCloud.VERSION_NONEXISTENT) {
-		fail_exists = true;
-		op.setStatus(STATUS.FAILED);
-	    } else {
-		op.setStatus(STATUS.SUCCESS);
-	    }
-	}
+            op.setValue(results[i].value, results[i].version);
+            if (results[i].version == JRamCloud.VERSION_NONEXISTENT) {
+                fail_exists = true;
+                op.setStatus(STATUS.FAILED);
+            } else {
+                op.setStatus(STATUS.SUCCESS);
+            }
+        }
 
-	return fail_exists;
+        return fail_exists;
     }
 
     private boolean multiWriteInternal(final ArrayList<RCMultiEntryOperation> ops) {
-	boolean fail_exists = false;
-	JRamCloud rcClient = RCClient.getJRamCloudClient();
+        boolean fail_exists = false;
+        JRamCloud rcClient = RCClient.getJRamCloudClient();
 
-	final int reqs = ops.size();
+        final int reqs = ops.size();
 
-	MultiWriteObject multiWriteObjects = new MultiWriteObject(reqs);
+        MultiWriteObject multiWriteObjects = new MultiWriteObject(reqs);
 
-	for (int i = 0; i < reqs; ++i) {
+        for (int i = 0; i < reqs; ++i) {
 
-	    IModifiableMultiEntryOperation op = ops.get(i);
-	    RejectRules rules = new RejectRules();
+            IModifiableMultiEntryOperation op = ops.get(i);
+            RejectRules rules = new RejectRules();
 
-	    switch (op.getOperation()) {
-	    case CREATE:
-		rules.rejectIfExists();
-		break;
-	    case FORCE_CREATE:
-		// no reject rule
-		break;
-	    case UPDATE:
-		rules.rejectIfDoesntExists();
-		rules.rejectIfNeVersion(op.getVersion());
-		break;
+            switch (op.getOperation()) {
+            case CREATE:
+                rules.rejectIfExists();
+                break;
+            case FORCE_CREATE:
+                // no reject rule
+                break;
+            case UPDATE:
+                rules.rejectIfDoesntExists();
+                rules.rejectIfNeVersion(op.getVersion());
+                break;
 
-	    default:
-		log.error("Invalid operation {} specified on multiWriteInternal", op.getOperation() );
-		fail_exists = true;
-		op.setStatus(STATUS.FAILED);
-		return fail_exists;
-	    }
-	    multiWriteObjects.setObject(i, ((RCTableID)op.getTableId()).getTableID(), op.getKey(), op.getValue(), rules);
-	}
+            default:
+                log.error("Invalid operation {} specified on multiWriteInternal", op.getOperation() );
+                fail_exists = true;
+                op.setStatus(STATUS.FAILED);
+                return fail_exists;
+            }
+            multiWriteObjects.setObject(i, ((RCTableID)op.getTableId()).getTableID(), op.getKey(), op.getValue(), rules);
+        }
 
-	MultiWriteRspObject[] results = rcClient.multiWrite(multiWriteObjects.tableId, multiWriteObjects.key, multiWriteObjects.keyLength, multiWriteObjects.value, multiWriteObjects.valueLength, ops.size(), multiWriteObjects.rules);
-	if (results.length != reqs) {
-	    log.error("multiWrite returned unexpected number of results. (requested:{}, returned:{})", reqs, results.length);
-	    fail_exists = true;
-	}
+        MultiWriteRspObject[] results = rcClient.multiWrite(multiWriteObjects.tableId, multiWriteObjects.key, multiWriteObjects.keyLength, multiWriteObjects.value, multiWriteObjects.valueLength, ops.size(), multiWriteObjects.rules);
+        if (results.length != reqs) {
+            log.error("multiWrite returned unexpected number of results. (requested:{}, returned:{})", reqs, results.length);
+            fail_exists = true;
+        }
 
-	for (int i = 0; i < results.length; ++i) {
-	    IModifiableMultiEntryOperation op = ops.get(i);
+        for (int i = 0; i < results.length; ++i) {
+            IModifiableMultiEntryOperation op = ops.get(i);
 
-	    if (results[i] != null
-		    && results[i].getStatus() == RCClient.STATUS_OK) {
-		op.setStatus(STATUS.SUCCESS);
-		op.setVersion(results[i].getVersion());
-	    } else {
-		op.setStatus(STATUS.FAILED);
-		fail_exists = true;
-	    }
-	}
+            if (results[i] != null
+                    && results[i].getStatus() == RCClient.STATUS_OK) {
+                op.setStatus(STATUS.SUCCESS);
+                op.setVersion(results[i].getVersion());
+            } else {
+                op.setStatus(STATUS.FAILED);
+                fail_exists = true;
+            }
+        }
 
-	return fail_exists;
+        return fail_exists;
     }
 
     private static final ConcurrentHashMap<String, RCTable> tables = new ConcurrentHashMap<>();
 
     @Override
     public IKVTable getTable(final String tableName) {
-	RCTable table = tables.get(tableName);
-	if (table == null) {
-	    RCTable new_table = new RCTable(tableName);
-	    RCTable existing_table = tables
-		    .putIfAbsent(tableName, new_table);
-	    if (existing_table != null) {
-		return existing_table;
-	    } else {
-		return new_table;
-	    }
-	}
-	return table;
+        RCTable table = tables.get(tableName);
+        if (table == null) {
+            RCTable new_table = new RCTable(tableName);
+            RCTable existing_table = tables
+                    .putIfAbsent(tableName, new_table);
+            if (existing_table != null) {
+                return existing_table;
+            } else {
+                return new_table;
+            }
+        }
+        return table;
     }
 
     @Override
     public void dropTable(IKVTable table) {
-	JRamCloud rcClient = RCClient.getJRamCloudClient();
-	rcClient.dropTable(table.getTableId().getTableName());
-	tables.remove(table.getTableId().getTableName());
+        JRamCloud rcClient = RCClient.getJRamCloudClient();
+        rcClient.dropTable(table.getTableId().getTableName());
+        tables.remove(table.getTableId().getTableName());
     }
 
     static final long VERSION_NONEXISTENT = JRamCloud.VERSION_NONEXISTENT;
 
     @Override
     public long VERSION_NONEXISTENT() {
-	return VERSION_NONEXISTENT;
+        return VERSION_NONEXISTENT;
     }
 }
diff --git a/src/main/java/net/onrc/onos/datastore/ramcloud/RCMultiEntryOperation.java b/src/main/java/net/onrc/onos/datastore/ramcloud/RCMultiEntryOperation.java
index 0feec0a..28c5a0b 100644
--- a/src/main/java/net/onrc/onos/datastore/ramcloud/RCMultiEntryOperation.java
+++ b/src/main/java/net/onrc/onos/datastore/ramcloud/RCMultiEntryOperation.java
@@ -14,70 +14,70 @@
 
     @Override
     public boolean hasSucceeded() {
-	return this.status == STATUS.SUCCESS;
+        return this.status == STATUS.SUCCESS;
     }
 
     @Override
     public STATUS getStatus() {
-	return status;
+        return status;
     }
 
     @Override
     public IKVTableID getTableId() {
-	return tableId;
+        return tableId;
     }
 
     @Override
     public byte[] getKey() {
-	return entry.key;
+        return entry.key;
     }
 
     @Override
     public byte[] getValue() {
-	return entry.value;
+        return entry.value;
     }
 
     @Override
     public long getVersion() {
-	return entry.version;
+        return entry.version;
     }
 
     @Override
     public OPERATION getOperation() {
-	return operation;
+        return operation;
     }
 
     @Override
     public void setStatus(final STATUS status) {
-	this.status = status;
+        this.status = status;
     }
 
     @Override
     public void setValue(byte[] value, final long version) {
-	this.entry.setValue(value);
-	setVersion(version);
+        this.entry.setValue(value);
+        setVersion(version);
     }
 
     @Override
     public void setVersion(final long version) {
-	this.entry.setVersion(version);
+        this.entry.setVersion(version);
     }
 
 
     public RCMultiEntryOperation(final IKVTableID tableId, final Entry entry, final OPERATION operation) {
-	this.tableId = (RCTableID) tableId;
-	this.operation = operation;
+        this.tableId = (RCTableID) tableId;
+        this.operation = operation;
 
-	this.entry = entry;
-	this.status = STATUS.NOT_EXECUTED;
+        this.entry = entry;
+        this.status = STATUS.NOT_EXECUTED;
     }
 
     public static IMultiEntryOperation create(final IKVTableID tableId, final byte[] key, final byte[] value) {
-	return  new RCMultiEntryOperation(tableId, new Entry(key,value, RCClient.VERSION_NONEXISTENT), OPERATION.CREATE);
+        return  new RCMultiEntryOperation(tableId, new Entry(key,value, RCClient.VERSION_NONEXISTENT), OPERATION.CREATE);
     }
 
     public static IMultiEntryOperation forceCreate(final IKVTableID tableId, final byte[] key, final byte[] value) {
-	return  new RCMultiEntryOperation(tableId, new Entry(key,value, RCClient.VERSION_NONEXISTENT), OPERATION.FORCE_CREATE);
+        return  new RCMultiEntryOperation(tableId, new Entry(key,value, RCClient.VERSION_NONEXISTENT), OPERATION.FORCE_CREATE);
     }
 
     /**
@@ -87,29 +87,29 @@
      * @param key key of an Entry to read
      */
     public static IMultiEntryOperation read(final IKVTableID tableId, final byte[] key) {
-	return new RCMultiEntryOperation(tableId, new Entry(key), OPERATION.READ);
+        return new RCMultiEntryOperation(tableId, new Entry(key), OPERATION.READ);
     }
 
     public static IMultiEntryOperation update(final IKVTableID tableId, final byte[] key, final byte[] value, final long version) {
-	return  new RCMultiEntryOperation(tableId, new Entry(key,value, version), OPERATION.UPDATE);
+        return  new RCMultiEntryOperation(tableId, new Entry(key,value, version), OPERATION.UPDATE);
     }
 
     public static IMultiEntryOperation delete(final IKVTableID tableId, final byte[] key, final byte[] value, final long version) {
-	return  new RCMultiEntryOperation(tableId, new Entry(key,value, version), OPERATION.DELETE);
+        return  new RCMultiEntryOperation(tableId, new Entry(key,value, version), OPERATION.DELETE);
     }
 
     public static IMultiEntryOperation forceDelete(final IKVTableID tableId, final byte[] key) {
-	return  new RCMultiEntryOperation(tableId, new Entry(key), OPERATION.FORCE_DELETE);
+        return  new RCMultiEntryOperation(tableId, new Entry(key), OPERATION.FORCE_DELETE);
     }
 
     @Override
     public IModifiableMultiEntryOperation getActualOperation() {
-	return this;
+        return this;
     }
 
     @Override
     public String toString() {
-	return "[RCMultiEntryOperation tableId=" + tableId + ", entry=" + entry
-	        + ", operation=" + operation + ", status=" + status + "]";
+        return "[RCMultiEntryOperation tableId=" + tableId + ", entry=" + entry
+                + ", operation=" + operation + ", status=" + status + "]";
     }
 }
diff --git a/src/main/java/net/onrc/onos/datastore/ramcloud/RCTable.java b/src/main/java/net/onrc/onos/datastore/ramcloud/RCTable.java
index f823eae..741df0a 100644
--- a/src/main/java/net/onrc/onos/datastore/ramcloud/RCTable.java
+++ b/src/main/java/net/onrc/onos/datastore/ramcloud/RCTable.java
@@ -17,42 +17,42 @@
     private static final Logger log = LoggerFactory.getLogger(RCTable.class);
 
     public static class Entry implements IKVEntry {
-	final byte[] key;
-	byte[] value;
-	long version;
+        final byte[] key;
+        byte[] value;
+        long version;
 
-	public Entry(final byte[] key, final byte[] value, final long version) {
-	    this.key = key;
-	    this.setValue(value);
-	    this.setVersion(version);
-	}
+        public Entry(final byte[] key, final byte[] value, final long version) {
+            this.key = key;
+            this.setValue(value);
+            this.setVersion(version);
+        }
 
-	public Entry(final byte[] key) {
-	    this(key, null, RCClient.VERSION_NONEXISTENT);
-	}
+        public Entry(final byte[] key) {
+            this(key, null, RCClient.VERSION_NONEXISTENT);
+        }
 
-	@Override
-	public byte[] getKey() {
-	    return key;
-	}
+        @Override
+        public byte[] getKey() {
+            return key;
+        }
 
-	@Override
-	public byte[] getValue() {
-	    return value;
-	}
+        @Override
+        public byte[] getValue() {
+            return value;
+        }
 
-	@Override
-	public long getVersion() {
-	    return version;
-	}
+        @Override
+        public long getVersion() {
+            return version;
+        }
 
-	void setValue(byte[] value) {
-	    this.value = value;
-	}
+        void setValue(byte[] value) {
+            this.value = value;
+        }
 
-	void setVersion(long version) {
-	    this.version = version;
-	}
+        void setVersion(long version) {
+            this.version = version;
+        }
     }
 
     private final RCTableID rcTableId;
@@ -63,72 +63,72 @@
      * @param rcTableName RAMCloud table name
      */
     RCTable(final String rcTableName) {
-	this.rcTableId = new RCTableID(rcTableName);
+        this.rcTableId = new RCTableID(rcTableName);
 
-	// Trigger RAMCloud ID allocation. If lazy allocation is OK, remove.
-	this.rcTableId.getTableID();
+        // Trigger RAMCloud ID allocation. If lazy allocation is OK, remove.
+        this.rcTableId.getTableID();
     }
 
     @Override
     public IKVTableID getTableId() {
-	return this.rcTableId;
+        return this.rcTableId;
     }
 
     public String getTableName() {
-	return this.rcTableId.getTableName();
+        return this.rcTableId.getTableName();
     }
 
     @Override
     public long create(final byte[] key, final byte[] value)
-	    throws ObjectExistsException {
+            throws ObjectExistsException {
 
-	return RCClient.getClient().create(this.rcTableId, key, value);
+        return RCClient.getClient().create(this.rcTableId, key, value);
     }
 
     @Override
     public long forceCreate(final byte[] key, final byte[] value) {
-	return RCClient.getClient().forceCreate(rcTableId, key, value);
+        return RCClient.getClient().forceCreate(rcTableId, key, value);
     }
 
     @Override
     public IKVEntry read(final byte[] key) throws ObjectDoesntExistException {
-	return RCClient.getClient().read(rcTableId, key);
+        return RCClient.getClient().read(rcTableId, key);
     }
 
     @Override
     public long update(final byte[] key, final byte[] value, final long version)
-	    throws ObjectDoesntExistException, WrongVersionException {
+            throws ObjectDoesntExistException, WrongVersionException {
 
-	return RCClient.getClient().update(rcTableId, key, value, version);
+        return RCClient.getClient().update(rcTableId, key, value, version);
     }
 
     @Override
     public long update(final byte[] key, final byte[] value)
-	    throws ObjectDoesntExistException {
+            throws ObjectDoesntExistException {
 
-	return RCClient.getClient().update(rcTableId, key, value);
+        return RCClient.getClient().update(rcTableId, key, value);
     }
 
     @Override
     public long delete(final byte[] key, final long version)
-	    throws ObjectDoesntExistException, WrongVersionException {
+            throws ObjectDoesntExistException, WrongVersionException {
 
-	return RCClient.getClient().delete(rcTableId, key, version);
+        return RCClient.getClient().delete(rcTableId, key, version);
     }
 
     @Override
     public long forceDelete(final byte[] key) {
-	return RCClient.getClient().forceDelete(rcTableId, key);
+        return RCClient.getClient().forceDelete(rcTableId, key);
     }
 
     @Override
     public Iterable<IKVEntry> getAllEntries() {
-	return RCClient.getClient().getAllEntries(this.getTableId());
+        return RCClient.getClient().getAllEntries(this.getTableId());
     }
 
     @Override
     public long VERSION_NONEXISTENT() {
-	return RCClient.VERSION_NONEXISTENT;
+        return RCClient.VERSION_NONEXISTENT;
     }
 
 }
diff --git a/src/main/java/net/onrc/onos/datastore/ramcloud/RCTableID.java b/src/main/java/net/onrc/onos/datastore/ramcloud/RCTableID.java
index 5fa56c2..0c2f6b0 100644
--- a/src/main/java/net/onrc/onos/datastore/ramcloud/RCTableID.java
+++ b/src/main/java/net/onrc/onos/datastore/ramcloud/RCTableID.java
@@ -9,49 +9,49 @@
     private long tableID;
 
     public RCTableID(String tableName) {
-	this.tableName = tableName;
-	this.tableID = 0;
+        this.tableName = tableName;
+        this.tableID = 0;
     }
 
     @Override
     public String getTableName() {
-	return tableName;
+        return tableName;
     }
 
     // following is RAMCloud specific
 
     public long getTableID() {
-	if ( tableID != 0) {
-	    return tableID;
-	}
-	tableID = RCClient.getJRamCloudClient().createTable(tableName);
-	return tableID;
+        if ( tableID != 0) {
+            return tableID;
+        }
+        tableID = RCClient.getJRamCloudClient().createTable(tableName);
+        return tableID;
     }
 
     void resetTableID() {
-	this.tableID = 0;
+        this.tableID = 0;
     }
 
     @Override
     public String toString() {
-	return "["+tableName + "]@" + getTableID();
+        return "["+tableName + "]@" + getTableID();
     }
 
     @Override
     public int hashCode() {
-	return Objects.hash(tableName, getTableID());
+        return Objects.hash(tableName, getTableID());
     }
 
     @Override
     public boolean equals(Object obj) {
-	if (this == obj)
-	    return true;
-	if (obj == null)
-	    return false;
-	if (getClass() != obj.getClass())
-	    return false;
-	RCTableID other = (RCTableID) obj;
-	return Objects.equals(tableName, other.tableName)
-		&& Objects.equals(getTableID(), other.getTableID());
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        RCTableID other = (RCTableID) obj;
+        return Objects.equals(tableName, other.tableName)
+                && Objects.equals(getTableID(), other.getTableID());
     }
 }
\ No newline at end of file