1. import java.util.ArrayList;
  2. import java.util.Collection;
  3.  
  4. public class TestBuffer{
  5.     private Collection<Object> list = new ArrayList<Object>();
  6.     private boolean insideGetBuffer = false;
  7.    
  8.     public TestBuffer(){
  9.         System.out.println("Creating a TestBuffer");
  10.     }
  11.    
  12.     synchronized public void add(Object item) {
  13.         list.add(item);
  14.     }
  15.    
  16.     synchronized public void remove(Object item) {
  17.         if(insideGetBuffer){
  18.             System.out.println("Broke Synchronization ");
  19.             System.out.println(item);
  20.         }
  21.     }
  22.    
  23.     synchronized public void getBuffer() {
  24.         insideGetBuffer = true;
  25.         try{
  26.             int i=0;
  27.             for(Object item : list) {
  28.                 if(item != null){
  29.                     i++;
  30.                 }
  31.             }
  32.         }finally{
  33.             insideGetBuffer = false;
  34.         }
  35.     }
  36. }