+1

On Sep 20, 2006, at 4:46 AM, Tony Wu wrote:

After all, wildcard port is necessary in many network environment and
to support * does not explicitly disobey the spec. I incline to
consider it as an intended improvement and follow RI here.

On 9/20/06, Rui Hu <[EMAIL PROTECTED]> wrote:
On 9/19/06, Mikhail Markov (JIRA) <[EMAIL PROTECTED]> wrote:

>    [
> http://issues.apache.org/jira/browse/HARMONY-1462? page=comments#action_12435743]
>
> Mikhail Markov commented on HARMONY-1462:
> -----------------------------------------
>
> I absolutely agree that '*' should be supported as a port number.
> But API spec clearly says that: "portrange = portnumber | - portnumber | > portnumber-[portnumber]" (but still RI supports it!) - that's why i put it
> to "Non-bug differences" category. Possible fix for API spec?


Great analysis! We must follow rule [1], but spec do not restrict
"portnumber" in rule [1].
And the problem is that we must choose one of following considerations:
1. We can take this JIRA as a "Non-bug differences" and consider
"portnumber" as ONLY numerical string ([0-9]*), it hints that RI breaks spec
because RI receive "*" as a "portnumber".
For this case, we certainly need not to give any fix for Harmony.
2. We can think that "portnumber" is not only numerical string, but also can be "*". If so, because "*" indicates all ports(0-65535), so "-*" and "*-" is
meaningless in rule[1].

If we choose 1., we should take this JIRA as a RI's bug for it breaks the But I think RI is innocent because the wildcard "*" is reasonable and really
a helpful feature.

If we choose 2., we should just notice that "-*" and "*-" is meaningless, as
an exception of rule [1], and rule[1] can be kept.
Then, we can improve Harmony safely with this helpful feature and keep the
spec.
In fact, following test cases will pass on RI, indicating that "- *" and "*-"
is meaningless and "*" is OK.
       try {
           new SocketPermission("localhost:-*", "listen");
           fail("-* should be considered as an illegal port range.");
       } catch (IllegalArgumentException e) {
           // Expected
       }
       try {
           new SocketPermission("localhost:*-", "listen");
           fail("*- should be considered as an illegal port range.");
       } catch (IllegalArgumentException e) {
           // Expected
       }
       SocketPermission sp3 = new SocketPermission("localhost:*",
"listen");

So, IMO, 2 is better.


[1]: portrange = portnumber | -portnumber | portnumber-[portnumber]




> > [classlib][luni] SocketPermission does not accept '*' as a port number > > --------------------------------------------------------------------- -
> >
> >                 Key: HARMONY-1462
> > URL: http://issues.apache.org/jira/browse/ HARMONY-1462
> >             Project: Harmony
> >          Issue Type: Bug
> >          Components: Classlib
> >         Environment: Win XP
> >            Reporter: Mikhail Markov
> >         Assigned To: Paulex Yang
> >         Attachments: patch.diff
> >
> >
> > Although API specification does not explicitly allow '*' usage as a port > number for SocketPermission, RI accept '*' as a port number (representing
> the full port range from 0 to 65535).
> > ============== Test.java =================
> > import java.net.SocketPermission;
> > public class Test {
> >     public static void main(String[] args) throws Exception {
> >         try {
> > SocketPermission sp = new SocketPermission ("localhost:*",
> "listen");
> >             System.out.println("'*' for port is ok.");
> >         } catch (IllegalArgumentException iae) {
> >             System.out.println("'*' for port is not ok: " + iae);
> >         }
> >     }
> > }
> > ======================================
> > Output on RI:
> > '*' for port is ok.
> > Output on Harmony:
> > '*' for port is not ok: java.lang.IllegalArgumentException: Invalid port
> number specified
>
> --
> 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
>
>
>


--
Robert Hu
China Software Development Lab, IBM





--
Tony Wu
China Software Development Lab, IBM

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to