@Override
		public void run() {
			while(!stop) {
				try {
					buffer.clear();
					udp.receive(buffer);
					buffer.flip();
					DataChunk c = new DataChunk() {
						@Override
						public void setProcessed(String name) {
						}
						@Override
						public ByteBuffer getData() {
							return buffer;
						}
					};
					handler.incomingData(null, c);
				} catch(ClosedByInterruptException e) {
					//occurs when thread is interrupted
				} catch(Exception e) {
					log.log(Level.WARNING, "Failure", e);
					handler.failure(null, buffer, e);
				}
			}
		}