code: public void run(){
  		System.out.println("Starting tagging service!");
  		try {
  			this.socket = new ServerSocket(this.port);
  		}
  		catch (IOException ioe){
  			System.out.println(ioe);
  			System.exit(1);
  		}
  		
  		init();
  		System.out.println("Tagging service is started successfully");
  		while (true){
  			Socket incoming = null;
  			try{
  				incoming = this.socket.accept();
  				Session w = null;
  				synchronized (pool) {
  					if (pool.isEmpty()){
  						w = new Session(vnTextPro);
  						w.setSocket(incoming); //additional sessions
  						w.start();						
  					} else{
  						w = pool.elementAt(0);
  						pool.removeElementAt(0);						
  						w.setSocket(incoming);
  					}
  				}
  			}
  			catch (IOException e){
  				System.out.println(e);
  				e.printStackTrace();
  			}
  		}
  	}
docs: /* (non-Javadoc)
  @see java.lang.Thread#run()