if (pendingException != null) {  RuntimeException e = pendingException; pendingException = null;  throw e; }
    public void doWork() {	synchronized (this) {	    try {		if (firstWork) {		    firstWork = false;		    Thread t = new Thread(this);		    t.start();		    wait();		} else {		    notify();		    wait();		}	    } catch (InterruptedException e) {		e.printStackTrace();	    }	}    }