blob: 3b51bfd82810f1090adb1e7733074a5891985e04 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0) on Sun Aug 28 20:41:59 EST 2016 -->
<title>ActivatableInvocationHandler (Apache River v3.0.0 API Documentation (internals))</title>
<meta name="date" content="2016-08-28">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ActivatableInvocationHandler (Apache River v3.0.0 API Documentation (internals))";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":9,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ActivatableInvocationHandler.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../net/jini/activation/ActivatableInvocationHandler.Failure.html" title="class in net.jini.activation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?net/jini/activation/ActivatableInvocationHandler.html" target="_top">Frames</a></li>
<li><a href="ActivatableInvocationHandler.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">net.jini.activation</div>
<h2 title="Class ActivatableInvocationHandler" class="title">Class ActivatableInvocationHandler</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>net.jini.activation.ActivatableInvocationHandler</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/InvocationHandler.html?is-external=true" title="class or interface in java.lang.reflect">InvocationHandler</a>, <a href="../../../net/jini/security/proxytrust/TrustEquivalence.html" title="interface in net.jini.security.proxytrust">TrustEquivalence</a></dd>
</dl>
<hr>
<br>
<pre>public final class <span class="typeNameLabel">ActivatableInvocationHandler</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/InvocationHandler.html?is-external=true" title="class or interface in java.lang.reflect">InvocationHandler</a>, <a href="../../../net/jini/security/proxytrust/TrustEquivalence.html" title="interface in net.jini.security.proxytrust">TrustEquivalence</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
<div class="block">An invocation handler for activatable remote objects. If the client
constraints of this activatable invocation handler are not
<code>null</code>, then the invocation handler's underlying proxy (if
any) must implement <a href="../../../net/jini/core/constraint/RemoteMethodControl.html" title="interface in net.jini.core.constraint"><code>RemoteMethodControl</code></a> or a remote invocation
will fail with an <a href="../../../net/jini/io/UnsupportedConstraintException.html" title="class in net.jini.io"><code>UnsupportedConstraintException</code></a>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Sun Microsystems, Inc.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../serialized-form.html#net.jini.activation.ActivatableInvocationHandler">Serialized Form</a></dd>
<dt><span class="simpleTagLabel">Implementation Specifics:</span></dt>
<dd>This implementation recognizes the following system property:
<ul>
<li><code>org.apache.river.activation.enableActivateGrant</code> - This
property is interpreted as a <code>boolean</code> value (see <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Boolean.html?is-external=true#getBoolean-java.lang.String-" title="class or interface in java.lang"><code>Boolean.getBoolean</code></a>). If <code>true</code>, this
implementation invokes <a href="../../../net/jini/security/Security.html#grant-java.lang.Class-java.lang.Class-"><code>Security.grant</code></a>
as defined in the specification.
</ul>
<p>This implementation's <a href="../../../net/jini/activation/ActivatableInvocationHandler.html#invoke-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-"><code>invoke</code></a> method throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a> if a remote invocation is to be made and
the <code>proxy</code> argument is an instance of an interface
whose binary name is
<code>javax.management.MBeanServerConnection</code> or any of the
names produced by the following procedure:
<blockquote>
For each resource named
<code>org/apache/river/proxy/resources/InvocationHandler.moreProhibitedProxyInterfaces</code>
that is visible to the system class loader, the contents of the
resource are parsed as UTF-8 text to produce a list of interface
names. The resource must contain a list of binary names of
interfaces, one per line. Space and tab characters surrounding
each name, as well as blank lines, are ignored. The comment
character is <tt>'#'</tt>; on each line, all characters starting
with the first comment character are ignored.
</blockquote>
<p>This implementation uses the <a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging"><code>Logger</code></a> named
<code>net.jini.activation.ActivatableInvocationHandler</code> to log
information at the following levels:
<table summary="Describes what is logged by ActivatableInvocationHandler
at various logging levels" border=1 cellpadding=5>
<tr> <th> Level <th> Description
<tr> <td> <a href="../../../org/apache/river/logging/Levels.html#FAILED"><code>FAILED</code></a> <td> exception thrown from final
attempt to communicate a remote call
<tr> <td> <a href="../../../org/apache/river/logging/Levels.html#FAILED"><code>FAILED</code></a> <td> exception thrown activating
the object
<tr> <td> <a href="../../../org/apache/river/logging/Levels.html#HANDLED"><code>HANDLED</code></a> <td> exception caught in
attempt to communicate a remote call
</table></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.Failure.html" title="class in net.jini.activation">ActivatableInvocationHandler.Failure</a></span></code>
<div class="block">Holds information about the communication failure of a remote
call attempt.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../net/jini/core/constraint/MethodConstraints.html" title="interface in net.jini.core.constraint">MethodConstraints</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#clientConstraints">clientConstraints</a></span></code>
<div class="block">The client constraints or <code>null</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#constructorArgs">constructorArgs</a></span></code>
<div class="block">Constructor parameter classes for proxy classes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#enableGrant">enableGrant</a></span></code>
<div class="block">Flag to enable use of Security.grant.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#getPtiMethod">getPtiMethod</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#id">id</a></span></code>
<div class="block">The activation identifier.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#logger">logger</a></span></code>
<div class="block">logger</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#MAX_RETRIES">MAX_RETRIES</a></span></code>
<div class="block">The number of times to retry a call, with varying degrees of
reactivation in between.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#serialVersionUID">serialVersionUID</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/Remote.html?is-external=true" title="class or interface in java.rmi">Remote</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#uproxy">uproxy</a></span></code>
<div class="block">The underlying proxy or <code>null</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#ActivatableInvocationHandler-java.rmi.activation.ActivationID-java.rmi.Remote-">ActivatableInvocationHandler</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a>&nbsp;id,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/Remote.html?is-external=true" title="class or interface in java.rmi">Remote</a>&nbsp;underlyingProxy)</code>
<div class="block">Creates an instance with the specified activation identifier, a
possibly-<code>null</code> underlying proxy, and <code>null</code>
client constraints.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#ActivatableInvocationHandler-java.rmi.activation.ActivationID-java.rmi.Remote-net.jini.core.constraint.MethodConstraints-">ActivatableInvocationHandler</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a>&nbsp;id,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/Remote.html?is-external=true" title="class or interface in java.rmi">Remote</a>&nbsp;underlyingProxy,
<a href="../../../net/jini/core/constraint/MethodConstraints.html" title="interface in net.jini.core.constraint">MethodConstraints</a>&nbsp;clientConstraints)</code>
<div class="block">Creates an instance with the specified activation identifier, optional
underlying proxy, and client constraints.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#activate-boolean-java.lang.Object-java.lang.reflect.Method-">activate</a></span>(boolean&nbsp;force,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method)</code>
<div class="block">Activate the object (see activate0).</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#activate0-boolean-java.lang.Object-">activate0</a></span>(boolean&nbsp;force,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy)</code>
<div class="block">Activate the object and update the underlying proxy.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#checkTrustEquivalence-java.lang.Object-">checkTrustEquivalence</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
<div class="block">Returns <code>true</code> if the specified object (which is not
yet known to be trusted) is equivalent in trust, content, and
function to this known trusted object, and <code>false</code>
otherwise.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
<div class="block">Compares the specified object with this
<code>ActivatableInvocationHandler</code> for equality.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#getActivationID--">getActivationID</a></span>()</code>
<div class="block">Returns the activation identifier supplied during construction of
this invocation handler.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#getCurrentProxy--">getCurrentProxy</a></span>()</code>
<div class="block">Returns the current value for the underlying proxy.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#getProxyLoader-java.lang.Class-">getProxyLoader</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;proxyClass)</code>
<div class="block">Returns the class loader for the specified proxy class.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../net/jini/security/proxytrust/ProxyTrustIterator.html" title="interface in net.jini.security.proxytrust">ProxyTrustIterator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#getProxyTrustIterator--">getProxyTrustIterator</a></span>()</code>
<div class="block">Returns a proxy trust iterator for an activatable object that is
suitable for use by <a href="../../../net/jini/security/proxytrust/ProxyTrustVerifier.html" title="class in net.jini.security.proxytrust"><code>ProxyTrustVerifier</code></a>.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#hasConsistentConstraints--">hasConsistentConstraints</a></span>()</code>
<div class="block">Returns true if the constraints on the underlying proxy (if it
implements <a href="../../../net/jini/core/constraint/RemoteMethodControl.html" title="interface in net.jini.core.constraint"><code>RemoteMethodControl</code></a>) are equivalent to the
constraints of this invocation handler, or if the underlying proxy
does not implement RemoteMethodControl.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#hashCode--">hashCode</a></span>()</code>
<div class="block">Returns a hash code value for this object.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#invoke-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">invoke</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)</code>
<div class="block">Processes a method invocation made on the encapsulating
proxy instance, <code>proxy</code>, and returns the result.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#invokeMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">invokeMethod</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;m,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)</code>
<div class="block">Reflectively invokes the method on the supplied proxy and returns
the result in a <code>Result</code> object.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#invokeMethod0-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">invokeMethod0</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;m,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)</code>
<div class="block">Reflectively invokes the method on the supplied <code>proxy</code>
as follows:
If the <code>method</code>'s declaring class is not
<code>public</code>, the proxy is an instance of the
<code>method</code>'s declaring class, and the proxy class is
<code>public</code>, a <code>public</code> method with the same name and
parameter types is obtained from the proxy class, and if such a
method exists, that method is
reflectively invoked on the proxy passing it the specified
<code>args</code> and the result is returned, otherwise if such a
method doesn't exist an <code>ActivateFailedException</code>
is thrown with <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang"><code>NoSuchMethodException</code></a> as the cause.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#invokeObjectMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">invokeObjectMethod</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)</code>
<div class="block">Handles java.lang.Object methods.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#invokeRemoteMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">invokeRemoteMethod</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)</code>
<div class="block">Handles remote methods.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#invokeRemoteMethodControlMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">invokeRemoteMethodControlMethod</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)</code>
<div class="block">Handles RemoteMethodControl methods.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#invokeTrustEquivalenceMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">invokeTrustEquivalenceMethod</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)</code>
<div class="block">Handles TrustEquivalence methods.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#logThrow-java.util.logging.Level-java.lang.String-java.lang.String-java.lang.reflect.Method-java.lang.Throwable-">logThrow</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Level.html?is-external=true" title="class or interface in java.util.logging">Level</a>&nbsp;level,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logRecordText,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sourceMethodName,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</code>
<div class="block">Log the throw of an outbound remote call.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#proxyToString-java.lang.Object-">proxyToString</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy)</code>
<div class="block">Returns a string representation for a proxy that uses this invocation
handler.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#readObject-java.io.ObjectInputStream-">readObject</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/io/ObjectInputStream.html?is-external=true" title="class or interface in java.io">ObjectInputStream</a>&nbsp;s)</code>
<div class="block">Verifies that the activation identifier is not <code>null</code>,
and that the constraints on this invocation handler and the
underlying proxy are consistent.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/activation/ActivatableInvocationHandler.html#toString--">toString</a></span>()</code>
<div class="block">Returns a string representation of this object.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="serialVersionUID">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>serialVersionUID</h4>
<pre>private static final&nbsp;long serialVersionUID</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.activation.ActivatableInvocationHandler.serialVersionUID">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="MAX_RETRIES">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_RETRIES</h4>
<pre>private static final&nbsp;int MAX_RETRIES</pre>
<div class="block">The number of times to retry a call, with varying degrees of
reactivation in between.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.activation.ActivatableInvocationHandler.MAX_RETRIES">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="logger">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logger</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a> logger</pre>
<div class="block">logger</div>
</li>
</ul>
<a name="constructorArgs">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>constructorArgs</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>[] constructorArgs</pre>
<div class="block">Constructor parameter classes for proxy classes.</div>
</li>
</ul>
<a name="enableGrant">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enableGrant</h4>
<pre>private static final&nbsp;boolean enableGrant</pre>
<div class="block">Flag to enable use of Security.grant.</div>
</li>
</ul>
<a name="id">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>id</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a> id</pre>
<div class="block">The activation identifier.</div>
</li>
</ul>
<a name="uproxy">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>uproxy</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/Remote.html?is-external=true" title="class or interface in java.rmi">Remote</a> uproxy</pre>
<div class="block">The underlying proxy or <code>null</code>.</div>
</li>
</ul>
<a name="clientConstraints">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clientConstraints</h4>
<pre>private final&nbsp;<a href="../../../net/jini/core/constraint/MethodConstraints.html" title="interface in net.jini.core.constraint">MethodConstraints</a> clientConstraints</pre>
<div class="block">The client constraints or <code>null</code>.</div>
</li>
</ul>
<a name="getPtiMethod">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getPtiMethod</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a> getPtiMethod</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="ActivatableInvocationHandler-java.rmi.activation.ActivationID-java.rmi.Remote-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ActivatableInvocationHandler</h4>
<pre>public&nbsp;ActivatableInvocationHandler(<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a>&nbsp;id,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/Remote.html?is-external=true" title="class or interface in java.rmi">Remote</a>&nbsp;underlyingProxy)</pre>
<div class="block">Creates an instance with the specified activation identifier, a
possibly-<code>null</code> underlying proxy, and <code>null</code>
client constraints. If the underlying proxy implements <a href="../../../net/jini/core/constraint/RemoteMethodControl.html" title="interface in net.jini.core.constraint"><code>RemoteMethodControl</code></a> and its constraints are not <code>null</code>,
the underlying proxy of this instance is a copy of that proxy with
<code>null</code> constraints.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the activation identifier</dd>
<dd><code>underlyingProxy</code> - an underlying proxy, or <code>null</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if <code>id</code> is <code>null</code></dd>
</dl>
</li>
</ul>
<a name="ActivatableInvocationHandler-java.rmi.activation.ActivationID-java.rmi.Remote-net.jini.core.constraint.MethodConstraints-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ActivatableInvocationHandler</h4>
<pre>private&nbsp;ActivatableInvocationHandler(<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a>&nbsp;id,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/Remote.html?is-external=true" title="class or interface in java.rmi">Remote</a>&nbsp;underlyingProxy,
<a href="../../../net/jini/core/constraint/MethodConstraints.html" title="interface in net.jini.core.constraint">MethodConstraints</a>&nbsp;clientConstraints)</pre>
<div class="block">Creates an instance with the specified activation identifier, optional
underlying proxy, and client constraints. This constructor assumes
that the client constraints are equivalent to the constraints on the
underlying proxy.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="hasConsistentConstraints--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasConsistentConstraints</h4>
<pre>private&nbsp;boolean&nbsp;hasConsistentConstraints()</pre>
<div class="block">Returns true if the constraints on the underlying proxy (if it
implements <a href="../../../net/jini/core/constraint/RemoteMethodControl.html" title="interface in net.jini.core.constraint"><code>RemoteMethodControl</code></a>) are equivalent to the
constraints of this invocation handler, or if the underlying proxy
does not implement RemoteMethodControl.</div>
</li>
</ul>
<a name="getActivationID--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActivationID</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true" title="class or interface in java.rmi.activation">ActivationID</a>&nbsp;getActivationID()</pre>
<div class="block">Returns the activation identifier supplied during construction of
this invocation handler.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the activation identifier</dd>
</dl>
</li>
</ul>
<a name="getCurrentProxy--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentProxy</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getCurrentProxy()</pre>
<div class="block">Returns the current value for the underlying proxy.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the underlying proxy</dd>
</dl>
</li>
</ul>
<a name="invoke-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invoke</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;invoke(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
<div class="block">Processes a method invocation made on the encapsulating
proxy instance, <code>proxy</code>, and returns the result.
This method is invoked when a method is invoked on a proxy
instance that this handler is associated with.
<p>If the specified method is one of the following
<code>java.lang.Object</code> methods, it will be processed as follows:
<p><ul>
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>equals</code></a>: returns
<code>true</code> if the argument is an
instance of a dynamically generated <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Proxy.html?is-external=true" title="class or interface in java.lang.reflect"><code>Proxy</code></a>
class that implements the same ordered set of interfaces as the
specified proxy, and this invocation handler is equal to the invocation
handler of that parameter, and returns <code>false</code> otherwise.
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang"><code>hashCode</code></a>: returns the hash code for the
proxy.
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang"><code>toString</code></a>: returns a string
representation of the specified <code>proxy</code> object.
</ul>
<p>If the specified method is <a href="../../../net/jini/core/constraint/RemoteMethodControl.html#setConstraints-net.jini.core.constraint.MethodConstraints-"><code>RemoteMethodControl.setConstraints</code></a>, then if <code>proxy</code> is an
instance of a dynamic proxy class containing this invocation
handler, returns a new proxy containing a copy of this invocation
handler with the same activation identifier, the new specified
client constraints (<code>args[0]</code>), and the current
underlying proxy, or if the current underlying proxy implements
<a href="../../../net/jini/core/constraint/RemoteMethodControl.html" title="interface in net.jini.core.constraint"><code>RemoteMethodControl</code></a>, a copy of that proxy with the new
specified client constraints. An exception is thrown if
<code>proxy</code> is not an instance of a dynamic proxy class
containing this invocation handler.
<p>If the specified method is <a href="../../../net/jini/core/constraint/RemoteMethodControl.html#getConstraints--"><code>RemoteMethodControl.getConstraints</code></a>, returns the client constraints.
<p>If the specified method is
<a href="../../../net/jini/security/proxytrust/TrustEquivalence.html#checkTrustEquivalence-java.lang.Object-"><code>TrustEquivalence.checkTrustEquivalence</code></a>, returns <code>true</code> if
the argument (<code>args[0]</code>) is an instance of a dynamic proxy
class (that is, a class generated by <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Proxy.html?is-external=true" title="class or interface in java.lang.reflect"><code>Proxy</code></a>) that implements the
same interfaces as the specified proxy and calling the
<a href="../../../net/jini/activation/ActivatableInvocationHandler.html#checkTrustEquivalence-java.lang.Object-"><code>checkTrustEquivalence</code></a> method of this
invocation handler with the invocation handler of that argument
returns <code>true</code>, and returns <code>false</code> otherwise.
<p>For all other methods, a remote invocation is made as follows:
<p>A single set of absolute constraints (if any) is used for the
duration of the remote invocation, including any activation that may
occur.
<p><ul>
<li>If the underlying proxy is non-<code>null</code>, the method is
invoked as follows:
<ul>
<li>If the client constraints of this object are not
<code>null</code> and the underlying proxy does not implement <a href="../../../net/jini/core/constraint/RemoteMethodControl.html" title="interface in net.jini.core.constraint"><code>RemoteMethodControl</code></a> then an <a href="../../../net/jini/io/UnsupportedConstraintException.html" title="class in net.jini.io"><code>UnsupportedConstraintException</code></a>
is thrown.
<li>If <code>method</code>'s declaring class is not
<code>public</code>, the underlying proxy is an instance of the
<code>method</code>'s declaring class, and the underlying proxy's
class is <code>public</code>, then a <code>public</code> method with
the same name and parameter types is obtained from the underlying
proxy's class, and if such a method exists, that method is
reflectively invoked on the underlying proxy passing it the
specified <code>args</code> and the result is returned; otherwise if
such a method doesn't exist an <code>ActivateFailedException</code>
is thrown with <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang"><code>NoSuchMethodException</code></a> as the cause.
<li>Otherwise, the original <code>method</code> is reflectively
invoked on the underlying proxy passing it the specified
<code>args</code>.
</ul>
<p>If this reflective invocation throws an exception other than
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalAccessException.html?is-external=true" title="class or interface in java.lang"><code>IllegalAccessException</code></a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a>,
the <code>ActivateFailedException</code> described above, or
an <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/InvocationTargetException.html?is-external=true" title="class or interface in java.lang.reflect"><code>InvocationTargetException</code></a> containing <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/ConnectException.html?is-external=true" title="class or interface in java.rmi"><code>ConnectException</code></a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/ConnectIOException.html?is-external=true" title="class or interface in java.rmi"><code>ConnectIOException</code></a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/NoSuchObjectException.html?is-external=true" title="class or interface in java.rmi"><code>NoSuchObjectException</code></a>, or <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/UnknownHostException.html?is-external=true" title="class or interface in java.rmi"><code>UnknownHostException</code></a>, then if the
exception an <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/InvocationTargetException.html?is-external=true" title="class or interface in java.lang.reflect"><code>InvocationTargetException</code></a> the contained
exception is thrown to the caller, otherwise the exception is thrown
directly.
<p><li>If the underlying proxy is <code>null</code> or if the
reflective invocation does not throw an exception to the caller as
described above:
<ul>
<li>If permitted by some implementation-specific mechanism,
dynamically grants permissions to the class loader of the
activation identifier's class by invoking <a href="../../../net/jini/security/Security.html#grant-java.lang.Class-java.lang.Class-"><code>Security.grant</code></a> passing the class of the
proxy and the class of the activation identifier. If this
invocation throws an <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang"><code>UnsupportedOperationException</code></a>, the
exception is ignored.
<li>A new proxy is obtained by invoking the <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true#activate-boolean-" title="class or interface in java.rmi.activation"><code>activate</code></a> method on the activation identifier,
passing <code>false</code> as the argument. That method must return
an instance of a dynamic <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Proxy.html?is-external=true" title="class or interface in java.lang.reflect"><code>Proxy</code></a> class, with an invocation
handler that is an instance of this class, containing the same
activation identifier. If the returned proxy does not meet this
criteria, then an <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivateFailedException.html?is-external=true" title="class or interface in java.rmi.activation"><code>ActivateFailedException</code></a> is thrown. If the
<code>activate</code> call throws <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/ConnectException.html?is-external=true" title="class or interface in java.rmi"><code>ConnectException</code></a>, then
a new <code>ConnectException</code> is thrown with the original
<code>ConnectException</code> as the cause. If the
<code>activate</code> call throws <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi"><code>RemoteException</code></a>, then
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/ConnectIOException.html?is-external=true" title="class or interface in java.rmi"><code>ConnectIOException</code></a> is thrown with the
<code>RemoteException</code> as the cause. If the
<code>activate</code> call throws <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/UnknownObjectException.html?is-external=true" title="class or interface in java.rmi.activation"><code>UnknownObjectException</code></a>, then
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/NoSuchObjectException.html?is-external=true" title="class or interface in java.rmi"><code>NoSuchObjectException</code></a> is thrown with the
<code>UnknownObjectException</code> as the cause. Finally, if the
<code>activate</code> call throws <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationException.html?is-external=true" title="class or interface in java.rmi.activation"><code>ActivationException</code></a>,
then <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivateFailedException.html?is-external=true" title="class or interface in java.rmi.activation"><code>ActivateFailedException</code></a> is thrown with the
<code>ActivationException</code> as the cause.
<li>If a valid, new proxy is returned by the <code>activate</code>
call, the underlying proxy of the new proxy is obtained from the new
proxy's activatable invocation handler. If the obtained underlying
proxy implements <code>RemoteMethodControl</code>, this invocation
handler's underlying proxy is set to a copy of the obtained
underlying proxy with the client constraints of this instance.
Otherwise, this invocation handler's underlying proxy is set to the
obtained underlying proxy.
<li>The reflective invocation is then retried (as above) on the new
underlying proxy. Activation and retry can occur up to three
times. On subsequent attempts, <code>true</code> will be passed to
the activation identifier's <code>activate</code> method, if passing
<code>false</code> returned the same underlying proxy as before or
if <code>NoSuchObjectException</code> was thrown by the call to the
underlying proxy.
<li>If the final attempt at reflective invocation throws
<code>IllegalAccessException</code> or
<code>IllegalArgumentException</code> an
<code>ActivateFailedException</code> is thrown with the original
exception as the cause. If this reflective invocation throws
<code>InvocationTargetException</code>, the contained target
exception is thrown.
</ul>
</ul>
<p>The implementation of remote method invocation defined by this class
preserves at-most-once call semantics: the remote call either does not
execute, partially executes, or executes exactly once at the remote
site. Note that for remote calls to activatable objects, arguments may
be marshalled more than once.
<p>The semantics of this method are unspecified if the arguments could
not have been produced by an instance of some valid dynamic proxy
class containing this invocation handler.
This method throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang"><code>IllegalArgumentException</code></a> if
<code>proxy</code> is an instance of
<code>InvocationHandler</code> or, if a remote invocation is to be
made, any of the superinterfaces of <code>proxy</code>'s class
have a method with the same name and parameter types as
<code>method</code> but that does not declare
<code>RemoteException</code> or a superclass of
<code>RemoteException</code> in its <code>throws</code> clause
(even if such a method is not a member of any of the direct
superinterfaces of <code>proxy</code>'s class because of
overriding).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/InvocationHandler.html?is-external=true#invoke-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-" title="class or interface in java.lang.reflect">invoke</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/InvocationHandler.html?is-external=true" title="class or interface in java.lang.reflect">InvocationHandler</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/UndeclaredThrowableException.html?is-external=true" title="class or interface in java.lang.reflect"><code>UndeclaredThrowableException</code></a></dd>
</dl>
</li>
</ul>
<a name="invokeObjectMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeObjectMethod</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;invokeObjectMethod(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)</pre>
<div class="block">Handles java.lang.Object methods.</div>
</li>
</ul>
<a name="invokeRemoteMethodControlMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeRemoteMethodControlMethod</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;invokeRemoteMethodControlMethod(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
<div class="block">Handles RemoteMethodControl methods.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
</dl>
</li>
</ul>
<a name="invokeTrustEquivalenceMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeTrustEquivalenceMethod</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;invokeTrustEquivalenceMethod(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)</pre>
<div class="block">Handles TrustEquivalence methods.</div>
</li>
</ul>
<a name="invokeRemoteMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeRemoteMethod</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;invokeRemoteMethod(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
<div class="block">Handles remote methods.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
</dl>
</li>
</ul>
<a name="logThrow-java.util.logging.Level-java.lang.String-java.lang.String-java.lang.reflect.Method-java.lang.Throwable-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logThrow</h4>
<pre>private&nbsp;void&nbsp;logThrow(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Level.html?is-external=true" title="class or interface in java.util.logging">Level</a>&nbsp;level,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logRecordText,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sourceMethodName,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</pre>
<div class="block">Log the throw of an outbound remote call.</div>
</li>
</ul>
<a name="invokeMethod-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeMethod</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;invokeMethod(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;m,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
<div class="block">Reflectively invokes the method on the supplied proxy and returns
the result in a <code>Result</code> object. If a
<code>RemoteException</code> is thrown as a result of the remote
invocation, then the result object contains a non-<code>null</code>
exception and the retry field indicates whether invocation retry
is possible without violating "at-most-once" call semantics. If the
result object contains a <code>null</code> exception, then the value
field is the return value of the remote invocation.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code></dd>
</dl>
</li>
</ul>
<a name="invokeMethod0-java.lang.Object-java.lang.reflect.Method-java.lang.Object:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>invokeMethod0</h4>
<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;invokeMethod0(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;m,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;args)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></pre>
<div class="block">Reflectively invokes the method on the supplied <code>proxy</code>
as follows:
<p>If the <code>method</code>'s declaring class is not
<code>public</code>, the proxy is an instance of the
<code>method</code>'s declaring class, and the proxy class is
<code>public</code>, a <code>public</code> method with the same name and
parameter types is obtained from the proxy class, and if such a
method exists, that method is
reflectively invoked on the proxy passing it the specified
<code>args</code> and the result is returned, otherwise if such a
method doesn't exist an <code>ActivateFailedException</code>
is thrown with <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NoSuchMethodException.html?is-external=true" title="class or interface in java.lang"><code>NoSuchMethodException</code></a> as the cause.
<p>Otherwise, the original <code>method</code> is reflectively
invoked on the proxy passing it the specified
<code>args</code> and the result is returned.
<p>If the reflective invocation throws
<code>IllegalAccessException</code> or
<code>IllegalArgumentException</code>, an
<code>ActivateFailedException</code> exception is thrown with the
original exception as the cause. If the reflective invocation throws
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/InvocationTargetException.html?is-external=true" title="class or interface in java.lang.reflect"><code>InvocationTargetException</code></a> the contained target exception is
thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>proxy</code> - a proxy</dd>
<dd><code>m</code> - a method</dd>
<dd><code>args</code> - arguments</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>result of reflective invocation</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivateFailedException.html?is-external=true" title="class or interface in java.rmi.activation">ActivateFailedException</a></code> - if the reflective invocation throws
<code>IllegalAccessException</code> or
<code>IllegalArgumentException</code></dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></code> - if the reflective invocation throws
<code>InvocationTargetException</code>, the contained
target exception is thrown</dd>
</dl>
</li>
</ul>
<a name="getProxyTrustIterator--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProxyTrustIterator</h4>
<pre>protected&nbsp;<a href="../../../net/jini/security/proxytrust/ProxyTrustIterator.html" title="interface in net.jini.security.proxytrust">ProxyTrustIterator</a>&nbsp;getProxyTrustIterator()</pre>
<div class="block">Returns a proxy trust iterator for an activatable object that is
suitable for use by <a href="../../../net/jini/security/proxytrust/ProxyTrustVerifier.html" title="class in net.jini.security.proxytrust"><code>ProxyTrustVerifier</code></a>.
<p>The iterator produces the current underlying proxy on each
iteration. The iterator produces up to three elements, but after
the first element, iteration terminates unless the exception set by
a call to <a href="../../../net/jini/security/proxytrust/ProxyTrustIterator.html#setException-java.rmi.RemoteException-"><code>setException</code></a> on
the previous iteration is an instance of <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/ConnectException.html?is-external=true" title="class or interface in java.rmi"><code>ConnectException</code></a>,
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/ConnectIOException.html?is-external=true" title="class or interface in java.rmi"><code>ConnectIOException</code></a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/NoSuchObjectException.html?is-external=true" title="class or interface in java.rmi"><code>NoSuchObjectException</code></a>, or <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/UnknownHostException.html?is-external=true" title="class or interface in java.rmi"><code>UnknownHostException</code></a>.
<p>On each iteration, if the current underlying proxy is
<code>null</code> or the same as the underlying proxy produced by
the previous iteration:
<p>A new proxy is obtained by invoking the <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationID.html?is-external=true#activate-boolean-" title="class or interface in java.rmi.activation"><code>activate</code></a> method on the activation identifier,
passing <code>false</code> as the argument. That method must return
an instance of a dynamic <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Proxy.html?is-external=true" title="class or interface in java.lang.reflect"><code>Proxy</code></a> class, with an invocation
handler that is an instance of this class, containing the same
activation identifier. If this activation
throws one of the following exceptions, the exception is thrown
by the <code>next</code> method of the iterator and the iteration
terminates:
<blockquote>If the proxy returned by the <code>activate</code> call
does not meet the criteria listed above, then an <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivateFailedException.html?is-external=true" title="class or interface in java.rmi.activation"><code>ActivateFailedException</code></a> is thrown. If the <code>activate</code>
call throws <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi"><code>RemoteException</code></a>, then <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/ConnectIOException.html?is-external=true" title="class or interface in java.rmi"><code>ConnectIOException</code></a>
is thrown with the <code>RemoteException</code> as the cause. If
the <code>activate</code> call throws <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/UnknownHostException.html?is-external=true" title="class or interface in java.rmi"><code>UnknownHostException</code></a>,
then <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/NoSuchObjectException.html?is-external=true" title="class or interface in java.rmi"><code>NoSuchObjectException</code></a> is thrown with the
<code>UnknownHostException</code> as the cause. Finally, if the
<code>activate</code> call throws <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivationException.html?is-external=true" title="class or interface in java.rmi.activation"><code>ActivationException</code></a>, then
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/activation/ActivateFailedException.html?is-external=true" title="class or interface in java.rmi.activation"><code>ActivateFailedException</code></a> is thrown with the
<code>ActivationException</code> as the cause.
</blockquote>
<p>If a valid, new proxy is returned by the <code>activate</code>
call, the underlying proxy of the new proxy is obtained from the new
proxy's activatable invocation handler. If the obtained underlying
proxy implements <code>RemoteMethodControl</code>, this invocation
handler's underlying proxy is set to a copy of the obtained
underlying proxy with the client constraints of this instance.
Otherwise, this invocation handler's underlying proxy is set to the
obtained underlying proxy.
<p>On the first call to the activation identifier's
<code>activate</code> method, <code>false</code> is passed as an
argument; on subsequent calls <code>true</code> will be passed, if
passing <code>false</code> returned the same underlying proxy as
before (when compared using the <code>equals</code> method) or if
the exception passed to <code>setException</code> is an instance of
<code>NoSuchObjectException</code>. If an activation attempt results
in an exception, that exception is thrown by the <code>next</code>
method of the iterator and iteration terminates.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a proxy trust iterator suitable for use by
<code>ProxyTrustVerifier</code></dd>
</dl>
</li>
</ul>
<a name="checkTrustEquivalence-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkTrustEquivalence</h4>
<pre>public&nbsp;boolean&nbsp;checkTrustEquivalence(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
<div class="block">Returns <code>true</code> if the specified object (which is not
yet known to be trusted) is equivalent in trust, content, and
function to this known trusted object, and <code>false</code>
otherwise.
<p><code>ActivatableInvocationHandler</code> implements this
method as follows:
<p>This method returns <code>true</code> if and only if the
following conditions are met:
<ul>
<li> The specified object has the same class as this object.
<li> This object's activation identifier implements <a href="../../../net/jini/security/proxytrust/TrustEquivalence.html" title="interface in net.jini.security.proxytrust"><code>TrustEquivalence</code></a>.
<li> Invoking the <code>checkTrustEquivalence</code> method on
this object's activation identifier passing the specified object's
activation identifier returns <code>true</code>.
<li> The client constraints in the specified object are equal to the
ones in this object.
</ul>
<p>The underlying proxy of the specified object is set to
<code>null</code> if this method returns <code>true</code> and any
of the following conditions are met:
<ul>
<li> This object's underlying proxy is <code>null</code>.
<li> This object's underlying proxy is not an instance of <a href="../../../net/jini/security/proxytrust/TrustEquivalence.html" title="interface in net.jini.security.proxytrust"><code>TrustEquivalence</code></a>.
<li> Invoking the <code>checkTrustEquivalence</code> method on this
object's underlying proxy, passing the underlying proxy of the
specified object, returns <code>false</code>.
</ul></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/security/proxytrust/TrustEquivalence.html#checkTrustEquivalence-java.lang.Object-">checkTrustEquivalence</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/security/proxytrust/TrustEquivalence.html" title="interface in net.jini.security.proxytrust">TrustEquivalence</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>obj</code> - object to check that is not yet known to be trusted</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the specified object (that is not yet
known to be trusted) is equivalent in trust, content, and function to
this known trusted object, and returns <code>false</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="activate-boolean-java.lang.Object-java.lang.reflect.Method-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>activate</h4>
<pre>private&nbsp;void&nbsp;activate(boolean&nbsp;force,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a>&nbsp;method)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
<div class="block">Activate the object (see activate0).</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
</dl>
</li>
</ul>
<a name="activate0-boolean-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>activate0</h4>
<pre>private&nbsp;void&nbsp;activate0(boolean&nbsp;force,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></pre>
<div class="block">Activate the object and update the underlying proxy. The force
argument is passed on to the activate method of the activation
identifier. If this method does not throw an exception, the value
of uproxy is updated to the value returned by calling the id's
activate method. Note: The caller should be synchronized on "this"
while calling this method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>force</code> - boolean to pass to activation id's activate method</dd>
<dd><code>proxy</code> - outer proxy from which dynamic grants are inherited,
or null</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/RemoteException.html?is-external=true" title="class or interface in java.rmi">RemoteException</a></code></dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
<div class="block">Compares the specified object with this
<code>ActivatableInvocationHandler</code> for equality.
<p> This method returns <code>true</code> if and only if the
specified object has the same class as this object, and the
activation identifier and client constraints in the specified object
are equal to the ones in this object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="hashCode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hashCode</h4>
<pre>public&nbsp;int&nbsp;hashCode()</pre>
<div class="block">Returns a hash code value for this object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<div class="block">Returns a string representation of this object.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="proxyToString-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>proxyToString</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;proxyToString(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;proxy)</pre>
<div class="block">Returns a string representation for a proxy that uses this invocation
handler.</div>
</li>
</ul>
<a name="readObject-java.io.ObjectInputStream-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readObject</h4>
<pre>private&nbsp;void&nbsp;readObject(<a href="http://docs.oracle.com/javase/6/docs/api/java/io/ObjectInputStream.html?is-external=true" title="class or interface in java.io">ObjectInputStream</a>&nbsp;s)
throws <a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></pre>
<div class="block">Verifies that the activation identifier is not <code>null</code>,
and that the constraints on this invocation handler and the
underlying proxy are consistent.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/InvalidObjectException.html?is-external=true" title="class or interface in java.io">InvalidObjectException</a></code> - if the activation identifier is
<code>null</code>, or if the underlying proxy implements <a href="../../../net/jini/core/constraint/RemoteMethodControl.html" title="interface in net.jini.core.constraint"><code>RemoteMethodControl</code></a> and the constraints on the underlying proxy are
not equivalent to this invocation handler's constraints</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassNotFoundException.html?is-external=true" title="class or interface in java.lang">ClassNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="getProxyLoader-java.lang.Class-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getProxyLoader</h4>
<pre>private static&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;getProxyLoader(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;proxyClass)</pre>
<div class="block">Returns the class loader for the specified proxy class.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/ActivatableInvocationHandler.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../net/jini/activation/ActivatableInvocationHandler.Failure.html" title="class in net.jini.activation"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?net/jini/activation/ActivatableInvocationHandler.html" target="_top">Frames</a></li>
<li><a href="ActivatableInvocationHandler.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright 2007-2013, multiple authors.<br>Licensed under the <a href=http://www.apache.org/licenses/LICENSE-2.0 target=child >Apache License, Version 2.0</a>, see the <a href=../../../doc-files/NOTICE target=child >NOTICE</a> file for attributions.</small></p>
</body>
</html>