I have not been explaining this in enough detail. There is a jclouds GSON feature (enum adapter) where fromValue is called if GSON cannot deserialize the value.
1. Bad value encountered in JSON
2. Adapter cannot deserialize using known enum values (exception)
3. Adapter calls fromValue
4. fromValue uses valueOf and fails (exception)
5. fromValue returns UNRECOGNIZED