TransportClientNodeService onFailure stack over flow

Unfortunately, my elasticsearch instance was down due to unidentified
reason. Much more unfortunately, our data pipeline also went down wholly
because of OOM error.

It's not easy to reproduce but I just want to let elasticsearch committee
know TransportClient has some defects.

I was seeing the following messages in the stdout log. I didn't copy&paste
the same message multiple times, these lines were in the log file.

    at 

org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:252)
at
org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:252)
at
org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:252)
at
org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:252)
at
org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:252)
at
org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:252)
at
org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:252)
at
org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:252)
at
org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:252)
at
org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:252)

So, if I want to escape from TransportClient and change to HTTP client, is
there any convenient way to transform messages into elasticsearch API json
message? I tried to read RequestBuilder but it's not easy.

Thank you
Best, Jae

--