ex.printStackTrace();
  public void setInstancesFromURL(final URL u) {    if (m_IOThread == null) {      m_IOThread = new Thread() {	public void run() {	  try {	    m_Log.statusMessage("Reading from URL...");	    Reader r = new BufferedReader(		       new InputStreamReader(u.openStream()));	    setInstances(new Instances(r));	    r.close();	  } catch (Exception ex) {	    m_Log.statusMessage("Problem reading " + u);	    JOptionPane.showMessageDialog(PreprocessPanel.this,					  "Couldn't read from URL:\n"					  + u + "\n"					  + ex.getMessage(),					  "Load Instances",					  JOptionPane.ERROR_MESSAGE);	  }	  m_IOThread = null;	}      };      m_IOThread.setPriority(Thread.MIN_PRIORITY); // UI has most priority      m_IOThread.start();    } else {      JOptionPane.showMessageDialog(this,				    "Can't load at this time,\n"				    + "currently busy with other IO",				    "Load Instances",				    JOptionPane.WARNING_MESSAGE);    }  }