HBASE-7579 HTableDescriptor equals method fails if results are returned in a different order; REVERT -- OVERCOMMITTED
git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1471053 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
2b32678420
commit
0f30646656
|
@ -36,7 +36,7 @@
|
||||||
|
|
||||||
usage="Usage: hbase-daemon.sh [--config <conf-dir>]\
|
usage="Usage: hbase-daemon.sh [--config <conf-dir>]\
|
||||||
(start|stop|restart|autorestart) <hbase-command> \
|
(start|stop|restart|autorestart) <hbase-command> \
|
||||||
[--formatZK] [--formatFS] <args...>"
|
<args...>"
|
||||||
|
|
||||||
# if no args specified, show usage
|
# if no args specified, show usage
|
||||||
if [ $# -le 1 ]; then
|
if [ $# -le 1 ]; then
|
||||||
|
@ -57,19 +57,6 @@ shift
|
||||||
command=$1
|
command=$1
|
||||||
shift
|
shift
|
||||||
|
|
||||||
if [ "$startStop" = "start" ];then
|
|
||||||
for i in 1 2
|
|
||||||
do
|
|
||||||
if [ "$1" = "--formatZK" ];then
|
|
||||||
formatzk=$1
|
|
||||||
shift
|
|
||||||
elif [ "$1" = "--formatFS" ];then
|
|
||||||
formatfs=$1
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
hbase_rotate_log ()
|
hbase_rotate_log ()
|
||||||
{
|
{
|
||||||
log=$1;
|
log=$1;
|
||||||
|
@ -111,10 +98,6 @@ check_before_start(){
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
clear_hbase_data() {
|
|
||||||
$bin/hbase-cleanup.sh $formatzk $formatfs
|
|
||||||
}
|
|
||||||
|
|
||||||
wait_until_done ()
|
wait_until_done ()
|
||||||
{
|
{
|
||||||
p=$1
|
p=$1
|
||||||
|
@ -189,7 +172,6 @@ case $startStop in
|
||||||
|
|
||||||
(start)
|
(start)
|
||||||
check_before_start
|
check_before_start
|
||||||
clear_hbase_data
|
|
||||||
nohup $thiscmd --config "${HBASE_CONF_DIR}" internal_start $command $args < /dev/null > /dev/null 2>&1 &
|
nohup $thiscmd --config "${HBASE_CONF_DIR}" internal_start $command $args < /dev/null > /dev/null 2>&1 &
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
# Start hadoop hbase daemons.
|
# Start hadoop hbase daemons.
|
||||||
# Run this on master node.
|
# Run this on master node.
|
||||||
usage="Usage: start-hbase.sh [autorestart] [--formatZK] [--formatFS]"
|
usage="Usage: start-hbase.sh"
|
||||||
|
|
||||||
bin=`dirname "${BASH_SOURCE-$0}"`
|
bin=`dirname "${BASH_SOURCE-$0}"`
|
||||||
bin=`cd "$bin">/dev/null; pwd`
|
bin=`cd "$bin">/dev/null; pwd`
|
||||||
|
@ -37,19 +37,12 @@ if [ $errCode -ne 0 ]
|
||||||
then
|
then
|
||||||
exit $errCode
|
exit $errCode
|
||||||
fi
|
fi
|
||||||
for i in 1 2 3
|
|
||||||
do
|
|
||||||
if [ "$1" = "autorestart" ];then
|
|
||||||
commandToRun="autorestart"
|
|
||||||
elif [ "$1" = "--formatZK" ];then
|
|
||||||
formatzk=$1
|
|
||||||
elif [ "$1" = "--formatFS" ];then
|
|
||||||
formatfs=$1
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "$commandToRun" = "" ];then
|
|
||||||
|
if [ "$1" = "autorestart" ]
|
||||||
|
then
|
||||||
|
commandToRun="autorestart"
|
||||||
|
else
|
||||||
commandToRun="start"
|
commandToRun="start"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -59,10 +52,10 @@ distMode=`$bin/hbase --config "$HBASE_CONF_DIR" org.apache.hadoop.hbase.util.HBa
|
||||||
|
|
||||||
if [ "$distMode" == 'false' ]
|
if [ "$distMode" == 'false' ]
|
||||||
then
|
then
|
||||||
"$bin"/hbase-daemon.sh $commandToRun master $formatzk $formatfs
|
"$bin"/hbase-daemon.sh $commandToRun master
|
||||||
else
|
else
|
||||||
"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" $commandToRun zookeeper
|
"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" $commandToRun zookeeper
|
||||||
"$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" $commandToRun master $formatzk $formatfs
|
"$bin"/hbase-daemon.sh --config "${HBASE_CONF_DIR}" $commandToRun master
|
||||||
"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
|
"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
|
||||||
--hosts "${HBASE_REGIONSERVERS}" $commandToRun regionserver
|
--hosts "${HBASE_REGIONSERVERS}" $commandToRun regionserver
|
||||||
"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
|
"$bin"/hbase-daemons.sh --config "${HBASE_CONF_DIR}" \
|
||||||
|
|
|
@ -1125,10 +1125,12 @@ public class HColumnDescriptor implements WritableComparable<HColumnDescriptor>
|
||||||
public int compareTo(HColumnDescriptor o) {
|
public int compareTo(HColumnDescriptor o) {
|
||||||
int result = Bytes.compareTo(this.name, o.getName());
|
int result = Bytes.compareTo(this.name, o.getName());
|
||||||
if (result == 0) {
|
if (result == 0) {
|
||||||
// The maps interface should compare values, even if they're in different orders
|
// punt on comparison for ordering, just calculate difference
|
||||||
if (!this.values.equals(o.values)) {
|
result = this.values.hashCode() - o.values.hashCode();
|
||||||
return 1;
|
if (result < 0)
|
||||||
}
|
result = -1;
|
||||||
|
else if (result > 0)
|
||||||
|
result = 1;
|
||||||
}
|
}
|
||||||
if (result == 0) {
|
if (result == 0) {
|
||||||
result = this.configuration.hashCode() - o.configuration.hashCode();
|
result = this.configuration.hashCode() - o.configuration.hashCode();
|
||||||
|
|
|
@ -225,7 +225,9 @@ public class HTableDescriptor implements WritableComparable<HTableDescriptor> {
|
||||||
* catalog tables, <code>.META.</code> and <code>-ROOT-</code>.
|
* catalog tables, <code>.META.</code> and <code>-ROOT-</code>.
|
||||||
*/
|
*/
|
||||||
protected HTableDescriptor(final byte [] name, HColumnDescriptor[] families) {
|
protected HTableDescriptor(final byte [] name, HColumnDescriptor[] families) {
|
||||||
setName(name);
|
this.name = name.clone();
|
||||||
|
this.nameAsString = Bytes.toString(this.name);
|
||||||
|
setMetaFlags(name);
|
||||||
for(HColumnDescriptor descriptor : families) {
|
for(HColumnDescriptor descriptor : families) {
|
||||||
this.families.put(descriptor.getName(), descriptor);
|
this.families.put(descriptor.getName(), descriptor);
|
||||||
}
|
}
|
||||||
|
@ -237,7 +239,12 @@ public class HTableDescriptor implements WritableComparable<HTableDescriptor> {
|
||||||
*/
|
*/
|
||||||
protected HTableDescriptor(final byte [] name, HColumnDescriptor[] families,
|
protected HTableDescriptor(final byte [] name, HColumnDescriptor[] families,
|
||||||
Map<ImmutableBytesWritable,ImmutableBytesWritable> values) {
|
Map<ImmutableBytesWritable,ImmutableBytesWritable> values) {
|
||||||
this(name.clone(), families);
|
this.name = name.clone();
|
||||||
|
this.nameAsString = Bytes.toString(this.name);
|
||||||
|
setMetaFlags(name);
|
||||||
|
for(HColumnDescriptor descriptor : families) {
|
||||||
|
this.families.put(descriptor.getName(), descriptor);
|
||||||
|
}
|
||||||
for (Map.Entry<ImmutableBytesWritable, ImmutableBytesWritable> entry:
|
for (Map.Entry<ImmutableBytesWritable, ImmutableBytesWritable> entry:
|
||||||
values.entrySet()) {
|
values.entrySet()) {
|
||||||
setValue(entry.getKey(), entry.getValue());
|
setValue(entry.getKey(), entry.getValue());
|
||||||
|
@ -277,7 +284,9 @@ public class HTableDescriptor implements WritableComparable<HTableDescriptor> {
|
||||||
*/
|
*/
|
||||||
public HTableDescriptor(final byte [] name) {
|
public HTableDescriptor(final byte [] name) {
|
||||||
super();
|
super();
|
||||||
setName(name);
|
setMetaFlags(this.name);
|
||||||
|
this.name = this.isMetaRegion()? name: isLegalTableName(name);
|
||||||
|
this.nameAsString = Bytes.toString(this.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -289,7 +298,9 @@ public class HTableDescriptor implements WritableComparable<HTableDescriptor> {
|
||||||
*/
|
*/
|
||||||
public HTableDescriptor(final HTableDescriptor desc) {
|
public HTableDescriptor(final HTableDescriptor desc) {
|
||||||
super();
|
super();
|
||||||
setName(desc.name.clone());
|
this.name = desc.name.clone();
|
||||||
|
this.nameAsString = Bytes.toString(this.name);
|
||||||
|
setMetaFlags(this.name);
|
||||||
for (HColumnDescriptor c: desc.families.values()) {
|
for (HColumnDescriptor c: desc.families.values()) {
|
||||||
this.families.put(c.getName(), new HColumnDescriptor(c));
|
this.families.put(c.getName(), new HColumnDescriptor(c));
|
||||||
}
|
}
|
||||||
|
@ -639,13 +650,9 @@ public class HTableDescriptor implements WritableComparable<HTableDescriptor> {
|
||||||
* Set the name of the table.
|
* Set the name of the table.
|
||||||
*
|
*
|
||||||
* @param name name of table
|
* @param name name of table
|
||||||
* @throws IllegalArgumentException if passed a table name
|
|
||||||
* that is made of other than 'word' characters, underscore or period: i.e.
|
|
||||||
* <code>[a-zA-Z_0-9.].
|
|
||||||
* @see <a href="HADOOP-1581">HADOOP-1581 HBASE: Un-openable tablename bug</a>
|
|
||||||
*/
|
*/
|
||||||
public void setName(byte[] name) {
|
public void setName(byte[] name) {
|
||||||
this.name = isMetaTable(name) ? name : isLegalTableName(name);
|
this.name = name;
|
||||||
this.nameAsString = Bytes.toString(this.name);
|
this.nameAsString = Bytes.toString(this.name);
|
||||||
setMetaFlags(this.name);
|
setMetaFlags(this.name);
|
||||||
}
|
}
|
||||||
|
@ -980,34 +987,39 @@ public class HTableDescriptor implements WritableComparable<HTableDescriptor> {
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(final HTableDescriptor other) {
|
public int compareTo(final HTableDescriptor other) {
|
||||||
// Check name matches
|
|
||||||
int result = Bytes.compareTo(this.name, other.name);
|
int result = Bytes.compareTo(this.name, other.name);
|
||||||
if (result != 0) return result;
|
if (result == 0) {
|
||||||
|
result = families.size() - other.families.size();
|
||||||
// Check size matches
|
}
|
||||||
result = families.size() - other.families.size();
|
if (result == 0 && families.size() != other.families.size()) {
|
||||||
if (result != 0) return result;
|
result = Integer.valueOf(families.size()).compareTo(
|
||||||
|
Integer.valueOf(other.families.size()));
|
||||||
// Compare that all column families
|
}
|
||||||
for (Iterator<HColumnDescriptor> it = families.values().iterator(),
|
if (result == 0) {
|
||||||
it2 = other.families.values().iterator(); it.hasNext(); ) {
|
for (Iterator<HColumnDescriptor> it = families.values().iterator(),
|
||||||
result = it.next().compareTo(it2.next());
|
it2 = other.families.values().iterator(); it.hasNext(); ) {
|
||||||
if (result != 0) {
|
result = it.next().compareTo(it2.next());
|
||||||
return result;
|
if (result != 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (result == 0) {
|
||||||
// Compare values
|
// punt on comparison for ordering, just calculate difference
|
||||||
if (!values.equals(other.values)) {
|
result = this.values.hashCode() - other.values.hashCode();
|
||||||
return 1;
|
if (result < 0)
|
||||||
|
result = -1;
|
||||||
|
else if (result > 0)
|
||||||
|
result = 1;
|
||||||
}
|
}
|
||||||
|
if (result == 0) {
|
||||||
// Compare configuration
|
result = this.configuration.hashCode() - other.configuration.hashCode();
|
||||||
if (!configuration.equals(other.configuration)) {
|
if (result < 0)
|
||||||
return 1;
|
result = -1;
|
||||||
|
else if (result > 0)
|
||||||
|
result = 1;
|
||||||
}
|
}
|
||||||
|
return result;
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -18,14 +18,12 @@
|
||||||
package org.apache.hadoop.hbase;
|
package org.apache.hadoop.hbase;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import org.apache.hadoop.hbase.exceptions.DeserializationException;
|
import org.apache.hadoop.hbase.exceptions.DeserializationException;
|
||||||
import org.apache.hadoop.hbase.io.compress.Compression;
|
import org.apache.hadoop.hbase.io.compress.Compression;
|
||||||
import org.apache.hadoop.hbase.io.compress.Compression.Algorithm;
|
import org.apache.hadoop.hbase.io.compress.Compression.Algorithm;
|
||||||
import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
|
import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
|
||||||
import org.apache.hadoop.hbase.io.hfile.BlockType;
|
|
||||||
import org.apache.hadoop.hbase.regionserver.BloomType;
|
import org.apache.hadoop.hbase.regionserver.BloomType;
|
||||||
import org.junit.experimental.categories.Category;
|
import org.junit.experimental.categories.Category;
|
||||||
|
|
||||||
|
@ -96,71 +94,4 @@ public class TestHColumnDescriptor {
|
||||||
desc.removeConfiguration(key);
|
desc.removeConfiguration(key);
|
||||||
assertEquals(null, desc.getConfigurationValue(key));
|
assertEquals(null, desc.getConfigurationValue(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testEqualsWithFamilyName() {
|
|
||||||
final String name1 = "someFamilyName";
|
|
||||||
HColumnDescriptor hcd1 = new HColumnDescriptor(name1);
|
|
||||||
HColumnDescriptor hcd2 = new HColumnDescriptor("someOtherFamilyName");
|
|
||||||
HColumnDescriptor hcd3 = new HColumnDescriptor(name1);
|
|
||||||
|
|
||||||
assertFalse(hcd1.equals(hcd2));
|
|
||||||
assertFalse(hcd2.equals(hcd1));
|
|
||||||
|
|
||||||
assertTrue(hcd3.equals(hcd1));
|
|
||||||
assertTrue(hcd1.equals(hcd3));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testEqualsWithAdditionalProperties() {
|
|
||||||
final String name1 = "someFamilyName";
|
|
||||||
HColumnDescriptor hcd1 = new HColumnDescriptor(name1);
|
|
||||||
HColumnDescriptor hcd2 = new HColumnDescriptor(name1);
|
|
||||||
hcd2.setBlocksize(4);
|
|
||||||
|
|
||||||
assertFalse(hcd1.equals(hcd2));
|
|
||||||
assertFalse(hcd2.equals(hcd1));
|
|
||||||
|
|
||||||
hcd1.setBlocksize(4);
|
|
||||||
|
|
||||||
assertTrue(hcd2.equals(hcd1));
|
|
||||||
assertTrue(hcd1.equals(hcd2));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testEqualsWithDifferentNumberOfProperties() {
|
|
||||||
final String name1 = "someFamilyName";
|
|
||||||
HColumnDescriptor hcd1 = new HColumnDescriptor(name1);
|
|
||||||
HColumnDescriptor hcd2 = new HColumnDescriptor(name1);
|
|
||||||
hcd2.setBlocksize(4);
|
|
||||||
hcd1.setBlocksize(4);
|
|
||||||
|
|
||||||
assertTrue(hcd2.equals(hcd1));
|
|
||||||
assertTrue(hcd1.equals(hcd2));
|
|
||||||
|
|
||||||
hcd2.setBloomFilterType(BloomType.ROW);
|
|
||||||
|
|
||||||
assertFalse(hcd1.equals(hcd2));
|
|
||||||
assertFalse(hcd2.equals(hcd1));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testEqualsWithDifferentOrderingOfProperties() {
|
|
||||||
final String name1 = "someFamilyName";
|
|
||||||
HColumnDescriptor hcd1 = new HColumnDescriptor(name1);
|
|
||||||
HColumnDescriptor hcd2 = new HColumnDescriptor(name1);
|
|
||||||
hcd2.setBlocksize(4);
|
|
||||||
hcd2.setBloomFilterType(BloomType.ROW);
|
|
||||||
hcd1.setBloomFilterType(BloomType.ROW);
|
|
||||||
hcd1.setBlocksize(4);
|
|
||||||
|
|
||||||
assertTrue(hcd2.equals(hcd1));
|
|
||||||
assertTrue(hcd1.equals(hcd2));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testEqualityWithSameObject() {
|
|
||||||
HColumnDescriptor hcd1 = new HColumnDescriptor("someName");
|
|
||||||
assertTrue(hcd1.equals(hcd1));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -198,173 +198,4 @@ public class TestHTableDescriptor {
|
||||||
desc.removeConfiguration(key);
|
desc.removeConfiguration(key);
|
||||||
assertEquals(null, desc.getConfigurationValue(key));
|
assertEquals(null, desc.getConfigurationValue(key));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testEqualsWithDifferentProperties() {
|
|
||||||
// Test basic property difference
|
|
||||||
HTableDescriptor h1 = new HTableDescriptor();
|
|
||||||
h1.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
HTableDescriptor h2 = new HTableDescriptor();
|
|
||||||
h2.setName(Bytes.toBytes("n2"));
|
|
||||||
|
|
||||||
assertFalse(h2.equals(h1));
|
|
||||||
assertFalse(h1.equals(h2));
|
|
||||||
|
|
||||||
h2.setName(Bytes.toBytes("n1"));
|
|
||||||
assertTrue(h2.equals(h1));
|
|
||||||
assertTrue(h1.equals(h2));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testEqualsWithDifferentNumberOfItems() {
|
|
||||||
HTableDescriptor h1 = new HTableDescriptor();
|
|
||||||
HTableDescriptor h2 = new HTableDescriptor();
|
|
||||||
|
|
||||||
// Test diff # of items
|
|
||||||
h1 = new HTableDescriptor();
|
|
||||||
h1.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
h2 = new HTableDescriptor();
|
|
||||||
h2.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
HColumnDescriptor hcd1 = new HColumnDescriptor(Bytes.toBytes("someName"));
|
|
||||||
HColumnDescriptor hcd2 = new HColumnDescriptor(Bytes.toBytes("someOtherName"));
|
|
||||||
|
|
||||||
h1.addFamily(hcd1);
|
|
||||||
h2.addFamily(hcd1);
|
|
||||||
h1.addFamily(hcd2);
|
|
||||||
|
|
||||||
assertFalse(h2.equals(h1));
|
|
||||||
assertFalse(h1.equals(h2));
|
|
||||||
|
|
||||||
h2.addFamily(hcd2);
|
|
||||||
|
|
||||||
assertTrue(h2.equals(h1));
|
|
||||||
assertTrue(h1.equals(h2));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testNotEqualsWithDifferentHCDs() {
|
|
||||||
HTableDescriptor h1 = new HTableDescriptor();
|
|
||||||
HTableDescriptor h2 = new HTableDescriptor();
|
|
||||||
|
|
||||||
// Test diff # of items
|
|
||||||
h1 = new HTableDescriptor();
|
|
||||||
h1.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
h2 = new HTableDescriptor();
|
|
||||||
h2.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
HColumnDescriptor hcd1 = new HColumnDescriptor(Bytes.toBytes("someName"));
|
|
||||||
HColumnDescriptor hcd2 = new HColumnDescriptor(Bytes.toBytes("someOtherName"));
|
|
||||||
|
|
||||||
h1.addFamily(hcd1);
|
|
||||||
h2.addFamily(hcd2);
|
|
||||||
|
|
||||||
assertFalse(h2.equals(h1));
|
|
||||||
assertFalse(h1.equals(h2));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testEqualsWithDifferentHCDObjects() {
|
|
||||||
HTableDescriptor h1 = new HTableDescriptor();
|
|
||||||
HTableDescriptor h2 = new HTableDescriptor();
|
|
||||||
|
|
||||||
// Test diff # of items
|
|
||||||
h1 = new HTableDescriptor();
|
|
||||||
h1.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
h2 = new HTableDescriptor();
|
|
||||||
h2.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
HColumnDescriptor hcd1 = new HColumnDescriptor(Bytes.toBytes("someName"));
|
|
||||||
HColumnDescriptor hcd2 = new HColumnDescriptor(Bytes.toBytes("someName"));
|
|
||||||
|
|
||||||
h1.addFamily(hcd1);
|
|
||||||
h2.addFamily(hcd2);
|
|
||||||
|
|
||||||
assertTrue(h2.equals(h1));
|
|
||||||
assertTrue(h1.equals(h2));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testNotEqualsWithDifferentItems() {
|
|
||||||
HTableDescriptor h1 = new HTableDescriptor();
|
|
||||||
HTableDescriptor h2 = new HTableDescriptor();
|
|
||||||
|
|
||||||
// Test diff # of items
|
|
||||||
h1 = new HTableDescriptor();
|
|
||||||
h1.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
h2 = new HTableDescriptor();
|
|
||||||
h2.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
HColumnDescriptor hcd1 = new HColumnDescriptor(Bytes.toBytes("someName"));
|
|
||||||
HColumnDescriptor hcd2 = new HColumnDescriptor(Bytes.toBytes("someOtherName"));
|
|
||||||
h1.addFamily(hcd1);
|
|
||||||
h2.addFamily(hcd2);
|
|
||||||
|
|
||||||
assertFalse(h2.equals(h1));
|
|
||||||
assertFalse(h1.equals(h2));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testEqualsWithDifferentOrderingsOfItems() {
|
|
||||||
HTableDescriptor h1 = new HTableDescriptor();
|
|
||||||
HTableDescriptor h2 = new HTableDescriptor();
|
|
||||||
|
|
||||||
//Test diff # of items
|
|
||||||
h1 = new HTableDescriptor();
|
|
||||||
h1.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
h2 = new HTableDescriptor();
|
|
||||||
h2.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
HColumnDescriptor hcd1 = new HColumnDescriptor(Bytes.toBytes("someName"));
|
|
||||||
HColumnDescriptor hcd2 = new HColumnDescriptor(Bytes.toBytes("someOtherName"));
|
|
||||||
h1.addFamily(hcd1);
|
|
||||||
h2.addFamily(hcd2);
|
|
||||||
h1.addFamily(hcd2);
|
|
||||||
h2.addFamily(hcd1);
|
|
||||||
|
|
||||||
assertTrue(h2.equals(h1));
|
|
||||||
assertTrue(h1.equals(h2));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testSingleItemEquals() {
|
|
||||||
HTableDescriptor h1 = new HTableDescriptor();
|
|
||||||
HTableDescriptor h2 = new HTableDescriptor();
|
|
||||||
|
|
||||||
//Test diff # of items
|
|
||||||
h1 = new HTableDescriptor();
|
|
||||||
h1.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
h2 = new HTableDescriptor();
|
|
||||||
h2.setName(Bytes.toBytes("n1"));
|
|
||||||
|
|
||||||
HColumnDescriptor hcd1 = new HColumnDescriptor(Bytes.toBytes("someName"));
|
|
||||||
HColumnDescriptor hcd2 = new HColumnDescriptor(Bytes.toBytes("someName"));
|
|
||||||
h1.addFamily(hcd1);
|
|
||||||
h2.addFamily(hcd2);
|
|
||||||
|
|
||||||
assertTrue(h2.equals(h1));
|
|
||||||
assertTrue(h1.equals(h2));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testEmptyEquals() {
|
|
||||||
HTableDescriptor h1 = new HTableDescriptor();
|
|
||||||
HTableDescriptor h2 = new HTableDescriptor();
|
|
||||||
|
|
||||||
assertTrue(h2.equals(h1));
|
|
||||||
assertTrue(h1.equals(h2));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testEqualityWithSameObject() {
|
|
||||||
HTableDescriptor htd = new HTableDescriptor("someName");
|
|
||||||
assertTrue(htd.equals(htd));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue