diff --git a/src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java b/src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java index 5b0caf2da1fb7..fc4d86650d832 100644 --- a/src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java +++ b/src/java.management.rmi/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java @@ -1485,10 +1485,13 @@ private T unwrap(final MarshalledObject mo, } finally { setCcl(old); } - } catch (ClassNotFoundException ex) { - logger.warning("unwrap", "Failed to unmarshall object: " + ex); - logger.debug("unwrap", ex); - throw new UnmarshalException(ex.toString(), ex); + } catch (Exception e) { + if (e instanceof IOException) { + throw (IOException) e; + } + logger.warning("unwrap", "Failed to unmarshall object: " + e); + logger.debug("unwrap", e); + throw new UnmarshalException(e.toString(), e); } }