It seems chart templates got broken in recent
demo release 3.3.0.
JForex fails to open charts from template - actually it opens chart, but none of the objects saved with template appear on chart.
Steps to reproduce:
1. Open any fresh chart (EUR/USD)
2. Add 'price marker' line
3. Save chart template -> EURUSD.tmpl
4. Close chart
5. Right-click EUR/USD -> Open Chart Template -> Select EURUSD.tmpl
Chart opens, but there is no 'price marker' line.
For that same time I notice following message in log file:
ERROR com.dukascopy.dds2.greed.gui.settings.f - com.dukascopy.api.Instrument
java.io.NotSerializableException: com.dukascopy.api.Instrument
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at com.dukascopy.dds2.greed.gui.ab.R(L:31)
at com.dukascopy.dds2.greed.gui.settings.f.bU(L:502)
at com.dukascopy.dds2.greed.gui.settings.f.l(L:396)
at com.dukascopy.dds2.greed.gui.settings.f.d(L:565)
at com.dukascopy.dds2.greed.gui.component.tree.actions.a.aK(L:56)
at com.dukascopy.dds2.greed.gui.component.tree.actions.b.ae(L:33)
at com.dukascopy.dds2.greed.gui.component.tree.actions.a.ae(L:41)
at com.dukascopy.dds2.greed.gui.component.tree.actions.be.execute(L:37)
at com.dukascopy.dds2.greed.gui.component.ticker.aa.g(L:461)
at com.dukascopy.dds2.greed.gui.component.ticker.aa.o(L:449)
at com.dukascopy.dds2.greed.gui.settings.f.a(L:746)
at com.dukascopy.dds2.greed.gui.component.ticker.TickerPanel.g(L:448)
at com.dukascopy.dds2.greed.gui.component.ticker.TickerPanel.a(L:120)
at com.dukascopy.dds2.greed.gui.component.ticker.TickerPanel$12.actionPerformed(L:841)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at com.dukascopy.ui.components.popup.CommonMenuItemUI.doClick(L:44)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at com.dukascopy.ui.components.popup.CommonMenuItem.processMouseEvent(L:268)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at com.dukascopy.dds2.greed.gui.b.a.dispatchEvent(L:53)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)