@Override public void run() { try { oos.writeObject(MyPack); oos.flush(); result = (ResultPack) ois.readObject(); if ((System.currentTimeMillis() - startTime) < NetInfo.waitTime) { if (result == null) callingparent.setResult(null, null); else callingparent.setResult(result.getresult(), result.getstate()); } oos.close(); ois.close(); in.close(); out.close(); mysocket.close(); oos = null; ois = null; in = null; out = null; mysocket = null; } catch (IOException ex) { callingparent.setResult(null, null); } catch (ClassNotFoundException ex) { callingparent.setResult(null, null); } }