Index: modules/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/AttributesTest.java =================================================================== --- modules/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/AttributesTest.java (revision 406614) +++ modules/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/AttributesTest.java (working copy) @@ -196,7 +196,22 @@ } } - /** + /** + * @tests java.util.jar.Attributes#putAll(java.util.Map) + */ + public void test_putAllLjava_util_Map_2() { + Attributes obj = new Attributes(); + try { + obj.putAll((Map) null); + fail("ClassCastException expected"); + } catch (ClassCastException e) { + // expected + } catch (Exception e) { + assertEquals(ClassCastException.class, e.getClass()); + } + } + + /** * @tests java.util.jar.Attributes#remove(java.lang.Object) */ public void test_removeLjava_lang_Object() { Index: modules/archive/src/main/java/java/util/jar/Attributes.java =================================================================== --- modules/archive/src/main/java/java/util/jar/Attributes.java (revision 406614) +++ modules/archive/src/main/java/java/util/jar/Attributes.java (working copy) @@ -239,7 +239,11 @@ * the associations to store (must be of type Attributes). */ public void putAll(Map attrib) { - this.map.putAll((Attributes) attrib); + try { + this.map.putAll((Attributes) attrib); + } catch (Exception e) { + throw (ClassCastException) new ClassCastException().initCause(e); + } } /**