You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ec...@apache.org on 2013/12/20 17:10:35 UTC

[01/12] git commit: Merge branch '1.4.5-SNAPSHOT' of https://git-wip-us.apache.org/repos/asf/accumulo into 1.4.5-SNAPSHOT

Updated Branches:
  refs/heads/master 322ee056c -> 551c6507d


Merge branch '1.4.5-SNAPSHOT' of https://git-wip-us.apache.org/repos/asf/accumulo into 1.4.5-SNAPSHOT


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/5a421c7a
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/5a421c7a
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/5a421c7a

Branch: refs/heads/master
Commit: 5a421c7a06cfa2bf41df33bd77369f03849aaee9
Parents: 53a7d51 2235b50
Author: Josh Elser <el...@apache.org>
Authored: Thu Dec 19 15:50:21 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Thu Dec 19 15:50:21 2013 -0500

----------------------------------------------------------------------
 .../accumulo/server/master/state/MetaDataTableScanner.java       | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------



[07/12] git commit: ACCUMULO-1997 Verify that the ACCUMULO_HOME (computed or provided) is actually a directory

Posted by ec...@apache.org.
ACCUMULO-1997 Verify that the ACCUMULO_HOME (computed or provided) is actually a directory


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/36f503c6
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/36f503c6
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/36f503c6

Branch: refs/heads/master
Commit: 36f503c653b2edbd29b37f79852602660e564db2
Parents: 041b482
Author: Josh Elser <el...@apache.org>
Authored: Fri Dec 20 00:52:48 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Fri Dec 20 00:52:48 2013 -0500

----------------------------------------------------------------------
 bin/config.sh | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/36f503c6/bin/config.sh
----------------------------------------------------------------------
diff --git a/bin/config.sh b/bin/config.sh
index 8d0672c..665777e 100755
--- a/bin/config.sh
+++ b/bin/config.sh
@@ -58,6 +58,11 @@ if [ -z "${ACCUMULO_HOME}" ] ; then
   export ACCUMULO_HOME=`cd $ACCUMULO_HOME; pwd`
 fi
 
+if [ ! -d "${ACCUMULO_HOME}" ]; then
+  echo "ACCUMULO_HOME=${ACCUMULO_HOME} is not a valid directory. Please make sure it exists"
+  exit 1
+fi
+
 ACCUMULO_CONF_DIR="${ACCUMULO_CONF_DIR:-$ACCUMULO_HOME/conf}"
 export ACCUMULO_CONF_DIR
 if [ -z "$ACCUMULO_CONF_DIR" -o ! -d "$ACCUMULO_CONF_DIR" ]


[03/12] git commit: Merge branch '1.4.5-SNAPSHOT' into 1.5.1-SNAPSHOT

Posted by ec...@apache.org.
Merge branch '1.4.5-SNAPSHOT' into 1.5.1-SNAPSHOT

Conflicts:
	core/src/main/java/org/apache/accumulo/core/Constants.java


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/6c966872
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/6c966872
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/6c966872

Branch: refs/heads/master
Commit: 6c966872f9a83067adfa925f3080c5a6bdd8c9f4
Parents: 76842b2 041b482
Author: Josh Elser <el...@apache.org>
Authored: Thu Dec 19 23:03:34 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Thu Dec 19 23:03:34 2013 -0500

----------------------------------------------------------------------
 .../java/org/apache/accumulo/core/client/ZooKeeperInstance.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/6c966872/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
index 6e1b660,0000000..c20d597
mode 100644,000000..100644
--- a/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
+++ b/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
@@@ -1,352 -1,0 +1,353 @@@
 +/*
 + * 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.accumulo.core.client;
 +
 +import java.io.FileNotFoundException;
 +import java.io.IOException;
 +import java.nio.ByteBuffer;
 +import java.util.Collections;
 +import java.util.List;
 +import java.util.UUID;
 +import java.util.concurrent.atomic.AtomicInteger;
 +
 +import org.apache.accumulo.core.Constants;
 +import org.apache.accumulo.core.client.impl.ConnectorImpl;
 +import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
 +import org.apache.accumulo.core.client.security.tokens.PasswordToken;
 +import org.apache.accumulo.core.conf.AccumuloConfiguration;
 +import org.apache.accumulo.core.conf.Property;
 +import org.apache.accumulo.core.file.FileUtil;
 +import org.apache.accumulo.core.security.CredentialHelper;
 +import org.apache.accumulo.core.security.thrift.TCredentials;
 +import org.apache.accumulo.core.util.ArgumentChecker;
 +import org.apache.accumulo.core.util.ByteBufferUtil;
 +import org.apache.accumulo.core.util.CachedConfiguration;
 +import org.apache.accumulo.core.util.OpTimer;
 +import org.apache.accumulo.core.util.TextUtil;
 +import org.apache.accumulo.core.util.ThriftUtil;
 +import org.apache.accumulo.core.zookeeper.ZooUtil;
 +import org.apache.accumulo.fate.zookeeper.ZooCache;
 +import org.apache.hadoop.fs.FileStatus;
 +import org.apache.hadoop.fs.FileSystem;
 +import org.apache.hadoop.fs.Path;
 +import org.apache.hadoop.io.Text;
 +import org.apache.log4j.Level;
 +import org.apache.log4j.Logger;
 +
 +/**
 + * <p>
 + * An implementation of instance that looks in zookeeper to find information needed to connect to an instance of accumulo.
 + * 
 + * <p>
 + * The advantage of using zookeeper to obtain information about accumulo is that zookeeper is highly available, very responsive, and supports caching.
 + * 
 + * <p>
 + * Because it is possible for multiple instances of accumulo to share a single set of zookeeper servers, all constructors require an accumulo instance name.
 + * 
 + * If you do not know the instance names then run accumulo org.apache.accumulo.server.util.ListInstances on an accumulo server.
 + * 
 + */
 +
 +public class ZooKeeperInstance implements Instance {
 +
 +  private static final Logger log = Logger.getLogger(ZooKeeperInstance.class);
 +
 +  private String instanceId = null;
 +  private String instanceName = null;
 +
 +  private final ZooCache zooCache;
 +
 +  private final String zooKeepers;
 +
 +  private final int zooKeepersSessionTimeOut;
 +
 +  private volatile boolean closed = false;
 +
 +  /**
 +   * 
 +   * @param instanceName
 +   *          The name of specific accumulo instance. This is set at initialization time.
 +   * @param zooKeepers
 +   *          A comma separated list of zoo keeper server locations. Each location can contain an optional port, of the format host:port.
 +   */
 +
 +  public ZooKeeperInstance(String instanceName, String zooKeepers) {
 +    this(instanceName, zooKeepers, (int) AccumuloConfiguration.getDefaultConfiguration().getTimeInMillis(Property.INSTANCE_ZK_TIMEOUT));
 +  }
 +
 +  /**
 +   * 
 +   * @param instanceName
 +   *          The name of specific accumulo instance. This is set at initialization time.
 +   * @param zooKeepers
 +   *          A comma separated list of zoo keeper server locations. Each location can contain an optional port, of the format host:port.
 +   * @param sessionTimeout
 +   *          zoo keeper session time out in milliseconds.
 +   */
 +
 +  public ZooKeeperInstance(String instanceName, String zooKeepers, int sessionTimeout) {
 +    ArgumentChecker.notNull(instanceName, zooKeepers);
 +    this.instanceName = instanceName;
 +    this.zooKeepers = zooKeepers;
 +    this.zooKeepersSessionTimeOut = sessionTimeout;
 +    zooCache = ZooCache.getInstance(zooKeepers, sessionTimeout);
 +    getInstanceID();
 +    clientInstances.incrementAndGet();
 +  }
 +
 +  /**
 +   * 
 +   * @param instanceId
 +   *          The UUID that identifies the accumulo instance you want to connect to.
 +   * @param zooKeepers
 +   *          A comma separated list of zoo keeper server locations. Each location can contain an optional port, of the format host:port.
 +   */
 +
 +  public ZooKeeperInstance(UUID instanceId, String zooKeepers) {
 +    this(instanceId, zooKeepers, (int) AccumuloConfiguration.getDefaultConfiguration().getTimeInMillis(Property.INSTANCE_ZK_TIMEOUT));
 +  }
 +
 +  /**
 +   * 
 +   * @param instanceId
 +   *          The UUID that identifies the accumulo instance you want to connect to.
 +   * @param zooKeepers
 +   *          A comma separated list of zoo keeper server locations. Each location can contain an optional port, of the format host:port.
 +   * @param sessionTimeout
 +   *          zoo keeper session time out in milliseconds.
 +   */
 +
 +  public ZooKeeperInstance(UUID instanceId, String zooKeepers, int sessionTimeout) {
 +    ArgumentChecker.notNull(instanceId, zooKeepers);
 +    this.instanceId = instanceId.toString();
 +    this.zooKeepers = zooKeepers;
 +    this.zooKeepersSessionTimeOut = sessionTimeout;
 +    zooCache = ZooCache.getInstance(zooKeepers, sessionTimeout);
 +    clientInstances.incrementAndGet();
 +  }
 +
 +  @Override
 +  public String getInstanceID() {
 +    if (closed)
 +      throw new RuntimeException("ZooKeeperInstance has been closed.");
 +    if (instanceId == null) {
 +      // want the instance id to be stable for the life of this instance object,
 +      // so only get it once
 +      String instanceNamePath = Constants.ZROOT + Constants.ZINSTANCES + "/" + instanceName;
 +      byte[] iidb = zooCache.get(instanceNamePath);
 +      if (iidb == null) {
 +        throw new RuntimeException("Instance name " + instanceName
 +            + " does not exist in zookeeper.  Run \"accumulo org.apache.accumulo.server.util.ListInstances\" to see a list.");
 +      }
-       instanceId = new String(iidb);
++      instanceId = new String(iidb, Constants.UTF8);
 +    }
 +
 +    if (zooCache.get(Constants.ZROOT + "/" + instanceId) == null) {
 +      if (instanceName == null)
 +        throw new RuntimeException("Instance id " + instanceId + " does not exist in zookeeper");
 +      throw new RuntimeException("Instance id " + instanceId + " pointed to by the name " + instanceName + " does not exist in zookeeper");
 +    }
 +
 +    return instanceId;
 +  }
 +
 +  @Override
 +  public List<String> getMasterLocations() {
 +    if (closed)
 +      throw new RuntimeException("ZooKeeperInstance has been closed.");
 +    String masterLocPath = ZooUtil.getRoot(this) + Constants.ZMASTER_LOCK;
 +
 +    OpTimer opTimer = new OpTimer(log, Level.TRACE).start("Looking up master location in zoocache.");
 +    byte[] loc = ZooUtil.getLockData(zooCache, masterLocPath);
 +    opTimer.stop("Found master at " + (loc == null ? null : new String(loc)) + " in %DURATION%");
 +
 +    if (loc == null) {
 +      return Collections.emptyList();
 +    }
 +
 +    return Collections.singletonList(new String(loc));
 +  }
 +
 +  @Override
 +  public String getRootTabletLocation() {
 +    if (closed)
 +      throw new RuntimeException("ZooKeeperInstance has been closed.");
 +    String zRootLocPath = ZooUtil.getRoot(this) + Constants.ZROOT_TABLET_LOCATION;
 +
 +    OpTimer opTimer = new OpTimer(log, Level.TRACE).start("Looking up root tablet location in zookeeper.");
 +    byte[] loc = zooCache.get(zRootLocPath);
 +    opTimer.stop("Found root tablet at " + (loc == null ? null : new String(loc)) + " in %DURATION%");
 +
 +    if (loc == null) {
 +      return null;
 +    }
 +
 +    return new String(loc).split("\\|")[0];
 +  }
 +
 +  @Override
 +  public String getInstanceName() {
 +    if (closed)
 +      throw new RuntimeException("ZooKeeperInstance has been closed.");
 +    if (instanceName == null)
 +      instanceName = lookupInstanceName(zooCache, UUID.fromString(getInstanceID()));
 +
 +    return instanceName;
 +  }
 +
 +  @Override
 +  public String getZooKeepers() {
 +    return zooKeepers;
 +  }
 +
 +  @Override
 +  public int getZooKeepersSessionTimeOut() {
 +    return zooKeepersSessionTimeOut;
 +  }
 +
 +  @Override
 +  @Deprecated
 +  public Connector getConnector(String user, CharSequence pass) throws AccumuloException, AccumuloSecurityException {
 +    return getConnector(user, TextUtil.getBytes(new Text(pass.toString())));
 +  }
 +
 +  @Override
 +  @Deprecated
 +  public Connector getConnector(String user, ByteBuffer pass) throws AccumuloException, AccumuloSecurityException {
 +    return getConnector(user, ByteBufferUtil.toBytes(pass));
 +  }
 +
 +  @Override
 +  public Connector getConnector(String principal, AuthenticationToken token) throws AccumuloException, AccumuloSecurityException {
 +    return getConnector(CredentialHelper.create(principal, token, getInstanceID()));
 +  }
 +  
 +  @SuppressWarnings("deprecation")
 +  private Connector getConnector(TCredentials credential) throws AccumuloException, AccumuloSecurityException {
 +    return new ConnectorImpl(this, credential);
 +  }
 +  
 +  @Override
 +  @Deprecated
 +  public Connector getConnector(String principal, byte[] pass) throws AccumuloException, AccumuloSecurityException {
 +    if (closed) {
 +      throw new RuntimeException("ZooKeeperInstance has been closed.");
 +    } else {
 +      return getConnector(principal, new PasswordToken(pass));
 +    }
 +  }
 +
 +  private AccumuloConfiguration conf = null;
 +
 +  @Override
 +  public AccumuloConfiguration getConfiguration() {
 +    if (conf == null)
 +      conf = AccumuloConfiguration.getDefaultConfiguration();
 +    return conf;
 +  }
 +
 +  @Override
 +  public void setConfiguration(AccumuloConfiguration conf) {
 +    this.conf = conf;
 +  }
 +
 +  /**
 +   * @deprecated Use {@link #lookupInstanceName(org.apache.accumulo.fate.zookeeper.ZooCache, UUID)} instead
 +   */
 +  @Deprecated
 +  public static String lookupInstanceName(org.apache.accumulo.core.zookeeper.ZooCache zooCache, UUID instanceId) {
 +    return lookupInstanceName((ZooCache) zooCache, instanceId);
 +  }
 +  
 +  /**
 +   * Given a zooCache and instanceId, look up the instance name.
 +   * 
 +   * @param zooCache
 +   * @param instanceId
 +   * @return the instance name
 +   */
 +  public static String lookupInstanceName(ZooCache zooCache, UUID instanceId) {
 +    ArgumentChecker.notNull(zooCache, instanceId);
 +    for (String name : zooCache.getChildren(Constants.ZROOT + Constants.ZINSTANCES)) {
 +      String instanceNamePath = Constants.ZROOT + Constants.ZINSTANCES + "/" + name;
-       UUID iid = UUID.fromString(new String(zooCache.get(instanceNamePath)));
++      byte[] bytes = zooCache.get(instanceNamePath);
++      UUID iid = UUID.fromString(new String(bytes, Constants.UTF8));
 +      if (iid.equals(instanceId)) {
 +        return name;
 +      }
 +    }
 +    return null;
 +  }
 +  
 +  /**
 +   * To be moved to server code. Only lives here to support certain client side utilities to minimize command-line options.
 +   */
 +  @Deprecated
 +  public static String getInstanceIDFromHdfs(Path instanceDirectory) {
 +    try {
 +      FileSystem fs = FileUtil.getFileSystem(CachedConfiguration.getInstance(), AccumuloConfiguration.getSiteConfiguration());
 +      FileStatus[] files = null;
 +      try {
 +        files = fs.listStatus(instanceDirectory);
 +      } catch (FileNotFoundException ex) {
 +        // ignored
 +      }
 +      log.debug("Trying to read instance id from " + instanceDirectory);
 +      if (files == null || files.length == 0) {
 +        log.error("unable obtain instance id at " + instanceDirectory);
 +        throw new RuntimeException("Accumulo not initialized, there is no instance id at " + instanceDirectory);
 +      } else if (files.length != 1) {
 +        log.error("multiple potential instances in " + instanceDirectory);
 +        throw new RuntimeException("Accumulo found multiple possible instance ids in " + instanceDirectory);
 +      } else {
 +        String result = files[0].getPath().getName();
 +        return result;
 +      }
 +    } catch (IOException e) {
 +      throw new RuntimeException("Accumulo not initialized, there is no instance id at " + instanceDirectory, e);
 +    }
 +  }
 +  
 +  @Deprecated
 +  @Override
 +  public Connector getConnector(org.apache.accumulo.core.security.thrift.AuthInfo auth) throws AccumuloException, AccumuloSecurityException {
 +    return getConnector(auth.user, auth.password);
 +  }
 +
 +  static private final AtomicInteger clientInstances = new AtomicInteger(0);
 +
 +  @Override
 +  public synchronized void close() {
 +    if (!closed && clientInstances.decrementAndGet() == 0) {
 +      try {
 +        zooCache.close();
 +        ThriftUtil.close();
 +      } catch (RuntimeException e) {
 +        clientInstances.incrementAndGet();
 +        throw e;
 +      }
 +    }
 +    closed = true;
 +  }
 +
 +  @Override
 +  public void finalize() {
 +    // This method intentionally left blank. Users need to explicitly close Instances if they want things cleaned up nicely.
 +    if (!closed)
 +      log.warn("ZooKeeperInstance being cleaned up without being closed. Please remember to call close() before dereferencing to clean up threads.");
 +  }
 +}


[11/12] git commit: ACCUMULO-2057 caused ACCUMULO-2074 ACCUMULO-2075; copy-paste-error

Posted by ec...@apache.org.
ACCUMULO-2057 caused ACCUMULO-2074 ACCUMULO-2075; copy-paste-error


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/6bf68ed0
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/6bf68ed0
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/6bf68ed0

Branch: refs/heads/master
Commit: 6bf68ed0d6e725b8866e304fef693c9f6c6f71fe
Parents: e7f68b5
Author: Eric Newton <er...@gmail.com>
Authored: Fri Dec 20 11:01:36 2013 -0500
Committer: Eric Newton <er...@gmail.com>
Committed: Fri Dec 20 11:02:02 2013 -0500

----------------------------------------------------------------------
 .../src/main/java/org/apache/accumulo/tserver/TabletServer.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/6bf68ed0/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
----------------------------------------------------------------------
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
index e3f508f..322a1a5 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
@@ -2662,7 +2662,7 @@ public class TabletServer extends AbstractMetricsImpl implements org.apache.accu
     newTablets[0] = new Tablet(first.getKey(), TabletServer.this, resourceManager.createTabletResourceManager(), first.getValue());
 
     Entry<KeyExtent,SplitInfo> last = tabletInfo.lastEntry();
-    newTablets[1] = new Tablet(first.getKey(), TabletServer.this, resourceManager.createTabletResourceManager(), last.getValue());
+    newTablets[1] = new Tablet(last.getKey(), TabletServer.this, resourceManager.createTabletResourceManager(), last.getValue());
 
     // roll tablet stats over into tablet server's statsKeeper object as
     // historical data


[06/12] git commit: ACCUMULO-2073 Add in some basic timeouts on the conditional writer ITs

Posted by ec...@apache.org.
ACCUMULO-2073 Add in some basic timeouts on the conditional writer ITs


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/82d0555c
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/82d0555c
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/82d0555c

Branch: refs/heads/master
Commit: 82d0555c7fef2668588d0f8fcb02b8ca71c325e0
Parents: b59c268
Author: Josh Elser <el...@apache.org>
Authored: Thu Dec 19 23:44:02 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Thu Dec 19 23:44:02 2013 -0500

----------------------------------------------------------------------
 .../accumulo/test/ConditionalWriterIT.java      | 32 ++++++++++----------
 1 file changed, 16 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/82d0555c/test/src/test/java/org/apache/accumulo/test/ConditionalWriterIT.java
----------------------------------------------------------------------
diff --git a/test/src/test/java/org/apache/accumulo/test/ConditionalWriterIT.java b/test/src/test/java/org/apache/accumulo/test/ConditionalWriterIT.java
index a842d6d..f72510d 100644
--- a/test/src/test/java/org/apache/accumulo/test/ConditionalWriterIT.java
+++ b/test/src/test/java/org/apache/accumulo/test/ConditionalWriterIT.java
@@ -81,7 +81,7 @@ import org.junit.Test;
  */
 public class ConditionalWriterIT extends SimpleMacIT {
 
-  @Test
+  @Test(timeout =  60 * 1000)
   public void testBasic() throws Exception {
 
     Connector conn = getConnector();
@@ -159,7 +159,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     Assert.assertEquals("doe", scanner.iterator().next().getValue().toString());
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testFields() throws Exception {
 
     Connector conn = getConnector();
@@ -241,7 +241,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
 
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testBadColVis() throws Exception {
     // test when a user sets a col vis in a condition that can never be seen
 
@@ -338,7 +338,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     cw2.close();
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testConstraints() throws Exception {
     // ensure constraint violations are properly reported
 
@@ -368,7 +368,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     cw.close();
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testIterators() throws Exception {
 
     Connector conn = getConnector();
@@ -464,7 +464,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     cw.close();
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testBatch() throws Exception {
 
     Connector conn = getConnector();
@@ -569,7 +569,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     cw.close();
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testBigBatch() throws Exception {
 
     Connector conn = getConnector();
@@ -642,7 +642,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     cw.close();
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testBatchErrors() throws Exception {
 
     Connector conn = getConnector();
@@ -722,7 +722,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     cw.close();
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testSameRow() throws Exception {
     // test multiple mutations for same row in same batch
 
@@ -907,7 +907,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     }
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testThreads() throws Exception {
     // test multiple threads using a single conditional writer
 
@@ -986,7 +986,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     return ret;
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testSecurity() throws Exception {
     // test against table user does not have read and/or write permissions for
     Connector conn = getConnector();
@@ -1029,7 +1029,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     }
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testTimeout() throws Exception {
     Connector conn = getConnector();
 
@@ -1078,7 +1078,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     cw.close();
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testDeleteTable() throws Exception {
     String table = getTableNames(1)[0];
     Connector conn = getConnector();
@@ -1108,7 +1108,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     }
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testOffline() throws Exception {
     String table = getTableNames(1)[0];
     Connector conn = getConnector();
@@ -1140,7 +1140,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     } catch (TableOfflineException e) {}
   }
 
-  @Test
+  @Test(timeout = 60 * 1000)
   public void testError() throws Exception {
     String table = getTableNames(1)[0];
     Connector conn = getConnector();
@@ -1167,7 +1167,7 @@ public class ConditionalWriterIT extends SimpleMacIT {
     cw.close();
   }
 
-  @Test(expected = IllegalArgumentException.class)
+  @Test(timeout = 60 * 1000, expected = IllegalArgumentException.class)
   public void testNoConditions() throws AccumuloException, AccumuloSecurityException, TableExistsException, TableNotFoundException {
     String table = getTableNames(1)[0];
     Connector conn = getConnector();


[08/12] git commit: Merge branch '1.4.5-SNAPSHOT' into 1.5.1-SNAPSHOT

Posted by ec...@apache.org.
Merge branch '1.4.5-SNAPSHOT' into 1.5.1-SNAPSHOT


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/30938af5
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/30938af5
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/30938af5

Branch: refs/heads/master
Commit: 30938af5f4d6523f7f0f7420fc65154074ead4bc
Parents: 6c96687 36f503c
Author: Josh Elser <el...@apache.org>
Authored: Fri Dec 20 00:55:32 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Fri Dec 20 00:55:32 2013 -0500

----------------------------------------------------------------------
 bin/config.sh | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/30938af5/bin/config.sh
----------------------------------------------------------------------
diff --cc bin/config.sh
index 16a566b,665777e..07b7487
--- a/bin/config.sh
+++ b/bin/config.sh
@@@ -37,24 -37,32 +37,29 @@@
  # Values always set by script.
  #  SSH                Default ssh parameters used to start daemons
  #  MALLOC_ARENA_MAX   To work around a memory management bug (see ACCUMULO-847)
 +#  HADOOP_HOME        Home dir for hadoop.  TODO fix this.
  
  if [ -z "${ACCUMULO_HOME}" ] ; then
 -  this="$0"
 -  while [ -h "$this" ]; do
 -      ls=`ls -ld "$this"`
 -      link=`expr "$ls" : '.*-> \(.*\)$'`
 -      if expr "$link" : '.*/.*' > /dev/null; then
 -          this="$link"
 -      else
 -          this=`dirname "$this"`/"$link"
 -      fi
 +  # Start: Resolve Script Directory
 +  SOURCE="${BASH_SOURCE[0]}"
 +  while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
 +     bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
 +     SOURCE="$(readlink "$SOURCE")"
 +     [[ $SOURCE != /* ]] && SOURCE="$bin/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
    done
 -  bin=`dirname "$this"`
 -  script=`basename "$this"`
 -  bin=`cd "$bin"; pwd`
 -  this="$bin/$script"
 +  bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
 +  script=$( basename "$SOURCE" )
 +  # Stop: Resolve Script Directory
  
 -  ACCUMULO_HOME=`dirname "$this"`/..
 -  export ACCUMULO_HOME=`cd $ACCUMULO_HOME; pwd`
 +  ACCUMULO_HOME=$( cd -P ${bin}/.. && pwd )
 +  export ACCUMULO_HOME
  fi
  
+ if [ ! -d "${ACCUMULO_HOME}" ]; then
+   echo "ACCUMULO_HOME=${ACCUMULO_HOME} is not a valid directory. Please make sure it exists"
+   exit 1
+ fi
+ 
  ACCUMULO_CONF_DIR="${ACCUMULO_CONF_DIR:-$ACCUMULO_HOME/conf}"
  export ACCUMULO_CONF_DIR
  if [ -z "$ACCUMULO_CONF_DIR" -o ! -d "$ACCUMULO_CONF_DIR" ]


[02/12] git commit: ACCUMULO-1593 Applying Ted's patch to ensure UTF-8 String encoding applied to instance id pulled from ZK.

Posted by ec...@apache.org.
ACCUMULO-1593 Applying Ted's patch to ensure UTF-8 String encoding applied to instance id pulled from ZK.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/041b482f
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/041b482f
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/041b482f

Branch: refs/heads/master
Commit: 041b482f672bf6a147ac8c9d1646c5aee705d270
Parents: 5a421c7
Author: Josh Elser <el...@apache.org>
Authored: Thu Dec 19 22:23:03 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Thu Dec 19 22:23:03 2013 -0500

----------------------------------------------------------------------
 src/core/src/main/java/org/apache/accumulo/core/Constants.java  | 3 +++
 .../java/org/apache/accumulo/core/client/ZooKeeperInstance.java | 5 +++--
 2 files changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/041b482f/src/core/src/main/java/org/apache/accumulo/core/Constants.java
----------------------------------------------------------------------
diff --git a/src/core/src/main/java/org/apache/accumulo/core/Constants.java b/src/core/src/main/java/org/apache/accumulo/core/Constants.java
index c85649d..6578101 100644
--- a/src/core/src/main/java/org/apache/accumulo/core/Constants.java
+++ b/src/core/src/main/java/org/apache/accumulo/core/Constants.java
@@ -16,6 +16,8 @@
  */
 package org.apache.accumulo.core;
 
+import java.nio.charset.Charset;
+
 import org.apache.accumulo.core.conf.AccumuloConfiguration;
 import org.apache.accumulo.core.conf.Property;
 import org.apache.accumulo.core.data.Key;
@@ -28,6 +30,7 @@ import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.Text;
 
 public class Constants {
+  public static final Charset UTF8 = Charset.forName("UTF-8");
   public static final String VERSION = "1.4.5-SNAPSHOT";
   public static final int DATA_VERSION = 4;
   public static final int PREV_DATA_VERSION = 3;

http://git-wip-us.apache.org/repos/asf/accumulo/blob/041b482f/src/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
----------------------------------------------------------------------
diff --git a/src/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java b/src/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
index 4cd4972..fcadd38 100644
--- a/src/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
+++ b/src/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
@@ -150,7 +150,7 @@ public class ZooKeeperInstance implements Instance {
         throw new RuntimeException("Instance name " + instanceName
             + " does not exist in zookeeper.  Run \"accumulo org.apache.accumulo.server.util.ListInstances\" to see a list.");
       }
-      instanceId = new String(iidb);
+      instanceId = new String(iidb, Constants.UTF8);
     }
 
     if (zooCache.get(Constants.ZROOT + "/" + instanceId) == null) {
@@ -260,7 +260,8 @@ public class ZooKeeperInstance implements Instance {
     ArgumentChecker.notNull(zooCache, instanceId);
     for (String name : zooCache.getChildren(Constants.ZROOT + Constants.ZINSTANCES)) {
       String instanceNamePath = Constants.ZROOT + Constants.ZINSTANCES + "/" + name;
-      UUID iid = UUID.fromString(new String(zooCache.get(instanceNamePath)));
+      byte[] bytes = zooCache.get(instanceNamePath);
+      UUID iid = UUID.fromString(new String(bytes, Constants.UTF8));
       if (iid.equals(instanceId)) {
         return name;
       }


[10/12] git commit: ACCUMULO-2067 urlencode the table id used in the link.

Posted by ec...@apache.org.
ACCUMULO-2067 urlencode the table id used in the link.


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

Branch: refs/heads/master
Commit: e7f68b586f8317b1e1e94aa56e6adbeacc10670f
Parents: 92077a8
Author: Josh Elser <el...@apache.org>
Authored: Fri Dec 20 01:45:55 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Fri Dec 20 01:45:55 2013 -0500

----------------------------------------------------------------------
 .../monitor/util/celltypes/TableLinkType.java        | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/e7f68b58/server/monitor/src/main/java/org/apache/accumulo/monitor/util/celltypes/TableLinkType.java
----------------------------------------------------------------------
diff --git a/server/monitor/src/main/java/org/apache/accumulo/monitor/util/celltypes/TableLinkType.java b/server/monitor/src/main/java/org/apache/accumulo/monitor/util/celltypes/TableLinkType.java
index 03bd06b..39a932e 100644
--- a/server/monitor/src/main/java/org/apache/accumulo/monitor/util/celltypes/TableLinkType.java
+++ b/server/monitor/src/main/java/org/apache/accumulo/monitor/util/celltypes/TableLinkType.java
@@ -16,13 +16,18 @@
  */
 package org.apache.accumulo.monitor.util.celltypes;
 
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
 import java.util.Map;
 
+import org.apache.accumulo.core.Constants;
 import org.apache.accumulo.core.client.impl.Tables;
 import org.apache.accumulo.server.client.HdfsZooInstance;
+import org.apache.log4j.Logger;
 
 public class TableLinkType extends CellType<String> {
   
+  private static final Logger log = Logger.getLogger(TableLinkType.class);
   private Map<String,String> tidToNameMap;
   
   public TableLinkType() {
@@ -34,7 +39,15 @@ public class TableLinkType extends CellType<String> {
     if (obj == null)
       return "-";
     String tableId = (String) obj;
-    return String.format("<a href='/tables?t=%s'>%s</a>", tableId, displayName(tableId));
+    String encodedTableId = tableId;
+    // Encode the tableid we use in the link so we construct a correct url
+    // e.g. the root table's id of "+r" would not be interpreted properly
+    try {
+      encodedTableId = URLEncoder.encode(tableId, Constants.UTF8.name());
+    } catch (UnsupportedEncodingException e) {
+      log.error("Could not urlencode tableId: " + encodedTableId);
+    }
+    return String.format("<a href='/tables?t=%s'>%s</a>", encodedTableId, displayName(tableId));
   }
   
   private String displayName(String tableId) {


[09/12] git commit: Merge branch '1.5.1-SNAPSHOT' into 1.6.0-SNAPSHOT

Posted by ec...@apache.org.
Merge branch '1.5.1-SNAPSHOT' into 1.6.0-SNAPSHOT


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/92077a80
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/92077a80
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/92077a80

Branch: refs/heads/master
Commit: 92077a8023fe522a6df8cd12737ee368fe9a0d5f
Parents: 82d0555 30938af
Author: Josh Elser <el...@apache.org>
Authored: Fri Dec 20 00:57:26 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Fri Dec 20 00:57:26 2013 -0500

----------------------------------------------------------------------
 bin/config.sh | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/92077a80/bin/config.sh
----------------------------------------------------------------------


[05/12] git commit: Merge branch '1.6.0-SNAPSHOT' of https://git-wip-us.apache.org/repos/asf/accumulo into 1.6.0-SNAPSHOT

Posted by ec...@apache.org.
Merge branch '1.6.0-SNAPSHOT' of https://git-wip-us.apache.org/repos/asf/accumulo into 1.6.0-SNAPSHOT


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

Branch: refs/heads/master
Commit: b59c2687a983f82d7efd2b80cc012a5e8e2f1c74
Parents: ed73039 0b95612
Author: Josh Elser <el...@apache.org>
Authored: Thu Dec 19 23:22:34 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Thu Dec 19 23:22:34 2013 -0500

----------------------------------------------------------------------
 .../core/client/admin/TableOperationsImpl.java  |  4 +-
 .../core/client/impl/OfflineScanner.java        |  8 +--
 .../org/apache/accumulo/core/file/FileUtil.java |  7 +++
 .../apache/accumulo/core/zookeeper/ZooUtil.java |  4 +-
 .../apache/accumulo/server/fs/ViewFSUtils.java  | 51 ++++++++++++++++++
 .../accumulo/server/fs/VolumeManagerImpl.java   | 18 ++++++-
 .../server/master/recovery/HadoopLogCloser.java | 14 ++++-
 .../server/master/recovery/RecoveryPath.java    | 56 ++++++++++++++++++++
 .../master/recovery/RecoveryManager.java        | 14 +++--
 .../apache/accumulo/tserver/TabletServer.java   |  5 +-
 10 files changed, 158 insertions(+), 23 deletions(-)
----------------------------------------------------------------------



[04/12] git commit: Merge branch '1.5.1-SNAPSHOT' into 1.6.0-SNAPSHOT

Posted by ec...@apache.org.
Merge branch '1.5.1-SNAPSHOT' into 1.6.0-SNAPSHOT


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

Branch: refs/heads/master
Commit: ed7303998a39e335f1876a849612250bd29ce69e
Parents: 0893667 6c96687
Author: Josh Elser <el...@apache.org>
Authored: Thu Dec 19 23:06:44 2013 -0500
Committer: Josh Elser <el...@apache.org>
Committed: Thu Dec 19 23:06:44 2013 -0500

----------------------------------------------------------------------
 .../java/org/apache/accumulo/core/client/ZooKeeperInstance.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/ed730399/core/src/main/java/org/apache/accumulo/core/client/ZooKeeperInstance.java
----------------------------------------------------------------------


[12/12] git commit: ACCUMULO-2057 caused ACCUMULO-2074 ACCUMULO-2075; copy-paste-error, re-adding the patch from ACCUMULO-2057 back into master

Posted by ec...@apache.org.
ACCUMULO-2057 caused ACCUMULO-2074 ACCUMULO-2075; copy-paste-error, re-adding the patch from ACCUMULO-2057 back into master


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/551c6507
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/551c6507
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/551c6507

Branch: refs/heads/master
Commit: 551c6507d5f558fe45aad30b2de42dbf5c3005e0
Parents: 322ee05 6bf68ed
Author: Eric Newton <er...@gmail.com>
Authored: Fri Dec 20 11:10:52 2013 -0500
Committer: Eric Newton <er...@gmail.com>
Committed: Fri Dec 20 11:10:52 2013 -0500

----------------------------------------------------------------------
 bin/config.sh                                   |  5 +++
 .../accumulo/core/client/ZooKeeperInstance.java |  5 +--
 .../monitor/util/celltypes/TableLinkType.java   | 15 ++++++++-
 .../org/apache/accumulo/tserver/Tablet.java     | 19 ++++++------
 .../apache/accumulo/tserver/TabletServer.java   |  6 ++--
 .../accumulo/test/ConditionalWriterIT.java      | 32 ++++++++++----------
 6 files changed, 50 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/551c6507/server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java
----------------------------------------------------------------------
diff --cc server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java
index 7daa21a,d904037..5e9f5ab
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/Tablet.java
@@@ -1079,10 -1079,9 +1079,9 @@@ public class Tablet 
      this(tabletServer, location, extent, trm, CachedConfiguration.getInstance(), tabletsKeyValues);
      splitCreationTime = 0;
    }
--
-   public Tablet(TabletServer tabletServer, Text location, KeyExtent extent, TabletResourceManager trm, SortedMap<FileRef,DataFileValue> datafiles, String time,
-       long initFlushID, long initCompactID) throws IOException {
-     this(tabletServer, location, extent, trm, CachedConfiguration.getInstance(), datafiles, time, initFlushID, initCompactID);
++  
+   public Tablet(KeyExtent extent, TabletServer tabletServer, TabletResourceManager trm, SplitInfo info) throws IOException {
 -    this(tabletServer, new Text(info.dir), extent, trm, CachedConfiguration.getInstance(), info.datafiles, info.time, info.initFlushID, info.initCompactID, info.lastLocation);
++    this(tabletServer, new Text(info.dir), extent, trm, CachedConfiguration.getInstance(), info.datafiles, info.time, info.initFlushID, info.initCompactID, info.lastLocation); 
      splitCreationTime = System.currentTimeMillis();
    }
  
@@@ -1094,8 -1093,8 +1093,8 @@@
    static private final List<LogEntry> EMPTY = Collections.emptyList();
  
    private Tablet(TabletServer tabletServer, Text location, KeyExtent extent, TabletResourceManager trm, Configuration conf,
-       SortedMap<FileRef,DataFileValue> datafiles, String time, long initFlushID, long initCompactID) throws IOException {
-     this(tabletServer, location, extent, trm, conf, VolumeManagerImpl.get(), EMPTY, datafiles, time, null, new HashSet<FileRef>(), initFlushID, initCompactID);
 -      SortedMap<FileRef,DataFileValue> datafiles, String time, long initFlushID, long initCompactID, TServerInstance last) throws IOException {
 -    this(tabletServer, location, extent, trm, conf, VolumeManagerImpl.get(), EMPTY, datafiles, time, last, new HashSet<FileRef>(), initFlushID, initCompactID);
++      SortedMap<FileRef,DataFileValue> datafiles, String time, long initFlushID, long initCompactID, TServerInstance lastLocation) throws IOException {
++    this(tabletServer, location, extent, trm, conf, VolumeManagerImpl.get(), EMPTY, datafiles, time, lastLocation, new HashSet<FileRef>(), initFlushID, initCompactID);
    }
  
    private static String lookupTime(AccumuloConfiguration conf, KeyExtent extent, SortedMap<Key,Value> tabletsKeyValues) {
@@@ -3572,8 -3573,8 +3573,8 @@@
  
        log.log(TLevel.TABLET_HIST, extent + " split " + low + " " + high);
  
-       newTablets.put(high, new SplitInfo(tabletDirectory, highDatafileSizes, time, lastFlushID, lastCompactID));
-       newTablets.put(low, new SplitInfo(lowDirectory, lowDatafileSizes, time, lastFlushID, lastCompactID));
 -      newTablets.put(high, new SplitInfo(tabletDirectory, highDatafileSizes, time, lastFlushID, lastCompactID, this.lastLocation));
 -      newTablets.put(low, new SplitInfo(lowDirectory, lowDatafileSizes, time, lastFlushID, lastCompactID, this.lastLocation));
++      newTablets.put(high, new SplitInfo(tabletDirectory, highDatafileSizes, time, lastFlushID, lastCompactID, lastLocation));
++      newTablets.put(low, new SplitInfo(lowDirectory, lowDatafileSizes, time, lastFlushID, lastCompactID, lastLocation));
  
        long t2 = System.currentTimeMillis();