@Override public void run() { try { while (running) { Thread.sleep(100); synchronized (list) { for (ByteArrayOutputStream baos : list) { try { output.write(baos.toByteArray()); output.flush(); baos.close(); } catch (SocketException ex) { Logger.getLogger(SocketSender.class.getName()).log(Level.WARNING, null, ex); conn.destroy(); } catch (IOException ex) { Logger.getLogger(SocketSender.class.getName()).log(Level.WARNING, null, ex); conn.destroy(); } } list.clear(); } } output.close(); } catch (InterruptedException e) { } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }