Hello,

A comment on a ccc request for this kind of change below...

On 07/08/2014 05:25 AM, David Holmes wrote:
On 8/07/2014 5:25 AM, Ivan Gerasimov wrote:
Thanks you Sherman for review!

On 07.07.2014 21:38, Xueming Shen wrote:
On 07/07/2014 10:07 AM, Ivan Gerasimov wrote:
Hello!

The javadoc says that Pattern.compile(String regex, int flag) will
throw IllegalArgumentException, if flag contains an invalid bit set.
However, it fails to do so.

Would you please help review the simple fix for that?
Alternatively, we could just remove the corresponding @throws part,
but that would change the spec.

BUGURL: https://bugs.openjdk.java.net/browse/JDK-8035975
WEBREV: http://cr.openjdk.java.net/~igerasim/8035975/0/webrev/

Sincerely yours,
Ivan

Looks fine. But given it's a behavior change, you probably still need
a CCC for it.

Okay, just filed one.

Complying with the spec probably doesn't need a CCC but this seems to be a long standing non-compliance so I agree it is worthwhile. Arguably this may introduce an incompatibility that we don't want to introduce after all this time - so it might be better to relax the spec to allow and exception to be thrown, but not require it.

I'm surprised this is no JCK test that covers this.


On those rare occasions when it comes to our intention that the long-standing behavior of a method differs from its long-standing specification, the default resolution is to change the specification to match the implementation. Developers can and do rely on what the implementation actually does and we estimate change the specification has a lower compatibility impact overall.

There are certainly also times when the implementation is changed to match the specification instead; sorted out those trade-offs is part of the ccc process.

-Joe

Reply via email to