Guillaume Nodet created CAMEL-23307:
---------------------------------------
Summary: Infinispan schema registration retry does not catch
HotRodClientException wrapping IllegalLifecycleStateException
Key: CAMEL-23307
URL: https://issues.apache.org/jira/browse/CAMEL-23307
Project: Camel
Issue Type: Bug
Components: camel-infinispan
Reporter: Guillaume Nodet
The retry logic added in CAMEL-23255 for Infinispan schema registration only
catches {{RemoteIllegalLifecycleStateException}}. However, when the
{{___protobuf_metadata}} cache is not ready, the Hot Rod client may throw a
generic {{HotRodClientException}} with server error status 0x85 and the
{{IllegalLifecycleStateException}} only in the message text, not as the
exception type.
Observed in CI (JDK 17 build of PR #22523):
{code}
org.infinispan.client.hotrod.exceptions.HotRodClientException:
Request for messageId=5 returned server error (status=0x85):
org.infinispan.commons.IllegalLifecycleStateException:
ISPN005066: Cache '___protobuf_metadata' is not ready
{code}
The fix should extend the retry logic in
{{InfinispanRemoteManager.registerSchemaWithRetry()}} to also catch
{{HotRodClientException}} when its message contains
{{IllegalLifecycleStateException}} or check the cause chain, in addition to the
existing {{RemoteIllegalLifecycleStateException}} catch.
Relevant code: {{InfinispanRemoteManager.java}} line ~160 (the {{catch
(RemoteIllegalLifecycleStateException e)}} block).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)