Opened 3 years ago

Closed 2 years ago

Last modified 2 years ago

#1793 closed defect (fixed)

With I2P v0.9.25-10 (beta), I2P-Bote v0.4.3 crash when launching

Reported by: hummingbird Owned by: str4d
Priority: blocker Milestone: 0.9.27
Component: apps/plugins Version: 0.9.25
Keywords: bote Cc:
Parent Tickets:

Description

After upgrading a test node from 0.9.25-8 to 0.9.25-10, I2P-Bote v0.4.3 crash when launching. Is it related to Tanuki wrapper ? ( http://zzz.i2p/topics/2121-0-9-25-9-10 )

The log I see in the I2P-Bote browser window:

HTTP ERROR 500

Problem accessing /i2pbote/index.jsp. Reason: 
    Server Error

Caused by:
org.apache.jasper.el.JspELException: /folder.jsp(160,8) '${ib:getEmails(folder, sortcolumn, descending)}' Problems calling function 'ib:getEmails'
	at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)
	at i2p.bote.jsp.folder_jsp._jspx_meth_c_005fforEach_005f0(folder_jsp.java:1854)
	at i2p.bote.jsp.folder_jsp._jspx_meth_ib_005frequirePassword_005f0(folder_jsp.java:346)
	at i2p.bote.jsp.folder_jsp._jspService(folder_jsp.java:132)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
	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.Dispatcher.forward(Dispatcher.java:276)
	at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:103)
	at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:712)
	at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:683)
	at i2p.bote.jsp.index_jsp._jspService(index_jsp.java:55)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)
	at i2p.bote.web.CharsetFilter.doFilter(CharsetFilter.java:38)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
	at net.i2p.servlet.filters.XSSFilter.doFilter(XSSFilter.java:28)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
	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.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
	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:696)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
	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(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: com/sun/mail/util/MessageRemovedIOException
	at i2p.bote.folder.EmailFolder.createFolderElement(EmailFolder.java:522)
	at i2p.bote.folder.EmailFolder.createFolderElement(EmailFolder.java:63)
	at i2p.bote.folder.Folder$3.findNextElement(Folder.java:169)
	at i2p.bote.folder.Folder$3.hasNext(Folder.java:137)
	at i2p.bote.folder.Folder.getElements(Folder.java:115)
	at i2p.bote.folder.EmailFolder.getElements(EmailFolder.java:128)
	at i2p.bote.util.GeneralHelper.getEmails(GeneralHelper.java:392)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.apache.el.parser.AstFunction.getValue(AstFunction.java:110)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:182)
	at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
	... 52 more
Caused by: java.lang.ClassNotFoundException: com.sun.mail.util.MessageRemovedIOException
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 66 more
Caused by:
java.lang.NoClassDefFoundError: com/sun/mail/util/MessageRemovedIOException
	at i2p.bote.folder.EmailFolder.createFolderElement(EmailFolder.java:522)
	at i2p.bote.folder.EmailFolder.createFolderElement(EmailFolder.java:63)
	at i2p.bote.folder.Folder$3.findNextElement(Folder.java:169)
	at i2p.bote.folder.Folder$3.hasNext(Folder.java:137)
	at i2p.bote.folder.Folder.getElements(Folder.java:115)
	at i2p.bote.folder.EmailFolder.getElements(EmailFolder.java:128)
	at i2p.bote.util.GeneralHelper.getEmails(GeneralHelper.java:392)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.apache.el.parser.AstFunction.getValue(AstFunction.java:110)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:182)
	at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
	at i2p.bote.jsp.folder_jsp._jspx_meth_c_005fforEach_005f0(folder_jsp.java:1854)
	at i2p.bote.jsp.folder_jsp._jspx_meth_ib_005frequirePassword_005f0(folder_jsp.java:346)
	at i2p.bote.jsp.folder_jsp._jspService(folder_jsp.java:132)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
	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.Dispatcher.forward(Dispatcher.java:276)
	at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:103)
	at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:712)
	at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:683)
	at i2p.bote.jsp.index_jsp._jspService(index_jsp.java:55)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)
	at i2p.bote.web.CharsetFilter.doFilter(CharsetFilter.java:38)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
	at net.i2p.servlet.filters.XSSFilter.doFilter(XSSFilter.java:28)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
	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.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
	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:696)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
	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(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.sun.mail.util.MessageRemovedIOException
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 66 more
Caused by:
java.lang.ClassNotFoundException: com.sun.mail.util.MessageRemovedIOException
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at i2p.bote.folder.EmailFolder.createFolderElement(EmailFolder.java:522)
	at i2p.bote.folder.EmailFolder.createFolderElement(EmailFolder.java:63)
	at i2p.bote.folder.Folder$3.findNextElement(Folder.java:169)
	at i2p.bote.folder.Folder$3.hasNext(Folder.java:137)
	at i2p.bote.folder.Folder.getElements(Folder.java:115)
	at i2p.bote.folder.EmailFolder.getElements(EmailFolder.java:128)
	at i2p.bote.util.GeneralHelper.getEmails(GeneralHelper.java:392)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.apache.el.parser.AstFunction.getValue(AstFunction.java:110)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:182)
	at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
	at i2p.bote.jsp.folder_jsp._jspx_meth_c_005fforEach_005f0(folder_jsp.java:1854)
	at i2p.bote.jsp.folder_jsp._jspx_meth_ib_005frequirePassword_005f0(folder_jsp.java:346)
	at i2p.bote.jsp.folder_jsp._jspService(folder_jsp.java:132)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:575)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
	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.Dispatcher.forward(Dispatcher.java:276)
	at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:103)
	at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:712)
	at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:683)
	at i2p.bote.jsp.index_jsp._jspService(index_jsp.java:55)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)
	at i2p.bote.web.CharsetFilter.doFilter(CharsetFilter.java:38)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
	at net.i2p.servlet.filters.XSSFilter.doFilter(XSSFilter.java:28)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
	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.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
	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:696)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
	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(Thread.java:745)
Powered by Jetty://

Subtickets

#1810: bote crash on all foldersdefectclosedstr4d
#1816: I am runing Linux mint 17, everything works perfeclty. Even the i2pbote loads correclty but does not allow me to send email or to add adresses. Could you please tell me how to solve this ASAP. I am new on this and I am not a programmer.defectclosed
#1852: Same "Error 500 server error"defectclosed

Change History (18)

comment:1 Changed 3 years ago by hummingbird

Note: after downgrading to I2P v0.9.25-8, I2P-Bote run fine again.

comment:2 Changed 3 years ago by hummingbird

Note: I had not install the new packages recommended by Echelon (http://zzz.i2p/topics/2121-0-9-25-9-10), can this be the cause of the issue ?

NEW packages needed to be installed: 
libservlet3.0-java 
glassfish-javaee 
libjetty8-java 
libgetopt-java
Last edited 3 years ago by hummingbird (previous) (diff)

comment:3 Changed 3 years ago by zzz

It would be good to know if this is only a problem with Debian/Ubuntu? installs, or with standard installs also.

comment:4 Changed 3 years ago by hummingbird

  • Status changed from new to testing

The linux distribution is based on Ubuntu 14.04.

After upgrading to the official I2P v0.9.26-0, Bote is running fine.

comment:5 Changed 3 years ago by zzz

Add a subticket #1810.

comment:6 Changed 3 years ago by k1773r

Im using 0.9.26 and still see it...

comment:7 Changed 3 years ago by zzz

  • Status changed from testing to needs_work

comment:8 Changed 3 years ago by zzz

  • Component changed from apps/other to apps/plugins

My best guess is that the only changes in between 0.9.25-0 and 0.9.26-0 that could have any bearing on this are the packaging changes, which would only affect I2P Debian/Ubuntu? installs, as I mentioned in comment 3 above.

To be clear, I mean whether I2P was installed via the Ubuntu PPA or our Debian repo; not simply if the base distro is Ubuntu- or Debian-based.

As the OP was using a dev build, that is unlikely to be a PPA or repo install.

So perhaps it is somehow related to changes in the build process, or jar manifest classpath attributes, or something. But com.sun.mail is not part of the base i2p install, so I don't understand how i2p could have affected bote here. Maybe a webapp classloader config issue? I just grepped through the diff for 0.9.26 diff looking for 'plugin' things and found nothing. Perhaps some subtle class loading issue, something changed to trigger it.

Other reports: http://forum.i2p/viewtopic.php?t=12476

Not saying for sure I didn't break something, but I am saying for sure that I'm out of ideas and that str4d needs to look at this.

comment:9 Changed 3 years ago by zzz

IF this is a deb/ubuntu package problem only (STILL awaiting confirmation on this from the people with the problem), it could be the old javax.mail classes in /usr/share/java/glassfish-javaee.jar which we are now symlinking from $I2P/lib/jstl.jar to provide the JSTL 1.2 classes.

The glassfish package in debian is old and horrible, and using it to replace our provided jstl.jar and standard.jar may be causing the problem.

I don't know how to tell javax.mail what implementation to use (com.sun.mail vs. apache james?) or perhaps just putting back our jstl.jar would fix it.

Again, until this moves up str4d's priority list there won't be much progress.

comment:10 Changed 3 years ago by str4d

The class in question is part of javax.mail, which I bundle inside I2P-Bote (mailapi-1.5.4.jar). So if some platforms are now unable to find that class, it means that some other library must be getting loaded that blocks mailapi from loading.

Did our old jstl.jar not contain certain files that glassfish-javaee.jar does? Although I don't see why that would cause a problem, because my understanding was that class loading issues were generally per-class, so if an older library and a newer library were both loaded, the newer class would still be found (ie. class issues should be due to older versions of the class obscuring newer versions).

comment:11 Changed 3 years ago by str4d

I've scanned over the diff 0.9.25-8..0.9.25-10 and don't see any Debian-specific changes that could have caused problems.

comment:12 Changed 3 years ago by zzz

Backstory:

We upgraded from JSTL 1.1 to 1.2 years ago. But there's no standalone 1.2 deb/ubuntu package, only 1.1. When I tried to downgrade to 1.1, everything broke.

JSTL 1.2 is included in the glassfish-javaee package. But that package is extremely old and isn't maintained. It has lots of conflicting stuff in it, including javax.mail. Oracle/Sun? has had years worth of releases since, but they haven't gotten packaged. But I managed to get it to work with exactly the combination of packages that I configured for .26.

However, it was a short-term thing, because I don't think we could continue to use the glassfish package when we go to Jetty 9, as the conflicts become too much.

re: class loader, things get loaded in classpath order, and jstl.jar would be before your mailapi.jar, which would get added to the end. So you get an ancient version of javax.mail, which is apparently looking for sun classes.

The fix would be to remove the jstl.jar symlink and replace it with our jstl.jar from apps/susidns/src/lib/ but I haven't tested it.

glassfish-appserv-jstl.jar (symlinked from our standard.jar), btw, has nothing extra in it.

Why there's no 1.2 jstl package, I have no idea. Why we upgraded to 1.2 and nobody else did, and why I couldn't figure out how to downgrade successfully, I have no idea. As always, the troublemaker webapps are the two that use JSTL: susidns and bote.

I'm *still* appealing to those with this problem to report if they're using a deb/ubuntu package. We don't have enough info to proceed, except by guessing.

comment:13 Changed 3 years ago by zzz

Add a subticket #1816.

comment:14 Changed 2 years ago by zzz

  • Milestone changed from 0.9.26 to 0.9.27
  • Priority changed from major to blocker

comment:15 Changed 2 years ago by kittenpijama

Add a subticket #1852.

comment:16 Changed 2 years ago by hummingbird

I'm *still* appealing to those with this problem to report if they're using a deb/ubuntu package.
We don't have enough info to proceed, except by guessing.

Zzz, I think that I was using the java package ".jar" (I2P_install_0.9.25-xx.jar). I removed Bote from this test computer.

comment:17 Changed 2 years ago by zzz

  • Resolution set to fixed
  • Status changed from needs_work to closed

4 days from 0.9.27 deadline; 5 months since OP without solid confirmation that this is debian-only (requested in comments 3 and 12), any testing of the proposed fix (comment 12), or any testing or resolution by bote maintainer.

At this point options are 1) delay the release indefinitely; 2) release with no change; 3) release with the proposed change, untested.

Option 3) taken, b759f09ea11721b2d6a3300a06a127ec184e16ec 0.9.26-13-rc

comment:18 Changed 2 years ago by k1773r

Confirm fixed, thanks!

Last edited 2 years ago by k1773r (previous) (diff)
Note: See TracTickets for help on using tickets.