Opened 9 months ago

Closed 8 months ago

#2295 closed defect (wontfix)

Seedless fail to start (end of life)

Reported by: hummingbird Owned by: zzz
Priority: minor Milestone: 0.9.37
Component: apps/plugins Version: 0.9.35
Keywords: Cc:
Parent Tickets:

Description

I just wanted to track here, that from I2P v0.9.35, or from Ubuntu 18.04, it's the dead of life for Seedless plugin (last released in 2012) because it fail to start.

The log (http://127.0.0.1:7657/router.log) :

07/08/2018 23:03:48 AVERT [Addressbook ] .naming.BlockfileNamingService: The hosts database was not closed cleanly or is still open by another process
07/08/2018 23:03:49 CRIT  [.Main client] t.i2p.router.web.PluginStarter: Error starting up the client class net.i2p.neodatisclassincluder.Main
java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at net.i2p.router.startup.LoadClientAppsJob$RunApp.run(LoadClientAppsJob.java:291)
	at java.base/java.lang.Thread.run(Thread.java:844)
	at net.i2p.util.I2PThread.run(I2PThread.java:103)
Caused by: java.lang.ClassCastException: java.base/jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to java.base/java.net.URLClassLoader
	at net.i2p.neodatisclassincluder.Main.main(Main.java:47)
	... 7 more
07/08/2018 23:03:51 ERROR [luginStarter] t.i2p.router.web.PluginStarter: Failed to start plugin: 01_neodatis
java.lang.ClassNotFoundException: net.i2p.neodatis.I2P
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:374)
	at net.i2p.router.startup.LoadClientAppsJob.testClient(LoadClientAppsJob.java:177)
	at net.i2p.router.web.PluginStarter.runClientApps(PluginStarter.java:872)
	at net.i2p.router.web.PluginStarter.startPlugin(PluginStarter.java:410)
	at net.i2p.router.web.PluginStarter.startPlugins(PluginStarter.java:238)
	at net.i2p.router.web.PluginStarter.run(PluginStarter.java:108)
	at java.base/java.lang.Thread.run(Thread.java:844)
	at net.i2p.util.I2PThread.run(I2PThread.java:103)
07/08/2018 23:04:01 CRIT  [.Main client] t.i2p.router.web.PluginStarter: Error starting up the client class net.i2p.seedlesscoreclassincluder.Main
java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
	at net.i2p.router.startup.LoadClientAppsJob$RunApp.run(LoadClientAppsJob.java:291)
	at java.base/java.lang.Thread.run(Thread.java:844)
	at net.i2p.util.I2PThread.run(I2PThread.java:103)
Caused by: java.lang.ClassNotFoundException: Can't Add SeedlessCore, NeoDatis not found.
	at net.i2p.seedlesscoreclassincluder.Main.main(Main.java:140)
	... 7 more
07/08/2018 23:04:16 DEBUG [ HTTPS Proxy] lient.impl.I2PSessionMuxedImpl: Skipping property: awt.toolkit
07/08/2018 23:04:16 ^^^ 1 similar message omitted ^^^

Subtickets

Change History (2)

comment:1 Changed 9 months ago by zzz

  • Milestone changed from undecided to 0.9.37

That's actually a Java 9/10 thing. If you go back to Java 8 it should work.

I may be able to bring it back to life with changes to LoadClientAppsJob?. I'll take a look.

comment:2 Changed 8 months ago by zzz

  • Resolution set to wontfix
  • Status changed from new to closed

Both plugins have a classloader cast in their startup method that won't work for Java 9 or higher. We can't work around this in the console's plugin code.

Added a blacklist for plugins that don't work on Java 9, similar to that done earlier for Jetty 9. In 419fdf5051c99a756aacff3233dbf65e63b4de08 0.9.36-6-rc. This will give the user a better error message.

Only the original maintainer (sponge) could fix this, unless somebody else wants to adopt and fix it, under new signing keys.

Workaround is to use Java 7 or 8.

Note: See TracTickets for help on using tickets.