The fair use finding dumbfounded many legal experts. Google had copied 600 classes, 6000 methods and 11,000 lines of Java to create Android.
Business as usual in java land. When I have to write in it, I end up copying and rewriting on average 3-4 classes which are clearly half-baked, but some idiot has declared final. This is for a 5k line project (plugin in a larger system). 600 classes are LESS than the expected needed copy rate for a project of the size of Android.
A large chunk of these 600 classes is gson, guava and the common underlying google code behind them.
Let's look into those. You have abstractions which Sun once upon a time started and left decidedly half-baked like Futures. Despite the classes being utterly half-baked, their expansion was deliberately limited by liberal sprinkling of Finals here and there. So due to the way they are declared you have no choice but to re-implement them replicating 100% existing functionality (you have to comply with a defined interface), but building on top so people can use them. If you replicate something trivial like a basic wrapper class it is guaranteed to end up looking 99% the same even if you do not copy it. That is pretty well covered by copyright law (as in all the cases where judgments went against Lego). If there is only one form which satisfies the functional requirement, the copying argument simply does not fly.
On top of that, the whole argument about "Google copied from us" goes out of the window as in Java 8 Oracle pinched a large section of Google's work - Futures, preconditions, etc and included them into the core libs (with some "Titanic deck-chair re-arrangement" [tm]). It also had to do exactly what Google did as well. It just comes with the territory and unfortunately there is no way to chop the fingers of all the idiots which make a LIBRARY class FINAL. And, trust me, there are LOADS of those. Even in Google.
By the way, what Andrew missed in his shouting about 6000 methods is how many of them are accessors to a pre-defined interface. There is only ONE WAY to write them. My (very educated) guess is - 5500 or thereabouts.
AFAIK the judge DID have some software engineering background so he clearly saw the same thing all of us see and told SnOracle to go suck asteroids through a microbore and do not complain about a NATURAL SIDE EFFECT of their language syntax. You cannot write in java unless you re-implement regularly trivial sh** just because some idiot has declared it immutable or out of scope for your project.