Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Jdk13LumberjackLogger.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Jdk13LumberjackLogger.html
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Jdk13LumberjackLogger.html
 Wed May 15 16:57:04 2024
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html lang="en">
 <head>
-<!-- Generated by javadoc (17) -->
+<!-- Generated by javadoc (21) -->
 <title>Source code</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="description" content="source: package: 
org.apache.commons.logging.impl, class: Jdk13LumberjackLogger">

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Jdk14Logger.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Jdk14Logger.html
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Jdk14Logger.html
 Wed May 15 16:57:04 2024
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html lang="en">
 <head>
-<!-- Generated by javadoc (17) -->
+<!-- Generated by javadoc (21) -->
 <title>Source code</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="description" content="source: package: 
org.apache.commons.logging.impl, class: Jdk14Logger">

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Log4JLogger.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Log4JLogger.html
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Log4JLogger.html
 Wed May 15 16:57:04 2024
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html lang="en">
 <head>
-<!-- Generated by javadoc (17) -->
+<!-- Generated by javadoc (21) -->
 <title>Source code</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="description" content="source: package: 
org.apache.commons.logging.impl, class: Log4JLogger">

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Log4jApiLogFactory.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Log4jApiLogFactory.html
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Log4jApiLogFactory.html
 Wed May 15 16:57:04 2024
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html lang="en">
 <head>
-<!-- Generated by javadoc (17) -->
+<!-- Generated by javadoc (21) -->
 <title>Source code</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="description" content="source: package: 
org.apache.commons.logging.impl, class: Log4jApiLogFactory">
@@ -196,53 +196,60 @@
 <span class="source-line-no">183</span><span id="line-183"></span>
 <span class="source-line-no">184</span><span id="line-184">    private final 
ConcurrentMap&lt;String, Object&gt; attributes = new 
ConcurrentHashMap&lt;&gt;();</span>
 <span class="source-line-no">185</span><span id="line-185"></span>
-<span class="source-line-no">186</span><span id="line-186">    @Override</span>
-<span class="source-line-no">187</span><span id="line-187">    public Object 
getAttribute(final String name) {</span>
-<span class="source-line-no">188</span><span id="line-188">        return 
attributes.get(name);</span>
-<span class="source-line-no">189</span><span id="line-189">    }</span>
-<span class="source-line-no">190</span><span id="line-190"></span>
-<span class="source-line-no">191</span><span id="line-191">    @Override</span>
-<span class="source-line-no">192</span><span id="line-192">    public String[] 
getAttributeNames() {</span>
-<span class="source-line-no">193</span><span id="line-193">        return 
attributes.keySet().toArray(EMPTY_ARRAY);</span>
-<span class="source-line-no">194</span><span id="line-194">    }</span>
-<span class="source-line-no">195</span><span id="line-195"></span>
-<span class="source-line-no">196</span><span id="line-196">    @Override</span>
-<span class="source-line-no">197</span><span id="line-197">    public Log 
getInstance(final Class&lt;?&gt; clazz) {</span>
-<span class="source-line-no">198</span><span id="line-198">        return 
getInstance(clazz.getName());</span>
-<span class="source-line-no">199</span><span id="line-199">    }</span>
-<span class="source-line-no">200</span><span id="line-200"></span>
-<span class="source-line-no">201</span><span id="line-201">    @Override</span>
-<span class="source-line-no">202</span><span id="line-202">    public Log 
getInstance(final String name) {</span>
-<span class="source-line-no">203</span><span id="line-203">        return 
adapter.getLogger(name);</span>
-<span class="source-line-no">204</span><span id="line-204">    }</span>
-<span class="source-line-no">205</span><span id="line-205"></span>
-<span class="source-line-no">206</span><span id="line-206">    /**</span>
-<span class="source-line-no">207</span><span id="line-207">     * This method 
is supposed to clear all loggers. In this implementation it will clear all the 
logger</span>
-<span class="source-line-no">208</span><span id="line-208">     * wrappers but 
the loggers managed by the underlying logger context will not be.</span>
-<span class="source-line-no">209</span><span id="line-209">     */</span>
-<span class="source-line-no">210</span><span id="line-210">    @Override</span>
-<span class="source-line-no">211</span><span id="line-211">    public void 
release() {</span>
-<span class="source-line-no">212</span><span id="line-212">        try {</span>
-<span class="source-line-no">213</span><span id="line-213">            
adapter.close();</span>
-<span class="source-line-no">214</span><span id="line-214">        } catch 
(final IOException ignored) {</span>
-<span class="source-line-no">215</span><span id="line-215">            // 
Ignore</span>
-<span class="source-line-no">216</span><span id="line-216">        }</span>
-<span class="source-line-no">217</span><span id="line-217">    }</span>
-<span class="source-line-no">218</span><span id="line-218"></span>
-<span class="source-line-no">219</span><span id="line-219">    @Override</span>
-<span class="source-line-no">220</span><span id="line-220">    public void 
removeAttribute(final String name) {</span>
-<span class="source-line-no">221</span><span id="line-221">        
attributes.remove(name);</span>
-<span class="source-line-no">222</span><span id="line-222">    }</span>
-<span class="source-line-no">223</span><span id="line-223"></span>
-<span class="source-line-no">224</span><span id="line-224">    @Override</span>
-<span class="source-line-no">225</span><span id="line-225">    public void 
setAttribute(final String name, final Object value) {</span>
-<span class="source-line-no">226</span><span id="line-226">        if (value 
!= null) {</span>
-<span class="source-line-no">227</span><span id="line-227">            
attributes.put(name, value);</span>
-<span class="source-line-no">228</span><span id="line-228">        } else 
{</span>
-<span class="source-line-no">229</span><span id="line-229">            
removeAttribute(name);</span>
-<span class="source-line-no">230</span><span id="line-230">        }</span>
-<span class="source-line-no">231</span><span id="line-231">    }</span>
-<span class="source-line-no">232</span><span id="line-232">}</span>
+<span class="source-line-no">186</span><span id="line-186">    /**</span>
+<span class="source-line-no">187</span><span id="line-187">     * Constructs a 
new instance.</span>
+<span class="source-line-no">188</span><span id="line-188">     */</span>
+<span class="source-line-no">189</span><span id="line-189">    public 
Log4jApiLogFactory() {</span>
+<span class="source-line-no">190</span><span id="line-190">        // 
empty</span>
+<span class="source-line-no">191</span><span id="line-191">    }</span>
+<span class="source-line-no">192</span><span id="line-192"></span>
+<span class="source-line-no">193</span><span id="line-193">    @Override</span>
+<span class="source-line-no">194</span><span id="line-194">    public Object 
getAttribute(final String name) {</span>
+<span class="source-line-no">195</span><span id="line-195">        return 
attributes.get(name);</span>
+<span class="source-line-no">196</span><span id="line-196">    }</span>
+<span class="source-line-no">197</span><span id="line-197"></span>
+<span class="source-line-no">198</span><span id="line-198">    @Override</span>
+<span class="source-line-no">199</span><span id="line-199">    public String[] 
getAttributeNames() {</span>
+<span class="source-line-no">200</span><span id="line-200">        return 
attributes.keySet().toArray(EMPTY_ARRAY);</span>
+<span class="source-line-no">201</span><span id="line-201">    }</span>
+<span class="source-line-no">202</span><span id="line-202"></span>
+<span class="source-line-no">203</span><span id="line-203">    @Override</span>
+<span class="source-line-no">204</span><span id="line-204">    public Log 
getInstance(final Class&lt;?&gt; clazz) {</span>
+<span class="source-line-no">205</span><span id="line-205">        return 
getInstance(clazz.getName());</span>
+<span class="source-line-no">206</span><span id="line-206">    }</span>
+<span class="source-line-no">207</span><span id="line-207"></span>
+<span class="source-line-no">208</span><span id="line-208">    @Override</span>
+<span class="source-line-no">209</span><span id="line-209">    public Log 
getInstance(final String name) {</span>
+<span class="source-line-no">210</span><span id="line-210">        return 
adapter.getLogger(name);</span>
+<span class="source-line-no">211</span><span id="line-211">    }</span>
+<span class="source-line-no">212</span><span id="line-212"></span>
+<span class="source-line-no">213</span><span id="line-213">    /**</span>
+<span class="source-line-no">214</span><span id="line-214">     * This method 
is supposed to clear all loggers. In this implementation it will clear all the 
logger</span>
+<span class="source-line-no">215</span><span id="line-215">     * wrappers but 
the loggers managed by the underlying logger context will not be.</span>
+<span class="source-line-no">216</span><span id="line-216">     */</span>
+<span class="source-line-no">217</span><span id="line-217">    @Override</span>
+<span class="source-line-no">218</span><span id="line-218">    public void 
release() {</span>
+<span class="source-line-no">219</span><span id="line-219">        try {</span>
+<span class="source-line-no">220</span><span id="line-220">            
adapter.close();</span>
+<span class="source-line-no">221</span><span id="line-221">        } catch 
(final IOException ignored) {</span>
+<span class="source-line-no">222</span><span id="line-222">            // 
Ignore</span>
+<span class="source-line-no">223</span><span id="line-223">        }</span>
+<span class="source-line-no">224</span><span id="line-224">    }</span>
+<span class="source-line-no">225</span><span id="line-225"></span>
+<span class="source-line-no">226</span><span id="line-226">    @Override</span>
+<span class="source-line-no">227</span><span id="line-227">    public void 
removeAttribute(final String name) {</span>
+<span class="source-line-no">228</span><span id="line-228">        
attributes.remove(name);</span>
+<span class="source-line-no">229</span><span id="line-229">    }</span>
+<span class="source-line-no">230</span><span id="line-230"></span>
+<span class="source-line-no">231</span><span id="line-231">    @Override</span>
+<span class="source-line-no">232</span><span id="line-232">    public void 
setAttribute(final String name, final Object value) {</span>
+<span class="source-line-no">233</span><span id="line-233">        if (value 
!= null) {</span>
+<span class="source-line-no">234</span><span id="line-234">            
attributes.put(name, value);</span>
+<span class="source-line-no">235</span><span id="line-235">        } else 
{</span>
+<span class="source-line-no">236</span><span id="line-236">            
removeAttribute(name);</span>
+<span class="source-line-no">237</span><span id="line-237">        }</span>
+<span class="source-line-no">238</span><span id="line-238">    }</span>
+<span class="source-line-no">239</span><span id="line-239">}</span>
 
 
 

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/LogFactoryImpl.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/LogFactoryImpl.html
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/LogFactoryImpl.html
 Wed May 15 16:57:04 2024
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html lang="en">
 <head>
-<!-- Generated by javadoc (17) -->
+<!-- Generated by javadoc (21) -->
 <title>Source code</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="description" content="source: package: 
org.apache.commons.logging.impl, class: LogFactoryImpl">

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/LogKitLogger.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/LogKitLogger.html
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/LogKitLogger.html
 Wed May 15 16:57:04 2024
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html lang="en">
 <head>
-<!-- Generated by javadoc (17) -->
+<!-- Generated by javadoc (21) -->
 <title>Source code</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="description" content="source: package: 
org.apache.commons.logging.impl, class: LogKitLogger">

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/NoOpLog.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/NoOpLog.html
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/NoOpLog.html
 Wed May 15 16:57:04 2024
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html lang="en">
 <head>
-<!-- Generated by javadoc (17) -->
+<!-- Generated by javadoc (21) -->
 <title>Source code</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="description" content="source: package: 
org.apache.commons.logging.impl, class: NoOpLog">

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/ServletContextCleaner.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/ServletContextCleaner.html
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/ServletContextCleaner.html
 Wed May 15 16:57:04 2024
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html lang="en">
 <head>
-<!-- Generated by javadoc (17) -->
+<!-- Generated by javadoc (21) -->
 <title>Source code</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="description" content="source: package: 
org.apache.commons.logging.impl, class: ServletContextCleaner">
@@ -64,91 +64,98 @@
 <span class="source-line-no">051</span><span id="line-51">    private static 
final Class&lt;?&gt;[] RELEASE_SIGNATURE = { ClassLoader.class };</span>
 <span class="source-line-no">052</span><span id="line-52"></span>
 <span class="source-line-no">053</span><span id="line-53">    /**</span>
-<span class="source-line-no">054</span><span id="line-54">     * Invoked when 
a webapp is undeployed, this tells the LogFactory</span>
-<span class="source-line-no">055</span><span id="line-55">     * class to 
release any logging information related to the current</span>
-<span class="source-line-no">056</span><span id="line-56">     * 
contextClassloader.</span>
-<span class="source-line-no">057</span><span id="line-57">     */</span>
-<span class="source-line-no">058</span><span id="line-58">    @Override</span>
-<span class="source-line-no">059</span><span id="line-59">    public void 
contextDestroyed(final ServletContextEvent sce) {</span>
-<span class="source-line-no">060</span><span id="line-60">        final 
ClassLoader tccl = Thread.currentThread().getContextClassLoader();</span>
-<span class="source-line-no">061</span><span id="line-61"></span>
-<span class="source-line-no">062</span><span id="line-62">        final 
Object[] params = new Object[1];</span>
-<span class="source-line-no">063</span><span id="line-63">        params[0] = 
tccl;</span>
-<span class="source-line-no">064</span><span id="line-64"></span>
-<span class="source-line-no">065</span><span id="line-65">        // Walk up 
the tree of class loaders, finding all the available</span>
-<span class="source-line-no">066</span><span id="line-66">        // 
LogFactory classes and releasing any objects associated with</span>
-<span class="source-line-no">067</span><span id="line-67">        // the tccl 
(ie the webapp).</span>
-<span class="source-line-no">068</span><span id="line-68">        //</span>
-<span class="source-line-no">069</span><span id="line-69">        // When 
there is only one LogFactory in the classpath, and it</span>
-<span class="source-line-no">070</span><span id="line-70">        // is within 
the webapp being undeployed then there is no problem;</span>
-<span class="source-line-no">071</span><span id="line-71">        // garbage 
collection works fine.</span>
-<span class="source-line-no">072</span><span id="line-72">        //</span>
-<span class="source-line-no">073</span><span id="line-73">        // When 
there are multiple LogFactory classes in the classpath but</span>
-<span class="source-line-no">074</span><span id="line-74">        // 
parent-first classloading is used everywhere, this loop is really</span>
-<span class="source-line-no">075</span><span id="line-75">        // short. 
The first instance of LogFactory found will</span>
-<span class="source-line-no">076</span><span id="line-76">        // be the 
highest in the classpath, and then no more will be found.</span>
-<span class="source-line-no">077</span><span id="line-77">        // This is 
ok, as with this setup this will be the only LogFactory</span>
-<span class="source-line-no">078</span><span id="line-78">        // holding 
any data associated with the tccl being released.</span>
+<span class="source-line-no">054</span><span id="line-54">     * Constructs a 
new instance.</span>
+<span class="source-line-no">055</span><span id="line-55">     */</span>
+<span class="source-line-no">056</span><span id="line-56">    public 
ServletContextCleaner() {</span>
+<span class="source-line-no">057</span><span id="line-57">        // 
empty</span>
+<span class="source-line-no">058</span><span id="line-58">    }</span>
+<span class="source-line-no">059</span><span id="line-59"></span>
+<span class="source-line-no">060</span><span id="line-60">    /**</span>
+<span class="source-line-no">061</span><span id="line-61">     * Invoked when 
a webapp is undeployed, this tells the LogFactory</span>
+<span class="source-line-no">062</span><span id="line-62">     * class to 
release any logging information related to the current</span>
+<span class="source-line-no">063</span><span id="line-63">     * 
contextClassloader.</span>
+<span class="source-line-no">064</span><span id="line-64">     */</span>
+<span class="source-line-no">065</span><span id="line-65">    @Override</span>
+<span class="source-line-no">066</span><span id="line-66">    public void 
contextDestroyed(final ServletContextEvent sce) {</span>
+<span class="source-line-no">067</span><span id="line-67">        final 
ClassLoader tccl = Thread.currentThread().getContextClassLoader();</span>
+<span class="source-line-no">068</span><span id="line-68"></span>
+<span class="source-line-no">069</span><span id="line-69">        final 
Object[] params = new Object[1];</span>
+<span class="source-line-no">070</span><span id="line-70">        params[0] = 
tccl;</span>
+<span class="source-line-no">071</span><span id="line-71"></span>
+<span class="source-line-no">072</span><span id="line-72">        // Walk up 
the tree of class loaders, finding all the available</span>
+<span class="source-line-no">073</span><span id="line-73">        // 
LogFactory classes and releasing any objects associated with</span>
+<span class="source-line-no">074</span><span id="line-74">        // the tccl 
(ie the webapp).</span>
+<span class="source-line-no">075</span><span id="line-75">        //</span>
+<span class="source-line-no">076</span><span id="line-76">        // When 
there is only one LogFactory in the classpath, and it</span>
+<span class="source-line-no">077</span><span id="line-77">        // is within 
the webapp being undeployed then there is no problem;</span>
+<span class="source-line-no">078</span><span id="line-78">        // garbage 
collection works fine.</span>
 <span class="source-line-no">079</span><span id="line-79">        //</span>
-<span class="source-line-no">080</span><span id="line-80">        // When 
there are multiple LogFactory classes in the classpath and</span>
-<span class="source-line-no">081</span><span id="line-81">        // 
child-first classloading is used in any class loader, then multiple</span>
-<span class="source-line-no">082</span><span id="line-82">        // 
LogFactory instances may hold info about this TCCL; whenever the</span>
-<span class="source-line-no">083</span><span id="line-83">        // webapp 
makes a call into a class loaded via an ancestor class loader</span>
-<span class="source-line-no">084</span><span id="line-84">        // and that 
class calls LogFactory the tccl gets registered in</span>
-<span class="source-line-no">085</span><span id="line-85">        // the 
LogFactory instance that is visible from the ancestor</span>
-<span class="source-line-no">086</span><span id="line-86">        // class 
loader. However the concrete logging library it points</span>
-<span class="source-line-no">087</span><span id="line-87">        // to is 
expected to have been loaded via the TCCL, so the</span>
-<span class="source-line-no">088</span><span id="line-88">        // 
underlying logging lib is only initialized/configured once.</span>
-<span class="source-line-no">089</span><span id="line-89">        // These 
references from ancestor LogFactory classes down to</span>
-<span class="source-line-no">090</span><span id="line-90">        // TCCL 
class loaders are held via weak references and so should</span>
-<span class="source-line-no">091</span><span id="line-91">        // be 
released but there are circumstances where they may not.</span>
-<span class="source-line-no">092</span><span id="line-92">        // Walking 
up the class loader ancestry ladder releasing</span>
-<span class="source-line-no">093</span><span id="line-93">        // the 
current tccl at each level tree, though, will definitely</span>
-<span class="source-line-no">094</span><span id="line-94">        // clear any 
problem references.</span>
-<span class="source-line-no">095</span><span id="line-95">        ClassLoader 
loader = tccl;</span>
-<span class="source-line-no">096</span><span id="line-96">        while 
(loader != null) {</span>
-<span class="source-line-no">097</span><span id="line-97">            // Load 
via the current loader. Note that if the class is not accessible</span>
-<span class="source-line-no">098</span><span id="line-98">            // via 
this loader, but is accessible via some ancestor then that class</span>
-<span class="source-line-no">099</span><span id="line-99">            // will 
be returned.</span>
-<span class="source-line-no">100</span><span id="line-100">            try 
{</span>
-<span class="source-line-no">101</span><span id="line-101">                
@SuppressWarnings("unchecked")</span>
-<span class="source-line-no">102</span><span id="line-102">                
final Class&lt;LogFactory&gt; logFactoryClass = (Class&lt;LogFactory&gt;) 
loader.loadClass("org.apache.commons.logging.LogFactory");</span>
-<span class="source-line-no">103</span><span id="line-103">                
final Method releaseMethod = logFactoryClass.getMethod("release", 
RELEASE_SIGNATURE);</span>
-<span class="source-line-no">104</span><span id="line-104">                
releaseMethod.invoke(null, params);</span>
-<span class="source-line-no">105</span><span id="line-105">                
loader = logFactoryClass.getClassLoader().getParent();</span>
-<span class="source-line-no">106</span><span id="line-106">            } catch 
(final ClassNotFoundException ex) {</span>
-<span class="source-line-no">107</span><span id="line-107">                // 
Neither the current class loader nor any of its ancestors could find</span>
-<span class="source-line-no">108</span><span id="line-108">                // 
the LogFactory class, so we can stop now.</span>
-<span class="source-line-no">109</span><span id="line-109">                
loader = null;</span>
-<span class="source-line-no">110</span><span id="line-110">            } catch 
(final NoSuchMethodException ex) {</span>
-<span class="source-line-no">111</span><span id="line-111">                // 
This is not expected; every version of JCL has this method</span>
-<span class="source-line-no">112</span><span id="line-112">                
System.err.println("LogFactory instance found which does not support release 
method!");</span>
-<span class="source-line-no">113</span><span id="line-113">                
loader = null;</span>
-<span class="source-line-no">114</span><span id="line-114">            } catch 
(final IllegalAccessException ex) {</span>
-<span class="source-line-no">115</span><span id="line-115">                // 
This is not expected; every ancestor class should be accessible</span>
-<span class="source-line-no">116</span><span id="line-116">                
System.err.println("LogFactory instance found which is not accessible!");</span>
-<span class="source-line-no">117</span><span id="line-117">                
loader = null;</span>
-<span class="source-line-no">118</span><span id="line-118">            } catch 
(final InvocationTargetException ex) {</span>
-<span class="source-line-no">119</span><span id="line-119">                // 
This is not expected</span>
-<span class="source-line-no">120</span><span id="line-120">                
System.err.println("LogFactory instance release method failed!");</span>
-<span class="source-line-no">121</span><span id="line-121">                
loader = null;</span>
-<span class="source-line-no">122</span><span id="line-122">            }</span>
-<span class="source-line-no">123</span><span id="line-123">        }</span>
-<span class="source-line-no">124</span><span id="line-124"></span>
-<span class="source-line-no">125</span><span id="line-125">        // Just to 
be sure, invoke release on the LogFactory that is visible from</span>
-<span class="source-line-no">126</span><span id="line-126">        // this 
ServletContextCleaner class too. This should already have been caught</span>
-<span class="source-line-no">127</span><span id="line-127">        // by the 
above loop but just in case...</span>
-<span class="source-line-no">128</span><span id="line-128">        
LogFactory.release(tccl);</span>
-<span class="source-line-no">129</span><span id="line-129">    }</span>
-<span class="source-line-no">130</span><span id="line-130"></span>
-<span class="source-line-no">131</span><span id="line-131">    /**</span>
-<span class="source-line-no">132</span><span id="line-132">     * Invoked when 
a webapp is deployed. Nothing needs to be done here.</span>
-<span class="source-line-no">133</span><span id="line-133">     */</span>
-<span class="source-line-no">134</span><span id="line-134">    @Override</span>
-<span class="source-line-no">135</span><span id="line-135">    public void 
contextInitialized(final ServletContextEvent sce) {</span>
-<span class="source-line-no">136</span><span id="line-136">        // do 
nothing</span>
-<span class="source-line-no">137</span><span id="line-137">    }</span>
-<span class="source-line-no">138</span><span id="line-138">}</span>
+<span class="source-line-no">080</span><span id="line-80">        // When 
there are multiple LogFactory classes in the classpath but</span>
+<span class="source-line-no">081</span><span id="line-81">        // 
parent-first classloading is used everywhere, this loop is really</span>
+<span class="source-line-no">082</span><span id="line-82">        // short. 
The first instance of LogFactory found will</span>
+<span class="source-line-no">083</span><span id="line-83">        // be the 
highest in the classpath, and then no more will be found.</span>
+<span class="source-line-no">084</span><span id="line-84">        // This is 
ok, as with this setup this will be the only LogFactory</span>
+<span class="source-line-no">085</span><span id="line-85">        // holding 
any data associated with the tccl being released.</span>
+<span class="source-line-no">086</span><span id="line-86">        //</span>
+<span class="source-line-no">087</span><span id="line-87">        // When 
there are multiple LogFactory classes in the classpath and</span>
+<span class="source-line-no">088</span><span id="line-88">        // 
child-first classloading is used in any class loader, then multiple</span>
+<span class="source-line-no">089</span><span id="line-89">        // 
LogFactory instances may hold info about this TCCL; whenever the</span>
+<span class="source-line-no">090</span><span id="line-90">        // webapp 
makes a call into a class loaded via an ancestor class loader</span>
+<span class="source-line-no">091</span><span id="line-91">        // and that 
class calls LogFactory the tccl gets registered in</span>
+<span class="source-line-no">092</span><span id="line-92">        // the 
LogFactory instance that is visible from the ancestor</span>
+<span class="source-line-no">093</span><span id="line-93">        // class 
loader. However the concrete logging library it points</span>
+<span class="source-line-no">094</span><span id="line-94">        // to is 
expected to have been loaded via the TCCL, so the</span>
+<span class="source-line-no">095</span><span id="line-95">        // 
underlying logging lib is only initialized/configured once.</span>
+<span class="source-line-no">096</span><span id="line-96">        // These 
references from ancestor LogFactory classes down to</span>
+<span class="source-line-no">097</span><span id="line-97">        // TCCL 
class loaders are held via weak references and so should</span>
+<span class="source-line-no">098</span><span id="line-98">        // be 
released but there are circumstances where they may not.</span>
+<span class="source-line-no">099</span><span id="line-99">        // Walking 
up the class loader ancestry ladder releasing</span>
+<span class="source-line-no">100</span><span id="line-100">        // the 
current tccl at each level tree, though, will definitely</span>
+<span class="source-line-no">101</span><span id="line-101">        // clear 
any problem references.</span>
+<span class="source-line-no">102</span><span id="line-102">        ClassLoader 
loader = tccl;</span>
+<span class="source-line-no">103</span><span id="line-103">        while 
(loader != null) {</span>
+<span class="source-line-no">104</span><span id="line-104">            // Load 
via the current loader. Note that if the class is not accessible</span>
+<span class="source-line-no">105</span><span id="line-105">            // via 
this loader, but is accessible via some ancestor then that class</span>
+<span class="source-line-no">106</span><span id="line-106">            // will 
be returned.</span>
+<span class="source-line-no">107</span><span id="line-107">            try 
{</span>
+<span class="source-line-no">108</span><span id="line-108">                
@SuppressWarnings("unchecked")</span>
+<span class="source-line-no">109</span><span id="line-109">                
final Class&lt;LogFactory&gt; logFactoryClass = (Class&lt;LogFactory&gt;) 
loader.loadClass("org.apache.commons.logging.LogFactory");</span>
+<span class="source-line-no">110</span><span id="line-110">                
final Method releaseMethod = logFactoryClass.getMethod("release", 
RELEASE_SIGNATURE);</span>
+<span class="source-line-no">111</span><span id="line-111">                
releaseMethod.invoke(null, params);</span>
+<span class="source-line-no">112</span><span id="line-112">                
loader = logFactoryClass.getClassLoader().getParent();</span>
+<span class="source-line-no">113</span><span id="line-113">            } catch 
(final ClassNotFoundException ex) {</span>
+<span class="source-line-no">114</span><span id="line-114">                // 
Neither the current class loader nor any of its ancestors could find</span>
+<span class="source-line-no">115</span><span id="line-115">                // 
the LogFactory class, so we can stop now.</span>
+<span class="source-line-no">116</span><span id="line-116">                
loader = null;</span>
+<span class="source-line-no">117</span><span id="line-117">            } catch 
(final NoSuchMethodException ex) {</span>
+<span class="source-line-no">118</span><span id="line-118">                // 
This is not expected; every version of JCL has this method</span>
+<span class="source-line-no">119</span><span id="line-119">                
System.err.println("LogFactory instance found which does not support release 
method!");</span>
+<span class="source-line-no">120</span><span id="line-120">                
loader = null;</span>
+<span class="source-line-no">121</span><span id="line-121">            } catch 
(final IllegalAccessException ex) {</span>
+<span class="source-line-no">122</span><span id="line-122">                // 
This is not expected; every ancestor class should be accessible</span>
+<span class="source-line-no">123</span><span id="line-123">                
System.err.println("LogFactory instance found which is not accessible!");</span>
+<span class="source-line-no">124</span><span id="line-124">                
loader = null;</span>
+<span class="source-line-no">125</span><span id="line-125">            } catch 
(final InvocationTargetException ex) {</span>
+<span class="source-line-no">126</span><span id="line-126">                // 
This is not expected</span>
+<span class="source-line-no">127</span><span id="line-127">                
System.err.println("LogFactory instance release method failed!");</span>
+<span class="source-line-no">128</span><span id="line-128">                
loader = null;</span>
+<span class="source-line-no">129</span><span id="line-129">            }</span>
+<span class="source-line-no">130</span><span id="line-130">        }</span>
+<span class="source-line-no">131</span><span id="line-131"></span>
+<span class="source-line-no">132</span><span id="line-132">        // Just to 
be sure, invoke release on the LogFactory that is visible from</span>
+<span class="source-line-no">133</span><span id="line-133">        // this 
ServletContextCleaner class too. This should already have been caught</span>
+<span class="source-line-no">134</span><span id="line-134">        // by the 
above loop but just in case...</span>
+<span class="source-line-no">135</span><span id="line-135">        
LogFactory.release(tccl);</span>
+<span class="source-line-no">136</span><span id="line-136">    }</span>
+<span class="source-line-no">137</span><span id="line-137"></span>
+<span class="source-line-no">138</span><span id="line-138">    /**</span>
+<span class="source-line-no">139</span><span id="line-139">     * Invoked when 
a webapp is deployed. Nothing needs to be done here.</span>
+<span class="source-line-no">140</span><span id="line-140">     */</span>
+<span class="source-line-no">141</span><span id="line-141">    @Override</span>
+<span class="source-line-no">142</span><span id="line-142">    public void 
contextInitialized(final ServletContextEvent sce) {</span>
+<span class="source-line-no">143</span><span id="line-143">        // do 
nothing</span>
+<span class="source-line-no">144</span><span id="line-144">    }</span>
+<span class="source-line-no">145</span><span id="line-145">}</span>
 
 
 

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/SimpleLog.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/SimpleLog.html
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/SimpleLog.html
 Wed May 15 16:57:04 2024
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html lang="en">
 <head>
-<!-- Generated by javadoc (17) -->
+<!-- Generated by javadoc (21) -->
 <title>Source code</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="description" content="source: package: 
org.apache.commons.logging.impl, class: SimpleLog">

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Slf4jLogFactory.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Slf4jLogFactory.html
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/Slf4jLogFactory.html
 Wed May 15 16:57:04 2024
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html lang="en">
 <head>
-<!-- Generated by javadoc (17) -->
+<!-- Generated by javadoc (21) -->
 <title>Source code</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="description" content="source: package: 
org.apache.commons.logging.impl, class: Slf4jLogFactory">
@@ -279,60 +279,68 @@
 <span class="source-line-no">266</span><span id="line-266"></span>
 <span class="source-line-no">267</span><span id="line-267">    private final 
ConcurrentMap&lt;String, Object&gt; attributes = new 
ConcurrentHashMap&lt;&gt;();</span>
 <span class="source-line-no">268</span><span id="line-268"></span>
-<span class="source-line-no">269</span><span id="line-269">    @Override</span>
-<span class="source-line-no">270</span><span id="line-270">    public Object 
getAttribute(final String name) {</span>
-<span class="source-line-no">271</span><span id="line-271">        return 
attributes.get(name);</span>
-<span class="source-line-no">272</span><span id="line-272">    }</span>
-<span class="source-line-no">273</span><span id="line-273"></span>
-<span class="source-line-no">274</span><span id="line-274">    @Override</span>
-<span class="source-line-no">275</span><span id="line-275">    public String[] 
getAttributeNames() {</span>
-<span class="source-line-no">276</span><span id="line-276">        return 
attributes.keySet().toArray(EMPTY_STRING_ARRAY);</span>
-<span class="source-line-no">277</span><span id="line-277">    }</span>
-<span class="source-line-no">278</span><span id="line-278"></span>
-<span class="source-line-no">279</span><span id="line-279">    @Override</span>
-<span class="source-line-no">280</span><span id="line-280">    public Log 
getInstance(final Class&lt;?&gt; clazz) throws LogConfigurationException 
{</span>
-<span class="source-line-no">281</span><span id="line-281">        return 
getInstance(clazz.getName());</span>
-<span class="source-line-no">282</span><span id="line-282">    }</span>
-<span class="source-line-no">283</span><span id="line-283"></span>
-<span class="source-line-no">284</span><span id="line-284">    @Override</span>
-<span class="source-line-no">285</span><span id="line-285">    public Log 
getInstance(final String name) {</span>
-<span class="source-line-no">286</span><span id="line-286">        return 
loggers.computeIfAbsent(name, n -&gt; {</span>
-<span class="source-line-no">287</span><span id="line-287">            final 
Logger logger = LoggerFactory.getLogger(n);</span>
-<span class="source-line-no">288</span><span id="line-288">            return 
logger instanceof LocationAwareLogger ? new 
Slf4jLocationAwareLog((LocationAwareLogger) logger) : new Slf4jLog(</span>
-<span class="source-line-no">289</span><span id="line-289">                    
logger);</span>
-<span class="source-line-no">290</span><span id="line-290">        });</span>
-<span class="source-line-no">291</span><span id="line-291">    }</span>
-<span class="source-line-no">292</span><span id="line-292"></span>
-<span class="source-line-no">293</span><span id="line-293">    /**</span>
-<span class="source-line-no">294</span><span id="line-294">     * This method 
is supposed to clear all loggers.</span>
-<span class="source-line-no">295</span><span id="line-295">     * 
&lt;p&gt;</span>
-<span class="source-line-no">296</span><span id="line-296">     * In this 
implementation it calls a "stop" method if the logger factory supports it. This 
is the case of</span>
-<span class="source-line-no">297</span><span id="line-297">     * 
Logback.</span>
-<span class="source-line-no">298</span><span id="line-298">     * 
&lt;/p&gt;</span>
-<span class="source-line-no">299</span><span id="line-299">     */</span>
-<span class="source-line-no">300</span><span id="line-300">    @Override</span>
-<span class="source-line-no">301</span><span id="line-301">    public void 
release() {</span>
-<span class="source-line-no">302</span><span id="line-302">        final 
ILoggerFactory factory = LoggerFactory.getILoggerFactory();</span>
-<span class="source-line-no">303</span><span id="line-303">        try {</span>
-<span class="source-line-no">304</span><span id="line-304">            
factory.getClass().getMethod("stop").invoke(factory);</span>
-<span class="source-line-no">305</span><span id="line-305">        } catch 
(final ReflectiveOperationException ignored) {</span>
-<span class="source-line-no">306</span><span id="line-306">        }</span>
-<span class="source-line-no">307</span><span id="line-307">    }</span>
-<span class="source-line-no">308</span><span id="line-308"></span>
-<span class="source-line-no">309</span><span id="line-309">    @Override</span>
-<span class="source-line-no">310</span><span id="line-310">    public void 
removeAttribute(final String name) {</span>
-<span class="source-line-no">311</span><span id="line-311">        
attributes.remove(name);</span>
-<span class="source-line-no">312</span><span id="line-312">    }</span>
-<span class="source-line-no">313</span><span id="line-313"></span>
-<span class="source-line-no">314</span><span id="line-314">    @Override</span>
-<span class="source-line-no">315</span><span id="line-315">    public void 
setAttribute(final String name, final Object value) {</span>
-<span class="source-line-no">316</span><span id="line-316">        if (value 
!= null) {</span>
-<span class="source-line-no">317</span><span id="line-317">            
attributes.put(name, value);</span>
-<span class="source-line-no">318</span><span id="line-318">        } else 
{</span>
-<span class="source-line-no">319</span><span id="line-319">            
removeAttribute(name);</span>
-<span class="source-line-no">320</span><span id="line-320">        }</span>
-<span class="source-line-no">321</span><span id="line-321">    }</span>
-<span class="source-line-no">322</span><span id="line-322">}</span>
+<span class="source-line-no">269</span><span id="line-269">    /**</span>
+<span class="source-line-no">270</span><span id="line-270">     * Constructs a 
new instance.</span>
+<span class="source-line-no">271</span><span id="line-271">     */</span>
+<span class="source-line-no">272</span><span id="line-272">    public 
Slf4jLogFactory() {</span>
+<span class="source-line-no">273</span><span id="line-273">        // 
empty</span>
+<span class="source-line-no">274</span><span id="line-274">    }</span>
+<span class="source-line-no">275</span><span id="line-275"></span>
+<span class="source-line-no">276</span><span id="line-276">    @Override</span>
+<span class="source-line-no">277</span><span id="line-277">    public Object 
getAttribute(final String name) {</span>
+<span class="source-line-no">278</span><span id="line-278">        return 
attributes.get(name);</span>
+<span class="source-line-no">279</span><span id="line-279">    }</span>
+<span class="source-line-no">280</span><span id="line-280"></span>
+<span class="source-line-no">281</span><span id="line-281">    @Override</span>
+<span class="source-line-no">282</span><span id="line-282">    public String[] 
getAttributeNames() {</span>
+<span class="source-line-no">283</span><span id="line-283">        return 
attributes.keySet().toArray(EMPTY_STRING_ARRAY);</span>
+<span class="source-line-no">284</span><span id="line-284">    }</span>
+<span class="source-line-no">285</span><span id="line-285"></span>
+<span class="source-line-no">286</span><span id="line-286">    @Override</span>
+<span class="source-line-no">287</span><span id="line-287">    public Log 
getInstance(final Class&lt;?&gt; clazz) throws LogConfigurationException 
{</span>
+<span class="source-line-no">288</span><span id="line-288">        return 
getInstance(clazz.getName());</span>
+<span class="source-line-no">289</span><span id="line-289">    }</span>
+<span class="source-line-no">290</span><span id="line-290"></span>
+<span class="source-line-no">291</span><span id="line-291">    @Override</span>
+<span class="source-line-no">292</span><span id="line-292">    public Log 
getInstance(final String name) {</span>
+<span class="source-line-no">293</span><span id="line-293">        return 
loggers.computeIfAbsent(name, n -&gt; {</span>
+<span class="source-line-no">294</span><span id="line-294">            final 
Logger logger = LoggerFactory.getLogger(n);</span>
+<span class="source-line-no">295</span><span id="line-295">            return 
logger instanceof LocationAwareLogger ? new 
Slf4jLocationAwareLog((LocationAwareLogger) logger) : new Slf4jLog(</span>
+<span class="source-line-no">296</span><span id="line-296">                    
logger);</span>
+<span class="source-line-no">297</span><span id="line-297">        });</span>
+<span class="source-line-no">298</span><span id="line-298">    }</span>
+<span class="source-line-no">299</span><span id="line-299"></span>
+<span class="source-line-no">300</span><span id="line-300">    /**</span>
+<span class="source-line-no">301</span><span id="line-301">     * This method 
is supposed to clear all loggers.</span>
+<span class="source-line-no">302</span><span id="line-302">     * 
&lt;p&gt;</span>
+<span class="source-line-no">303</span><span id="line-303">     * In this 
implementation it calls a "stop" method if the logger factory supports it. This 
is the case of</span>
+<span class="source-line-no">304</span><span id="line-304">     * 
Logback.</span>
+<span class="source-line-no">305</span><span id="line-305">     * 
&lt;/p&gt;</span>
+<span class="source-line-no">306</span><span id="line-306">     */</span>
+<span class="source-line-no">307</span><span id="line-307">    @Override</span>
+<span class="source-line-no">308</span><span id="line-308">    public void 
release() {</span>
+<span class="source-line-no">309</span><span id="line-309">        final 
ILoggerFactory factory = LoggerFactory.getILoggerFactory();</span>
+<span class="source-line-no">310</span><span id="line-310">        try {</span>
+<span class="source-line-no">311</span><span id="line-311">            
factory.getClass().getMethod("stop").invoke(factory);</span>
+<span class="source-line-no">312</span><span id="line-312">        } catch 
(final ReflectiveOperationException ignored) {</span>
+<span class="source-line-no">313</span><span id="line-313">            // 
empty</span>
+<span class="source-line-no">314</span><span id="line-314">        }</span>
+<span class="source-line-no">315</span><span id="line-315">    }</span>
+<span class="source-line-no">316</span><span id="line-316"></span>
+<span class="source-line-no">317</span><span id="line-317">    @Override</span>
+<span class="source-line-no">318</span><span id="line-318">    public void 
removeAttribute(final String name) {</span>
+<span class="source-line-no">319</span><span id="line-319">        
attributes.remove(name);</span>
+<span class="source-line-no">320</span><span id="line-320">    }</span>
+<span class="source-line-no">321</span><span id="line-321"></span>
+<span class="source-line-no">322</span><span id="line-322">    @Override</span>
+<span class="source-line-no">323</span><span id="line-323">    public void 
setAttribute(final String name, final Object value) {</span>
+<span class="source-line-no">324</span><span id="line-324">        if (value 
!= null) {</span>
+<span class="source-line-no">325</span><span id="line-325">            
attributes.put(name, value);</span>
+<span class="source-line-no">326</span><span id="line-326">        } else 
{</span>
+<span class="source-line-no">327</span><span id="line-327">            
removeAttribute(name);</span>
+<span class="source-line-no">328</span><span id="line-328">        }</span>
+<span class="source-line-no">329</span><span id="line-329">    }</span>
+<span class="source-line-no">330</span><span id="line-330">}</span>
 
 
 

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/WeakHashtable.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/WeakHashtable.html
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/src-html/org/apache/commons/logging/impl/WeakHashtable.html
 Wed May 15 16:57:04 2024
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML>
 <html lang="en">
 <head>
-<!-- Generated by javadoc (17) -->
+<!-- Generated by javadoc (21) -->
 <title>Source code</title>
 <meta name="viewport" content="width=device-width, initial-scale=1">
 <meta name="description" content="source: package: 
org.apache.commons.logging.impl, class: WeakHashtable">
@@ -119,7 +119,7 @@
 <span class="source-line-no">106</span><span id="line-106"> * for most or all 
users.</span>
 <span class="source-line-no">107</span><span id="line-107"> *</span>
 <span class="source-line-no">108</span><span id="line-108"> * @since 1.1</span>
-<span class="source-line-no">109</span><span id="line-109"> * @deprecated No 
longer used.</span>
+<span class="source-line-no">109</span><span id="line-109"> * @deprecated No 
longer used, will be removed in 2.0.</span>
 <span class="source-line-no">110</span><span id="line-110"> */</span>
 <span class="source-line-no">111</span><span id="line-111">@Deprecated</span>
 <span class="source-line-no">112</span><span id="line-112">public final class 
WeakHashtable extends Hashtable {</span>

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/stylesheet.css
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/stylesheet.css
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/stylesheet.css
 Wed May 15 16:57:04 2024
@@ -5,17 +5,72 @@
 @import url('resources/fonts/dejavu.css');
 
 /*
+ * These CSS custom properties (variables) define the core color and font
+ * properties used in this stylesheet.
+ */
+:root {
+    /* body, block and code fonts */
+    --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
+    --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, 
serif;
+    --code-font-family: 'DejaVu Sans Mono', monospace;
+    /* Base font sizes for body and code elements */
+    --body-font-size: 14px;
+    --code-font-size: 14px;
+    /* Text colors for body and block elements */
+    --body-text-color: #353833;
+    --block-text-color: #474747;
+    /* Background colors for various structural elements */
+    --body-background-color: #ffffff;
+    --section-background-color: #f8f8f8;
+    --detail-background-color: #ffffff;
+    /* Colors for navigation bar and table captions */
+    --navbar-background-color: #4D7A97;
+    --navbar-text-color: #ffffff;
+    /* Background color for subnavigation and various headers */
+    --subnav-background-color: #dee3e9;
+    /* Background and text colors for selected tabs and navigation items */
+    --selected-background-color: #f8981d;
+    --selected-text-color: #253441;
+    --selected-link-color: #1f389c;
+    /* Background colors for generated tables */
+    --even-row-color: #ffffff;
+    --odd-row-color: #eeeeef;
+    /* Text color for page title */
+    --title-color: #2c4557;
+    /* Text colors for links */
+    --link-color: #4A6782;
+    --link-color-active: #bb7a2a;
+    /* Snippet colors */
+    --snippet-background-color: #ebecee;
+    --snippet-text-color: var(--block-text-color);
+    --snippet-highlight-color: #f7c590;
+    /* Border colors for structural elements and user defined tables */
+    --border-color: #ededed;
+    --table-border-color: #000000;
+    /* Search input colors */
+    --search-input-background-color: #ffffff;
+    --search-input-text-color: #000000;
+    --search-input-placeholder-color: #909090;
+    /* Highlight color for active search tag target */
+    --search-tag-highlight-color: #ffff00;
+    /* Adjustments for icon and active background colors of copy-to-clipboard 
buttons */
+    --copy-icon-brightness: 100%;
+    --copy-button-background-color-active: rgba(168, 168, 176, 0.3);
+    /* Colors for invalid tag notifications */
+    --invalid-tag-background-color: #ffe6e6;
+    --invalid-tag-text-color: #000000;
+}
+/*
  * Styles for individual HTML elements.
  *
  * These are styles that are specific to individual HTML elements. Changing 
them affects the style of a particular
  * HTML element throughout the page.
  */
-
 body {
-    background-color:#ffffff;
-    color:#353833;
-    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
-    font-size:14px;
+    background-color:var(--body-background-color);
+    color:var(--body-text-color);
+    font-family:var(--body-font-family);
+    font-size:var(--body-font-size);
     margin:0;
     padding:0;
     height:100%;
@@ -31,58 +86,59 @@ iframe {
 }
 a:link, a:visited {
     text-decoration:none;
-    color:#4A6782;
+    color:var(--link-color);
 }
 a[href]:hover, a[href]:focus {
     text-decoration:none;
-    color:#bb7a2a;
-}
-a[name] {
-    color:#353833;
+    color:var(--link-color-active);
 }
 pre {
-    font-family:'DejaVu Sans Mono', monospace;
-    font-size:14px;
+    font-family:var(--code-font-family);
+    font-size:1em;
 }
 h1 {
-    font-size:20px;
+    font-size:1.428em;
 }
 h2 {
-    font-size:18px;
+    font-size:1.285em;
 }
 h3 {
-    font-size:16px;
+    font-size:1.14em;
 }
 h4 {
-    font-size:15px;
+    font-size:1.072em;
 }
 h5 {
-    font-size:14px;
+    font-size:1.001em;
 }
 h6 {
-    font-size:13px;
+    font-size:0.93em;
+}
+/* Disable font boosting for selected elements */
+h1, h2, h3, h4, h5, h6, div.member-signature {
+    max-height: 1000em;
 }
 ul {
     list-style-type:disc;
 }
 code, tt {
-    font-family:'DejaVu Sans Mono', monospace;
+    font-family:var(--code-font-family);
 }
 :not(h1, h2, h3, h4, h5, h6) > code,
 :not(h1, h2, h3, h4, h5, h6) > tt {
-    font-size:14px;
+    font-size:var(--code-font-size);
     padding-top:4px;
     margin-top:8px;
     line-height:1.4em;
 }
 dt code {
-    font-family:'DejaVu Sans Mono', monospace;
-    font-size:14px;
+    font-family:var(--code-font-family);
+    font-size:1em;
     padding-top:4px;
 }
 .summary-table dt code {
-    font-family:'DejaVu Sans Mono', monospace;
-    font-size:14px;
+    font-family:var(--code-font-family);
+    font-size:1em;
     vertical-align:top;
     padding-top:4px;
 }
@@ -90,8 +146,8 @@ sup {
     font-size:8px;
 }
 button {
-    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
-    font-size: 14px;
+    font-family: var(--body-font-family);
+    font-size: 1em;
 }
 /*
  * Styles for HTML generated by javadoc.
@@ -102,74 +158,67 @@ button {
 /*
  * Styles for document title and copyright.
  */
-.clear {
-    clear:both;
-    height:0;
-    overflow:hidden;
-}
 .about-language {
     float:right;
     padding:0 21px 8px 8px;
-    font-size:11px;
+    font-size:0.915em;
     margin-top:-9px;
     height:2.9em;
 }
 .legal-copy {
     margin-left:.5em;
 }
-.tab {
-    background-color:#0066FF;
-    color:#ffffff;
-    padding:8px;
-    width:5em;
-    font-weight:bold;
-}
 /*
  * Styles for navigation bar.
  */
 @media screen {
-    .flex-box {
+    div.flex-box {
         position:fixed;
         display:flex;
         flex-direction:column;
         height: 100%;
         width: 100%;
     }
-    .flex-header {
+    header.flex-header {
         flex: 0 0 auto;
     }
-    .flex-content {
+    div.flex-content {
         flex: 1 1 auto;
         overflow-y: auto;
     }
 }
 .top-nav {
-    background-color:#4D7A97;
-    color:#FFFFFF;
+    background-color:var(--navbar-background-color);
+    color:var(--navbar-text-color);
     float:left;
-    padding:0;
     width:100%;
     clear:right;
     min-height:2.8em;
-    padding-top:10px;
+    padding:10px 0 0 0;
     overflow:hidden;
-    font-size:12px;
+    font-size:0.857em;
+}
+button#navbar-toggle-button {
+    display:none;
+}
+ul.sub-nav-list-small {
+    display: none;
 }
 .sub-nav {
-    background-color:#dee3e9;
+    background-color:var(--subnav-background-color);
     float:left;
     width:100%;
     overflow:hidden;
-    font-size:12px;
+    font-size:0.857em;
 }
 .sub-nav div {
     clear:left;
     float:left;
-    padding:0 0 5px 6px;
+    padding:6px;
     text-transform:uppercase;
 }
-.sub-nav .nav-list {
-    padding-top:5px;
+.sub-nav .sub-nav-list {
+    padding-top:4px;
 }
 ul.nav-list {
     display:block;
@@ -189,32 +238,27 @@ ul.nav-list li {
 }
 .sub-nav .nav-list-search {
     float:right;
-    margin:0 0 0 0;
-    padding:5px 6px;
+    margin:0;
+    padding:6px;
     clear:none;
-}
-.nav-list-search label {
+    text-align:right;
     position:relative;
-    right:-16px;
 }
 ul.sub-nav-list li {
     list-style:none;
     float:left;
-    padding-top:10px;
 }
 .top-nav a:link, .top-nav a:active, .top-nav a:visited {
-    color:#FFFFFF;
+    color:var(--navbar-text-color);
     text-decoration:none;
     text-transform:uppercase;
 }
 .top-nav a:hover {
-    text-decoration:none;
-    color:#bb7a2a;
-    text-transform:uppercase;
+    color:var(--link-color-active);
 }
 .nav-bar-cell1-rev {
-    background-color:#F8981D;
-    color:#253441;
+    background-color:var(--selected-background-color);
+    color:var(--selected-text-color);
     margin: auto 5px;
 }
 .skip-nav {
@@ -232,30 +276,30 @@ ul.sub-nav-list li {
     }
 }
 /*
- * Styles for page header and footer.
+ * Styles for page header.
  */
 .title {
-    color:#2c4557;
+    color:var(--title-color);
     margin:10px 0;
 }
 .sub-title {
     margin:5px 0 0 0;
 }
-.header ul {
-    margin:0 0 15px 0;
-    padding:0;
+ul.contents-list {
+    margin: 0 0 15px 0;
+    padding: 0;
+    list-style: none;
 }
-.header ul li, .footer ul li {
-    list-style:none;
-    font-size:13px;
+ul.contents-list li {
+    font-size:0.93em;
 }
 /*
  * Styles for headings.
  */
 body.class-declaration-page .summary h2,
 body.class-declaration-page .details h2,
-body.class-use-page  h2,
-body.module-declaration-page  .block-list h2 {
+body.class-use-page h2,
+body.module-declaration-page .block-list h2 {
     font-style: italic;
     padding:0;
     margin:15px 0;
@@ -263,8 +307,8 @@ body.module-declaration-page  .block-lis
 body.class-declaration-page .summary h3,
 body.class-declaration-page .details h3,
 body.class-declaration-page .summary .inherited-list h2 {
-    background-color:#dee3e9;
-    border:1px solid #d0d9e0;
+    background-color:var(--subnav-background-color);
+    border:1px solid var(--border-color);
     margin:0 0 6px -8px;
     padding:7px 5px;
 }
@@ -277,16 +321,16 @@ main {
     position:relative;
 }
 dl.notes > dt {
-    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
-    font-size:12px;
+    font-family: var(--body-font-family);
+    font-size:0.856em;
     font-weight:bold;
     margin:10px 0 0 0;
-    color:#4E4E4E;
+    color:var(--body-text-color);
 }
 dl.notes > dd {
     margin:5px 10px 10px 0;
-    font-size:14px;
-    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+    font-size:1em;
+    font-family:var(--block-font-family)
 }
 dl.name-value > dt {
     margin-left:1px;
@@ -331,121 +375,160 @@ ul.summary-list > li {
     margin-bottom:15px;
     line-height:1.4;
 }
+ul.ref-list {
+  padding:0;
+  margin:0;
+}
+ul.ref-list > li {
+    list-style:none;
+}
 .summary-table dl, .summary-table dl dt, .summary-table dl dd {
     margin-top:0;
     margin-bottom:1px;
 }
-ul.see-list, ul.see-list-long {
+ul.tag-list, ul.tag-list-long {
     padding-left: 0;
     list-style: none;
 }
-ul.see-list li {
+ul.tag-list li {
     display: inline;
 }
-ul.see-list li:not(:last-child):after,
-ul.see-list-long li:not(:last-child):after {
+ul.tag-list li:not(:last-child):after,
+ul.tag-list-long li:not(:last-child):after
+{
     content: ", ";
     white-space: pre-wrap;
 }
+ul.preview-feature-list {
+    list-style: none;
+    margin:0;
+    padding:0.1em;
+    line-height: 1.6em;
+}
 /*
  * Styles for tables.
  */
 .summary-table, .details-table {
     width:100%;
     border-spacing:0;
-    border-left:1px solid #EEE;
-    border-right:1px solid #EEE;
-    border-bottom:1px solid #EEE;
+    border:1px solid var(--border-color);
+    border-top:0;
     padding:0;
 }
 .caption {
     position:relative;
     text-align:left;
     background-repeat:no-repeat;
-    color:#253441;
-    font-weight:bold;
+    color:var(--selected-text-color);
     clear:none;
     overflow:hidden;
-    padding:0;
-    padding-top:10px;
-    padding-left:1px;
+    padding: 10px 0 0 1px;
     margin:0;
-    white-space:pre;
 }
 .caption a:link, .caption a:visited {
-    color:#1f389c;
+    color:var(--selected-link-color);
 }
 .caption a:hover,
 .caption a:active {
-    color:#FFFFFF;
+    color:var(--navbar-text-color);
 }
 .caption span {
+    font-weight:bold;
     white-space:nowrap;
-    padding-top:5px;
-    padding-left:12px;
-    padding-right:12px;
-    padding-bottom:7px;
+    padding:5px 12px 7px 12px;
     display:inline-block;
     float:left;
-    background-color:#F8981D;
+    background-color:var(--selected-background-color);
     border: none;
     height:16px;
 }
 div.table-tabs {
     padding:10px 0 0 1px;
-    margin:0;
+    margin:10px 0 0 0;
 }
 div.table-tabs > button {
-   border: none;
-   cursor: pointer;
-   padding: 5px 12px 7px 12px;
-   font-weight: bold;
-   margin-right: 3px;
-}
-div.table-tabs > button.active-table-tab {
-   background: #F8981D;
-   color: #253441;
+    border: none;
+    cursor: pointer;
+    padding: 5px 12px 7px 12px;
+    font-weight: bold;
+    margin-right: 8px;
+}
+div.table-tabs > .active-table-tab {
+    background: var(--selected-background-color);
+    color: var(--selected-text-color);
 }
 div.table-tabs > button.table-tab {
-   background: #4D7A97;
-   color: #FFFFFF;
+    background: var(--navbar-background-color);
+    color: var(--navbar-text-color);
+}
+.two-column-search-results {
+    display: grid;
+    grid-template-columns: minmax(400px, max-content) minmax(400px, auto);
+}
+div.checkboxes {
+    line-height: 2em;
+}
+div.checkboxes > span {
+    margin-left: 10px;
+}
+div.checkboxes > label {
+    margin-left: 8px;
+    white-space: nowrap;
+}
+div.checkboxes > label > input {
+    margin: 0 2px;
 }
 .two-column-summary {
     display: grid;
-    grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
+    grid-template-columns: minmax(25%, max-content) minmax(25%, auto);
 }
 .three-column-summary {
     display: grid;
-    grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) 
minmax(15%, auto);
+    grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) 
minmax(20%, auto);
+}
+.three-column-release-summary {
+    display: grid;
+    grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) 
minmax(40%, auto);
 }
 .four-column-summary {
     display: grid;
-    grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) 
minmax(10%, max-content) minmax(10%, auto);
+    grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) 
minmax(15%, max-content) minmax(15%, auto);
 }
-@media screen and (max-width: 600px) {
-    .two-column-summary {
+@media screen and (max-width: 1000px) {
+    .four-column-summary {
         display: grid;
-        grid-template-columns: 1fr;
+        grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
     }
 }
 @media screen and (max-width: 800px) {
+    .two-column-search-results {
+        display: grid;
+        grid-template-columns: minmax(40%, max-content) minmax(40%, auto);
+    }
     .three-column-summary {
         display: grid;
         grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
     }
-    .three-column-summary .col-last {
+    .three-column-release-summary {
+        display: grid;
+        grid-template-columns: minmax(70%, max-content) minmax(30%, 
max-content)
+    }
+    .three-column-summary .col-last,
+    .three-column-release-summary .col-last{
         grid-column-end: span 2;
     }
 }
-@media screen and (max-width: 1000px) {
-    .four-column-summary {
+@media screen and (max-width: 600px) {
+    .two-column-summary {
         display: grid;
-        grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
+        grid-template-columns: 1fr;
     }
 }
 .summary-table > div, .details-table > div {
     text-align:left;
     padding: 8px 3px 3px 7px;
+    overflow-x: auto;
+    scrollbar-width: thin;
 }
 .col-first, .col-second, .col-last, .col-constructor-name, 
.col-summary-item-name {
     vertical-align:top;
@@ -454,14 +537,43 @@ div.table-tabs > button.table-tab {
     padding-bottom:3px;
 }
 .table-header {
-    background:#dee3e9;
+    background:var(--subnav-background-color);
     font-weight: bold;
 }
+/* Sortable table columns */
+.table-header[onclick] {
+    cursor: pointer;
+}
+.table-header[onclick]::after {
+    content:"";
+    display:inline-block;
+    background-image:url('data:image/svg+xml; utf8, \
+    <svg xmlns="http://www.w3.org/2000/svg"; width="125" height="170"> \
+    <path d="M10.101 57.059L63.019 4.142l52.917 52.917M10.101 86.392l52.917 
52.917 52.917-52.917" style="opacity:.35;"/></svg>');
+    background-size:100% 100%;
+    width:9px;
+    height:14px;
+    margin-left:4px;
+    margin-bottom:-3px;
+}
+.table-header[onclick].sort-asc::after {
+    background-image:url('data:image/svg+xml; utf8, \
+    <svg xmlns="http://www.w3.org/2000/svg"; width="125" height="170"> \
+    <path d="M10.101 57.059L63.019 4.142l52.917 52.917" style="opacity:.75;"/> 
\
+    <path d="M10.101 86.392l52.917 52.917 52.917-52.917" 
style="opacity:.35;"/></svg>');
+
+}
+.table-header[onclick].sort-desc::after {
+    background-image:url('data:image/svg+xml; utf8, \
+    <svg xmlns="http://www.w3.org/2000/svg"; width="125" height="170"> \
+    <path d="M10.101 57.059L63.019 4.142l52.917 52.917" style="opacity:.35;"/> 
\
+    <path d="M10.101 86.392l52.917 52.917 52.917-52.917" 
style="opacity:.75;"/></svg>');
+}
 .col-first, .col-first {
-    font-size:13px;
+    font-size:0.93em;
 }
 .col-second, .col-second, .col-last, .col-constructor-name, 
.col-summary-item-name, .col-last {
-    font-size:13px;
+    font-size:0.93em;
 }
 .col-first, .col-second, .col-constructor-name {
     vertical-align:top;
@@ -475,31 +587,21 @@ div.table-tabs > button.table-tab {
 .col-first a:link, .col-first a:visited,
 .col-second a:link, .col-second a:visited,
 .col-constructor-name a:link, .col-constructor-name a:visited,
-.col-summary-item-name a:link, .col-summary-item-name a:visited,
-.constant-values-container a:link, .constant-values-container a:visited,
-.all-classes-container a:link, .all-classes-container a:visited,
-.all-packages-container a:link, .all-packages-container a:visited {
+.col-summary-item-name a:link, .col-summary-item-name a:visited {
     font-weight:bold;
 }
-.table-sub-heading-color {
-    background-color:#EEEEFF;
-}
 .even-row-color, .even-row-color .table-header {
-    background-color:#FFFFFF;
+    background-color:var(--even-row-color);
 }
 .odd-row-color, .odd-row-color .table-header {
-    background-color:#EEEEEF;
+    background-color:var(--odd-row-color);
 }
 /*
  * Styles for contents.
  */
-.deprecated-content {
-    margin:0;
-    padding:10px 0;
-}
 div.block {
-    font-size:14px;
-    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+    font-size:var(--body-font-size);
+    font-family:var(--block-font-family);
 }
 .col-last div {
     padding-top:0;
@@ -511,8 +613,8 @@ div.block {
 .package-signature,
 .type-signature,
 .member-signature {
-    font-family:'DejaVu Sans Mono', monospace;
-    font-size:14px;
+    font-family:var(--code-font-family);
+    font-size:1em;
     margin:14px 0;
     white-space: pre-wrap;
 }
@@ -535,21 +637,17 @@ div.block {
  * Styles for formatting effect.
  */
 .source-line-no {
-    color:green;
+    /* Color of line numbers in source pages can be set via custom property 
below */
+    color:var(--source-linenumber-color, green);
     padding:0 30px 0 0;
 }
-h1.hidden {
-    visibility:hidden;
-    overflow:hidden;
-    font-size:10px;
-}
 .block {
     display:block;
     margin:0 10px 5px 0;
-    color:#474747;
+    color:var(--block-text-color);
 }
-.deprecated-label, .descfrm-type-label, .implementation-label, 
.member-name-label, .member-name-link,
-.module-label-in-package, .module-label-in-type, .override-specify-label, 
.package-label-in-type,
+.deprecated-label, .description-from-type-label, .implementation-label, 
.member-name-link,
+.module-label-in-package, .module-label-in-type, .package-label-in-type,
 .package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, 
.preview-label {
     font-weight:bold;
 }
@@ -557,8 +655,8 @@ h1.hidden {
     font-style:italic;
 }
 .deprecation-block {
-    font-size:14px;
-    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+    font-size:1em;
+    font-family:var(--block-font-family);
     border-style:solid;
     border-width:thin;
     border-radius:10px;
@@ -568,8 +666,8 @@ h1.hidden {
     display:inline-block;
 }
 .preview-block {
-    font-size:14px;
-    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+    font-size:1em;
+    font-family:var(--block-font-family);
     border-style:solid;
     border-width:thin;
     border-radius:10px;
@@ -581,6 +679,19 @@ h1.hidden {
 div.block div.deprecation-comment {
     font-style:normal;
 }
+details.invalid-tag, span.invalid-tag {
+    font-size:1em;
+    font-family:var(--block-font-family);
+    color: var(--invalid-tag-text-color);
+    background: var(--invalid-tag-background-color);
+    border: thin solid var(--table-border-color);
+    border-radius:2px;
+    padding: 2px 4px;
+    display:inline-block;
+}
+details summary {
+    cursor: pointer;
+}
 /*
  * Styles specific to HTML5 elements.
  */
@@ -590,66 +701,93 @@ main, nav, header, footer, section {
 /*
  * Styles for javadoc search.
  */
+.ui-state-active {
+    /* Overrides the color of selection used in jQuery UI */
+    background: var(--selected-background-color);
+    border: 1px solid var(--selected-background-color);
+    color: var(--selected-text-color);
+}
 .ui-autocomplete-category {
     font-weight:bold;
     font-size:15px;
     padding:7px 0 7px 3px;
-    background-color:#4D7A97;
-    color:#FFFFFF;
-}
-.result-item {
-    font-size:13px;
+    background-color:var(--navbar-background-color);
+    color:var(--navbar-text-color);
 }
 .ui-autocomplete {
     max-height:85%;
     max-width:65%;
-    overflow-y:scroll;
-    overflow-x:scroll;
+    overflow-y:auto;
+    overflow-x:auto;
+    scrollbar-width: thin;
     white-space:nowrap;
     box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
 }
 ul.ui-autocomplete {
     position:fixed;
-    z-index:999999;
-    background-color: #FFFFFF;
+    z-index:1;
+    background-color: var(--body-background-color);
 }
-ul.ui-autocomplete  li {
+ul.ui-autocomplete li {
     float:left;
     clear:both;
-    width:100%;
+    min-width:100%;
 }
-.result-highlight {
-    font-weight:bold;
+ul.ui-autocomplete li.ui-static-link {
+    position:sticky;
+    bottom:0;
+    left:0;
+    background: var(--subnav-background-color);
+    padding: 5px 0;
+    font-family: var(--body-font-family);
+    font-size: 0.93em;
+    font-weight: bolder;
+    z-index: 2;
+}
+li.ui-static-link a, li.ui-static-link a:visited {
+    text-decoration:none;
+    color:var(--link-color);
+    float:right;
+    margin-right:20px;
 }
 .ui-autocomplete .result-item {
     font-size: inherit;
 }
-#search-input {
+.ui-autocomplete .result-highlight {
+    font-weight:bold;
+}
+#search-input, #page-search-input {
     background-image:url('resources/glass.png');
     background-size:13px;
     background-repeat:no-repeat;
     background-position:2px 3px;
+    background-color: var(--search-input-background-color);
+    color: var(--search-input-text-color);
+    border-color: var(--border-color);
     padding-left:20px;
-    position:relative;
-    right:-18px;
-    width:400px;
+    width: 250px;
+    margin: 0;
+}
+#search-input {
+    margin-left: 4px;
 }
 #reset-button {
-    background-color: rgb(255,255,255);
+    background-color: transparent;
     background-image:url('resources/x.png');
-    background-position:center;
     background-repeat:no-repeat;
-    background-size:12px;
-    border:0 none;
-    width:16px;
-    height:16px;
-    position:relative;
-    left:-4px;
-    top:-4px;
-    font-size:0px;
-}
-.watermark {
-    color:#545454;
+    background-size:contain;
+    border:0;
+    border-radius:0;
+    width:12px;
+    height:12px;
+    position:absolute;
+    right:12px;
+    top:10px;
+    font-size:0;
+}
+::placeholder {
+    color:var(--search-input-placeholder-color);
+    opacity: 1;
 }
 .search-tag-desc-result {
     font-style:italic;
@@ -660,13 +798,55 @@ ul.ui-autocomplete  li {
     font-size:12px;
 }
 .search-tag-result:target {
-    background-color:yellow;
+    background-color:var(--search-tag-highlight-color);
+}
+details.page-search-details {
+    display: inline-block;
 }
-.module-graph span {
+div#result-container {
+    font-size: 1em;
+}
+div#result-container a.search-result-link {
+    padding: 0;
+    margin: 4px 0;
+    width: 100%;
+}
+#result-container .result-highlight {
+    font-weight:bolder;
+}
+.page-search-info {
+    background-color: var(--subnav-background-color);
+    border-radius: 3px;
+    border: 0 solid var(--border-color);
+    padding: 0 8px;
+    overflow: hidden;
+    height: 0;
+    transition: all 0.2s ease;
+}
+div.table-tabs > button.table-tab {
+    background: var(--navbar-background-color);
+    color: var(--navbar-text-color);
+}
+.page-search-header {
+    padding: 5px 12px 7px 12px;
+    font-weight: bold;
+    margin-right: 3px;
+    background-color:var(--navbar-background-color);
+    color:var(--navbar-text-color);
+    display: inline-block;
+}
+button.page-search-header {
+    border: none;
+    cursor: pointer;
+}
+span#page-search-link {
+    text-decoration: underline;
+}
+.module-graph span, .sealed-graph span {
     display:none;
     position:absolute;
 }
-.module-graph:hover span {
+.module-graph:hover span, .sealed-graph:hover span {
     display:block;
     margin: -100px 0 0 100px;
     z-index: 1;
@@ -679,13 +859,13 @@ section.class-description {
 }
 .summary section[class$="-summary"], .details section[class$="-details"],
 .class-uses .detail, .serialized-class-details {
-    padding: 0px 20px 5px 10px;
-    border: 1px solid #ededed;
-    background-color: #f8f8f8;
+    padding: 0 20px 5px 10px;
+    border: 1px solid var(--border-color);
+    background-color: var(--section-background-color);
 }
 .inherited-list, section[class$="-details"] .detail {
     padding:0 0 5px 8px;
-    background-color:#ffffff;
+    background-color:var(--detail-background-color);
     border:none;
 }
 .vertical-separator {
@@ -703,7 +883,7 @@ ul.help-subtoc > li::before {
   content: "\2022" ;
   padding-right:2px;
 }
-span.help-note {
+.help-note {
     font-style: italic;
 }
 /*
@@ -731,7 +911,111 @@ main a[href*="://"]:focus::after {
         132-240 240 120 120 240-240 132 132V0z" fill="%23bb7a2a"/>\
       </svg>');
 }
-
+/*
+ * Styles for header/section anchor links
+ */
+a.anchor-link {
+    opacity: 0;
+    transition: opacity 0.1s;
+}
+:hover > a.anchor-link {
+    opacity: 80%;
+}
+a.anchor-link:hover,
+a.anchor-link:focus-visible,
+a.anchor-link.visible {
+    opacity: 100%;
+}
+a.anchor-link > img {
+    width: 0.9em;
+    height: 0.9em;
+}
+/*
+ * Styles for copy-to-clipboard buttons
+ */
+button.copy {
+    opacity: 70%;
+    border: none;
+    border-radius: 3px;
+    position: relative;
+    background:none;
+    transition: opacity 0.3s;
+    cursor: pointer;
+}
+:hover > button.copy {
+    opacity: 80%;
+}
+button.copy:hover,
+button.copy:active,
+button.copy:focus-visible,
+button.copy.visible {
+    opacity: 100%;
+}
+button.copy img {
+    position: relative;
+    background: none;
+    filter: brightness(var(--copy-icon-brightness));
+}
+button.copy:active {
+    background-color: var(--copy-button-background-color-active);
+}
+button.copy span {
+    color: var(--body-text-color);
+    position: relative;
+    top: -0.1em;
+    transition: all 0.1s;
+    font-size: 0.76rem;
+    line-height: 1.2em;
+    opacity: 0;
+}
+button.copy:hover span,
+button.copy:focus-visible span,
+button.copy.visible span {
+    opacity: 100%;
+}
+/* search page copy button */
+button#page-search-copy {
+    margin-left: 0.4em;
+    padding:0.3em;
+    top:0.13em;
+}
+button#page-search-copy img {
+    width: 1.2em;
+    height: 1.2em;
+    padding: 0.01em 0;
+    top: 0.15em;
+}
+button#page-search-copy span {
+    color: var(--body-text-color);
+    line-height: 1.2em;
+    padding: 0.2em;
+    top: -0.18em;
+}
+div.page-search-info:hover button#page-search-copy span {
+    opacity: 100%;
+}
+/* snippet copy button */
+button.snippet-copy {
+    position: absolute;
+    top: 6px;
+    right: 6px;
+    height: 1.7em;
+    padding: 2px;
+}
+button.snippet-copy img {
+    width: 18px;
+    height: 18px;
+    padding: 0.05em 0;
+}
+button.snippet-copy span {
+    line-height: 1.2em;
+    padding: 0.2em;
+    position: relative;
+    top: -0.5em;
+}
+div.snippet-container:hover button.snippet-copy span {
+    opacity: 100%;
+}
 /*
  * Styles for user-provided tables.
  *
@@ -778,67 +1062,146 @@ table.borderless > thead > tr, table.bor
 }
 table.plain {
     border-collapse: collapse;
-    border: 1px solid black;
+    border: 1px solid var(--table-border-color);
 }
 table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
     background-color: transparent;
 }
 table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr 
> th,
 table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr 
> td {
-    border: 1px solid black;
+    border: 1px solid var(--table-border-color);
 }
 table.striped {
     border-collapse: collapse;
-    border: 1px solid black;
+    border: 1px solid var(--table-border-color);
 }
 table.striped > thead {
-    background-color: #E3E3E3;
+    background-color: var(--subnav-background-color);
 }
 table.striped > thead > tr > th, table.striped > thead > tr > td {
-    border: 1px solid black;
+    border: 1px solid var(--table-border-color);
 }
 table.striped > tbody > tr:nth-child(even) {
-    background-color: #EEE
+    background-color: var(--odd-row-color)
 }
 table.striped > tbody > tr:nth-child(odd) {
-    background-color: #FFF
+    background-color: var(--even-row-color)
 }
 table.striped > tbody > tr > th, table.striped > tbody > tr > td {
-    border-left: 1px solid black;
-    border-right: 1px solid black;
+    border-left: 1px solid var(--table-border-color);
+    border-right: 1px solid var(--table-border-color);
 }
 table.striped > tbody > tr > th {
     font-weight: normal;
 }
 /**
- * Tweak font sizes and paddings for small screens.
+ * Tweak style for small screens.
  */
-@media screen and (max-width: 1050px) {
-    #search-input {
-        width: 300px;
+@media screen and (max-width: 920px) {
+    header.flex-header {
+        max-height: 100vh;
+        overflow-y: auto;
     }
-}
-@media screen and (max-width: 800px) {
-    #search-input {
-        width: 200px;
+    div#navbar-top {
+        height: 2.8em;
+        transition: height 0.35s ease;
+    }
+    ul.nav-list {
+        display: block;
+        width: 40%;
+        float:left;
+        clear: left;
+        margin: 10px 0 0 0;
+        padding: 0;
     }
-    .top-nav,
-    .bottom-nav {
-        font-size: 11px;
-        padding-top: 6px;
+    ul.nav-list li {
+        float: none;
+        padding: 6px;
+        margin-left: 10px;
+        margin-top: 2px;
     }
-    .sub-nav {
-        font-size: 11px;
+    ul.sub-nav-list-small {
+        display:block;
+        height: 100%;
+        width: 50%;
+        float: right;
+        clear: right;
+        background-color: var(--subnav-background-color);
+        color: var(--body-text-color);
+        margin: 6px 0 0 0;
+        padding: 0;
+    }
+    ul.sub-nav-list-small ul {
+        padding-left: 20px;
+    }
+    ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited {
+        color:var(--link-color);
+    }
+    ul.sub-nav-list-small a:hover {
+        color:var(--link-color-active);
+    }
+    ul.sub-nav-list-small li {
+        list-style:none;
+        float:none;
+        padding: 6px;
+        margin-top: 1px;
+        text-transform:uppercase;
+    }
+    ul.sub-nav-list-small > li {
+        margin-left: 10px;
+    }
+    ul.sub-nav-list-small li p {
+        margin: 5px 0;
+    }
+    div#navbar-sub-list {
+        display: none;
+    }
+    .top-nav a:link, .top-nav a:active, .top-nav a:visited {
+        display: block;
+    }
+    button#navbar-toggle-button {
+        width: 3.4em;
+        height: 2.8em;
+        background-color: transparent;
+        display: block;
+        float: left;
+        border: 0;
+        margin: 0 10px;
+        cursor: pointer;
+        font-size: 10px;
     }
+    button#navbar-toggle-button .nav-bar-toggle-icon {
+        display: block;
+        width: 24px;
+        height: 3px;
+        margin: 1px 0 4px 0;
+        border-radius: 2px;
+        transition: all 0.1s;
+        background-color: var(--navbar-text-color);
+    }
+    button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) 
{
+        transform: rotate(45deg);
+        transform-origin: 10% 10%;
+        width: 26px;
+    }
+    button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) 
{
+        opacity: 0;
+    }
+    button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) 
{
+        transform: rotate(-45deg);
+        transform-origin: 10% 90%;
+        width: 26px;
+    }
+}
+@media screen and (max-width: 800px) {
     .about-language {
         padding-right: 16px;
     }
-    ul.nav-list li,
-    .sub-nav .nav-list-search {
-        padding: 6px;
+    ul.nav-list li {
+        margin-left: 5px;
     }
-    ul.sub-nav-list li {
-        padding-top: 5px;
+    ul.sub-nav-list-small > li {
+        margin-left: 5px;
     }
     main {
         padding: 10px;
@@ -851,19 +1214,59 @@ table.striped > tbody > tr > th {
         -webkit-text-size-adjust: none;
     }
 }
-@media screen and (max-width: 500px) {
-    #search-input {
-        width: 150px;
-    }
-    .top-nav,
-    .bottom-nav {
-        font-size: 10px;
-    }
-    .sub-nav {
-        font-size: 10px;
-    }
+@media screen and (max-width: 400px) {
     .about-language {
         font-size: 10px;
         padding-right: 12px;
     }
+}
+@media screen and (max-width: 400px) {
+    .nav-list-search {
+        width: 94%;
+    }
+    #search-input, #page-search-input {
+        width: 70%;
+    }
+}
+@media screen and (max-width: 320px) {
+    .nav-list-search > label {
+        display: none;
+    }
+    .nav-list-search {
+        width: 90%;
+    }
+    #search-input, #page-search-input {
+        width: 80%;
+    }
+}
+
+pre.snippet {
+    background-color: var(--snippet-background-color);
+    color: var(--snippet-text-color);
+    padding: 10px;
+    margin: 12px 0;
+    overflow: auto;
+    white-space: pre;
+}
+div.snippet-container {
+    position: relative;
+}
+@media screen and (max-width: 800px) {
+    pre.snippet {
+        padding-top: 26px;
+    }
+    button.snippet-copy {
+        top: 4px;
+        right: 4px;
+    }
+}
+pre.snippet .italic {
+    font-style: italic;
+}
+pre.snippet .bold {
+    font-weight: bold;
+}
+pre.snippet .highlighted {
+    background-color: var(--snippet-highlight-color);
+    border-radius: 10%;
 }
\ No newline at end of file

Modified: 
websites/production/commons/content/proper/commons-logging/apidocs/tag-search-index.js
==============================================================================
--- 
websites/production/commons/content/proper/commons-logging/apidocs/tag-search-index.js
 (original)
+++ 
websites/production/commons/content/proper/commons-logging/apidocs/tag-search-index.js
 Wed May 15 16:57:04 2024
@@ -1 +1 @@
-tagSearchIndex = [{"l":"Constant Field 
Values","h":"","u":"constant-values.html"},{"l":"Serialized 
Form","h":"","u":"serialized-form.html"}];updateSearchResults();
\ No newline at end of file
+tagSearchIndex = [{"l":"Choosing a LogFactory Implementation","h":"package 
org.apache.commons.logging","d":"Section","u":"org/apache/commons/logging/package-summary.html#choosing-a-logfactory-implementation-heading"},{"l":"Configuring
 the Commons Logging Package","h":"package 
org.apache.commons.logging","d":"Section","u":"org/apache/commons/logging/package-summary.html#configuring-the-commons-logging-package-heading"},{"l":"Configuring
 the Underlying Logging System","h":"package 
org.apache.commons.logging","d":"Section","u":"org/apache/commons/logging/package-summary.html#configuring-the-underlying-logging-system-heading"},{"l":"Constant
 Field Values","h":"","u":"constant-values.html"},{"l":"Overview","h":"package 
org.apache.commons.logging","d":"Section","u":"org/apache/commons/logging/package-summary.html#overview-heading"},{"l":"Quick
 Start Guide","h":"package 
org.apache.commons.logging","d":"Section","u":"org/apache/commons/logging/package-summary.html#quick-start-guide-heading"
 },{"l":"Serialized Form","h":"","u":"serialized-form.html"},{"l":"The Default 
LogFactory Implementation","h":"package 
org.apache.commons.logging","d":"Section","u":"org/apache/commons/logging/package-summary.html#the-default-logfactory-implementation-heading"},{"l":"Using
 the Logging Package APIs","h":"package 
org.apache.commons.logging","d":"Section","u":"org/apache/commons/logging/package-summary.html#using-the-logging-package-apis-heading"}];updateSearchResults();
\ No newline at end of file



Reply via email to