<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SharedClassURLHelper (OpenJ9 JDK 11)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="com.ibm.oti.shared.SharedClassURLHelper interface">
<meta name="keywords" content="findSharedClass()">
<meta name="keywords" content="storeSharedClass()">
<meta name="keywords" content="setMinimizeUpdateChecks()">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="SharedClassURLHelper (OpenJ9 JDK 11)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SharedClassURLHelper.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-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="moduleLabelInType">Module</span>&nbsp;<a href="../../../../module-summary.html">openj9.sharedclasses</a></div>
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">com.ibm.oti.shared</a></div>
<h2 title="Interface SharedClassURLHelper" class="title">Interface SharedClassURLHelper</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="SharedClassHelper.html" title="interface in com.ibm.oti.shared">SharedClassHelper</a></code>, <code><a href="SharedHelper.html" title="interface in com.ibm.oti.shared">SharedHelper</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">SharedClassURLHelper</span>
extends <a href="SharedClassHelper.html" title="interface in com.ibm.oti.shared">SharedClassHelper</a></pre>
<div class="block"><p>SharedClassHelper API that stores and finds classes by using URL paths.</p>
 <h2>Description</h2>
 <p>A SharedClassURLHelper is obtained by calling getURLHelper(ClassLoader) on a SharedClassHelperFactory.</p>
 <p>The SharedClassURLHelper is designed for ClassLoaders that load classes from many different locations, without the concept of a classpath.
 A ClassLoader may find and store classes in the cache using any URL.</p>
 <h2>Usage</h2>
 <p>The ClassLoader should call findSharedClass after looking in its local cache and asking its parent (if one exists).
 If findSharedClass does not return null, the ClassLoader calls defineClass on the byte[] that is returned.</p>
 <p>The ClassLoader calls storeSharedClass immediately after a class is defined, unless the class that is being defined was loaded from the shared cache.</p>
 <p>If partitions are required, the ClassLoader is responsible for coordinating the creation and use of partition Strings.</p>
 <p>Classes can be stored only by using URLs that have file or jar protocols, and that refer to existing resources.
 The presence of any other protocol in a URL prevents SharedClassURLHelper from locating and storing classes in the shared cache.</p>
 <h2>Dynamic Cache Updates</h2> 
 <p>Because the shared cache persists beyond the lifetime of a JVM, classes in the shared cache can become out of date (stale).</p>
 Classes in the cache are automatically kept up to date by default:<br>
 <p>If findSharedClass is called for a class that exists in the cache but which has been updated on the filesystem since it was stored,
 then the old version in the cache is automatically marked stale and findSharedClass returns null.
 The ClassLoader should then store the updated version of the class.</p>
 <p>Note that jar/zip updates will cause all cache entries that are loaded from that jar/zip to be marked stale.</p>
 <p>(This behaviour can be disabled by using the correct command-line option. See -Xshareclasses:help)</p>
 <p>It is also assumed that the ClassLoader maintains a read lock on jar/zip files opened during its lifetime, preventing their modification.
 This prevents the cache from having to constantly check for updates.</p>
 <h2>Partitions</h2>
 <p>A partition can be used when finding or storing a class, which allows modified versions of the same class
   to be stored in the cache, effectively creating <q>partitions</q> in the cache.</p>
 <p>Partitions are designed for bytecode modification such as the use of Aspects. It is the responsibility of the ClassLoader
   to create partitions that describe the type of modification performed on the class bytes.</p>
 <p>If a class is updated on the filesystem and automatic dynamic updates are enabled, then all versions of the class across
   all partitions will be marked stale.</p>
 <h2>Class metadata</h2>
 <p>A ClassLoader might create metadata when loading and defining classes, such as a jar manifest or security data.
 None of this metadata can be stored in the cache, so if a ClassLoader is finding classes in the shared cache, it must load
   any metadata that it needs from disk before defining the classes.</p>
 <h2>Security</h2>
 <p>A SharedClassHelper will only allow classes that were defined by the ClassLoader that owns the SharedClassHelper to be stored in the cache.</p>
 <p>If a SecurityManager is installed, SharedClassPermissions must be used to permit read/write access to the shared class cache.
 Permissions are granted by ClassLoader classname in the java.policy file and are fixed when the SharedClassHelper is created.</p>
 <p>Note also that if the createClassLoader RuntimePermission is not granted, ClassLoaders cannot be created, 
 which in turn means that SharedClassHelpers cannot be created.</p>
 <h2>Compatibility with other SharedClassHelpers</h2>
 <p>Classes stored by using the SharedClassURLHelper can be retrieved by using the SharedClassURLClasspathHelper and vice versa.
 This is also true for partitions that can be used across these two helpers.</p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="SharedClassURLHelper.html" title="interface in com.ibm.oti.shared"><code>SharedClassURLHelper</code></a>, 
<a href="SharedClassHelperFactory.html" title="interface in com.ibm.oti.shared"><code>SharedClassHelperFactory</code></a>, 
<a href="SharedClassPermission.html" title="class in com.ibm.oti.shared"><code>SharedClassPermission</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>byte[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findSharedClass(java.lang.String,java.net.URL,java.lang.String)">findSharedClass</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;partition,
               <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink" target="_blank">URL</a>&nbsp;path,
               <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;className)</code></th>
<td class="colLast">
<div class="block">Finds a class in the shared cache by using a specific URL, class name, and user-defined partition (see <q>Partitions</q>).</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>byte[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findSharedClass(java.net.URL,java.lang.String)">findSharedClass</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink" target="_blank">URL</a>&nbsp;path,
               <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;className)</code></th>
<td class="colLast">
<div class="block">Finds a class in the shared cache by using a specific URL and class name.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setMinimizeUpdateChecks()">setMinimizeUpdateChecks</a></span>()</code></th>
<td class="colLast">
<div class="block">Minimizes update checking on jar files for optimal performance.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#storeSharedClass(java.lang.String,java.net.URL,java.lang.Class)">storeSharedClass</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;partition,
                <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink" target="_blank">URL</a>&nbsp;path,
                <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Class</a>&lt;?&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block">Stores a class in the shared cache by using the URL location it was loaded from and a user-defined partition (see <q>Partitions</q>).</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#storeSharedClass(java.net.URL,java.lang.Class)">storeSharedClass</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink" target="_blank">URL</a>&nbsp;path,
                <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Class</a>&lt;?&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block">Stores a class in the shared cache by using the URL location it was loaded from.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.ibm.oti.shared.SharedClassHelper">
<!--   -->
</a>
<h3>Methods declared in interface&nbsp;com.ibm.oti.shared.<a href="SharedClassHelper.html" title="interface in com.ibm.oti.shared">SharedClassHelper</a></h3>
<code><a href="SharedClassHelper.html#getSharingFilter()">getSharingFilter</a>, <a href="SharedClassHelper.html#setSharingFilter(com.ibm.oti.shared.SharedClassFilter)">setSharingFilter</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.com.ibm.oti.shared.SharedHelper">
<!--   -->
</a>
<h3>Methods declared in interface&nbsp;com.ibm.oti.shared.<a href="SharedHelper.html" title="interface in com.ibm.oti.shared">SharedHelper</a></h3>
<code><a href="SharedHelper.html#getClassLoader()">getClassLoader</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="findSharedClass(java.net.URL,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findSharedClass</h4>
<pre class="methodSignature">byte[]&nbsp;findSharedClass&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink" target="_blank">URL</a>&nbsp;path,
                       <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;className)</pre>
<div class="block"><p>Finds a class in the shared cache by using a specific URL and class name.
 A class will be returned if it was stored against the same URL.</p>
 <p>Null is returned if the class cannot be found or if it is stale (see <q>Dynamic cache updates</q>).</p>
 <p>To obtain an instance of the class, the byte[] returned must be passed to defineClass by the caller ClassLoader.</p>
 <p>Also returns false if the URL at foundAtIndex is not a file URL or if the resource it refers to does not exist. </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>path</code> - URL.
                                        A URL path. Cannot be null.</dd>
<dd><code>className</code> - String.
                                        The name of the class to be found</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>byte[].
                                        A byte array describing the class found, or null.</dd>
</dl>
</li>
</ul>
<a id="findSharedClass(java.lang.String,java.net.URL,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findSharedClass</h4>
<pre class="methodSignature">byte[]&nbsp;findSharedClass&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;partition,
                       <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink" target="_blank">URL</a>&nbsp;path,
                       <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;className)</pre>
<div class="block"><p>Finds a class in the shared cache by using a specific URL, class name, and user-defined partition (see <q>Partitions</q>).</p>
 <p>A class returned only if it was stored against the same URL, and was using the same partition.
 Null is returned if the class cannot be found or if it is stale (see <q>Dynamic cache updates</q>).</p>
 <p>To obtain an instance of the class, the byte[] returned must be passed to defineClass by the caller ClassLoader.</p>
 <p>Also returns false if the URL at foundAtIndex is not a file URL or if the resource it refers to does not exist. </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>partition</code> - String.
                                        User-defined partition if finding modified bytecode (see <q>Partitions</q>).
                                        Passing null is equivalent of calling non-partition findSharedClass call.</dd>
<dd><code>path</code> - URL.
                                        A URL path. Cannot be null.</dd>
<dd><code>className</code> - String.
                                        The name of the class to be found</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>byte[].
                                        A byte array describing the found class, or null.</dd>
</dl>
</li>
</ul>
<a id="storeSharedClass(java.net.URL,java.lang.Class)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>storeSharedClass</h4>
<pre class="methodSignature">boolean&nbsp;storeSharedClass&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink" target="_blank">URL</a>&nbsp;path,
                         <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Class</a>&lt;?&gt;&nbsp;clazz)</pre>
<div class="block"><p>Stores a class in the shared cache by using the URL location it was loaded from.
 The class that is being stored must have been defined by the caller ClassLoader and must exist in the URL location specified.
 Returns <code>true</code> if the class is stored successfully or <code>false</code> otherwise.</p>
 <p>Will return <code>false</code> if the class that is being stored was not defined by the caller ClassLoader.</p>
 <p>Also returns <code>false</code> if the URL at foundAtIndex is not a file URL or if the resource it refers to does not exist.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>path</code> - URL.
                                        The URL path that the class was loaded from. Cannot be null.</dd>
<dd><code>clazz</code> - Class.
                                        The class to store in the shared cache</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean.
                                        True if the class was stored successfully, false otherwise.</dd>
</dl>
</li>
</ul>
<a id="storeSharedClass(java.lang.String,java.net.URL,java.lang.Class)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>storeSharedClass</h4>
<pre class="methodSignature">boolean&nbsp;storeSharedClass&#8203;(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">String</a>&nbsp;partition,
                         <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URL.html?is-external=true" title="class or interface in java.net" class="externalLink" target="_blank">URL</a>&nbsp;path,
                         <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink" target="_blank">Class</a>&lt;?&gt;&nbsp;clazz)</pre>
<div class="block"><p>Stores a class in the shared cache by using the URL location it was loaded from and a user-defined partition (see <q>Partitions</q>).</p>
 <p>The class being stored must have been defined by the caller ClassLoader and must exist in the URL location specified.
 Returns <code>true</code> if the class is stored successfully or <code>false</code> otherwise.</p>
 <p>Will return <code>false</code> if the class being stored was not defined by the caller ClassLoader.</p>
 <p>Also returns <code>false</code> if the URL at foundAtIndex is not a file URL or if the resource it refers to does not exist.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>partition</code> - String.
                                        User-defined partition if storing modified bytecode (see <q>Partitions</q>).
                                        Passing null is equivalent of calling non-partition storeSharedClass call.</dd>
<dd><code>path</code> - URL.
                                        The URL path that the class was loaded from. Cannot be null.</dd>
<dd><code>clazz</code> - Class.
                                        The class to store in the shared cache</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean.
                                        True if the class was stored successfully, false otherwise.</dd>
</dl>
</li>
</ul>
<a id="setMinimizeUpdateChecks()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setMinimizeUpdateChecks</h4>
<pre class="methodSignature">boolean&nbsp;setMinimizeUpdateChecks()</pre>
<div class="block"><p>Minimizes update checking on jar files for optimal performance.</p>
 <p>By default, when a class is loaded from the shared class cache, the timestamp of the container it was originally loaded from is
 compared with the timestamp of the actual container on the filesystem. If the two do not match, the original class is marked stale
 and is not returned by findSharedClass(). These checks are not performed if the container is held open by the ClassLoader.</p>
 <p>If the ClassLoader does not want to open the container, but doesn't want the timestamp to be constantly checked when 
 classes are loaded, it should call this function immediately after the SharedClassURLHelper object has been created.
 After this function has been called, each container timestamp is checked once and then is only checked again if the 
 container jar file is opened.<br>
 <p>This feature cannot be unset.</p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>boolean.
                                        True if the feature has been successfully set, false otherwise.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SharedClassURLHelper.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-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><div style="margin-top: 9px;"><strong>OpenJ9 JDK 11</strong></div></div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 website.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse-openj9/openj9/issues" target="_blank">Eclipse Openj9 issue.</a><br> Copyright &copy; 1998, 2021, IBM Corp. and others.</small></p>
</footer>
</body>
</html>
