private Object readResolve() throws ObjectStreamException { for (int i = names.length - 1; i >= 0; i--) { try { return getInstance(names[i]); } catch (IllegalArgumentException e) { // ignore } } throw new InvalidObjectException("Unknown transport type."); } }