You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by "Tim Ellison (JIRA)" <ji...@apache.org> on 2006/02/15 11:26:37 UTC
[jira] Closed: (HARMONY-85) java.util.jar.Attributes.Name(String
name) does not throw IllegalArgumentException if name.length > 70
[ http://issues.apache.org/jira/browse/HARMONY-85?page=all ]
Tim Ellison closed HARMONY-85:
------------------------------
Verified by Svetlana.
> java.util.jar.Attributes.Name(String name) does not throw IllegalArgumentException if name.length > 70
> ------------------------------------------------------------------------------------------------------
>
> Key: HARMONY-85
> URL: http://issues.apache.org/jira/browse/HARMONY-85
> Project: Harmony
> Type: Bug
> Components: Classlib
> Reporter: Svetlana Samoilenko
> Assignee: Tim Ellison
>
> According to j2se 1.4.2 and 1.5 specification for Attributes.Name(String name) a string length cannot exceed 70 characters.
> Harmony does not throw IllegalArgumentException if name.length > 70.
> Code to reproduce: import java.util.jar.*;
> public class test2 {
> public static void main(String args[]) throws Exception {
> try {
> //no more than 70 chars in attribute name allowed
> new Attributes.Name( "01234567890123456789012345678901234567890123456789012345678901234567890");
> System.out.println("Failed. Should be IllegalArgumentException ");
> } catch(IllegalArgumentException e) {
> System.out.println("Expected IllegalArgumentException");
> }
> }
> }
> Steps to Reproduce:
> 1. Build Harmony (check-out on 2006-01-30) j2se subset as described in README.txt.
> 2. Compile test2.java using BEA 1.4 javac
> > javac -d . test2.java
> 3. Run java using compatible VM (J9)
> > java -showversion test2
> Output:
> C:\tmp>C:\jrockit-j2sdk1.4.2_04\bin\java.exe -showversion test2
> java version "1.4.2_04"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05)
> BEA WebLogic JRockit(TM) 1.4.2_04 JVM (build ari-31788-20040616-1132-win-ia32, Native Threads, GC strategy: parallel)
> Expected IllegalArgumentException
> C:\tmp>C:\harmony\trunk\deploy\jre\bin\java -showversion test2
> (c) Copyright 1991, 2005 The Apache Software Foundation or its licensors, as applicable.
> Failed. Should be IllegalArgumentException
> Siggested fix:
> @@ -84,7 +84,7 @@
> public Name(String s) {
> int i = s.length();
> - if (i == 0)
> + if (i == 0 || i> 70)
> throw new IllegalArgumentException();
> for (; --i >= 0;) {
> char ch = s.charAt(i);
> Suggested junit test case:
> ------------------------ AttributesTest.java -------------------------------------------------
> import java.util.jar.*;
> import junit.framework.*;
> public class AttributesTest extends TestCase {
> public static void main(String[] args) {
> junit.textui.TestRunner.run(AttributesTest.class);
> }
> public void test_constructor () {
> try {
> new Attributes.Name( "01234567890123456789012345678901234567890123456789012345678901234567890");
> fail("Should be IllegalArgumentException");
> } catch(IllegalArgumentException e) {
> //expected
> }
> }
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira