Return-Path: Delivered-To: apmail-hadoop-common-commits-archive@www.apache.org Received: (qmail 12553 invoked from network); 2 Sep 2010 01:47:34 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 2 Sep 2010 01:47:34 -0000 Received: (qmail 39833 invoked by uid 500); 2 Sep 2010 01:47:34 -0000 Delivered-To: apmail-hadoop-common-commits-archive@hadoop.apache.org Received: (qmail 39724 invoked by uid 500); 2 Sep 2010 01:47:33 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-dev@hadoop.apache.org Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 39717 invoked by uid 99); 2 Sep 2010 01:47:33 -0000 Received: from Unknown (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Sep 2010 01:47:33 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Sep 2010 01:47:16 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 6C05123889E3; Thu, 2 Sep 2010 01:45:57 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r991790 - in /hadoop/common/branches/branch-0.20: CHANGES.txt src/core/org/apache/hadoop/io/BooleanWritable.java src/test/org/apache/hadoop/io/TestBooleanWritable.java Date: Thu, 02 Sep 2010 01:45:57 -0000 To: common-commits@hadoop.apache.org From: eli@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100902014557.6C05123889E3@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: eli Date: Thu Sep 2 01:45:56 2010 New Revision: 991790 URL: http://svn.apache.org/viewvc?rev=991790&view=rev Log: HADOOP-6928. Fix BooleanWritable comparator in 0.20. Contributed by Owen O'Malley and Johannes Zillmann. Added: hadoop/common/branches/branch-0.20/src/test/org/apache/hadoop/io/TestBooleanWritable.java Modified: hadoop/common/branches/branch-0.20/CHANGES.txt hadoop/common/branches/branch-0.20/src/core/org/apache/hadoop/io/BooleanWritable.java Modified: hadoop/common/branches/branch-0.20/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20/CHANGES.txt?rev=991790&r1=991789&r2=991790&view=diff ============================================================================== --- hadoop/common/branches/branch-0.20/CHANGES.txt (original) +++ hadoop/common/branches/branch-0.20/CHANGES.txt Thu Sep 2 01:45:56 2010 @@ -50,6 +50,9 @@ Release 0.20.3 - Unreleased HADOOP-6833. IPC leaks call parameters when exceptions thrown. (Todd Lipcon via Eli Collins) + HADOOP-6928. Fix BooleanWritable comparator in 0.20. + (Owen O'Malley and Johannes Zillmann via Eli Collins) + IMPROVEMENTS MAPREDUCE-1407. Update javadoc in mapreduce.{Mapper,Reducer} to match Modified: hadoop/common/branches/branch-0.20/src/core/org/apache/hadoop/io/BooleanWritable.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20/src/core/org/apache/hadoop/io/BooleanWritable.java?rev=991790&r1=991789&r2=991790&view=diff ============================================================================== --- hadoop/common/branches/branch-0.20/src/core/org/apache/hadoop/io/BooleanWritable.java (original) +++ hadoop/common/branches/branch-0.20/src/core/org/apache/hadoop/io/BooleanWritable.java Thu Sep 2 01:45:56 2010 @@ -100,9 +100,7 @@ public class BooleanWritable implements public int compare(byte[] b1, int s1, int l1, byte[] b2, int s2, int l2) { - boolean a = (readInt(b1, s1) == 1) ? true : false; - boolean b = (readInt(b2, s2) == 1) ? true : false; - return ((a == b) ? 0 : (a == false) ? -1 : 1); + return compareBytes(b1, s1, l1, b2, s2, l2); } } Added: hadoop/common/branches/branch-0.20/src/test/org/apache/hadoop/io/TestBooleanWritable.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.20/src/test/org/apache/hadoop/io/TestBooleanWritable.java?rev=991790&view=auto ============================================================================== --- hadoop/common/branches/branch-0.20/src/test/org/apache/hadoop/io/TestBooleanWritable.java (added) +++ hadoop/common/branches/branch-0.20/src/test/org/apache/hadoop/io/TestBooleanWritable.java Thu Sep 2 01:45:56 2010 @@ -0,0 +1,52 @@ +/** + * 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.hadoop.io; + +import java.io.IOException; + +import junit.framework.TestCase; + +public class TestBooleanWritable extends TestCase { + + public void testComparator() throws Exception { + DataOutputBuffer bTrue = writeWritable(new BooleanWritable(true)); + DataOutputBuffer bFalse = writeWritable(new BooleanWritable(false)); + WritableComparator writableComparator = WritableComparator + .get(BooleanWritable.class); + + assertEquals(0, compare(writableComparator, bTrue, bTrue)); + assertEquals(0, compare(writableComparator, bFalse, bFalse)); + assertEquals(1, compare(writableComparator, bTrue, bFalse)); + assertEquals(-1, compare(writableComparator, bFalse, bTrue)); + } + + private int compare(WritableComparator writableComparator, + DataOutputBuffer buf1, DataOutputBuffer buf2) { + return writableComparator.compare(buf1.getData(), 0, buf1.size(), buf2 + .getData(), 0, buf2.size()); + } + + protected DataOutputBuffer writeWritable(Writable writable) + throws IOException { + DataOutputBuffer out = new DataOutputBuffer(1024); + writable.write(out); + out.flush(); + return out; + } + +}