Set callbackConnectors = client.getCallbackConnectors(callbackHandler);
Connector callbackConnector = (Connector) callbackConnectors.iterator().next();
SocketServerInvoker serverInvoker = (SocketServerInvoker) callbackConnector.getServerInvoker();
Field field = SocketServerInvoker.class.getDeclaredField("clientpool");
field.setAccessible(true);
LRUPool clientpool = (LRUPool) field.get(serverInvoker);
// Verify MicroSocketClientInvoker retries invocation after failure to get a connection.
client.invoke(SEND_CALLBACK);
assertEquals(1, callbackHandler.received);
Set set = clientpool.getContents();
Object[] serverThreads = set.toArray();
for (int i = 0; i < serverThreads.length; i++)
{
ServerThread st = (ServerThread) serverThreads[i];
st.shutdown();
}
client.invoke(SEND_CALLBACK);
assertEquals(2, callbackHandler.received);
set = clientpool.getContents();
serverThreads = set.toArray();
for (int i = 0; i < serverThreads.length; i++)
{
ServerThread st = (ServerThread) serverThreads[i];
st.shutdown();