You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2008/01/25 12:51:38 UTC

svn commit: r615189 - in /harmony/enhanced/classlib/trunk/modules/archive/src: main/java/java/util/jar/InitManifest.java test/java/org/apache/harmony/archive/tests/java/util/jar/ManifestTest.java

Author: tellison
Date: Fri Jan 25 03:51:34 2008
New Revision: 615189

URL: http://svn.apache.org/viewvc?rev=615189&view=rev
Log:
Fix for HARMONY-5426 (Harmony fails to parse manifest named entries with blank names)

Modified:
    harmony/enhanced/classlib/trunk/modules/archive/src/main/java/java/util/jar/InitManifest.java
    harmony/enhanced/classlib/trunk/modules/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/ManifestTest.java

Modified: harmony/enhanced/classlib/trunk/modules/archive/src/main/java/java/util/jar/InitManifest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/archive/src/main/java/java/util/jar/InitManifest.java?rev=615189&r1=615188&r2=615189&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/archive/src/main/java/java/util/jar/InitManifest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/archive/src/main/java/java/util/jar/InitManifest.java Fri Jan 25 03:51:34 2008
@@ -85,7 +85,7 @@
             }
             it = list.iterator();
             String line = it.next();
-            if (line.length() < 7
+            if (line.length() < 6
                     || !Util.toASCIILowerCase(line.substring(0, 5)).equals(
                             "name:")) { //$NON-NLS-1$
                 throw new IOException(Messages.getString("archive.23")); //$NON-NLS-1$

Modified: harmony/enhanced/classlib/trunk/modules/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/ManifestTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/ManifestTest.java?rev=615189&r1=615188&r2=615189&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/ManifestTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/ManifestTest.java Fri Jan 25 03:51:34 2008
@@ -16,6 +16,7 @@
  */
 package org.apache.harmony.archive.tests.java.util.jar;
 
+import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -85,7 +86,7 @@
 	/**
 	 * @tests java.util.jar.Manifest#Manifest(java.io.InputStream)
 	 */
-	public void test_ConstructorLjava_io_InputStream() {
+	public void test_ConstructorLjava_io_InputStream() throws IOException {
 		// Test for method java.util.jar.Manifest(java.io.InputStream)
 		/*
 		 * ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -138,6 +139,23 @@
 				);
 		assertEquals("Bundle-Version not correct", "1.2.0", main
 				.getValue("Bundle-Version"));
+
+        // Regression test for HARMONY-5424
+        String manifestContent = "Manifest-Version: 1.0\nCreated-By: Apache\nPackage: \nBuild-Jdk: 1.4.1_01\n\n"
+                + "Name: \nSpecification-Title: foo\nSpecification-Version: 1.0\nSpecification-Vendor: \n"
+                + "Implementation-Title: \nImplementation-Version: 1.0\nImplementation-Vendor: \n\n";
+        ByteArrayInputStream bis = new ByteArrayInputStream(manifestContent
+                .getBytes());
+        Manifest mf = new Manifest(bis);
+
+        assertTrue("Wrong number of main attributes", mf.getMainAttributes().size() == 4);
+
+        Map<String, Attributes> entries = mf.getEntries();
+        assertTrue("Wrong number of named entries", entries.size() == 1);
+
+        Attributes namedEntryAttributes = (Attributes) (entries.get(""));
+        assertTrue("Wrong number of named entry attributes",
+                namedEntryAttributes.size() == 6);
 	}
 
 	/**