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.

Indicator ERROR LoadDataAction - java.lang.NullPointerException
 Post subject: Indicator ERROR LoadDataAction - java.lang.NullPointerException Post rating: 0   New post Posted: Mon 25 Aug, 2014, 20:19 
User avatar

User rating: 98
Joined: Mon 23 Jul, 2012, 02:02
Posts: 656
Location: United States, Durham, NC
Hi,

My Linux server just got into this state and was unable to recover.
Is there an action I can take in the code to recover from this?

HyperScalper

2014-08-25 15:24:41.548 ERROR LoadDataAction -
java.lang.NullPointerException
        at com.dukascopy.charts.data.datacache.CurvesDataLoader.isDataChunkExists(CurvesDataLoader.java:766)
        at com.dukascopy.charts.data.datacache.CurvesDataLoader.loadInCache(CurvesDataLoader.java:163)
        at com.dukascopy.charts.data.datacache.CurvesDataLoader.loadInCache(CurvesDataLoader.java:108)
        at com.dukascopy.charts.data.datacache.LoadDataAction.run(LoadDataAction.java:309)
        at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.loadDataForTimeInterval(LoadCandlesFromTicksAction.java:842)
        at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.loadDataBeforeTime(LoadCandlesFromTicksAction.java:719)
        at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.loadDataBeforeTime(LoadCandlesFromTicksAction.java:466)
        at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.performLoadingForCandlesCount(LoadCandlesFromTicksAction.java:360)
        at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.run(LoadCandlesFromTicksAction.java:173)
        at com.dukascopy.charts.data.datacache.LoadCustomPeriodNumberOfCandlesAction.loadCandlesFromTicks(LoadCustomPeriodNumberOfCandlesAction.java:137)
        at com.dukascopy.charts.data.datacache.LoadCustomPeriodNumberOfCandlesAction.run(LoadCustomPeriodNumberOfCandlesAction.java:111)
        at com.dukascopy.charts.data.datacache.LoadNumberOfCandlesAction.run(LoadNumberOfCandlesAction.java:210)
        at com.dukascopy.charts.data.datacache.FeedDataProvider.loadCandlesDataBeforeAfterSynched(FeedDataProvider.java:737)
        at com.dukascopy.api.impl.History.getBarsSecured(History.java:660)
        at com.dukascopy.api.impl.History$13.run(History.java:613)
        at com.dukascopy.api.impl.History$13.run(History.java:610)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.dukascopy.api.impl.History.getBars(History.java:610)
        at com.dukascopy.api.impl.Indicators.getInputBars(Indicators.java:5109)
        at com.dukascopy.api.impl.Indicators.access$900(Indicators.java:29)
        at com.dukascopy.api.impl.Indicators$IndicatorCalcBeforeAfter.setupInputData(Indicators.java:6832)
        at com.dukascopy.api.impl.Indicators$IndicatorCalc.performIndicatorCalculation(Indicators.java:6210)
        at com.dukascopy.api.impl.Indicators$IndicatorCalc.calculate(Indicators.java:6171)
        at com.dukascopy.api.impl.Indicators.calculateIndicator(Indicators.java:4684)
        at com.dukascopy.api.impl.Indicators.sma(Indicators.java:3576)
        at com.fs.hyperbot.HyperBotDCSMgr.getMAClosePrice(HyperBotDCSMgr.java:736)
        at com.fs.hyperbot.HyperBotDCSMgr.onBar(HyperBotDCSMgr.java:3026)
        at com.dukascopy.api.impl.execution.TaskOnBar.postData(TaskOnBar.java:85)
        at com.dukascopy.api.impl.execution.TaskOnBar.call(TaskOnBar.java:63)
        at com.dukascopy.api.impl.execution.TaskOnBar.call(TaskOnBar.java:23)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at com.dukascopy.api.impl.execution.ScienceThreadPoolExecutor$Worker.runTask(ScienceThreadPoolExecutor.java:904)
        at com.dukascopy.api.impl.execution.ScienceThreadPoolExecutor$Worker.run(ScienceThreadPoolExecutor.java:926)
        at java.lang.Thread.run(Thread.java:744)


 
 Post subject: Re: Indicator ERROR LoadDataAction - java.lang.NullPointerException Post rating: 0   New post Posted: Mon 25 Aug, 2014, 20:27 
User avatar

User rating: 98
Joined: Mon 23 Jul, 2012, 02:02
Posts: 656
Location: United States, Durham, NC
Looks like it was preceded by prolonged and persistent disconnection and
inability to reconnect.

I guess I should trigger some additional reconnect logic to see whether
I can re-establish connections. The "normal" reconnection attempts failed
under these circumstances.

2014-Aug-25 13:17:51 ################## Trying Reconnect... ##################
Login, Using url: [https://www.dukascopy.com/client/live/jclient/jforex.jnlp]
Connecting... before Live client.connect
2014-08-25 15:18:02.611 ERROR ClientConnector - Exception caught
javax.net.ssl.SSLHandshakeException: SSL handshake failed.
        at org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:416)
        at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
        at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
        at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
        at org.apache.mina.filter.executor.ExecutorFilter.processEvent(ExecutorFilter.java:220)
        at org.apache.mina.filter.executor.ExecutorFilter$ProcessEventsRunnable.run(ExecutorFilter.java:264)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:744)
Caused by: javax.net.ssl.SSLException: Received close_notify during handshake
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
        at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1619)
        at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1587)
        at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1732)
        at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1060)
        at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:884)
        at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:758)
        at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
        at org.apache.mina.filter.support.SSLHandler.unwrap0(SSLHandler.java:660)
        at org.apache.mina.filter.support.SSLHandler.unwrapHandshake(SSLHandler.java:616)
        at org.apache.mina.filter.support.SSLHandler.handshake(SSLHandler.java:496)
        at org.apache.mina.filter.support.SSLHandler.messageReceived(SSLHandler.java:306)
        at org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:392)
        ... 8 more


 
 Post subject: Re: Indicator ERROR LoadDataAction - java.lang.NullPointerException Post rating: 0   New post Posted: Mon 25 Aug, 2014, 20:28 
User avatar

User rating: 98
Joined: Mon 23 Jul, 2012, 02:02
Posts: 656
Location: United States, Durham, NC
2014-08-25 15:19:41.288 ERROR CurvesJsonProtocolHandler - Still not connected after waiting [60] seconds
com.dukascopy.charts.data.datacache.NotConnectedException: Still not connected after waiting [60] seconds
        at com.dukascopy.charts.data.datacache.CurvesJsonProtocolHandler.connect(CurvesJsonProtocolHandler.java:130)
        at com.dukascopy.charts.data.datacache.CurvesJsonProtocolHandler.loadDataFromDFS(CurvesJsonProtocolHandler.java:279)
        at com.dukascopy.charts.data.datacache.CurvesJsonProtocolHandler.loadDataFromDFS(CurvesJsonProtocolHandler.java:154)
        at com.dukascopy.charts.data.datacache.CurvesDataLoader.loadAndSaveIntradayData(CurvesDataLoader.java:983)
        at com.dukascopy.charts.data.datacache.CurvesDataLoader.loadInCache(CurvesDataLoader.java:304)
        at com.dukascopy.charts.data.datacache.CurvesDataLoader.loadInCache(CurvesDataLoader.java:108)
        at com.dukascopy.charts.data.datacache.LoadDataAction.run(LoadDataAction.java:309)
        at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.loadDataForTimeInterval(LoadCandlesFromTicksAction.java:842)
        at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.loadDataBeforeTime(LoadCandlesFromTicksAction.java:719)
        at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.loadDataBeforeTime(LoadCandlesFromTicksAction.java:466)
        at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.performLoadingForCandlesCount(LoadCandlesFromTicksAction.java:360)
        at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.run(LoadCandlesFromTicksAction.java:173)
        at com.dukascopy.charts.data.datacache.LoadCustomPeriodNumberOfCandlesAction.loadCandlesFromTicks(LoadCustomPeriodNumberOfCandlesAction.java:137)
        at com.dukascopy.charts.data.datacache.LoadCustomPeriodNumberOfCandlesAction.run(LoadCustomPeriodNumberOfCandlesAction.java:111)
        at com.dukascopy.charts.data.datacache.LoadNumberOfCandlesAction.run(LoadNumberOfCandlesAction.java:210)
        at com.dukascopy.charts.data.datacache.FeedDataProvider.loadCandlesDataBeforeAfterSynched(FeedDataProvider.java:737)
        at com.dukascopy.api.impl.History.getBarsSecured(History.java:660)
        at com.dukascopy.api.impl.History$13.run(History.java:613)
        at com.dukascopy.api.impl.History$13.run(History.java:610)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.dukascopy.api.impl.History.getBars(History.java:610)
        at com.dukascopy.api.impl.Indicators.getInputBars(Indicators.java:5109)
        at com.dukascopy.api.impl.Indicators.access$900(Indicators.java:29)
        at com.dukascopy.api.impl.Indicators$IndicatorCalcBeforeAfter.setupInputData(Indicators.java:6832)
        at com.dukascopy.api.impl.Indicators$IndicatorCalc.performIndicatorCalculation(Indicators.java:6210)
        at com.dukascopy.api.impl.Indicators$IndicatorCalc.calculate(Indicators.java:6171)
        at com.dukascopy.api.impl.Indicators.calculateIndicator(Indicators.java:4684)
        at com.dukascopy.api.impl.Indicators.sma(Indicators.java:3576)
        at com.fs.hyperbot.HyperBotDCSMgr.getMAClosePrice(HyperBotDCSMgr.java:736)
        at com.fs.hyperbot.HyperBotDCSMgr.onBar(HyperBotDCSMgr.java:3026)
        at com.dukascopy.api.impl.execution.TaskOnBar.postData(TaskOnBar.java:85)
        at com.dukascopy.api.impl.execution.TaskOnBar.call(TaskOnBar.java:63)
        at com.dukascopy.api.impl.execution.TaskOnBar.call(TaskOnBar.java:23)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at com.dukascopy.api.impl.execution.ScienceThreadPoolExecutor$Worker.runTask(ScienceThreadPoolExecutor.java:904)
        at com.dukascopy.api.impl.execution.ScienceThreadPoolExecutor$Worker.run(ScienceThreadPoolExecutor.java:926)
        at java.lang.Thread.run(Thread.java:744)


 
 Post subject: Re: Indicator ERROR LoadDataAction - java.lang.NullPointerException Post rating: 0   New post Posted: Tue 26 Aug, 2014, 16:23 
User avatar

User rating:
Joined: Fri 31 Aug, 2007, 09:17
Posts: 6139
We will take a look at this.


 
 Post subject: Re: Indicator ERROR LoadDataAction - java.lang.NullPointerException Post rating: 0   New post Posted: Tue 26 Aug, 2014, 17:59 
User avatar

User rating: 98
Joined: Mon 23 Jul, 2012, 02:02
Posts: 656
Location: United States, Durham, NC
API Support wrote:
We will take a look at this.



Thanks! Meanwhile I added some attempted workaround
exception trapping and reconnection code.

I've implemented exception handling from onBar within
embedded IStrategy instances to look specifically for these
exceptions and kick off standalone API IClient reconnection
efforts. I know this is my responsibility, so I've just tightened
up the reconnection code a bit... Also I am probably due for an API
version upgrade on the Linux server, just waiting for v3
of the API.

HyperScalper


 

Jump to:  

  © 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