Majority or 2/3rds? The JSR Inception Votes by the EC

The Java Community Process 2.7 gives the Executive Committee the responsibility to "Select JSRs for development within the JCP", as in the case of the 4 JSRs that Oracle just submitted: 334 (Coin), 335 (Lambda), 336 (Java SE 7) and 337 (Java SE 8).

Yesterday I tried to explain how the rules work but I had to correct the section twice, so here it is again after talking with the PMO (Patrick Curran):

Applying the voting rules to the quartet, we have:

  • Coin and Lambda require that
       2/3rds of the votes cast are YES, there is a minimum of 5 YES votes, and Sun/Oracle must vote YES.
  • Java SE 7 and Java SE 8 require that
       2/3rds of the votes cast are YES, there is a minimum of 5 YES votes, and Sun/Oracle must vote YES.

Yes, the same rules for the 4 JSRs.

The rationale is that Coin and Lambda propose changes to the Java language, and that since Java SE 7 and Java SE 8 include them, they also change the language. The process document is a bit ambiguous about this and Patrick said they would clarify it for the next revision.


I'm confused...

"Sun/Oracle" must vote YES, but you also say 2/3rds of the votes cast are YES.

Is this because "Sun/Oracle" is the lead on the UJSR?

Does this mean if 2/3rds vote YES and Sun/Oracle votes NO, then it does not pass? Am I correct in assuming the idea is kind of like the President vetoing a new passed law?

If this is the case, what's the point of voting?

Where is the "Sun/Oracle" must vote YES documented in the JCP process (or some other place)?

Posted by EricB on November 19, 2010 at 07:06 AM PST #

Sun/Oracle has a special role in JCP 2.7. As two other examples, it has a permanent seat in the ECs and it nominates the "ratified" seats.

The "specialness" of Sun/Oracle has decreased over successive releases of the JCP document but its still there. All this is described in [1].

re: point of voting - there are at least two: one is that Sun can veto but can't approve anything by itself. The other is that abuses of the veto will cause mistrust of the platform.


Posted by Eduardo Pelegri-Llopart on November 19, 2010 at 09:03 AM PST #

BTW, I don't remember Sun ever actually using its veto power.

Posted by Eduardo Pelegri-Llopart on November 19, 2010 at 09:11 AM PST #

Sorry for posting here, but I've posted to the jcp-general message board with questions, but never seem to get any answers. Here at least there seems to be some response.

Eduardo: I read the JCP but still a little confused. I understand Sun's stake in it, so I do not mean to lessen it, however that still seems to me that if the community is in favor of a JSR and Sun (Oracle) is not, then the community is trumped by Sun...which does not seem to very accommodating to the community. But then, this maybe the "abuses of the veto will cause mistrust of the platform". I guess less mistrust of the platform, and more of the mistrust of the veto actions against the community (i.e. Java "Community" Process)

Further confusion:

"Program Management Office (PMO): The group within Sun Microsystems that is responsible for administering the JCP and chairing the EC."

The Executive Committee is composed of 16 Java Community Process Members plus a non-voting Chair. The Chair of the EC will be a member of the Process Management Office. The 16 voting members will be selected from Java Community Process Members. Sun Microsystems, Inc. will have a permanent voting seat on the EC. That Sun representative will not be a member of the PMO."

I assume this means there is a non-voting Sun PMO rep chair of the EC and a voting Sun Non-PMO rep on the EC. Is that correct? Otherwise, there may be some conflicting roles on the EC if a Sun PMO is acting chair and voting.

Just an observation..

Posted by EricB on November 20, 2010 at 12:55 AM PST #

Hi EricB. I'll ping the PMO about the (lack of) activity at the jcp-general board. In the meantime, and with the caveat that I do NOT speak for the PMO and IANAL, I'll try to address your comment.

Historically, the JCP should be seen as a live document, always a work-in-progress. As the Java community grows and matures the specialness of Sun has been more limited in each revision. That said...

On the veto of Sun, note it only applies to the cases indicated in A.5.9; it just happens that in this case the 4 JSRs change the Java language (directly or indirectly - that was the initial confusion) and the PMO indicated they are all covered by A.5.9. In normal conditions pretty much all the JSRs fall under A.5.5 (simple majority + 5 YES).

One can read A.5.9 as Sun has all the power but there is also the 2/3rds clause. Since most (all?) the JSRs that have been covered by A.5.9 have been submitted by Sun, a more common question is whether Sun/Oracle can get 2/3rds majority to back its submission.

re: Sun PMO - yes, that is a non voting representative.

Hope this helps,

Posted by Eduardo Pelegri-Llopart on November 20, 2010 at 01:32 AM PST #

Post a Comment:
Comments are closed for this entry.