Author: suresh Date: Thu Jan 31 19:49:06 2013 New Revision: 1441166 URL: http://svn.apache.org/viewvc?rev=1441166&view=rev Log: HADOOP-9264. Reverting r1441164 and wait for Jenkins results before committing the patch.
Removed: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/test-untar.tar hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/test-untar.tgz Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt hadoop/common/trunk/hadoop-common-project/hadoop-common/pom.xml hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFileUtil.java Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt?rev=1441166&r1=1441165&r2=1441166&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt Thu Jan 31 19:49:06 2013 @@ -325,9 +325,6 @@ Trunk (Unreleased) HADOOP-9249. hadoop-maven-plugins version-info goal causes build failure when running with Clover. (Chris Nauroth via suresh) - HADOOP-9264. Port change to use Java untar API on Windows from - branch-1-win to trunk. (Chris Nauroth via suresh) - OPTIMIZATIONS HADOOP-7761. Improve the performance of raw comparisons. (todd) Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/pom.xml URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/pom.xml?rev=1441166&r1=1441165&r2=1441166&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/pom.xml (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/pom.xml Thu Jan 31 19:49:06 2013 @@ -241,11 +241,6 @@ <type>test-jar</type> <scope>test</scope> </dependency> - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-compress</artifactId> - <version>1.4</version> - </dependency> </dependencies> <build> @@ -387,23 +382,6 @@ </configuration> </execution> <execution> - <id>copy-test-tarballs</id> - <phase>process-test-resources</phase> - <goals> - <goal>run</goal> - </goals> - <configuration> - <target> - <copy toDir="${test.cache.data}"> - <fileset dir="${basedir}/src/test/java/org/apache/hadoop/fs"> - <include name="test-untar.tar"/> - <include name="test-untar.tgz"/> - </fileset> - </copy> - </target> - </configuration> - </execution> - <execution> <phase>pre-site</phase> <goals> <goal>run</goal> @@ -507,7 +485,6 @@ <exclude>src/test/all-tests</exclude> <exclude>src/test/resources/kdc/ldif/users.ldif</exclude> <exclude>src/main/native/src/org/apache/hadoop/io/compress/lz4/lz4.c</exclude> - <exclude>src/test/java/org/apache/hadoop/fs/test-untar.tgz</exclude> </excludes> </configuration> </plugin> Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java?rev=1441166&r1=1441165&r2=1441166&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileUtil.java Thu Jan 31 19:49:06 2013 @@ -21,12 +21,9 @@ package org.apache.hadoop.fs; import java.io.*; import java.util.Arrays; import java.util.Enumeration; -import java.util.zip.GZIPInputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -import org.apache.commons.compress.archivers.tar.TarArchiveEntry; -import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; import org.apache.hadoop.conf.Configuration; @@ -627,28 +624,14 @@ public class FileUtil { * @throws IOException */ public static void unTar(File inFile, File untarDir) throws IOException { - if (!untarDir.mkdirs()) { + if (!untarDir.mkdirs()) { if (!untarDir.isDirectory()) { throw new IOException("Mkdirs failed to create " + untarDir); } } + StringBuilder untarCommand = new StringBuilder(); boolean gzipped = inFile.toString().endsWith("gz"); - if(Shell.WINDOWS) { - // Tar is not native to Windows. Use simple Java based implementation for - // tests and simple tar archives - unTarUsingJava(inFile, untarDir, gzipped); - } - else { - // spawn tar utility to untar archive for full fledged unix behavior such - // as resolving symlinks in tar archives - unTarUsingTar(inFile, untarDir, gzipped); - } - } - - private static void unTarUsingTar(File inFile, File untarDir, - boolean gzipped) throws IOException { - StringBuffer untarCommand = new StringBuffer(); if (gzipped) { untarCommand.append(" gzip -dc '"); untarCommand.append(FileUtil.makeShellPath(inFile)); @@ -673,62 +656,7 @@ public class FileUtil { ". Tar process exited with exit code " + exitcode); } } - - private static void unTarUsingJava(File inFile, File untarDir, - boolean gzipped) throws IOException { - InputStream inputStream = null; - if (gzipped) { - inputStream = new BufferedInputStream(new GZIPInputStream( - new FileInputStream(inFile))); - } else { - inputStream = new BufferedInputStream(new FileInputStream(inFile)); - } - - TarArchiveInputStream tis = new TarArchiveInputStream(inputStream); - - for (TarArchiveEntry entry = tis.getNextTarEntry(); entry != null;) { - unpackEntries(tis, entry, untarDir); - entry = tis.getNextTarEntry(); - } - } - - private static void unpackEntries(TarArchiveInputStream tis, - TarArchiveEntry entry, File outputDir) throws IOException { - if (entry.isDirectory()) { - File subDir = new File(outputDir, entry.getName()); - if (!subDir.mkdir() && !subDir.isDirectory()) { - throw new IOException("Mkdirs failed to create tar internal dir " - + outputDir); - } - - for (TarArchiveEntry e : entry.getDirectoryEntries()) { - unpackEntries(tis, e, subDir); - } - return; - } - - File outputFile = new File(outputDir, entry.getName()); - if (!outputDir.exists()) { - if (!outputDir.mkdirs()) { - throw new IOException("Mkdirs failed to create tar internal dir " - + outputDir); - } - } - - int count; - byte data[] = new byte[2048]; - BufferedOutputStream outputStream = new BufferedOutputStream( - new FileOutputStream(outputFile)); - - while ((count = tis.read(data)) != -1) { - outputStream.write(data, 0, count); - } - - outputStream.flush(); - outputStream.close(); - } - /** * Class for creating hardlinks. * Supports Unix, Cygwin, WindXP. Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFileUtil.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFileUtil.java?rev=1441166&r1=1441165&r2=1441166&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFileUtil.java (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestFileUtil.java Thu Jan 31 19:49:06 2013 @@ -546,44 +546,4 @@ public class TestFileUtil { long expected = 2 * (3 + System.getProperty("line.separator").length()); Assert.assertEquals(expected, du); } - - private void doUntarAndVerify(File tarFile, File untarDir) - throws IOException { - if (untarDir.exists() && !FileUtil.fullyDelete(untarDir)) { - throw new IOException("Could not delete directory '" + untarDir + "'"); - } - FileUtil.unTar(tarFile, untarDir); - - String parentDir = untarDir.getCanonicalPath() + Path.SEPARATOR + "name"; - File testFile = new File(parentDir + Path.SEPARATOR + "version"); - Assert.assertTrue(testFile.exists()); - Assert.assertTrue(testFile.length() == 0); - String imageDir = parentDir + Path.SEPARATOR + "image"; - testFile = new File(imageDir + Path.SEPARATOR + "fsimage"); - Assert.assertTrue(testFile.exists()); - Assert.assertTrue(testFile.length() == 157); - String currentDir = parentDir + Path.SEPARATOR + "current"; - testFile = new File(currentDir + Path.SEPARATOR + "fsimage"); - Assert.assertTrue(testFile.exists()); - Assert.assertTrue(testFile.length() == 4331); - testFile = new File(currentDir + Path.SEPARATOR + "edits"); - Assert.assertTrue(testFile.exists()); - Assert.assertTrue(testFile.length() == 1033); - testFile = new File(currentDir + Path.SEPARATOR + "fstime"); - Assert.assertTrue(testFile.exists()); - Assert.assertTrue(testFile.length() == 8); - } - - @Test - public void testUntar() throws IOException { - String tarGzFileName = System.getProperty("test.cache.data", - "build/test/cache") + "/test-untar.tgz"; - String tarFileName = System.getProperty("test.cache.data", - "build/test/cache") + "/test-untar.tar"; - String dataDir = System.getProperty("test.build.data", "build/test/data"); - File untarDir = new File(dataDir, "untarDir"); - - doUntarAndVerify(new File(tarGzFileName), untarDir); - doUntarAndVerify(new File(tarFileName), untarDir); - } }