final ClientSession session = sf.createSession(false, true, true, true);
session.createQueue("address", "queue1", null, false);
ClientProducerCredits credits = null;
List<ClientProducerCredits> creditsList = new ArrayList<ClientProducerCredits>();
for (int i = 0; i < ClientProducerCreditManagerImpl.MAX_UNREFERENCED_CREDITS_CACHE_SIZE; i++)
{
ClientProducer prod = session.createProducer("address" + i);
ClientProducerCredits newCredits = ((ClientProducerInternal)prod).getProducerCredits();
if (credits != null)
{
Assert.assertFalse(newCredits == credits);
}
credits = newCredits;
Assert.assertEquals(i + 1, ((ClientSessionInternal)session).getProducerCreditManager().creditsMapSize());
Assert.assertEquals(0, ((ClientSessionInternal)session).getProducerCreditManager()
.unReferencedCreditsSize());
creditsList.add(credits);
}
Iterator<ClientProducerCredits> iter = creditsList.iterator();
for (int i = 0; i < ClientProducerCreditManagerImpl.MAX_UNREFERENCED_CREDITS_CACHE_SIZE; i++)
{
ClientProducer prod = session.createProducer("address" + i);
ClientProducerCredits newCredits = ((ClientProducerInternal)prod).getProducerCredits();
Assert.assertTrue(newCredits == iter.next());
Assert.assertEquals(ClientProducerCreditManagerImpl.MAX_UNREFERENCED_CREDITS_CACHE_SIZE,
((ClientSessionInternal)session).getProducerCreditManager().creditsMapSize());