Author: szetszwo Date: Fri May 11 02:05:31 2012 New Revision: 1337003 URL: http://svn.apache.org/viewvc?rev=1337003&view=rev Log: Merge r1335791 through r1337002 from trunk.
Removed: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestBlockLocation.java Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt (contents, props changed) hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/docs/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/BlockLocation.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileStatus.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/PermissionStatus.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/VersionUtil.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/native/acinclude.m4 hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/native/configure.ac hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/core/ (props changed) hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestTableMapping.java hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestVersionUtil.java Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt Fri May 11 02:05:31 2012 @@ -129,6 +129,12 @@ Trunk (unreleased changes) HADOOP-8339. jenkins complaining about 16 javadoc warnings (Tom White and Robert Evans via tgraves) + HADOOP-8354. test-patch findbugs may fail if a dependent module is changed + (Tom White and Robert Evans) + + HADOOP-8375. test-patch should stop immediately once it has found + compilation errors (bobby) + OPTIMIZATIONS HADOOP-7761. Improve the performance of raw comparisons. (todd) @@ -139,6 +145,9 @@ Release 2.0.0 - UNRELEASED HADOOP-7920. Remove Avro Rpc. (suresh) + HADOOP-8388. Remove unused BlockLocation serialization. + (Colin Patrick McCabe via eli) + NEW FEATURES HADOOP-7773. Add support for protocol buffer based RPC engine. @@ -296,6 +305,12 @@ Release 2.0.0 - UNRELEASED HADOOP-8356. FileSystem service loading mechanism should print the FileSystem impl it is failing to load (tucu) + HADOOP-8340. SNAPSHOT build versions should compare as less than their eventual + final release. (todd) + + HADOOP-8361. Avoid out-of-memory problems when deserializing strings. + (Colin Patrick McCabe via eli) + OPTIMIZATIONS BUG FIXES @@ -429,6 +444,9 @@ Release 2.0.0 - UNRELEASED HADOOP-8359. Fix javadoc warnings in Configuration. (Anupam Seth via szetszwo) + HADOOP-8372. NetUtils.normalizeHostName() incorrectly handles hostname + starting with a numeric character. (Junping Du via suresh) + BREAKDOWN OF HADOOP-7454 SUBTASKS HADOOP-7455. HA: Introduce HA Service Protocol Interface. (suresh) @@ -487,6 +505,9 @@ Release 2.0.0 - UNRELEASED HADOOP-8172. Configuration no longer sets all keys in a deprecated key list. (Anupam Seth via bobby) + HADOOP-7868. Hadoop native fails to compile when default linker + option is -Wl,--as-needed. (Trevor Robinson via eli) + Release 0.23.3 - UNRELEASED INCOMPATIBLE CHANGES @@ -547,6 +568,8 @@ Release 0.23.3 - UNRELEASED HADOOP-8341. Fix or filter findbugs issues in hadoop-tools (bobby) + HADOOP-8373. Port RPC.getServerAddress to 0.23 (Daryn Sharp via bobby) + Release 0.23.2 - UNRELEASED INCOMPATIBLE CHANGES Propchange: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/CHANGES.txt ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt:r1335791-1337002 Propchange: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/docs/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/docs:r1335791-1337002 Propchange: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java:r1335791-1337002 Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/BlockLocation.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/BlockLocation.java?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/BlockLocation.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/BlockLocation.java Fri May 11 02:05:31 2012 @@ -35,16 +35,7 @@ import org.apache.hadoop.io.WritableFact */ @InterfaceAudience.Public @InterfaceStability.Stable -public class BlockLocation implements Writable { - - static { // register a ctor - WritableFactories.setFactory - (BlockLocation.class, - new WritableFactory() { - public Writable newInstance() { return new BlockLocation(); } - }); - } - +public class BlockLocation { private String[] hosts; //hostnames of datanodes private String[] names; //hostname:portNumber of datanodes private String[] topologyPaths; // full path name in network topology @@ -219,62 +210,6 @@ public class BlockLocation implements Wr } } - /** - * Implement write of Writable - */ - public void write(DataOutput out) throws IOException { - out.writeLong(offset); - out.writeLong(length); - out.writeBoolean(corrupt); - out.writeInt(names.length); - for (int i=0; i < names.length; i++) { - Text name = new Text(names[i]); - name.write(out); - } - out.writeInt(hosts.length); - for (int i=0; i < hosts.length; i++) { - Text host = new Text(hosts[i]); - host.write(out); - } - out.writeInt(topologyPaths.length); - for (int i=0; i < topologyPaths.length; i++) { - Text host = new Text(topologyPaths[i]); - host.write(out); - } - } - - /** - * Implement readFields of Writable - */ - public void readFields(DataInput in) throws IOException { - this.offset = in.readLong(); - this.length = in.readLong(); - this.corrupt = in.readBoolean(); - int numNames = in.readInt(); - this.names = new String[numNames]; - for (int i = 0; i < numNames; i++) { - Text name = new Text(); - name.readFields(in); - names[i] = name.toString(); - } - - int numHosts = in.readInt(); - this.hosts = new String[numHosts]; - for (int i = 0; i < numHosts; i++) { - Text host = new Text(); - host.readFields(in); - hosts[i] = host.toString(); - } - - int numTops = in.readInt(); - topologyPaths = new String[numTops]; - for (int i = 0; i < numTops; i++) { - Text path = new Text(); - path.readFields(in); - topologyPaths[i] = path.toString(); - } - } - public String toString() { StringBuilder result = new StringBuilder(); result.append(offset); @@ -289,4 +224,4 @@ public class BlockLocation implements Wr } return result.toString(); } -} +} \ No newline at end of file Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileStatus.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileStatus.java?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileStatus.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileStatus.java Fri May 11 02:05:31 2012 @@ -254,7 +254,7 @@ public class FileStatus implements Writa // Writable ////////////////////////////////////////////////// public void write(DataOutput out) throws IOException { - Text.writeString(out, getPath().toString()); + Text.writeString(out, getPath().toString(), Text.ONE_MEGABYTE); out.writeLong(getLen()); out.writeBoolean(isDirectory()); out.writeShort(getReplication()); @@ -262,16 +262,16 @@ public class FileStatus implements Writa out.writeLong(getModificationTime()); out.writeLong(getAccessTime()); getPermission().write(out); - Text.writeString(out, getOwner()); - Text.writeString(out, getGroup()); + Text.writeString(out, getOwner(), Text.ONE_MEGABYTE); + Text.writeString(out, getGroup(), Text.ONE_MEGABYTE); out.writeBoolean(isSymlink()); if (isSymlink()) { - Text.writeString(out, getSymlink().toString()); + Text.writeString(out, getSymlink().toString(), Text.ONE_MEGABYTE); } } public void readFields(DataInput in) throws IOException { - String strPath = Text.readString(in); + String strPath = Text.readString(in, Text.ONE_MEGABYTE); this.path = new Path(strPath); this.length = in.readLong(); this.isdir = in.readBoolean(); @@ -280,10 +280,10 @@ public class FileStatus implements Writa modification_time = in.readLong(); access_time = in.readLong(); permission.readFields(in); - owner = Text.readString(in); - group = Text.readString(in); + owner = Text.readString(in, Text.ONE_MEGABYTE); + group = Text.readString(in, Text.ONE_MEGABYTE); if (in.readBoolean()) { - this.symlink = new Path(Text.readString(in)); + this.symlink = new Path(Text.readString(in, Text.ONE_MEGABYTE)); } else { this.symlink = null; } Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/PermissionStatus.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/PermissionStatus.java?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/PermissionStatus.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/PermissionStatus.java Fri May 11 02:05:31 2012 @@ -84,8 +84,8 @@ public class PermissionStatus implements /** {@inheritDoc} */ public void readFields(DataInput in) throws IOException { - username = Text.readString(in); - groupname = Text.readString(in); + username = Text.readString(in, Text.ONE_MEGABYTE); + groupname = Text.readString(in, Text.ONE_MEGABYTE); permission = FsPermission.read(in); } @@ -110,8 +110,8 @@ public class PermissionStatus implements String username, String groupname, FsPermission permission) throws IOException { - Text.writeString(out, username); - Text.writeString(out, groupname); + Text.writeString(out, username, Text.ONE_MEGABYTE); + Text.writeString(out, groupname, Text.ONE_MEGABYTE); permission.write(out); } Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/Text.java Fri May 11 02:05:31 2012 @@ -412,6 +412,8 @@ public class Text extends BinaryComparab return bytes; } + static final public int ONE_MEGABYTE = 1024 * 1024; + /** Read a UTF8 encoded string from in */ public static String readString(DataInput in) throws IOException { @@ -420,7 +422,17 @@ public class Text extends BinaryComparab in.readFully(bytes, 0, length); return decode(bytes); } - + + /** Read a UTF8 encoded string with a maximum size + */ + public static String readString(DataInput in, int maxLength) + throws IOException { + int length = WritableUtils.readVIntInRange(in, 0, maxLength - 1); + byte [] bytes = new byte[length]; + in.readFully(bytes, 0, length); + return decode(bytes); + } + /** Write a UTF8 encoded string to out */ public static int writeString(DataOutput out, String s) throws IOException { @@ -431,6 +443,22 @@ public class Text extends BinaryComparab return length; } + /** Write a UTF8 encoded string with a maximum size to out + */ + public static int writeString(DataOutput out, String s, int maxLength) + throws IOException { + ByteBuffer bytes = encode(s); + int length = bytes.limit(); + if (length >= maxLength) { + throw new IOException("string was too long to write! Expected " + + "less than " + maxLength + " bytes, but got " + + length + " bytes."); + } + WritableUtils.writeVInt(out, length); + out.write(bytes.array(), 0, length); + return length; + } + ////// states for validateUTF8 private static final int LEAD_BYTE = 0; Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java Fri May 11 02:05:31 2012 @@ -140,7 +140,7 @@ public class NetUtils { /** * Util method to build socket addr from either: - * <host>:<post> + * <host>:<port> * <fs>://<host>:<port>/<path> */ public static InetSocketAddress createSocketAddr(String target) { @@ -150,7 +150,7 @@ public class NetUtils { /** * Util method to build socket addr from either: * <host> - * <host>:<post> + * <host>:<port> * <fs>://<host>:<port>/<path> */ public static InetSocketAddress createSocketAddr(String target, @@ -494,7 +494,7 @@ public class NetUtils { * also takes a local address and port to bind the socket to. * * @param socket - * @param address the remote address + * @param endpoint the remote address * @param localAddr the local address to bind the socket to * @param timeout timeout in milliseconds */ @@ -549,16 +549,11 @@ public class NetUtils { * @return its IP address in the string format */ public static String normalizeHostName(String name) { - if (Character.digit(name.charAt(0), 10) != -1) { // it is an IP + try { + return InetAddress.getByName(name).getHostAddress(); + } catch (UnknownHostException e) { return name; - } else { - try { - InetAddress ipAddress = InetAddress.getByName(name); - return ipAddress.getHostAddress(); - } catch (UnknownHostException e) { - return name; - } - } + } } /** Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/VersionUtil.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/VersionUtil.java?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/VersionUtil.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/VersionUtil.java Fri May 11 02:05:31 2012 @@ -22,12 +22,21 @@ import java.util.regex.Pattern; import org.apache.hadoop.classification.InterfaceAudience; +import com.google.common.collect.ComparisonChain; + @InterfaceAudience.Private public abstract class VersionUtil { private static final Pattern COMPONENT_GROUPS = Pattern.compile("(\\d+)|(\\D+)"); /** + * Suffix added by maven for nightly builds and other snapshot releases. + * These releases are considered to precede the non-SNAPSHOT version + * with the same version number. + */ + private static final String SNAPSHOT_SUFFIX = "-SNAPSHOT"; + + /** * This function splits the two versions on "." and performs a * naturally-ordered comparison of the resulting components. For example, the * version string "0.3" is considered to precede "0.20", despite the fact that @@ -48,6 +57,11 @@ public abstract class VersionUtil { * between the two versions, then the version with fewer components is * considered to precede the version with more components. * + * In addition to the above rules, there is one special case: maven SNAPSHOT + * releases are considered to precede a non-SNAPSHOT release with an + * otherwise identical version number. For example, 2.0-SNAPSHOT precedes + * 2.0. + * * This function returns a negative integer if version1 precedes version2, a * positive integer if version2 precedes version1, and 0 if and only if the * two versions' components are identical in value and cardinality. @@ -61,6 +75,11 @@ public abstract class VersionUtil { * versions are equal. */ public static int compareVersions(String version1, String version2) { + boolean isSnapshot1 = version1.endsWith(SNAPSHOT_SUFFIX); + boolean isSnapshot2 = version2.endsWith(SNAPSHOT_SUFFIX); + version1 = stripSnapshotSuffix(version1); + version2 = stripSnapshotSuffix(version2); + String[] version1Parts = version1.split("\\."); String[] version2Parts = version2.split("\\."); @@ -87,9 +106,21 @@ public abstract class VersionUtil { return component1.length() - component2.length(); } } - return version1Parts.length - version2Parts.length; + + return ComparisonChain.start() + .compare(version1Parts.length, version2Parts.length) + .compare(isSnapshot2, isSnapshot1) + .result(); } + private static String stripSnapshotSuffix(String version) { + if (version.endsWith(SNAPSHOT_SUFFIX)) { + return version.substring(0, version.length() - SNAPSHOT_SUFFIX.length()); + } else { + return version; + } + } + private static boolean isNumeric(String s) { try { Integer.parseInt(s); Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/native/acinclude.m4 URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/native/acinclude.m4?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/native/acinclude.m4 (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/native/acinclude.m4 Fri May 11 02:05:31 2012 @@ -1,4 +1,4 @@ -# AC_COMPUTE_NEEDED_DSO(LIBRARY, PREPROC_SYMBOL) +# AC_COMPUTE_NEEDED_DSO(LIBRARY, TEST_PROGRAM, PREPROC_SYMBOL) # -------------------------------------------------- # Compute the 'actual' dynamic-library used # for LIBRARY and set it to PREPROC_SYMBOL @@ -6,7 +6,7 @@ AC_DEFUN([AC_COMPUTE_NEEDED_DSO], [ AC_CACHE_CHECK([Checking for the 'actual' dynamic-library for '-l$1'], ac_cv_libname_$1, [ - echo 'int main(int argc, char **argv){return 0;}' > conftest.c + echo '$2' > conftest.c if test -z "`${CC} ${LDFLAGS} -o conftest conftest.c -l$1 2>&1`"; then dnl Try objdump and ldd in that order to get the dynamic library if test ! -z "`which objdump | grep -v 'no objdump'`"; then @@ -24,5 +24,5 @@ AC_CACHE_CHECK([Checking for the 'actual rm -f conftest* ] ) -AC_DEFINE_UNQUOTED($2, ${ac_cv_libname_$1}, [The 'actual' dynamic-library for '-l$1']) +AC_DEFINE_UNQUOTED($3, ${ac_cv_libname_$1}, [The 'actual' dynamic-library for '-l$1']) ])# AC_COMPUTE_NEEDED_DSO Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/native/configure.ac URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/native/configure.ac?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/native/configure.ac (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/main/native/configure.ac Fri May 11 02:05:31 2012 @@ -87,10 +87,20 @@ CPPFLAGS=$cppflags_bak AC_SUBST([JNI_CPPFLAGS]) dnl Check for zlib headers -AC_CHECK_HEADERS([zlib.h zconf.h], AC_COMPUTE_NEEDED_DSO(z,HADOOP_ZLIB_LIBRARY), AC_MSG_ERROR(Zlib headers were not found... native-hadoop library needs zlib to build. Please install the requisite zlib development package.)) +AC_CHECK_HEADERS([zlib.h zconf.h], + AC_COMPUTE_NEEDED_DSO(z, + [#include "zlib.h" + int main(int argc, char **argv){zlibVersion();return 0;}], + HADOOP_ZLIB_LIBRARY), + AC_MSG_ERROR(Zlib headers were not found... native-hadoop library needs zlib to build. Please install the requisite zlib development package.)) dnl Check for snappy headers -AC_CHECK_HEADERS([snappy-c.h], AC_COMPUTE_NEEDED_DSO(snappy,HADOOP_SNAPPY_LIBRARY), AC_MSG_WARN(Snappy headers were not found... building without snappy.)) +AC_CHECK_HEADERS([snappy-c.h], + AC_COMPUTE_NEEDED_DSO(snappy, + [#include "snappy-c.h" + int main(int argc, char **argv){snappy_compress(0,0,0,0);return 0;}], + HADOOP_SNAPPY_LIBRARY), + AC_MSG_WARN(Snappy headers were not found... building without snappy.)) dnl Check for headers needed by the native Group resolution implementation AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h], [], AC_MSG_ERROR(Some system headers not found... please ensure their presence on your platform.)) Propchange: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/core/ ------------------------------------------------------------------------------ Merged /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/core:r1335791-1337002 Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestText.java Fri May 11 02:05:31 2012 @@ -20,6 +20,7 @@ package org.apache.hadoop.io; import junit.framework.TestCase; +import java.io.IOException; import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; import java.util.Random; @@ -107,7 +108,6 @@ public class TestText extends TestCase { } } - public void testIO() throws Exception { DataOutputBuffer out = new DataOutputBuffer(); DataInputBuffer in = new DataInputBuffer(); @@ -136,6 +136,40 @@ public class TestText extends TestCase { assertTrue(before.equals(after2)); } } + + public void doTestLimitedIO(String str, int strLen) throws IOException { + DataOutputBuffer out = new DataOutputBuffer(); + DataInputBuffer in = new DataInputBuffer(); + + out.reset(); + try { + Text.writeString(out, str, strLen); + fail("expected writeString to fail when told to write a string " + + "that was too long! The string was '" + str + "'"); + } catch (IOException e) { + } + Text.writeString(out, str, strLen + 1); + + // test that it reads correctly + in.reset(out.getData(), out.getLength()); + in.mark(strLen); + String after; + try { + after = Text.readString(in, strLen); + fail("expected readString to fail when told to read a string " + + "that was too long! The string was '" + str + "'"); + } catch (IOException e) { + } + in.reset(); + after = Text.readString(in, strLen + 1); + assertTrue(str.equals(after)); + } + + public void testLimitedIO() throws Exception { + doTestLimitedIO("abcd", 4); + doTestLimitedIO("", 0); + doTestLimitedIO("1", 1); + } public void testCompare() throws Exception { DataOutputBuffer out1 = new DataOutputBuffer(); Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestRPC.java Fri May 11 02:05:31 2012 @@ -323,6 +323,29 @@ public class TestRPC { } @Test + public void testProxyAddress() throws Exception { + Server server = RPC.getServer(TestProtocol.class, + new TestImpl(), ADDRESS, 0, conf); + TestProtocol proxy = null; + + try { + server.start(); + InetSocketAddress addr = NetUtils.getConnectAddress(server); + + // create a client + proxy = (TestProtocol)RPC.getProxy( + TestProtocol.class, TestProtocol.versionID, addr, conf); + + assertEquals(addr, RPC.getServerAddress(proxy)); + } finally { + server.stop(); + if (proxy != null) { + RPC.stopProxy(proxy); + } + } + } + + @Test public void testSlowRpc() throws Exception { System.out.println("Testing Slow RPC"); // create a server with two handlers Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestNetUtils.java Fri May 11 02:05:31 2012 @@ -31,7 +31,9 @@ import java.net.SocketException; import java.net.SocketTimeoutException; import java.net.URI; import java.net.UnknownHostException; +import java.util.Arrays; import java.util.Enumeration; +import java.util.List; import java.util.concurrent.TimeUnit; import junit.framework.AssertionFailedError; @@ -42,8 +44,6 @@ import org.apache.commons.logging.LogFac import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.security.NetUtilsTestResolver; -import org.apache.hadoop.test.MultithreadedTestUtil.TestContext; -import org.apache.hadoop.test.MultithreadedTestUtil.TestingThread; import org.junit.Assume; import org.junit.Before; import org.junit.BeforeClass; @@ -599,6 +599,26 @@ public class TestNetUtils { assertEquals("scheme://host.a.b/path", uri.toString()); } + /** + * Test for {@link NetUtils#normalizeHostNames} + */ + @Test + public void testNormalizeHostName() { + List<String> hosts = Arrays.asList(new String[] {"127.0.0.1", + "localhost", "3w.org", "UnknownHost"}); + List<String> normalizedHosts = NetUtils.normalizeHostNames(hosts); + // when ipaddress is normalized, same address is expected in return + assertEquals(normalizedHosts.get(0), hosts.get(0)); + // for normalizing a resolvable hostname, resolved ipaddress is expected in return + assertFalse(normalizedHosts.get(1).equals(hosts.get(1))); + assertEquals(normalizedHosts.get(1), hosts.get(0)); + // this address HADOOP-8372: when normalizing a valid resolvable hostname start with numeric, + // its ipaddress is expected to return + assertFalse(normalizedHosts.get(2).equals(hosts.get(2))); + // return the same hostname after normalizing a irresolvable hostname. + assertEquals(normalizedHosts.get(3), hosts.get(3)); + } + @Test public void testGetHostNameOfIP() { assertNull(NetUtils.getHostNameOfIP(null)); Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestTableMapping.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestTableMapping.java?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestTableMapping.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/net/TestTableMapping.java Fri May 11 02:05:31 2012 @@ -41,7 +41,7 @@ public class TestTableMapping { public void setUp() throws IOException { mappingFile = File.createTempFile(getClass().getSimpleName(), ".txt"); Files.write("a.b.c /rack1\n" + - "1.2.3\t/rack2\n", mappingFile, Charsets.UTF_8); + "1.2.3.4\t/rack2\n", mappingFile, Charsets.UTF_8); mappingFile.deleteOnExit(); } @@ -55,7 +55,7 @@ public class TestTableMapping { List<String> names = new ArrayList<String>(); names.add("a.b.c"); - names.add("1.2.3"); + names.add("1.2.3.4"); List<String> result = mapping.resolve(names); assertEquals(names.size(), result.size()); @@ -73,7 +73,7 @@ public class TestTableMapping { List<String> names = new ArrayList<String>(); names.add("a.b.c"); - names.add("1.2.3"); + names.add("1.2.3.4"); List<String> result1 = mapping.resolve(names); assertEquals(names.size(), result1.size()); @@ -96,7 +96,7 @@ public class TestTableMapping { List<String> names = new ArrayList<String>(); names.add("a.b.c"); - names.add("1.2.3"); + names.add("1.2.3.4"); List<String> result = mapping.resolve(names); assertEquals(names.size(), result.size()); @@ -114,7 +114,7 @@ public class TestTableMapping { List<String> names = new ArrayList<String>(); names.add("a.b.c"); - names.add("1.2.3"); + names.add("1.2.3.4"); List<String> result = mapping.resolve(names); assertEquals(names.size(), result.size()); @@ -134,7 +134,7 @@ public class TestTableMapping { List<String> names = new ArrayList<String>(); names.add("a.b.c"); - names.add("1.2.3"); + names.add("1.2.3.4"); List<String> result = mapping.resolve(names); assertEquals(names.size(), result.size()); Modified: hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestVersionUtil.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestVersionUtil.java?rev=1337003&r1=1337002&r2=1337003&view=diff ============================================================================== --- hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestVersionUtil.java (original) +++ hadoop/common/branches/HDFS-3092/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/util/TestVersionUtil.java Fri May 11 02:05:31 2012 @@ -19,7 +19,6 @@ package org.apache.hadoop.util; import static org.junit.Assert.*; -import org.apache.hadoop.test.GenericTestUtils; import org.junit.Test; public class TestVersionUtil { @@ -30,6 +29,8 @@ public class TestVersionUtil { assertEquals(0, VersionUtil.compareVersions("2.0.0", "2.0.0")); assertEquals(0, VersionUtil.compareVersions("2.0.0a", "2.0.0a")); assertEquals(0, VersionUtil.compareVersions("1", "1")); + assertEquals(0, VersionUtil.compareVersions( + "2.0.0-SNAPSHOT", "2.0.0-SNAPSHOT")); // Assert that lower versions are lower, and higher versions are higher. assertExpectedValues("1", "2.0.0"); @@ -52,6 +53,13 @@ public class TestVersionUtil { assertExpectedValues("1.0.0a2", "1.0.0a10"); assertExpectedValues("1.0", "1.a"); assertExpectedValues("1.0", "1.a0"); + + // Snapshot builds precede their eventual releases. + assertExpectedValues("1.0-SNAPSHOT", "1.0"); + assertExpectedValues("1.0", "1.0.0-SNAPSHOT"); + assertExpectedValues("1.0.0-SNAPSHOT", "1.0.0"); + assertExpectedValues("1.0.0", "1.0.1-SNAPSHOT"); + assertExpectedValues("1.0.1-SNAPSHOT", "1.0.1"); } private static void assertExpectedValues(String lower, String higher) {