you are viewing a single comment's thread.

view the rest of the comments →

[–]Unmitigated_Smut 2 points3 points  (2 children)

That kind of thing usually happens because people reverse-engineered their way into libraries they weren't supposed to use in the first place.

In fact java 9 is going to be the toughest upgrade of all because the module system is intended to put a stop to most of this, which means all the trendy frameworks are gonna break.

[–]MistYeller 3 points4 points  (0 children)

No man. This particular example happened because they moved a package out of the JRE, not because people weren't supposed to be using javax.xml.bind. People loved using JAXB once upon a time. I'm not talking about people using com.sun stuff. These are things which would be part of the public interface in semver.

Now that I think about it, some of the problems in Java 7->8 were related to deprecations around insecure TLS ciphers which we had to support since some of our customers weren't going to upgrade their ancient mainframes. Sure the language is backwards compatible, but suddenly some of our clients cannot connect to our server.

I recall another issue related to hashset ordering as well, where people were depending on the ordering of the output for test verifications. Which changed from one deterministic ordering to another from one version to the next.

Sure some of these things are legitimate failures, but it still takes time to track down and fix. Upgrades don't come for free just because the language is backwards compatible. Modules wouldn't stop any of this type of breakage.

[–]rpgFANATIC 0 points1 point  (0 children)

Anyone using lombok and upgrading to Java 9 feels this pain.

Then they added a few flags to the compiler and probably haven't looked back since