code: private static void throwIOException(Exception mex, String sysId)
          throws IOException
      {
          String msg = "[resolving systemId '"+sysId+"']: "+mex.toString();
          throw ExceptionUtil.constructIOException(msg, mex);
      }
docs: Helper method that tries to fully convert strange URL-specific exception
  to more general IO exception. Also, to try to use JDK 1.4 feature without
  creating requirement, uses reflection to try to set the root cause, if
  we are running on JDK1.4