Sometimes the sheer wrongness of what is posted on the web leaves us speechless. Especially when it's picked up and repeated as gospel by otherwise reputable sites like Engadget. "Google copied Oracle's Java code, pasted in a new license, and shipped it," they reported this morning.
Sorry, but that just isn't true.
It all started with an article written by Florian Mueller, who by the way is neither a lawyer nor a developer although he plays one on TV. I downloaded and examined all the files he wrote about, and my analysis as an expert developer comes to a completely different conclusion than Mr. Mueller. Here's what I found:
There are two sets of files in question. The first set of 7 (PolicyNodeImpl.java, AclEntryImpl.java, AclImpl.java, GroupImpl.java, OwnerImpl.java, PermissionImpl.java, and PrincipalImpl.java) are in the unit test area of the source code tree. As any programmer will tell you, you don't ship your unit tests with your product. Unit tests are tools used internally to ensure the quality of the software before you ship it.
The second set of 37 files is actually zipped up into one file called MMAPI.zip and tucked away in a directory used for native code audio drivers for one particular type of chip set. Florian really had to go digging for this one. I double-checked the make files and it's clear this file is not shipped with Android either. Somebody uploaded it by mistake and it should simply be deleted.
I did find one odd thing about the first 7 files. Sun published those files on its web site to help developers debug and test their own code. For some reason, the Android or Harmony developer who was using them decompiled and rebuilt them instead of just using the ones from Sun. Later an Apache license got incorrectly pasted to the top of the files, perhaps by some automated script. The solution to this earth shattering conspiracy? Replace them with the original files from Sun which have the correct comments. Or just delete them. After all, they're not shipped with Android.
Updated: Looks like Google has already taken care of these files. PolicyNodeImpl.java was deleted from the source tree on 30 Oct 2010. The other 6 java files and a few others were deleted on 14 Jan 2011. The commit comment from developer Dan Bornstein reads "Remove pointless tests". You can still go back through the history to see the old versions.
Sadly, while sensational articles like Engadget's and Mueller's will get splashed all over the web and lavished with thousands of views and hundreds of comments, the boring truth will rate no such attention.