jbonofre commented on code in PR #10140: URL: https://github.com/apache/iceberg/pull/10140#discussion_r1565856298
########## core/src/main/java/org/apache/iceberg/ClientPoolImpl.java: ########## @@ -56,26 +67,36 @@ public <R> R run(Action<R, C, E> action, boolean retry) throws E, InterruptedExc C client = get(); try { return action.run(client); - } catch (Exception exc) { - if (retry && isConnectionException(exc)) { - try { - client = reconnect(client); - } catch (Exception ignored) { - // if reconnection throws any exception, rethrow the original failure - throw reconnectExc.cast(exc); - } - - return action.run(client); + if (!isConnectionException(exc)) { + throw exc; } - throw exc; + return retryAction(action, exc, client); } finally { release(client); } } + private <R> R retryAction(Action<R, C, E> action, Exception originalFailure, C client) throws E { + int retryAttempts = 0; + while (retryAttempts < maxRetries) { + try { + C reconnectedClient = reconnect(client); + return action.run(reconnectedClient); + } catch (Exception exc) { + if (isConnectionException(exc)) { + retryAttempts++; + } else { + throw reconnectExc.cast(originalFailure); + } + } + } + + throw reconnectExc.cast(originalFailure); Review Comment: Thanks for the update. I started to use DBCP2 while preparing the refactoring to support multiple vendors/backends. I agree with your approach as a kind of "temporary" improvement, waiting the refactoring. I was wondering, that makes sense. I'm ready to push/move forward with the "new" JDBC Catalog 😄 Thanks ! -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org