-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
OF-2717: Documenting the errors observed in plugins due to the Jetty …
…12 EE 8 upgrade. Information is also provided on the potential solutions to those errors.
- Loading branch information
Showing
1 changed file
with
250 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,250 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<title>Openfire: Overview</title> | ||
<link type="text/css" rel="stylesheet" href="style.css"> | ||
<style> | ||
dl { | ||
display: unset; | ||
} | ||
dt { | ||
margin-left: 4em; | ||
} | ||
dd { | ||
margin-left: 6em; | ||
margin-bottom: 1.5em; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
|
||
<article> | ||
|
||
<header> | ||
<img src="images/header_logo.gif" alt="Openfire Logo" /> | ||
<h1>Plugins Affected by Jetty 12 Upgrade</h1> | ||
</header> | ||
|
||
<h2>Overview</h2> | ||
<p> | ||
Openfire's upgrade to Jetty 12, using EE8 packages, is known to affect 16 plugins. Five types of errors have been identified across the affected plugins. The table below lists the plugins and the types of errors they are experiencing: | ||
</p> | ||
|
||
<section id="broken-plugins-list"> | ||
|
||
<table class="compliance"> | ||
<tbody> | ||
<tr> | ||
<th colspan="2">Broken Plugin Information</th> | ||
</tr> | ||
<tr> | ||
<th>Plugin Name</th> | ||
<th>Error Type</th> | ||
</tr> | ||
<tr> | ||
<td>Candy</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext</td> | ||
</tr> | ||
<tr> | ||
<td>Fastpath Service</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext</td> | ||
</tr> | ||
<tr> | ||
<td>Galene</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext</td> | ||
</tr> | ||
<tr> | ||
<td>Gitea</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/security/ConstraintSecurityHandler</td> | ||
</tr> | ||
<tr> | ||
<td>HTTP File Upload</td> | ||
<td>java.lang.VerifyError: Bad type on operand stack</td> | ||
</tr> | ||
<tr> | ||
<td>inVerse</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext</td> | ||
</tr> | ||
<tr> | ||
<td>IPFS</td> | ||
<td>java.lang.NoSuchMethodError: 'java.lang.String org.jivesoftware.util.JiveGlobals.getHomeDirectory()</td> | ||
</tr> | ||
<tr> | ||
<td>JSXC</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext</td> | ||
</tr> | ||
<tr> | ||
<td>Monitoring Service</td> | ||
<td>java.lang.VerifyError: Bad type on operand stack</td> | ||
</tr> | ||
<tr> | ||
<td>NodeJs</td> | ||
<td>java.lang.NoSuchMethodError: 'java.lang.String org.jivesoftware.util.JiveGlobals.getHomeDirectory()</td> | ||
</tr> | ||
<tr> | ||
<td>Ohun</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/security/ConstraintSecurityHandler</td> | ||
</tr> | ||
<tr> | ||
<td>Openfire WebSocket</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/servlet/WebSocketServlet</td> | ||
</tr> | ||
<tr> | ||
<td>osw-openfire-plugin</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext</td> | ||
</tr> | ||
<tr> | ||
<td>Pade</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/server/JettyWebSocketCreator</td> | ||
</tr> | ||
<tr> | ||
<td>Random Avatar Generator Plugin</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext</td> | ||
</tr> | ||
<tr> | ||
<td>xmppweb</td> | ||
<td>java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext</td> | ||
</tr> | ||
</tbody> | ||
|
||
</table> | ||
|
||
</section> | ||
|
||
<h2>Error Details and Potential Solutions</h2> | ||
<p> | ||
This section provides further details on the five types of errors observed and offers suggestions for addressing them. | ||
</p> | ||
|
||
<h3>java.lang.VerifyError</h3> | ||
<section id="verify-error"> | ||
<fieldset> | ||
<legend>Error found in openfire.log</legend> | ||
<pre><code>java.lang.VerifyError: Bad type on operand stack | ||
Exception Details: | ||
Location: | ||
org/eclipse/jetty/servlet/ServletContextHandler.setGzipHandler(Lorg/eclipse/jetty/server/handler/gzip/GzipHandler;)V @6: invokespecial | ||
Reason: | ||
Type 'org/eclipse/jetty/server/handler/gzip/GzipHandler' (current frame, stack[2]) is not assignable to 'org/eclipse/jetty/server/handler/HandlerWrapper' | ||
Current Frame: | ||
bci: @6 | ||
flags: { } | ||
locals: { 'org/eclipse/jetty/servlet/ServletContextHandler', 'org/eclipse/jetty/server/handler/gzip/GzipHandler' } | ||
stack: { 'org/eclipse/jetty/servlet/ServletContextHandler', 'org/eclipse/jetty/server/handler/gzip/GzipHandler', 'org/eclipse/jetty/server/handler/gzip/GzipHandler' } | ||
Bytecode: | ||
0000000: 2a2a b400 352b b700 762a 2bb5 0035 2ab7 | ||
0000010: 0018 b1 | ||
at org.jivesoftware.openfire.plugin.MonitoringPlugin.loadPublicWeb(MonitoringPlugin.java:279) ~[monitoring-2.6.1.jar:?] | ||
at org.jivesoftware.openfire.plugin.MonitoringPlugin.initializePlugin(MonitoringPlugin.java:186) ~[monitoring-2.6.1.jar:?] | ||
at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:640) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:380) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:368) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] | ||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] | ||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] | ||
at java.lang.Thread.run(Thread.java:840) [?:?] | ||
</code></pre> | ||
</fieldset> | ||
<p>Consider using <a href="https://javadoc.jetty.org/jetty-12/org/eclipse/jetty/server/Handler.Wrapper.html">org.eclipse.jetty.server.Handler.Wrapper</a> to replace org.eclipse.jetty.server.handler.HandlerWrapper.</p> | ||
</section> | ||
|
||
<h3>org.eclipse.jetty.webapp.WebAppContext</h3> | ||
<section id="web-app-context"> | ||
<fieldset> | ||
<legend>Error found in openfire.log</legend> | ||
<pre><code>java.lang.NoClassDefFoundError: org/eclipse/jetty/webapp/WebAppContext | ||
at org.igniterealtime.openfire.plugin.inverse.InversePlugin.initializePlugin(InversePlugin.java:63) ~[inverse-10.1.7.1.jar:?] | ||
at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:640) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:380) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:368) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] | ||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] | ||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] | ||
at java.lang.Thread.run(Thread.java:840) [?:?] | ||
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.webapp.WebAppContext | ||
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?] | ||
at java.lang.ClassLoader.loadClass(ClassLoader.java:592) ~[?:?] | ||
at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] | ||
... 8 more | ||
</code></pre> | ||
</fieldset> | ||
<p>Consider using the EE8 WebAppContext from org.eclipse.jetty.ee8.webapp.WebAppContext to replace org.eclipse.jetty.webapp.WebAppContext.</p> | ||
</section> | ||
|
||
<h3>org.jivesoftware.util.JiveGlobals.getHomeDirectory()</h3> | ||
<section id="get-home-directory"> | ||
<fieldset> | ||
<legend>Error found in openfire.log</legend> | ||
<pre><code>java.lang.NoSuchMethodError: 'java.lang.String org.jivesoftware.util.JiveGlobals.getHomeDirectory()' | ||
at org.ifsoft.ipfs.openfire.PluginImpl.initializePlugin(PluginImpl.java:74) ~[ipfs-native.jar:?] | ||
at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:640) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:380) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:368) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] | ||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] | ||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] | ||
at java.lang.Thread.run(Thread.java:840) [?:?] | ||
</code></pre> | ||
</fieldset> | ||
</section> | ||
|
||
<h3>org/eclipse/jetty/security/ConstraintSecurityHandler</h3> | ||
<section id="constraint-security-handler"> | ||
<fieldset> | ||
<legend>Error found in openfire.log</legend> | ||
<pre><code>java.lang.NoClassDefFoundError: org/eclipse/jetty/security/ConstraintSecurityHandler | ||
at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:?] | ||
at java.lang.Class.privateGetDeclaredConstructors(Class.java:3373) ~[?:?] | ||
at java.lang.Class.getConstructor0(Class.java:3578) ~[?:?] | ||
at java.lang.Class.newInstance(Class.java:626) ~[?:?] | ||
at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:587) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:380) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:368) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] | ||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] | ||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] | ||
at java.lang.Thread.run(Thread.java:840) [?:?] | ||
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.security.ConstraintSecurityHandler | ||
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?] | ||
at java.lang.ClassLoader.loadClass(ClassLoader.java:592) ~[?:?] | ||
at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] | ||
... 11 more | ||
</code></pre> | ||
</fieldset> | ||
<p>Consider using the EE8 ConstraintSecurityHandler from org.eclipse.jetty.ee8.security.ConstraintSecurityHandler to replace org.eclipse.jetty.security.ConstraintSecurityHandler.</p> | ||
</section> | ||
|
||
<h3>org/eclipse/jetty/websocket/server/JettyWebSocketCreator</h3> | ||
<section id="jetty-websocket-creator"> | ||
<fieldset> | ||
<legend>Error found in openfire.log</legend> | ||
<pre><code>java.lang.NoClassDefFoundError: org/eclipse/jetty/websocket/server/JettyWebSocketCreator | ||
at uk.ifsoft.openfire.plugins.pade.PadePlugin.initializePlugin(PadePlugin.java:117) ~[pade-1.8.3.jar:?] | ||
at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:640) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:380) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at org.jivesoftware.openfire.container.PluginMonitor$MonitorTask$4.call(PluginMonitor.java:368) [xmppserver-4.10.0-SNAPSHOT.jar:4.10.0-SNAPSHOT] | ||
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] | ||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] | ||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] | ||
at java.lang.Thread.run(Thread.java:840) [?:?] | ||
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.websocket.server.JettyWebSocketCreator | ||
at java.net.URLClassLoader.findClass(URLClassLoader.java:445) ~[?:?] | ||
at java.lang.ClassLoader.loadClass(ClassLoader.java:592) ~[?:?] | ||
at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?] | ||
... 8 more | ||
</code></pre> | ||
</fieldset> | ||
<p>Consider using the EE8 JettyWebSocketServlet from org.eclipse.jetty.ee8.websocket.server.JettyWebSocketServlet to replace org.eclipse.jetty.websocket.server.JettyWebSocketCreator.</p> | ||
</section> | ||
|
||
<footer> | ||
<p> | ||
An active support community for Openfire is available at | ||
<a href="https://discourse.igniterealtime.org">https://discourse.igniterealtime.org</a>. | ||
</p> | ||
</footer> | ||
|
||
</article> | ||
|
||
</body> | ||
</html> |