add the sychronized method lock