Dan, thanks for the explanation! I didn't write that code (I just get to debug it but seeing that I'm not the only one who misunderstood the API (especiall yin the absence of javadocs) it seems the method could have a less confusing name like canHaveFault or something. Not sure if that makes sense.
Anyway, reading the faultMessage is exactly what I wanted to avoid since it seemed to create a new Message that is not needed after all (the "lazy" getter in my original comment) - it "somehow seemed wrong".
Would it create a lot of incompatible disturbance in the sauce to rename the existing method to canHave.. and add a simple hasFault that just returns true or false, depending on faultMessage == null? As far as I understand this is exactly what would work without breaking anything. If this is not possible or does not make sense in the great scheme of things I'll try your suggestion.