Java Fluent API Design

In this article we will discuss about how to design fluent API in Java. The term Fluent interface is coined by Martin Fowler and Eric Evans. Fluent API means, build an API in such way so that same meets following criteria.
a.       API user can understand API very easily.
b.       API can perform a series of actions in order to finish a task, in java we can do it by series of method calls (Chaining of methods).
c.       Each Methods name should be Domain specific terminology.
d.       API should suggestive enough to guide API Users, what to do next and What are the possible operations users can take at a particular moment.
Suppose You want to Design an API for a Domain, say (Retail) so There should be some common terminology exists in Retail domain and for a certain context(Task) it will take a series of actions to finish this task. Say for an invoice generation it has to follow certain steps. Now when you design API, you should design it such a way, when API Users call Billing Service for invoice generation, API User can fluently perform each step in order to complete invoice generation and API will assist user to perform those steps upon invoking Billing Service. When a API method invokes by an user, method will perform its task and returns a Domain Object which will assist what to do next, until all steps are executed.  Unlike Standard API it is API user job to call API methods in a sequential way to successfully performs a task. So API Users has to know about the service steps very well.


Design A Fluent API:









   Example: Suppose we want to design a API for Restaurant.
As a customer of this Restaurant, one should follow below steps

In a Standard API design, we should do the following:
1.       Create a Restaurant interface.
2.        Create an Implementation class of Restaurant interface. Compose Menucard  class into it.
3.       Create getters and setters for restaurant properties like name, address.
4.       In MenuCard class maintain a List of menu Items . Expose some methods like showmenu(). Ordermenu(); etc.
5.       Each menu Items has name and cost properties and corresponding getters/setters.
6.      When API User call this API he/she will call a sequence of methods(Enter Resturent,call showMenu() then Ordermenu() etc.) to perform above Steps shown in the picture.

So it is not fluent lot of sequential statement needs to perform to complete task and API user has to know the sequence .

Now I will show you How we will design a Fluent API.
Java code:
package com.example.fluentapi.contract;

public interface IResturant {
      
       public IResturant name(String name);
       public IMenu show();
      
      

}


package com.example.fluentapi.contract;

public interface IMenu{
      
       public IMenu order(int index);
       public IMenu eat();
       public IMenu pay();
       public IItem get(int index);

}

package com.example.fluentapi.contract;

public interface IItem {
      
       public IItem name();
       public Integer cost();
      

}

Implementation:
package com.example.fluentapi.impl;

import com.example.fluentapi.contract.IMenu;
import com.example.fluentapi.contract.IResturant;

public class Arsalan implements IResturant{

                String name;
                String IMenu;
               
                public IResturant name(String name) {
                                this.name=name;
                                System.out.println("Enter to hotel :: " + name);
                                return this;
                }

               
                public IMenu show() {
                                // TODO Auto-generated method stub
                                ArsalanMenuHandler handler = new ArsalanMenuHandler();
                                handler.showMenu();
                                return handler;
                }

}

package com.example.fluentapi.impl;

import java.util.ArrayList;
import java.util.List;

import com.example.fluentapi.contract.IItem;
import com.example.fluentapi.contract.IMenu;

public class ArsalanMenuHandler implements IMenu{

                List<IItem> menuList = new ArrayList<IItem>();
                List<IItem> selectedList = new ArrayList<IItem>();
               
                public ArsalanMenuHandler()
                {
                                IItem biriyani = new IItem(){
                                                public IItem name()
                                                {
                                                                System.out.println("Mutton Biriyani");
                                                                return this;
                                                }
                                                public Integer cost()
                                                {
                                                                return 180;
                                                }
                                };
                                IItem muttonChap = new IItem(){
                                                public IItem name()
                                                {
                                                                System.out.println("Mutton Chap");
                                                                return this;
                                                }
                                                public Integer cost()
                                                {
                                                                return 160;
                                                }
                                };
                                IItem firni = new IItem(){
                                                public IItem name()
                                                {
                                                                System.out.println("Firni");
                                                                return this;
                                                }
                                                public Integer cost()
                                                {
                                                                return 100;
                                                }
                                               
                                               
                                };
                                menuList.add(biriyani);
                                menuList.add(muttonChap);
                                menuList.add(firni);
                               
                }
                public IMenu order(int index) {
                                // TODO Auto-generated method stub
                                IItem item =get(index);
                                selectedList.add(item);
                                System.out.println("Order given ::");
                                item.name();
                                return this;
                }

               
                public IMenu eat() {
                                for(IItem item : selectedList)
                                {
                                                System.out.println("eating ");
                                                item.name();
                                }
                                return this;
                }

               
                public IMenu pay() {
                                int cost=0;
                                for(IItem item : selectedList)
                                {
                                                cost = cost + item.cost();
                                }
                                System.out.println("Paying Ruppes" + cost);
                                return this;
                }
                @Override
                public IItem get(int index) {
                                // TODO Auto-generated method stub
                                if(index <3)
                                {
                                                return menuList.get(index);
                                }
                                return null;
                               
                }
               
                public void showMenu(){
                                System.out.println("MENU IN ARSALAN");
                                for(IItem item : menuList)
                                {
                                               
                                                item.name();
                                               
                                }
                               
                }

}

Test Fluent API:
package com.example.fluentapi.impl;

public class FluentApiTest {
      
       public static void main(String[] args) {
             
              new Arsalan().name("ARSALAN").show().order(0).order(1).eat().pay();
       }

}
Output :
Enter to hotel :: ARSALAN
MENU IN ARSALAN
Mutton Biriyani
Mutton Chap
Firni
Order given ::
Mutton Biriyani
Order given ::
Mutton Chap
eating
Mutton Biriyani
eating
Mutton Chap
Paying Ruppes340

Look How we perform the steps fluently by calling series of methods
new Arsalan().name("ARSALAN").show().order(0).order(1).eat().pay();

This is a test example, to make it more polished we need to work on following things
1.  Order method should take MenuItem instead of position also needs to handle Exception scenarios. If a MenuItem not found.
2.  Order can be cancelled.
3.  Pay must have payment mode. (creditcard, debitcard, Cash)
4.  May user can pay tips and it should be optional.
5.  In course of eating, he/she can Order more items, so make an order functionality should be available in course of eating.
6.  Tax calculation should be added in pay method.

Java 8  using Fluent API. 

Java Concurrency CountDownLatch

CountDown Latch

In this article we will discuss about CountDownLatch . Same is introduced in java 5.
CountDownLatch works very same way as Object’s wait() and notify() does ,but it is a Toplevel class
And very easy to use than wait/notify.

 CountDownLatch VS wait()/ notify()





Spurious Wake up:




look above code snippet, in case of spurious wake up, Thread goes to JobQueue.remove(i) line as it is suddenly wakes up due to spurious phenomena, but there is no job in queue (as producers does not produce a job), so above code throws NoSuchElementException.

To solve this problem, we are going to make a slight change in above code.
put, while(JobQueue.empty()) instead of ,if(JobQueue.empty()) , Now in case of spurious wakes up ,while(JobQueue.empty())  always holds true as producer does not produces a job and put the same in JobQueue.

While using CountDownlatch, developers don’t have to bother about spurious wake-up as CountDownlatch implements on gate principle.
CountDownlatch initializes with a positive number and blocking thread has to wait until this number becomes  Zero.   If a Spurious wake up occurs and count is greater than zero obviously blocking thread must has to wait as count is not zero, blocking threads only got chance, when running thread invoke countdown() and count decreases to zero.

Important Methods of CountDownlatch:

CountDownLatch has one disadvantage ,once it’s counter  is zero it can’t be reset again .For reset one should use CyclicBarrier.

Example: In a Restaurant, Food only be served once same is prepared. Preparing and Serving foods are two different services but they have to maintain a sequence, unless food is prepared it can’t be served.

We try to solve this problem by CountDownlatch.

Code :
package com.example.concurrency.countdownlatch;

import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class PrepareServeProblem {
      
       public static void main(String[] args) {
             
              ExecutorService service = Executors.newFixedThreadPool(2);
              CountDownLatch latch = new CountDownLatch(1);
             
              Runnable prepareService = new Runnable()
              {
                     public void run()
                     {
                           try {
                                  Thread.sleep(1000);
                           } catch (InterruptedException e) {
                                  // TODO Auto-generated catch block
                                  e.printStackTrace();
                           }
                           System.out.println("Preparing Food");
                           latch.countDown();
                     }
              };
             
             
              Runnable serveService = new Runnable()
              {
                     public void run()
                     {
                           try {
                                  latch.await();
                                  System.out.println("wating for prepareService to finish");
                           } catch (InterruptedException e) {
                                  // TODO Auto-generated catch block
                                  e.printStackTrace();
                           }
                           System.out.println("Serving the Food");
                          
                     }
              };
             
              service.execute(serveService);
              service.execute(prepareService);
             
             
       }

}

Output:
Preparing Food
wating for prepareService to finish
Serving the Food

Java Concurrency Reentrant Lock

Meet Reentrant Lock


In this article, we will discuss about, java 5 inclusion Reentrant Lock. Reentrant Lock someway similar to synchronize block. But it provides much more flexibility than synchronize.   I encourage all my readers to use Reentrant lock as it is Extrinsic in nature and developer has much more control over it unlike synchronize.


Benefits of using Reentrant Lock over synchronize.


Difference between Synchronization & Reentrant lock



Reentrant Lock has some important methods. Please see the picture below



Reentrant lock API Graphically
Reentrant Lock Working:  Once A thread lock reentrant lock , Lock hold count is increase by 1 when same thread release it it’s count decreased by  1.
Example: Usage of Reentrant lock in Transfer money from One Account to Another Account.
Code :

package com.example.concurrency.reentrant;

import java.util.concurrent.locks.ReentrantLock;

public class Account {

private ReentrantLock implicitLock= new ReentrantLock();
private String name;
private Integer balance=10000;

public ReentrantLock getImplicitLock() {
return implicitLock;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getBalance() {
return balance;
}
public void setBalance(Integer blance) {
this.balance = blance;
}


public boolean debit(Integer amount)
{
if(amount > balance)
{
System.out.println(Thread.currentThread().getName() + " :: " +name + " says ::"+ amount + " grater than current balance" );
return false;
}
balance = balance -amount;
System.out.println(Thread.currentThread().getName() + " :: " + name + " says ::"+ amount + " Debited Success Fully" );
return true;
}

public void credit(Integer amount)
{

balance = balance +amount;
System.out.println(Thread.currentThread().getName() + " :: " + name + " says ::"+ amount + " Credited Success Fully" );

}




}



package com.example.concurrency.reentrant;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;

public class AcountTransfer {
private ReentrantLock lock= new ReentrantLock();
public void transfer(Account from,Account to,Integer amount)
{
boolean transfer = false;
try
{
if(lock.tryLock())
{
System.out.println(Thread.currentThread().getName() + " says accuire lock");
boolean flag = from.debit(amount);
if(flag)
{
to.credit(amount);
}


System.out.println(Thread.currentThread().getName()+ " :: " + from.getName() + " says :: now balance is " + from.getBalance());
System.out.println(Thread.currentThread().getName()+ " :: " + to.getName() + " says :: now balance is " + to.getBalance());
transfer = true;

}
else
{

System.out.println(Thread.currentThread().getName() + " says fail to accuire both lock Try again");
transfer(from,to,amount);//try again
}




}
catch(Exception ex)
{
ex.printStackTrace();
}
finally
{
if(transfer)
{
lock.unlock();
}



}


}


public static void main(String[] args) {

ExecutorService service = Executors.newFixedThreadPool(3);


Account from = new Account();
from.setBalance(20000);
from.setName("Shamik Mitra");

Account to = new Account();
to.setName("Samir Mitra");
AcountTransfer transfer = new AcountTransfer();
Runnable a = new Runnable(){
public void run()
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

transfer.transfer(from, to, 200);

System.out.println(Thread.currentThread().getName() +" says :: Transfer successfull");
}
};

Runnable b = new Runnable(){
public void run()
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
transfer.transfer(to, from, 1000);

System.out.println(Thread.currentThread().getName() +" says :: Transfer successfull");
}
};
for(int i=0;i<4;i++)
{

service.submit(a);
service.submit(b);
}



}

}




Output :
pool-1-thread-1 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-3 says accuire lock
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-3 :: Shamik Mitra says ::200 Debited Success Fully
pool-1-thread-3 :: Samir Mitra says ::200 Credited Success Fully
pool-1-thread-3 :: Shamik Mitra says :: now balance is 19800
pool-1-thread-3 :: Samir Mitra says :: now balance is 10200
pool-1-thread-1 says fail to accuire both lock Try again
pool-1-thread-3 says :: Transfer successfull
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-1 says accuire lock
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-1 :: Shamik Mitra says ::200 Debited Success Fully
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-1 :: Samir Mitra says ::200 Credited Success Fully
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-1 :: Shamik Mitra says :: now balance is 19600
pool-1-thread-1 :: Samir Mitra says :: now balance is 10400
pool-1-thread-1 says :: Transfer successfull
pool-1-thread-2 says fail to accuire both lock Try again
pool-1-thread-2 says accuire lock
pool-1-thread-2 :: Samir Mitra says ::1000 Debited Success Fully
pool-1-thread-2 :: Shamik Mitra says ::1000 Credited Success Fully
pool-1-thread-2 :: Samir Mitra says :: now balance is 9400
pool-1-thread-2 :: Shamik Mitra says :: now balance is 20600
pool-1-thread-2 says :: Transfer successfull
pool-1-thread-3 says accuire lock
pool-1-thread-3 :: Samir Mitra says ::1000 Debited Success Fully
pool-1-thread-3 :: Shamik Mitra says ::1000 Credited Success Fully
pool-1-thread-3 :: Samir Mitra says :: now balance is 8400
pool-1-thread-3 :: Shamik Mitra says :: now balance is 21600
pool-1-thread-3 says :: Transfer successfull
pool-1-thread-1 says accuire lock
pool-1-thread-1 :: Shamik Mitra says ::200 Debited Success Fully
pool-1-thread-1 :: Samir Mitra says ::200 Credited Success Fully
pool-1-thread-1 :: Shamik Mitra says :: now balance is 21400
pool-1-thread-1 :: Samir Mitra says :: now balance is 8600
pool-1-thread-1 says :: Transfer successfull
pool-1-thread-2 says accuire lock
pool-1-thread-2 :: Samir Mitra says ::1000 Debited Success Fully
pool-1-thread-2 :: Shamik Mitra says ::1000 Credited Success Fully
pool-1-thread-2 :: Samir Mitra says :: now balance is 7600
pool-1-thread-2 :: Shamik Mitra says :: now balance is 22400
pool-1-thread-2 says :: Transfer successfull
pool-1-thread-3 says accuire lock
pool-1-thread-3 :: Shamik Mitra says ::200 Debited Success Fully
pool-1-thread-3 :: Samir Mitra says ::200 Credited Success Fully
pool-1-thread-3 :: Shamik Mitra says :: now balance is 22200
pool-1-thread-3 :: Samir Mitra says :: now balance is 7800
pool-1-thread-3 says :: Transfer successfull
pool-1-thread-1 says accuire lock
pool-1-thread-1 :: Samir Mitra says ::1000 Debited Success Fully
pool-1-thread-1 :: Shamik Mitra says ::1000 Credited Success Fully
pool-1-thread-1 :: Samir Mitra says :: now balance is 6800
pool-1-thread-1 :: Shamik Mitra says :: now balance is 23200
pool-1-thread-1 says :: Transfer successfull