The HSSF event model is filtering out any unknown records unless the listener is explicitly registered to receive all record sids it wants to pass through... the null parameter for record sids to be processed will default to the list of known records. In my opinion this is not the best behavior, as there's no way to specify "pass through all records, even if unknown". The current behavior ("pass through all known records") can be achieved easily by passing EventRecordFactory.getAllKnownRecordSIDs() when registering the filter. My proposal is just pass through all records if the list of sids is null. I'm aware that this might brake some existing applications which rely on the current behavior, causing them to potentially receive unknown records, but they are easily fixed by passing EventRecordFactory.getAllKnownRecordSIDs() instead of null. (Not to mention that some of the applications will suddenly work better by keeping images and the like :)
Created attachment 5214 [details] implementation proposal
The code change is minimal to implement this. I've added a patch. The tests are running, had no time to add a test case for this one.
I don't mind it if both behaviors are provided. however I don't much care for just changing the behavior. I think this should be done but I'd rather reject this and hope a more complete patch is submitted prefferably with a unit test.