Project

General

Profile

Bug #2684

Online help not working with JRE 8 Update 91/92 and above

Added by Simon Barner about 4 years ago. Updated almost 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
-
Start date:
08/31/2016
Due date:
% Done:

50%

Estimated time:

Description

Tested with AF3 Phoenix 2.10 on Windows 7 64-Bit. JDK Version 102.

http://stackoverflow.com/a/38975197 suggests that this might be due to the fact that the build server compiles the source code using JDK 60, while the local JVM is version 102. The IT has been asked to install the latest JDK on the build server (in addition to the current version).

The exception below is thrown:

org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP||PWC6199: Generated servlet error:|The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced fro
m required .class files||
        at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:129)
        at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:299)
        at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:392)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:453)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:625)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.equinox.jsp.jasper.JspServlet.service(JspServlet.java:155)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
        at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
        at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
        at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:386)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:370)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Unknown Source)
2016-08-31 10:22:22.047:WARN:oejs.ServletHandler:/help/index.jsp
org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP||PWC6199: Generated servlet error:|The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced fro
m required .class files||
        at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:129)
        at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:299)
        at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:392)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:453)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:625)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.equinox.jsp.jasper.JspServlet.service(JspServlet.java:155)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
        at org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
        at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
        at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:386)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
        at org.eclipse.jetty.server.Server.handle(Server.java:370)
        at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
        at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
        at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
        at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
        at java.lang.Thread.run(Unknown Source)
org.apache.jasper.glassfish_2.2.2.v201205150955.jar (2.28 MB) org.apache.jasper.glassfish_2.2.2.v201205150955.jar Patched version of org.apache.jasper.glassfish_2.2.2.v201205150955.jar that supports Java 8 Simon Barner, 08/31/2016 04:33 PM
dse-help.PNG (37.3 KB) dse-help.PNG Simon Barner, 01/23/2017 01:48 PM

History

#1 Updated by Simon Barner about 4 years ago

Further analysis yielded that the problem is not directly related to the use of Java 8, but due the fact, that the org.apache.jasper.glassfish_2.2.2.v201205150955.jar bundle embeds an old version of JDT to compile the JSPs used to implement the online help.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=442310#c50 provides a patched version of org.apache.jasper.glassfish_2.2.2 that updates the embedded JDT to version 3.8.2, which is compatible with Java 8. It is intended for Eclipse Luna SR1.

In the attachment of this issue, there is a derived version of this plugin that can be used to overwrite plugins/org.apache.jasper.glassfish_2.2.2.v201205150955.jar in the AF3 products.

Further findings:
  • The problem exists also on Linux (32-bit). It is fixed by the patched bundle, too.
  • As pointed out in the aforementioned Eclipse bug 442310, efforts are underway to fix this problem in a cleaner way (i.e., to use a dependency to JDT instead of embedding some version into a bundle) in later versions of Eclipse (Mars, Neon)
Suggested next steps:
  • Unzip packages of 2.10 release and replace plugins/org.apache.jasper.glassfish_2.2.2.v201205150955.jar with the version attached to this issue
  • Test on all supported platforms
  • Re-upload download bundles

#2 Updated by Simon Barner about 4 years ago

  • Subject changed from Online help not working on Windows to Online help not working with JRE 8 Update 91/92 and above
Tests on Windows 7 (64) and Ubuntu Linux (32 bit) with different JRE have revealed the following:
  • The bug occurs only with JRE 8 Update 91 (Critical Patch Update) / JRE 8 Update 92 (patch-set update, including all of Java 8u91 plus additional features), and above
  • I.e., up to and including JRE 8 Update 77, the online help works fine without the patch attached to this issue.

#3 Updated by Anonymous about 4 years ago

Works for me but indeed I have not update >92 but 45

#4 Updated by Andreas Bayha about 4 years ago

  • Target version changed from AF3 2.10 Post-release to AF3 2.11 RC1 (Feature Freeze)

#5 Updated by Simon Barner almost 4 years ago

The problem persists in today's nightly build.

Further, the web version of the online help also contains broken links:

http://download.fortiss.org/public/projects/af3/help/dse_perspective.html (links to "DSE dashboard" etc. are not working)

#6 Updated by Simon Barner almost 4 years ago

There is also supposed to be an DSE internal help, which is not working either. See attached screenshot.

#7 Updated by Johannes Eder over 3 years ago

  • Target version changed from AF3 2.11 RC1 (Feature Freeze) to AF3 2.11 RC2 (Tested & Bugfixed)

#8 Updated by Johannes Eder over 3 years ago

Added org.apache.jasper.glassfish_2.2.2.v201205150955.jar in Jenkins to af3 nightly and continuous.

#9 Updated by Johannes Eder over 3 years ago

  • Status changed from New to Feedback

#10 Updated by Johannes Eder over 3 years ago

The issue about the broken links in the online help should be reviewed again after the online help has been generated for this release (2.11). If it still does not work the html files should just be fixed manually in order to avoid further extensive work on this issue.

#11 Updated by Johannes Eder over 3 years ago

  • Assignee changed from Johannes Eder to Simon Barner

#12 Updated by Anonymous over 3 years ago

  • Target version changed from AF3 2.11 RC2 (Tested & Bugfixed) to AF3 2.11 Release

#13 Updated by Simon Barner almost 3 years ago

  • Status changed from Feedback to In Progress
  • Target version changed from AF3 2.11 Release to AF3 2.12 Release (After Silence Week)
  • % Done changed from 0 to 50

TODO

  • Test with tomorrows nightly build
  • Test with release build
  • Test help on home page

#14 Updated by Simon Barner almost 3 years ago

Help page now opens also in nightly build, however resources linked in the HTML file (images) are not displayed. org.eclipse.help.ui.internal.browser.embedded.EmbeddedBrowser solves this problem by extracting the images and the HTML from the plugin.

Suggested solutions:
  • Implement image extraction for DSE help, too
  • Find a way to use EmbeddedBrowser (direct access org.eclipse.help.ui.internal.browser.embedded is discouraged)
  • Link Eclipse Help browser into DSE perspective, i.e. offer buttons that open the corresponding help pages (context sensitive help)

#15 Updated by Simon Barner almost 3 years ago

  • Status changed from In Progress to Resolved
  • Assignee changed from Simon Barner to Alexander Diewald

Can you please test and close?

The remaining problem is now tracked in #3206.

#16 Updated by Simon Barner almost 3 years ago

  • Assignee changed from Alexander Diewald to Anonymous

Can you please test and close?

The remaining problem is now tracked in #3206.

#17 Updated by Anonymous almost 3 years ago

  • Status changed from Resolved to Closed

Tested. OK.

Also available in: Atom PDF