I recently jumped from gson 1.6 to 2.2 and of course immediately everything stopped working :)
I discovered my MongoDB fields that I believed were long were actually double, sigh, ok fine - but gson 1.6 supported deserializing them to longs.
It seems you have your own Number implementation, LazilyParsedNumber, which does not respect the (implied) behavior.
I've added custom deserializers, so it doesn't bother me anymore, but I thought I'd point it out in case it was worth fixing?
Alex