My response sent to mailing list:
>>bq. Shouldnt it throw a runtime exception (unsupported operation?) or something?
>>What is the difference between adding an abstract method and adding a method that throws exception in regards to jar drop in back compat?
>>In both cases when you drop your new jar in you get an exception, except in the latter case exception is deferred.
Yeah, its dicey - I suppose the idea is that, if you used the code as you used to, it wouldnt try and call getPayloadSpans? And so if you kept using non payloadspans functionality, you would be set, and if you tried to use payloadspans you would get an exception saying the class needed to be updated? But if you make it abstract, we lose jar drop (I know I've read we don't have it for this release anyway) in and everyone has to implement the method. At least with the exception, if you are using the class as you used to, you can continue to do so with no work? Not that I 've considered it for very long at the moment.
I know, I see your point - this back compat stuff is always dicey - thats why I throw it out there with a question mark - hopefully others will continue to chime in.