@Override
	public void run() {

		while (!stopProcessing.get()) {

			try {
				JawrWatchEvent evt = watchEvents.take();
				AtomicBoolean processingBundle = bundlesHandler.isProcessingBundle();
				synchronized (processingBundle) {

					// Wait until processing ends
					while (processingBundle.get() && !stopProcessing.get()) {
						try {
							processingBundle.wait();
						} catch (InterruptedException e) {
							LOGGER.debug("Thread interrupted");
						}
					}
				}
				if (evt != null && !stopProcessing.get()) {
					process(evt);
				}
			} catch (InterruptedException e) {
				LOGGER.debug("Thread interrupted");
			}
		}
		
		this.bundlesHandler = null;
		this.watcher = null;
	}
@ Override public void run ( ) { while ( ! stopProcessing . get ( ) ) { try { JawrWatchEvent evt = watchEvents . take ( ) ; AtomicBoolean processingBundle = bundlesHandler . isProcessingBundle ( ) ; synchronized ( processingBundle ) { while ( processingBundle . get ( ) && ! stopProcessing . get ( ) ) { try { processingBundle . wait ( ) ; } catch ( InterruptedException e ) { LOGGER . debug ( "Thread interrupted" ) ; } } } if ( evt != null && ! stopProcessing . get ( ) ) { process ( evt ) ; } } catch ( InterruptedException e ) { LOGGER . debug ( "Thread interrupted" ) ; } } this . bundlesHandler = null ; this . watcher = null ; }
/*
(non-Javadoc)

@see java.lang.Thread#run()