Dukascopy
 
 
Wiki JStore Search Login

Attention! Read the forum rules carefully before posting a topic.

    Submit JForex API bug reports in this forum only.
    Submit Converter issues in Converter Issues.
    Off topics are strictly forbidden.

Any topics which do not satisfy these rules will be deleted.

Custom plugins with @Library() got broken in 3.2.9
 Post subject: Custom plugins with @Library() got broken in 3.2.9 Post rating: 0   New post Posted: Mon 17 Jul, 2017, 08:45 

User rating: 18
Joined: Thu 20 Apr, 2017, 22:42
Posts: 165
Location: Russian Federation,
After recent automatic update of JForex to 3.2.9 i'm not able to use my plugin with annotation @Library("external.jar").

I notice 2 problems there (from JForex\logs\*.log):

1. If a class with plugin code already appears in "external.jar" i receive that error
(note: NO error messages are displayed in UI - i just silently not able nor open MyPlugin.java nor activate plugin compiled earlier)

2017-07-17 09:25:55.826 WARN  com.dukascopy.dds2.greed.gui.component.tree.actions.bf - loader (instance of  com/dukascopy/dds2/greed/agent/compiler/c): attempted  duplicate class definition for name: "MyPlugin"
java.lang.LinkageError: loader (instance of  com/dukascopy/dds2/greed/agent/compiler/c): attempted  duplicate class definition for name: "MyPlugin"
   at java.lang.ClassLoader.defineClass1(Native Method)
   at java.lang.ClassLoader.defineClass(Unknown Source)
   at java.lang.ClassLoader.defineClass(Unknown Source)
   at com.dukascopy.dds2.greed.agent.compiler.c.a(L:285)
   at com.dukascopy.dds2.greed.agent.compiler.e$c.a(L:716)
   at com.dukascopy.dds2.greed.agent.compiler.e$d.read(L:851)
   at com.dukascopy.dds2.greed.agent.compiler.e.d(L:389)
   at com.dukascopy.dds2.greed.agent.compiler.e.N(L:372)
   at com.dukascopy.api.impl.fw.V(L:82)
   at com.dukascopy.api.impl.fr.getJFRunnable(L:39)
   at com.dukascopy.api.impl.fw.b(L:37)
   at com.dukascopy.api.impl.fw.<init>(L:25)
   at com.dukascopy.dds2.greed.gui.component.tree.a.akp(L:253)


2. After fixing problem #1 (i.e. removed MyPlugin.class from "external.jar"), i'm able to compile it, but plugin fails to start - it seems that class loader does not see classes from "external.jar" (the 'stub/IAccountStub' mentioned below)

2017-07-17 09:32:27.555 WARN  com.dukascopy.dds2.greed.gui.component.tree.actions.bf - stub/IAccountStub
java.lang.NoClassDefFoundError: stub/IAccountStub
   at java.lang.ClassLoader.defineClass1(Native Method)
   at java.lang.ClassLoader.defineClass(Unknown Source)
   at java.lang.ClassLoader.defineClass(Unknown Source)
   at com.dukascopy.dds2.greed.agent.compiler.c.a(L:285)
   at com.dukascopy.dds2.greed.agent.compiler.e$c.a(L:716)
   at com.dukascopy.dds2.greed.agent.compiler.e$d.read(L:851)
   at com.dukascopy.dds2.greed.agent.compiler.e.d(L:389)
   at com.dukascopy.dds2.greed.agent.compiler.e.N(L:372)
   at com.dukascopy.api.impl.fw.V(L:82)
   at com.dukascopy.api.impl.fr.getJFRunnable(L:39)
   at com.dukascopy.dds2.greed.agent.h.a(L:225)
   at com.dukascopy.dds2.greed.gui.component.tree.actions.au$a.SM(L:103)
   at com.dukascopy.dds2.greed.gui.component.dialog.disclaimers.PluginDisclaimerDialog.SM(L:65)
   at com.dukascopy.dds2.greed.gui.component.dialog.disclaimers.PluginDisclaimerDialog.a(L:37)
   at com.dukascopy.dds2.greed.gui.component.tree.actions.au.a(L:81)
   at com.dukascopy.dds2.greed.gui.component.tree.actions.au.V(L:73)
   at com.dukascopy.dds2.greed.gui.component.tree.actions.au.V(L:37)
   at com.dukascopy.dds2.greed.gui.component.tree.actions.bf.execute(L:37)
   at com.dukascopy.dds2.greed.gui.component.tree.listeners.af.actionPerformed(L:1055)
   at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)


Please fix this ASAP because plugins became not usable :(.


 
 Post subject: Re: Custom plugins with @Library() got broken in 3.2.9 Post rating: 0   New post Posted: Mon 17 Jul, 2017, 09:31 

User rating: 0
Joined: Mon 31 Mar, 2014, 16:50
Posts: 21
Location: Italy, San Severino Marche MC
I also have problems with version 3.2.9 (api 02.13.38), the platform crashes on startup:

....
2017-07-17 10:01:45.563 INFO AuthorizationClient - Selecting the best server...
2017-07-17 10:01:46.032 DEBUG AuthorizationClient - Best api url [l-ja-gva-122-175.dukascopy.com:10443] with time [56]
2017-07-17 10:01:46.136 INFO q - WL info is unavailable. Use default App folder for Platform data: /root/JForex
2017-07-17 10:01:46.137 INFO k - Start import system settings from "/root/JForex/.settings/system_settings.xml" file
2017-07-17 10:01:46.139 INFO k - System settings successfully imported from "/root/JForex/.settings/system_settings.xml" file
2017-07-17 10:01:46.225 INFO k - Workspace settings successfully loaded from file: /root/JForex/Workspaces/LIVE/468AA317C4B2035E7298344ECADF94998A9F0474/JForex.xml
2017-07-17 10:01:46.410 INFO b - Started
2017-07-17 10:01:47.140 INFO b - Start Platform Clock
2017-07-17 10:01:48.234 ERROR PlatformInitAction -
java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(EventQueue.java:1321)
at java.awt.EventQueue.invokeAndWait(EventQueue.java:1296)
at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1348)
at com.dukascopy.dds2.greed.actions.PlatformInitAction.FE(L:118)
at com.dukascopy.dds2.greed.actions.c.run(L:48)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.LinkageError: loader (instance of com/dukascopy/dds2/greed/agent/compiler/c): attempted duplicate class definition for name: "org/apache/commons/lang3/builder/ToStringBuilder"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
at com.dukascopy.dds2.greed.agent.compiler.c.a(L:285)
at com.dukascopy.dds2.greed.agent.compiler.e$c.a(L:716)
at com.dukascopy.dds2.greed.agent.compiler.e$d.read(L:851)
at com.dukascopy.dds2.greed.agent.compiler.e.d(L:389)
at com.dukascopy.dds2.greed.agent.compiler.e.M(L:368)
at com.dukascopy.dds2.greed.gui.component.strategy.tab.util.a.b(L:38)
at com.dukascopy.dds2.greed.gui.settings.z.dp(L:1590)
at com.dukascopy.dds2.greed.gui.settings.k.dp(L:2171)
at com.dukascopy.dds2.greed.gui.component.strategy.tab.StrategiesContentPane.<init>(L:100)
at com.dukascopy.dds2.greed.gui.v.MN(L:132)
at com.dukascopy.dds2.greed.gui.ClientFormLayoutManager.createComponents(L:164)
at com.dukascopy.dds2.greed.gui.ClientFormLayoutManager.build(L:124)
at com.dukascopy.dds2.greed.util.PlatformInitUtils.b(L:1596)
at com.dukascopy.dds2.greed.util.PlatformInitUtils.a(L:1262)
at com.dukascopy.dds2.greed.actions.z.run(L:121)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

or


2017-07-17 10:05:08.909 ERROR PlatformInitAction -
java.lang.reflect.InvocationTargetException
at java.awt.EventQueue.invokeAndWait(EventQueue.java:1321)
at java.awt.EventQueue.invokeAndWait(EventQueue.java:1296)
at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1348)
at com.dukascopy.dds2.greed.actions.PlatformInitAction.FE(L:118)
at com.dukascopy.dds2.greed.actions.c.run(L:48)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: org/encog/bot/browse/range/DocumentRange
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
at com.dukascopy.dds2.greed.agent.compiler.c.a(L:285)
at com.dukascopy.dds2.greed.agent.compiler.e$c.a(L:716)
at com.dukascopy.dds2.greed.agent.compiler.e$d.read(L:851)
at com.dukascopy.dds2.greed.agent.compiler.e.d(L:389)
at com.dukascopy.dds2.greed.agent.compiler.e.M(L:368)
at com.dukascopy.dds2.greed.gui.component.strategy.tab.util.a.b(L:38)
at com.dukascopy.dds2.greed.gui.settings.z.dp(L:1590)
at com.dukascopy.dds2.greed.gui.settings.k.dp(L:2171)
at com.dukascopy.dds2.greed.gui.component.strategy.tab.StrategiesContentPane.<init>(L:100)
at com.dukascopy.dds2.greed.gui.v.MN(L:132)
at com.dukascopy.dds2.greed.gui.ClientFormLayoutManager.createComponents(L:164)
at com.dukascopy.dds2.greed.gui.ClientFormLayoutManager.build(L:124)
at com.dukascopy.dds2.greed.util.PlatformInitUtils.b(L:1596)
at com.dukascopy.dds2.greed.util.PlatformInitUtils.a(L:1262)
at com.dukascopy.dds2.greed.actions.z.run(L:121)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: org.encog.bot.browse.range.DocumentRange
at java.lang.ClassLoader.findClass(ClassLoader.java:530)
at com.dukascopy.dds2.greed.agent.compiler.c.findClass(L:90)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.dukascopy.dds2.greed.agent.compiler.c.loadClass(L:65)
... 32 more


To access, I had to delete all the jfx files that use the libraries from the Strategies folder, but then they can not compile them.

With the previous version everything worked properly, can you check it out?

Thank you.


 
 Post subject: Re: Custom plugins with @Library() got broken in 3.2.9 Post rating: 0   New post Posted: Mon 17 Jul, 2017, 15:37 

User rating: 0
Joined: Mon 31 Mar, 2014, 16:50
Posts: 21
Location: Italy, San Severino Marche MC
Thank you for having restored the 3.2.6 version, now everything works.


 

Jump to:  

cron
  © 1998-2024 Dukascopy® Bank SA
On-line Currency forex trading with Swiss Forex Broker - ECN Forex Brokerage,
Managed Forex Accounts, introducing forex brokers, Currency Forex Data Feed and News
Currency Forex Trading Platform provided on-line by Dukascopy.com