Details
Description
Currently org.apache.commons.dbcp.DelegatingStatement#isWrapperFor checks only if:
1. Requested class is assignable from the DelegatingStatement instance: iface.isAssignableFrom(getClass())
2. Wrapped object is a wrapper for the requested class: _stmt.isWrapperFor(iface)
I think there should be another option checked i.e. requested class is assignable from the wrapped object's class. For example: iface.isAssignableFrom(_stmt.getClass())
This is especially that in fact unwrap method properly assumes this possiblity i.e.: return iface.cast(_stmt);
The whole method should be:
public boolean isWrapperFor(Class<?> iface) throws SQLException
{ return iface.isAssignableFrom(getClass()) || iface.isAssignableFrom(_stmt.getClass()) || _stmt.isWrapperFor(iface); }