--- a/jdk/src/java.rmi/share/classes/sun/rmi/server/UnicastRef.java Tue Mar 14 19:15:42 2017 -0700
+++ b/jdk/src/java.rmi/share/classes/sun/rmi/server/UnicastRef.java Thu Mar 16 16:16:31 2017 -0400
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,7 +32,6 @@
import java.rmi.MarshalException;
import java.rmi.Remote;
import java.rmi.RemoteException;
-import java.rmi.ServerException;
import java.rmi.UnmarshalException;
import java.rmi.server.Operation;
import java.rmi.server.RemoteCall;
@@ -187,14 +186,11 @@
return returnValue;
- } catch (IOException e) {
+ } catch (IOException | ClassNotFoundException e) {
+ // disable saving any refs in the inputStream for GC
+ ((StreamRemoteCall)call).discardPendingRefs();
clientRefLog.log(Log.BRIEF,
- "IOException unmarshalling return: ", e);
- throw new UnmarshalException("error unmarshalling return", e);
- } catch (ClassNotFoundException e) {
- clientRefLog.log(Log.BRIEF,
- "ClassNotFoundException unmarshalling return: ", e);
-
+ e.getClass().getName() + " unmarshalling return: ", e);
throw new UnmarshalException("error unmarshalling return", e);
} finally {
try {