}
public static void destroy(final Object o) throws Throwable {
final Object instance = realInstance(o);
final DataSourceCreator remove = creatorByDataSource.remove(instance);
remove.destroy(instance);
}
// remove proxy added by us in front of the datasource returned by the creator
private static Object realInstance(final Object o) {
if (o == null || !(o instanceof DataSource)) {