The Magical OpenJDK Migration

Five months ago, I warned readers that Android N was switching to the OpenJDK for its java.* and javax.* class implementations. A couple of JDK-related bugs were quickly posted, and I was afraid that they might be the tip of the iceberg.

As it turns out, they were the tip of the ice cube.

I have not heard screams of anguish over the OpenJDK migration. In fact, I have not heard much of anything beyond the bugs pointed out in my original blog post (which have since been fixed). There are few SDK-related OpenJDK bugs on the issue tracker. There seem to have been few recurring “help! this stuff is broken!” questions on Stack Overflow. It’s been very, very quiet.

This is roughly akin to the trick where the magician yanks the tablecloth out from underneath a bunch of place settings. In this case, only a couple of salad forks wiggled.

(we knew that the butter knife would be stable, of course)

This is really quite impressive. Had you told me five months ago that things would go this smoothly, I doubt that I would have believed you. A largely bug-free migration would have seemed to be a really big “ask”, given any quirks in the original Apache Harmony implementation, with any Android quirks layered atop them.

I can only guess at the amount of work that must have gone into this. Worse, the work had only downside risk: in the best-case scenario, nobody sees a change. To the team that worked on this: many, many thanks for making this portion of Android N smooth!