The changes were posted in an Oracle support document last week.
“Limited Update releases will be numbered in multiples of 20,” the document said. “We intend for Critical Patch Updates to continue to use odd numbers. The numbers will be calculated by adding multiples of five to the prior Limited Update and when needed adding one to keep the resulting number odd.”
Limited Updates are ones that add new features, but no security fixes; Critical Patch Updates (CPUs) are those that do contain patches.
Oracle said the change was required because it’s been forced to issue “out-of-band,” or emergency, updates to quash bugs hackers have exploited before the company knew about the vulnerabilities, much less had a chance to patch them.
“With the recent increase of security releases we have been skipping numbers and have already had to renumber releases,” Oracle said. “To avoid confusion caused by renumbering releases, we are adopting a new numbering scheme.”
The intervals between the numbered releases will allow enough room for Oracle to slot in new ones without jumbling the order.
Oracle has shipped a number of out-of-band security updates since the autumn of 2012, enough that security professionals started to question Oracle’s commitment to locking down Java.
Last month, Oracle announced it would delay the release of the next major Java upgrade – Java 8 – so it could shift engineers to work propping up the software’s security.
Before the rise in out-of-band patches, Oracle held to a strict three-times a year schedule for its CPUs, which were always identified with an odd number. (Limited Updates always had an even number ID.) But Oracle discarded the CPU schedule earlier this year when it slipped another onto the slate in April.
The new numbering scheme retains the even-odd practice, but Oracle’s explanation was enough to make Andrew Storms’ head hurt. On Tuesday, Storms, director of security operations at Tripwire’s nCircle Security, tweeted, “As if Java updates weren’t confusing already,” and linked to the support document.
Java’s numbering scheme has a reputation for confusing people, with updates pegged, for example, as “7u21” or “6u45,” as well as a plethora of other names, like “JDK,” “JRE” and “Java SE”.
In an interview, Storms deciphered the changes for Computerworld. “It turns out that they have to keep some specific number in the code that’s read for compatibility reasons,” said Storms, explaining the significance of the Java updates’ identifiers.
Oracle said the numbering revamp was “a compromise,” but that it had a more permanent solution in mind that would be implemented down the road.
“A more elegant solution requires changing the version format of the JDK to accommodate multiple types of releases. To avoid incompatibilities with existing code however, a change in the version string format needs to be implemented on a future major Java release and will have to be documented and communicated with adequate time to allow software developers to prepare for the change,” Oracle said.
Storms, however, said that while the recent change would have to be picked up by developers, and IT administrators should be aware of them, end users could simply ignore the noise. “Developers need to know this,” Storms said, “but end users should just have auto-updates turned on.”
“At some point, it will be nice if [the updates] were numbered in a more human-readable format,” Storms added.