AsyncClient stuck in get

I am trying to use the AsyncClient for read operations. I have used it as is mentioned in the sample codes for using AsyncClient. (http://www.aerospike.com/docs/client/java/usage/async) I am using the below get method.

get(BatchPolicy policy, RecordArrayListener listener, Key keys)

But when I make a large number of get requests (~50000) the async client seems to get stuck. The stack trace of a waiting thread looks something like this

“pool-11-thread-1” - Thread t@56 java.lang.Thread.State: WAITING at sun.misc.Unsafe.park(Native Method) - parking to wait for <737890e3> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:403) at com.aerospike.client.async.AsyncCluster$BlockBufferQueue.getByteBuffer(AsyncCluster.java:114) at com.aerospike.client.async.AsyncCluster.getByteBuffer(AsyncCluster.java:68) at com.aerospike.client.async.AsyncCommand.execute(AsyncCommand.java:59) at com.aerospike.client.async.AsyncMul tiExecutor.execute(AsyncMultiExecutor.java:36) at com.aerospike.client.async.AsyncBatch$GetArrayExecutor.(AsyncBatch.java:249) at com.aerospike.client.async.AsyncClient.get(AsyncClient.java:568)

It is not event timing out. Please help me understand how this can happen, and how to avoid it