Skip to main content

Announcing the Mustang regressions challenge

Posted by robogeek on January 30, 2006 at 11:03 PM PST

It is my pleasure to announce an exciting contest which offers you an
opportunity to affect Java quality.  To sweeten the pot we
have some valuable prizes.  In this contest we are saying:

Find a regression, and we'll fix it

We are challenging you, the Java developer community, to find
functional regressions between J2SE 5.0 (Tiger) and Java SE 6
(Mustang).  The contest runs from Jan 31 through March 31,
2006, with prizes to be awarded in mid-April.  You will find
details on the contest
home page

and FAQ.
 The complete entry requirements are in the href="">official
legal rules
governing the contest.  You can enter the contest using the href="">contest
entry form.

Prizes?  There are five Ultra 20 workstations which will be
awarded to the best regressions found during the contest.  In
addition all successful entrants, whose regression is entered into Suns
internal database, will be given a t-shirt as our thanks to you for

Why should you help Sun in improving Java?  I've answered this
on href="">my
blog recently, so let me repeat what I said there.
 Do this for yourself. Yes, we are offering valuable prizes as
an enticement, but you will eventually want to
run your application on Java SE 6.0 anyway.  Why not try it
out today and see
how well it works?  If there is a regression, then by all
means tell us about it.  There are many tests we cannot
perform because we are not you,
we do not have your application, nor do we have your
environment.  Thus
it is impossible for us to perform the ultimate test of compatibility
with your application.  Only you can tell us that
we've broken your

In this contest we are promising to fix or address all regressions.
 This actually is the commitment we make for every Java
release.  We strive to fix all known regressions before
declaring a Java release "final".  That word "known" is very
important because if we don't know about a problem we can't fix

What is a regression?  This contest does not cover all bugs,
only those which are regressions.  A regression occurs when some software
function works correctly in an earlier version of the software, and
differently and incorrectly in a later version.  This contest
is focused on functional regressions between J2SE 5.0 and Java SE 6
(Mustang).   "Functional regression" means differences in
functional operations, such as API methods or supported tools included
in the JDK.

Are we really promising to fix every regression?  We intend to address
the regressions that are submitted for this contest, and any others we
find as part of Beta testing. We
plan to fix as many regressions as possible, however we can't
promise that every one will be fixed prior to Mustang general
availability. What we can promise, is that we will decide on how to
address the regressions we receive based on maximizing the overall
quality and stability of Java SE 6. We will be assessing the impact and
risk of every fix
going into Mustang from this point on. Some regressions may be too
risky to fix in the first
release, or have limited practical impact and not be worth any
potential destabilization. We may fix some regressions in subsequent
updates as well. If, for some reason, we address a regression entry by
not fixing it, we will definitely explain why.

Maintaining strict compatibility between Java releases is our goal.
 However in practice that could become " style="font-style: italic;">bug-for-bug compatibility"
because strict compatibility means there is zero change in the behavior
of an existing API method.  The Java team sometimes forgoes
bug-for-bug compatibility in order to improve Java, while at other
times we maintain compatibility even in the face of bugs.

Related Topics >>