This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Don’t know about the file chooser, but I can give a few hints:
If you look at methods like this one, it says “since 1.3”, but I can’t see similar tags about the methods you are using, so that is probably not the explanation. I would have thought that using the wrong version would produce Exceptions like this (unlikely), or (more likely) this, or this.
Put a few println calls in that method, and display the state of the filter just before you return it. Confirm you are actually calling that method. Similarly just before you use the filter the first time. Confirm there are no changes to its state. Also print its hash code; since the hashCode() method is “inherited from Object“, getting two different hash codes will make you suspicious you have not got the same reference.