I've just hit this and I thought I'd share -- don't know if this was discussed. I had to update some code from 4.0.0-ALPHA to 4.0.0-BETA. We have custom subclasses of CharFilter.
In ALPHA, CharFilter extends from (indirectly) Reader. In BETA, it inherits from FilteredReader. The (surprising?) difference is that for alpha it was enough to override reader's only abstract method, namely: abstract public int read(char cbuf[], int off, int len) throws IOException; because all the other methods redirect to this one (this isn't a contract but they do). When one switches to beta and makes all the tiny code tweaks the code stops working correctly because all the read() methods from FilterReaderdelegate directly to the wrapped reader and not to FilterReader's read(char[],int,int). It could be corrected by overriding those methods in CharFilter... but then, maybe it would be enough to put a big red javadoc warning from those who are upgrading (like me)? Dawid --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
