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.

java.lang.IllegalArgumentException Issue with DataCache and loading History data
 Post subject: java.lang.IllegalArgumentException Issue with DataCache and loading History data Post rating: 0   New post Posted: Fri 25 Jul, 2014, 01:28 
User avatar

User rating: 8
Joined: Tue 25 Oct, 2011, 23:02
Posts: 74
Location: Australia, Melbourne
Periodically I encounter this exception thrown from Dukascopy when trying to load history data on DEMO for my strategy. I am requesting history data that is entirely before the dates listed below (i.e. the last three days when the history data cache is "self healed". The problem is once I get this error, ALL History Data loads FAIL, and I basically have to switch to another DEMO account to be able to load any history data. I assume this is a bug in the "self healing" process on the recent datacache. Question is, when will it be fixed (i.e. why should an inconsistency in the recent tick data *prevent* history data loads? At most this should be a WARNING. Also what workaround exists to allow me to load history from my local datacache when this situation occurs? (I've seen this about 15 or 20 times in the last 3 months).


Exception in thread "StrategyRunner Thread" java.lang.IllegalArgumentException: Desired candles (1 Sec) time is earlier than tick history (AUD/USD) start time '2014-07-22 00:00:00:000' < '2014-07-25 00:20:32:000
at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.<init>(LoadCandlesFromTicksAction.java:97)
at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.<init>(LoadCandlesFromTicksAction.java:119)
at com.dukascopy.charts.data.datacache.LoadCustomPeriodNumberOfCandlesAction.loadCandlesFromTicks(LoadCustomPeriodNumberOfCandlesAction.java:124)
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.loadCandlesDataBeforeSynched(FeedDataProvider.java:765)


 
 Post subject: Re: java.lang.IllegalArgumentException Issue with DataCache and loading History data Post rating: 0   New post Posted: Fri 25 Jul, 2014, 02:46 
User avatar

User rating: 8
Joined: Tue 25 Oct, 2011, 23:02
Posts: 74
Location: Australia, Melbourne
It appears I can get a *temporary* workaround for this problem by clearing the data cache from the JForex Dukascopy Java client. Shortly after I did this, I ran a couple of history data loads successfully, then got the problem again.

I would suggest that this situation should not generate an exception that halts the strategy. A warning, advice to clear the datacache perhaps. Alternatively it's a just a straight bug that requires a fix.

A fix for this would be really helpful.


 
 Post subject: Re: java.lang.IllegalArgumentException Issue with DataCache and loading History data Post rating: 0   New post Posted: Sat 23 Aug, 2014, 03:33 
User avatar

User rating: 8
Joined: Tue 25 Oct, 2011, 23:02
Posts: 74
Location: Australia, Melbourne
Still occuring. Trying to get 30M bar history from 6/01/2014 to 16/08/2014. No code in my strategy calls for any history after 16/08/2014 - yet I get this exception preventing the strategy from running. I assume this is local cache management from the server side - question is why? At best this should be a warning, it most definitely should not prevent running a strategy on historical data. Please fix.

Exception in thread "StrategyRunner Thread" java.lang.IllegalArgumentException: Desired candles (1 Sec) time is earlier than tick history (AUD/USD) start time '2014-08-20 00:00:00:000' < '2014-08-23 02:27:57:000
at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.<init>(LoadCandlesFromTicksAction.java:97)
at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.<init>(LoadCandlesFromTicksAction.java:119)
at com.dukascopy.charts.data.datacache.LoadCustomPeriodNumberOfCandlesAction.loadCandlesFromTicks(LoadCustomPeriodNumberOfCandlesAction.java:124)
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.loadCandlesDataBeforeSynched(FeedDataProvider.java:765)
at com.dukascopy.dds2.greed.agent.strategy.tester.AbstractStrategyRunner.getFirstTicks(AbstractStrategyRunner.java:206)
at com.dukascopy.dds2.greed.agent.strategy.tester.AbstractStrategyRunner.getFirstTicks(AbstractStrategyRunner.java:193)
at com.dukascopy.dds2.greed.agent.strategy.tester.StrategyRunner.run(StrategyRunner.java:253)
at java.lang.Thread.run(Unknown Source)


 
 Post subject: Re: java.lang.IllegalArgumentException Issue with DataCache and loading History data Post rating: 0   New post Posted: Tue 26 Aug, 2014, 16:28 
User avatar

User rating:
Joined: Fri 31 Aug, 2007, 09:17
Posts: 6139
We could not replicate this, do you have an example strategy for this? Also please provide the printscreen of your Historical Tester settings.


 
 Post subject: Re: java.lang.IllegalArgumentException Issue with DataCache and loading History data Post rating: 0   New post Posted: Tue 02 Dec, 2014, 00:50 
User avatar

User rating: 8
Joined: Tue 25 Oct, 2011, 23:02
Posts: 74
Location: Australia, Melbourne
Issue is still occurring - and frequently. E.g.

Exception in thread "StrategyRunner Thread" java.lang.IllegalArgumentException: Desired candles (1 Sec) time is earlier than tick history (AUD/USD) start time '2014-11-29 00:00:00:000' < '2014-12-02 00:21:16:000
at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.<init>(LoadCandlesFromTicksAction.java:97)
at com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.<init>(LoadCandlesFromTicksAction.java:119)
at com.dukascopy.charts.data.datacache.LoadCustomPeriodNumberOfCandlesAction.loadCandlesFromTicks(LoadCustomPeriodNumberOfCandlesAction.java:124)
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.loadCandlesDataBeforeSynched(FeedDataProvider.java:765)
at com.dukascopy.dds2.greed.agent.strategy.tester.AbstractStrategyRunner.getFirstTicks(AbstractStrategyRunner.java:206)
at com.dukascopy.dds2.greed.agent.strategy.tester.AbstractStrategyRunner.getFirstTicks(AbstractStrategyRunner.java:193)
at com.dukascopy.dds2.greed.agent.strategy.tester.StrategyRunner.run(StrategyRunner.java:253)
at java.lang.Thread.run(Unknown Source)

I'm NOT using the historical tester through the JForex client - I'm loading history data through the JForex API. Occasionally starting the JForex client will *temporarily* resolve this issue.
As I've stated previously - the problem here appears to be the "management" JForex does to the most recently stored local data cache tick data on history calls. There is no reason why a history call through the API should invoke this process - calls for history data should be independent of this adjustment process for recent tick data in the local data cache. I understand why the JForex client needs to manage and update errors in the recent local data cache tick data (to help with JForex client charts etc) and I understand how easily this can get out of sych, but calls through the API for history data shouldn't fail because of this local cache tick data management. Especially as history data I am asking for DOES NOT INCLUDE the tick data that causes the exception.

Asking for 30M CANDLE HISTORY DATA FROM 06/01/2014 to 22/11/2014 - getting this exception - java.lang.IllegalArgumentException: Desired candles (1 Sec) time is earlier than tick history (AUD/USD) start time '2014-11-29 00:00:00:000' < '2014-12-02 00:21:16:000

NOTICE that neither the period (1 sec) or either of of the dates quoted in the exception are in the range of my history data call through the API? I assume this is because somehow, and for some very strange reason, a call for history data through the API invokes JForex local datacache tick management processes. Which then FAIL.

Potential solutions -

1/ untangle history calls for local cache data management
2/ fix the exception handling for history calls so this issues doesn't cause the exception and the history data load to FAIL

Don't know if this helps you guys debug it but here is the eclipse log of calls prior to the exception:

greed-common-310.jar

[pc: 141, same]
[pc: 225, same_extended]
[pc: 307, same_extended]

// Method descriptor #202 (Lcom/dukascopy/charts/data/datacache/IFeedDataProvider;Lcom/dukascopy/api/Instrument;Lcom/dukascopy/api/OfferSide;Lcom/dukascopy/api/Filter;Lcom/dukascopy/api/Period;Lcom/dukascopy/charts/data/datacache/CurvesDataLoader$IntraperiodExistsPolicy;Lcom/dukascopy/charts/data/datacache/ILoadingProgressListener;Lcom/dukascopy/charts/data/datacache/LiveFeedListener;IIJ)V
// Stack: 17, Locals: 13
public LoadCandlesFromTicksAction(com.dukascopy.charts.data.datacache.IFeedDataProvider feedDataProvider, com.dukascopy.api.Instrument instrument, com.dukascopy.api.OfferSide offerSide, com.dukascopy.api.Filter filter, com.dukascopy.api.Period desiredPeriod, com.dukascopy.charts.data.datacache.CurvesDataLoader.IntraperiodExistsPolicy intraperiodExistsPolicy, com.dukascopy.charts.data.datacache.ILoadingProgressListener originalLoadingProgress, com.dukascopy.charts.data.datacache.LiveFeedListener originalLiveFeedListener, int numberOfCandlesBefore, int numberOfCandlesAfter, long time);
0 aload_0 [this]
1 aload_1 [feedDataProvider]
2 aload_2 [instrument]
3 aload_3 [offerSide]
4 aload 4 [filter]
6 aload 5 [desiredPeriod]
8 aload 6 [intraperiodExistsPolicy]
10 aload 7 [originalLoadingProgress]
12 aload 8 [originalLiveFeedListener]
14 iload 9 [numberOfCandlesBefore]
16 iload 10 [numberOfCandlesAfter]
18 ldc2_w <Long -1> [34]
21 ldc2_w <Long -1> [34]
24 lload 11 [time]
26 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction(com.dukascopy.charts.data.datacache.IFeedDataProvider, com.dukascopy.api.Instrument, com.dukascopy.api.OfferSide, com.dukascopy.api.Filter, com.dukascopy.api.Period, com.dukascopy.charts.data.datacache.CurvesDataLoader$IntraperiodExistsPolicy, com.dukascopy.charts.data.datacache.ILoadingProgressListener, com.dukascopy.charts.data.datacache.LiveFeedListener, int, int, long, long, long) [36]
29 return
Line numbers:
[pc: 0, line: 119]
[pc: 29, line: 134]
Local variable table:
[pc: 0, pc: 30] local: this index: 0 type: com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction
[pc: 0, pc: 30] local: feedDataProvider index: 1 type: com.dukascopy.charts.data.datacache.IFeedDataProvider
[pc: 0, pc: 30] local: instrument index: 2 type: com.dukascopy.api.Instrument
[pc: 0, pc: 30] local: offerSide index: 3 type: com.dukascopy.api.OfferSide
[pc: 0, pc: 30] local: filter index: 4 type: com.dukascopy.api.Filter
[pc: 0, pc: 30] local: desiredPeriod index: 5 type: com.dukascopy.api.Period
[pc: 0, pc: 30] local: intraperiodExistsPolicy index: 6 type: com.dukascopy.charts.data.datacache.CurvesDataLoader.IntraperiodExistsPolicy
[pc: 0, pc: 30] local: originalLoadingProgress index: 7 type: com.dukascopy.charts.data.datacache.ILoadingProgressListener
[pc: 0, pc: 30] local: originalLiveFeedListener index: 8 type: com.dukascopy.charts.data.datacache.LiveFeedListener
[pc: 0, pc: 30] local: numberOfCandlesBefore index: 9 type: int
[pc: 0, pc: 30] local: numberOfCandlesAfter index: 10 type: int
[pc: 0, pc: 30] local: time index: 11 type: long

// Method descriptor #203 (Lcom/dukascopy/charts/data/datacache/IFeedDataProvider;Lcom/dukascopy/api/Instrument;Lcom/dukascopy/api/OfferSide;Lcom/dukascopy/api/Filter;Lcom/dukascopy/api/Period;Lcom/dukascopy/charts/data/datacache/CurvesDataLoader$IntraperiodExistsPolicy;Lcom/dukascopy/charts/data/datacache/ILoadingProgressListener;Lcom/dukascopy/charts/data/datacache/LiveFeedListener;JJ)V
// Stack: 17, Locals: 13
public LoadCandlesFromTicksAction(com.dukascopy.charts.data.datacache.IFeedDataProvider feedDataProvider, com.dukascopy.api.Instrument instrument, com.dukascopy.api.OfferSide offerSide, com.dukascopy.api.Filter filter, com.dukascopy.api.Period desiredPeriod, com.dukascopy.charts.data.datacache.CurvesDataLoader.IntraperiodExistsPolicy intraperiodExistsPolicy, com.dukascopy.charts.data.datacache.ILoadingProgressListener originalLoadingProgress, com.dukascopy.charts.data.datacache.LiveFeedListener originalLiveFeedListener, long fromTime, long toTime);
0 aload_0 [this]
1 aload_1 [feedDataProvider]
2 aload_2 [instrument]
3 aload_3 [offerSide]
4 aload 4 [filter]
6 aload 5 [desiredPeriod]
8 aload 6 [intraperiodExistsPolicy]
10 aload 7 [originalLoadingProgress]
12 aload 8 [originalLiveFeedListener]
14 iconst_m1
15 iconst_m1
16 lload 9 [fromTime]
18 lload 11 [toTime]
20 ldc2_w <Long -1> [34]
23 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction(com.dukascopy.charts.data.datacache.IFeedDataProvider, com.dukascopy.api.Instrument, com.dukascopy.api.OfferSide, com.dukascopy.api.Filter, com.dukascopy.api.Period, com.dukascopy.charts.data.datacache.CurvesDataLoader$IntraperiodExistsPolicy, com.dukascopy.charts.data.datacache.ILoadingProgressListener, com.dukascopy.charts.data.datacache.LiveFeedListener, int, int, long, long, long) [36]
26 return
Line numbers:
[pc: 0, line: 148]
[pc: 26, line: 163]
Local variable table:
[pc: 0, pc: 27] local: this index: 0 type: com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction
[pc: 0, pc: 27] local: feedDataProvider index: 1 type: com.dukascopy.charts.data.datacache.IFeedDataProvider
[pc: 0, pc: 27] local: instrument index: 2 type: com.dukascopy.api.Instrument
[pc: 0, pc: 27] local: offerSide index: 3 type: com.dukascopy.api.OfferSide
[pc: 0, pc: 27] local: filter index: 4 type: com.dukascopy.api.Filter
[pc: 0, pc: 27] local: desiredPeriod index: 5 type: com.dukascopy.api.Period
[pc: 0, pc: 27] local: intraperiodExistsPolicy index: 6 type: com.dukascopy.charts.data.datacache.CurvesDataLoader.IntraperiodExistsPolicy
[pc: 0, pc: 27] local: originalLoadingProgress index: 7 type: com.dukascopy.charts.data.datacache.ILoadingProgressListener
[pc: 0, pc: 27] local: originalLiveFeedListener index: 8 type: com.dukascopy.charts.data.datacache.LiveFeedListener
[pc: 0, pc: 27] local: fromTime index: 9 type: long
[pc: 0, pc: 27] local: toTime index: 11 type: long

// Method descriptor #205 ()V
// Stack: 5, Locals: 3
public void run();
0 aload_0 [this]
1 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getFromTime() : long [37]
4 ldc2_w <Long -1> [34]
7 lcmp
8 ifle 46
11 aload_0 [this]
12 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getToTime() : long [38]
15 ldc2_w <Long -1> [34]
18 lcmp
19 ifle 46
22 aload_0 [this]
23 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getDesiredPeriod() : com.dukascopy.api.Period [39]
26 aload_0 [this]
27 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getToTime() : long [38]
30 invokestatic com.dukascopy.charts.data.datacache.DataCacheUtils.getNextCandleStartFast(com.dukascopy.api.Period, long) : long [40]
33 lstore_1 [correctedToTheNextCandleToTime]
34 aload_0 [this]
35 aload_0 [this]
36 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getFromTime() : long [37]
39 lload_1 [correctedToTheNextCandleToTime]
40 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.performLoadingForFromToTimes(long, long) : void [41]
43 goto 90
46 aload_0 [this]
47 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getTime() : long [42]
50 ldc2_w <Long -1> [34]
53 lcmp
54 ifle 80
57 aload_0 [this]
58 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getNumberOfCandlesAfter() : int [43]
61 iconst_m1
62 if_icmple 80
65 aload_0 [this]
66 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getNumberOfCandlesBefore() : int [44]
69 iconst_m1
70 if_icmple 80
73 aload_0 [this]
74 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.performLoadingForCandlesCount() : void [45]
77 goto 90
80 new java.lang.IllegalArgumentException [18]
83 dup
84 ldc <String "Wrong params are set"> [46]
86 invokespecial java.lang.IllegalArgumentException(java.lang.String) [26]
89 athrow
90 return
Line numbers:
[pc: 0, line: 168]
[pc: 22, line: 169]
[pc: 34, line: 170]
[pc: 43, line: 171]
[pc: 46, line: 172]
[pc: 73, line: 173]
[pc: 80, line: 176]
[pc: 90, line: 178]
Local variable table:
[pc: 34, pc: 43] local: correctedToTheNextCandleToTime index: 1 type: long
[pc: 0, pc: 91] local: this index: 0 type: com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction
Stack map table: number of frames 3
[pc: 46, same]
[pc: 80, same]
[pc: 90, same]

// Method descriptor #208 (JJ)V
// Stack: 11, Locals: 18
private void performLoadingForFromToTimes(long fromTime, long toTime);
0 aconst_null
1 astore 5 [exception]
3 aconst_null
4 astore 6 [customPeriodFromTicksCreator]
6 iconst_0
7 istore 7 [loadingProcessStopped]
9 new com.dukascopy.charts.data.datacache.customperiod.tick.FlowCustomPeriodFromTicksCreator [47]
12 dup
13 aload_0 [this]
14 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getInstrument() : com.dukascopy.api.Instrument [48]
17 aload_0 [this]
18 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getOfferSide() : com.dukascopy.api.OfferSide [49]
21 aload_0 [this]
22 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getDesiredPeriod() : com.dukascopy.api.Period [39]
25 aload_0 [this]
26 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getFilter() : com.dukascopy.api.Filter [50]
29 iconst_0
30 new java.lang.Long [51]
33 dup
34 lload_1 [fromTime]
35 invokespecial java.lang.Long(long) [52]
38 aconst_null
39 aload_0 [this]
40 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.feedDataProvider : com.dukascopy.charts.data.datacache.IFeedDataProvider [2]
43 invokeinterface com.dukascopy.charts.data.datacache.IFeedDataProvider.getFilterManager() : com.dukascopy.charts.data.datacache.filtering.IFilterManager [53] [nargs: 1]
48 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.FlowCustomPeriodFromTicksCreator(com.dukascopy.api.Instrument, com.dukascopy.api.OfferSide, com.dukascopy.api.Period, com.dukascopy.api.Filter, boolean, java.lang.Long, java.lang.Double, com.dukascopy.charts.data.datacache.filtering.IFilterManager) [54]
51 astore 6 [customPeriodFromTicksCreator]
53 aload 6 [customPeriodFromTicksCreator]
55 aload_0 [this]
56 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getOriginalLiveFeedListener() : com.dukascopy.charts.data.datacache.LiveFeedListener [55]
59 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator.addListener(com.dukascopy.charts.data.datacache.LiveFeedListener) : void [56]
62 new com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodTickLiveFeedListener [57]
65 dup
66 aload 6 [customPeriodFromTicksCreator]
68 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodTickLiveFeedListener(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator) [58]
71 astore 8 [ticLiveFeedListener]
73 aload_0 [this]
74 aload_0 [this]
75 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getOriginalLoadingProgress() : com.dukascopy.charts.data.datacache.ILoadingProgressListener [59]
78 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.createTickLoadingProgressListener(com.dukascopy.charts.data.datacache.ILoadingProgressListener) : com.dukascopy.charts.data.datacache.customperiod.tick.TickLoadingProgressListener [60]
81 astore 9 [tickAfterLoadingProgressListener]
83 aload_0 [this]
84 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getFeedDataProvider() : com.dukascopy.charts.data.datacache.IFeedDataProvider [61]
87 aload_0 [this]
88 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getInstrument() : com.dukascopy.api.Instrument [48]
91 getstatic com.dukascopy.api.Period.TICK : com.dukascopy.api.Period [62]
94 invokeinterface com.dukascopy.charts.data.datacache.IFeedDataProvider.getTimeOfFirstCandle(com.dukascopy.api.Instrument, com.dukascopy.api.Period) : long [63] [nargs: 3]
99 lstore 10 [timeOfFirstCandle]
101 lload_1 [fromTime]
102 lload 10 [timeOfFirstCandle]
104 lcmp
105 ifle 112
108 lload_1 [fromTime]
109 goto 114
112 lload 10 [timeOfFirstCandle]
114 lstore 12 [startTime]
116 lload 12 [startTime]
118 lload_3 [toTime]
119 lcmp
120 ifge 213
123 aload_0 [this]
124 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getOriginalLoadingProgress() : com.dukascopy.charts.data.datacache.ILoadingProgressListener [59]
127 invokeinterface com.dukascopy.charts.data.datacache.ILoadingProgressListener.stopJob() : boolean [64] [nargs: 1]
132 ifeq 170
135 iconst_1
136 istore 7 [loadingProcessStopped]
138 aload_0 [this]
139 aload 6 [customPeriodFromTicksCreator]
141 aconst_null
142 aload 5 [exception]
144 iload 7 [loadingProcessStopped]
146 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.postFinishDataLoading(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, java.lang.Exception, boolean) : void [65]
149 goto 169
152 astore 14 [e]
154 getstatic com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.LOGGER : org.slf4j.Logger [67]
157 aload 14 [e]
159 invokevirtual java.lang.Exception.getMessage() : java.lang.String [68]
162 aload 14 [e]
164 invokeinterface org.slf4j.Logger.error(java.lang.String, java.lang.Throwable) : void [69] [nargs: 3]
169 return
170 lload 12 [startTime]
172 aload_0 [this]
173 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getIncreaseTimeInterval() : long [70]
176 ladd
177 lstore 14 [endTime]
179 lload 14 [endTime]
181 lload_3 [toTime]
182 lcmp
183 ifge 191
186 lload 14 [endTime]
188 goto 192
191 lload_3 [toTime]
192 lstore 14 [endTime]
194 aload_0 [this]
195 lload 12 [startTime]
197 lload 14 [endTime]
199 aload 8 [ticLiveFeedListener]
201 aload 9 [tickAfterLoadingProgressListener]
203 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.loadDataForTimeInterval(long, long, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodTickLiveFeedListener, com.dukascopy.charts.data.datacache.customperiod.tick.TickLoadingProgressListener) : void [71]
206 lload 14 [endTime]
208 lstore 12 [startTime]
210 goto 116
213 aload_0 [this]
214 aload_0 [this]
215 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.offerSide : com.dukascopy.api.OfferSide [5]
218 aload_0 [this]
219 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.desiredPeriod : com.dukascopy.api.Period [4]
222 aload_0 [this]
223 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.filter : com.dukascopy.api.Filter [6]
226 aload 6 [customPeriodFromTicksCreator]
228 aload_0 [this]
229 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getToTime() : long [38]
232 aload_0 [this]
233 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.feedDataProvider : com.dukascopy.charts.data.datacache.IFeedDataProvider [2]
236 invokeinterface com.dukascopy.charts.data.datacache.IFeedDataProvider.getFilterManager() : com.dukascopy.charts.data.datacache.filtering.IFilterManager [53] [nargs: 1]
241 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.checkAndProcessLastCandle(com.dukascopy.api.OfferSide, com.dukascopy.api.Period, com.dukascopy.api.Filter, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, long, com.dukascopy.charts.data.datacache.filtering.IFilterManager) : void [72]
244 aload_0 [this]
245 aload 6 [customPeriodFromTicksCreator]
247 aconst_null
248 aload 5 [exception]
250 iload 7 [loadingProcessStopped]
252 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.postFinishDataLoading(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, java.lang.Exception, boolean) : void [65]
255 goto 369
258 astore 8 [e]
260 getstatic com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.LOGGER : org.slf4j.Logger [67]
263 aload 8 [e]
265 invokevirtual java.lang.Exception.getMessage() : java.lang.String [68]
268 aload 8 [e]
270 invokeinterface org.slf4j.Logger.error(java.lang.String, java.lang.Throwable) : void [69] [nargs: 3]
275 goto 369
278 astore 8 [e]
280 aload 8 [e]
282 astore 5 [exception]
284 getstatic com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.LOGGER : org.slf4j.Logger [67]
287 aload 8 [e]
289 invokevirtual java.lang.Exception.getMessage() : java.lang.String [68]
292 aload 8 [e]
294 invokeinterface org.slf4j.Logger.error(java.lang.String, java.lang.Throwable) : void [69] [nargs: 3]
299 aload_0 [this]
300 aload 6 [customPeriodFromTicksCreator]
302 aconst_null
303 aload 5 [exception]
305 iload 7 [loadingProcessStopped]
307 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.postFinishDataLoading(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, java.lang.Exception, boolean) : void [65]
310 goto 369
313 astore 8 [e]
315 getstatic com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.LOGGER : org.slf4j.Logger [67]
318 aload 8 [e]
320 invokevirtual java.lang.Exception.getMessage() : java.lang.String [68]
323 aload 8 [e]
325 invokeinterface org.slf4j.Logger.error(java.lang.String, java.lang.Throwable) : void [69] [nargs: 3]
330 goto 369
333 astore 16
335 aload_0 [this]
336 aload 6 [customPeriodFromTicksCreator]
338 aconst_null
339 aload 5 [exception]
341 iload 7 [loadingProcessStopped]
343 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.postFinishDataLoading(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, java.lang.Exception, boolean) : void [65]
346 goto 366
349 astore 17 [e]
351 getstatic com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.LOGGER : org.slf4j.Logger [67]
354 aload 17 [e]
356 invokevirtual java.lang.Exception.getMessage() : java.lang.String [68]
359 aload 17 [e]
361 invokeinterface org.slf4j.Logger.error(java.lang.String, java.lang.Throwable) : void [69] [nargs: 3]
366 aload 16
368 athrow
369 return
Exception Table:
[pc: 138, pc: 149] -> 152 when : java.lang.Exception
[pc: 244, pc: 255] -> 258 when : java.lang.Exception
[pc: 9, pc: 138] -> 278 when : java.lang.Exception
[pc: 170, pc: 244] -> 278 when : java.lang.Exception
[pc: 299, pc: 310] -> 313 when : java.lang.Exception
[pc: 9, pc: 138] -> 333 when : any
[pc: 170, pc: 244] -> 333 when : any
[pc: 278, pc: 299] -> 333 when : any
[pc: 335, pc: 346] -> 349 when : java.lang.Exception
[pc: 333, pc: 335] -> 333 when : any
Line numbers:
[pc: 0, line: 181]
[pc: 3, line: 182]
[pc: 6, line: 183]
[pc: 9, line: 186]
[pc: 53, line: 197]
[pc: 62, line: 199]
[pc: 73, line: 200]
[pc: 83, line: 202]
[pc: 101, line: 203]
[pc: 116, line: 205]
[pc: 123, line: 206]
[pc: 135, line: 207]
[pc: 138, line: 272]
[pc: 149, line: 279]
[pc: 152, line: 274]
[pc: 154, line: 278]
[pc: 169, line: 279]
[pc: 170, line: 211]
[pc: 179, line: 212]
[pc: 194, line: 214]
[pc: 206, line: 215]
[pc: 210, line: 216]
[pc: 213, line: 218]
[pc: 244, line: 272]
[pc: 255, line: 279]
[pc: 258, line: 274]
[pc: 260, line: 278]
[pc: 275, line: 280]
[pc: 278, line: 263]
[pc: 280, line: 264]
[pc: 284, line: 265]
[pc: 299, line: 272]
[pc: 310, line: 279]
[pc: 313, line: 274]
[pc: 315, line: 278]
[pc: 330, line: 280]
[pc: 333, line: 268]
[pc: 335, line: 272]
[pc: 346, line: 279]
[pc: 349, line: 274]
[pc: 351, line: 278]
[pc: 366, line: 279]
[pc: 369, line: 281]
Local variable table:
[pc: 154, pc: 169] local: e index: 14 type: java.lang.Exception
[pc: 179, pc: 210] local: endTime index: 14 type: long
[pc: 73, pc: 244] local: ticLiveFeedListener index: 8 type: com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodTickLiveFeedListener
[pc: 83, pc: 244] local: tickAfterLoadingProgressListener index: 9 type: com.dukascopy.charts.data.datacache.customperiod.tick.TickLoadingProgressListener
[pc: 101, pc: 244] local: timeOfFirstCandle index: 10 type: long
[pc: 116, pc: 244] local: startTime index: 12 type: long
[pc: 260, pc: 275] local: e index: 8 type: java.lang.Exception
[pc: 280, pc: 299] local: e index: 8 type: java.lang.Exception
[pc: 315, pc: 330] local: e index: 8 type: java.lang.Exception
[pc: 351, pc: 366] local: e index: 17 type: java.lang.Exception
[pc: 0, pc: 370] local: this index: 0 type: com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction
[pc: 0, pc: 370] local: fromTime index: 1 type: long
[pc: 0, pc: 370] local: toTime index: 3 type: long
[pc: 3, pc: 370] local: exception index: 5 type: java.lang.Exception
[pc: 6, pc: 370] local: customPeriodFromTicksCreator index: 6 type: com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator
[pc: 9, pc: 370] local: loadingProcessStopped index: 7 type: boolean
Stack map table: number of frames 16
[pc: 112, full, stack: {}, locals: {com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction, long, long, java.lang.Exception, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, int, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodTickLiveFeedListener, com.dukascopy.charts.data.datacache.customperiod.tick.TickLoadingProgressListener, long}]
[pc: 114, same_locals_1_stack_item, stack: {long}]
[pc: 116, append: {long}]
[pc: 152, same_locals_1_stack_item, stack: {java.lang.Exception}]
[pc: 169, same]
[pc: 170, same]
[pc: 191, append: {long}]
[pc: 192, same_locals_1_stack_item, stack: {long}]
[pc: 213, chop 1 local(s)]
[pc: 258, full, stack: {java.lang.Exception}, locals: {com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction, long, long, java.lang.Exception, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, int}]
[pc: 278, same_locals_1_stack_item, stack: {java.lang.Exception}]
[pc: 313, same_locals_1_stack_item, stack: {java.lang.Exception}]
[pc: 333, same_locals_1_stack_item, stack: {java.lang.Throwable}]
[pc: 349, full, stack: {java.lang.Exception}, locals: {com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction, long, long, java.lang.Exception, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, int, _, _, _, _, _, _, _, _, java.lang.Throwable}]
[pc: 366, same]
[pc: 369, full, stack: {}, locals: {com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction, long, long, java.lang.Exception, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, int}]

// Method descriptor #229 (Lcom/dukascopy/api/OfferSide;Lcom/dukascopy/api/Period;Lcom/dukascopy/api/Filter;Lcom/dukascopy/charts/data/datacache/customperiod/tick/CustomPeriodFromTicksCreator;JLcom/dukascopy/charts/data/datacache/filtering/IFilterManager;)V
// Stack: 6, Locals: 15
private void checkAndProcessLastCandle(com.dukascopy.api.OfferSide offerSide, com.dukascopy.api.Period desiredPeriod, com.dukascopy.api.Filter filter, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator customPeriodFromTicksCreator, long lastCandleTime, com.dukascopy.charts.data.datacache.filtering.IFilterManager filterManager) throws com.dukascopy.charts.data.datacache.DataCacheException;
0 aload 4 [customPeriodFromTicksCreator]
2 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator.getLastData() : com.dukascopy.charts.data.datacache.CandleData [73]
5 astore 8 [lastCandle]
7 aload 4 [customPeriodFromTicksCreator]
9 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator.getCurrentCandleDataUnderAnalysis() : com.dukascopy.charts.data.datacache.CandleData [74]
12 astore 9 [notFinishedCandle]
14 getstatic com.dukascopy.api.Filter.WEEKENDS : com.dukascopy.api.Filter [75]
17 aload_3 [filter]
18 invokevirtual com.dukascopy.api.Filter.equals(java.lang.Object) : boolean [76]
21 ifeq 48
24 aload 7 [filterManager]
26 lload 5 [lastCandleTime]
28 aload_2 [desiredPeriod]
29 invokeinterface com.dukascopy.charts.data.datacache.filtering.IFilterManager.isWeekendTime(long, com.dukascopy.api.Period) : boolean [77] [nargs: 4]
34 ifeq 48
37 aload_2 [desiredPeriod]
38 lload 5 [lastCandleTime]
40 invokestatic com.dukascopy.charts.data.datacache.DataCacheUtils.getPreviousCandleStartFast(com.dukascopy.api.Period, long) : long [78]
43 lstore 5 [lastCandleTime]
45 goto 24
48 aload_2 [desiredPeriod]
49 lload 5 [lastCandleTime]
51 invokestatic com.dukascopy.charts.data.datacache.DataCacheUtils.getNextCandleStartFast(com.dukascopy.api.Period, long) : long [40]
54 lstore 10 [nextCandleTime]
56 aload 8 [lastCandle]
58 ifnull 88
61 aload 8 [lastCandle]
63 invokevirtual com.dukascopy.charts.data.datacache.CandleData.getTime() : long [79]
66 lload 5 [lastCandleTime]
68 lcmp
69 ifge 88
72 aload_0 [this]
73 aload 4 [customPeriodFromTicksCreator]
75 aload 8 [lastCandle]
77 invokevirtual com.dukascopy.charts.data.datacache.CandleData.getClose() : double [80]
80 lload 10 [nextCandleTime]
82 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.processFakeTickToCompleteLastCandle(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, double, long) : void [81]
85 goto 217
88 aload 8 [lastCandle]
90 ifnonnull 125
93 aload 9 [notFinishedCandle]
95 ifnull 125
98 aload 9 [notFinishedCandle]
100 invokevirtual com.dukascopy.charts.data.datacache.CandleData.getTime() : long [79]
103 lload 5 [lastCandleTime]
105 lcmp
106 ifgt 125
109 aload_0 [this]
110 aload 4 [customPeriodFromTicksCreator]
112 aload 9 [notFinishedCandle]
114 invokevirtual com.dukascopy.charts.data.datacache.CandleData.getClose() : double [80]
117 lload 10 [nextCandleTime]
119 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.processFakeTickToCompleteLastCandle(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, double, long) : void [81]
122 goto 217
125 aload 8 [lastCandle]
127 ifnonnull 217
130 aload 9 [notFinishedCandle]
132 ifnonnull 217
135 getstatic com.dukascopy.api.Filter.NO_FILTER : com.dukascopy.api.Filter [82]
138 aload_3 [filter]
139 invokevirtual com.dukascopy.api.Filter.equals(java.lang.Object) : boolean [76]
142 ifne 168
145 getstatic com.dukascopy.api.Filter.WEEKENDS : com.dukascopy.api.Filter [75]
148 aload_3 [filter]
149 invokevirtual com.dukascopy.api.Filter.equals(java.lang.Object) : boolean [76]
152 ifeq 217
155 aload 7 [filterManager]
157 lload 10 [nextCandleTime]
159 aload_2 [desiredPeriod]
160 invokeinterface com.dukascopy.charts.data.datacache.filtering.IFilterManager.isWeekendTime(long, com.dukascopy.api.Period) : boolean [77] [nargs: 4]
165 ifne 217
168 aload_0 [this]
169 lload 10 [nextCandleTime]
171 aload_2 [desiredPeriod]
172 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getLastTickBeforeTime(long, com.dukascopy.api.Period) : com.dukascopy.charts.data.datacache.TickData [83]
175 astore 12 [lastBeforeTimeTick]
177 aload 12 [lastBeforeTimeTick]
179 ifnull 217
182 getstatic com.dukascopy.api.OfferSide.ASK : com.dukascopy.api.OfferSide [84]
185 aload_1 [offerSide]
186 invokevirtual com.dukascopy.api.OfferSide.equals(java.lang.Object) : boolean [85]
189 ifeq 200
192 aload 12 [lastBeforeTimeTick]
194 invokevirtual com.dukascopy.charts.data.datacache.TickData.getAsk() : double [86]
197 goto 205
200 aload 12 [lastBeforeTimeTick]
202 invokevirtual com.dukascopy.charts.data.datacache.TickData.getBid() : double [87]
205 dstore 13 [price]
207 aload_0 [this]
208 aload 4 [customPeriodFromTicksCreator]
210 dload 13 [price]
212 lload 10 [nextCandleTime]
214 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.processFakeTickToCompleteLastCandle(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, double, long) : void [81]
217 return
Line numbers:
[pc: 0, line: 293]
[pc: 7, line: 294]
[pc: 14, line: 296]
[pc: 24, line: 297]
[pc: 37, line: 298]
[pc: 48, line: 302]
[pc: 56, line: 304]
[pc: 72, line: 308]
[pc: 88, line: 310]
[pc: 109, line: 314]
[pc: 125, line: 316]
[pc: 135, line: 320]
[pc: 168, line: 327]
[pc: 177, line: 328]
[pc: 182, line: 329]
[pc: 207, line: 332]
[pc: 217, line: 336]
Local variable table:
[pc: 207, pc: 217] local: price index: 13 type: double
[pc: 177, pc: 217] local: lastBeforeTimeTick index: 12 type: com.dukascopy.charts.data.datacache.TickData
[pc: 0, pc: 218] local: this index: 0 type: com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction
[pc: 0, pc: 218] local: offerSide index: 1 type: com.dukascopy.api.OfferSide
[pc: 0, pc: 218] local: desiredPeriod index: 2 type: com.dukascopy.api.Period
[pc: 0, pc: 218] local: filter index: 3 type: com.dukascopy.api.Filter
[pc: 0, pc: 218] local: customPeriodFromTicksCreator index: 4 type: com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator
[pc: 0, pc: 218] local: lastCandleTime index: 5 type: long
[pc: 0, pc: 218] local: filterManager index: 7 type: com.dukascopy.charts.data.datacache.filtering.IFilterManager
[pc: 7, pc: 218] local: lastCandle index: 8 type: com.dukascopy.charts.data.datacache.CandleData
[pc: 14, pc: 218] local: notFinishedCandle index: 9 type: com.dukascopy.charts.data.datacache.CandleData
[pc: 56, pc: 218] local: nextCandleTime index: 10 type: long
Stack map table: number of frames 8
[pc: 24, append: {com.dukascopy.charts.data.datacache.CandleData, com.dukascopy.charts.data.datacache.CandleData}]
[pc: 48, same]
[pc: 88, append: {long}]
[pc: 125, same]
[pc: 168, same]
[pc: 200, append: {com.dukascopy.charts.data.datacache.TickData}]
[pc: 205, same_locals_1_stack_item, stack: {double}]
[pc: 217, chop 1 local(s)]

// Method descriptor #246 (Lcom/dukascopy/charts/data/datacache/customperiod/tick/CustomPeriodFromTicksCreator;DJ)V
// Stack: 12, Locals: 7
private void processFakeTickToCompleteLastCandle(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator customPeriodFromTicksCreator, double price, long time);
0 new com.dukascopy.charts.data.datacache.TickData [88]
3 dup
4 lload 4 [time]
6 dload_2 [price]
7 dload_2 [price]
8 dconst_0
9 dconst_0
10 invokespecial com.dukascopy.charts.data.datacache.TickData(long, double, double, double, double) [89]
13 astore 6 [fakeTick]
15 aload_1 [customPeriodFromTicksCreator]
16 aload 6 [fakeTick]
18 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator.analyseTickData(com.dukascopy.charts.data.datacache.TickData) : boolean [90]
21 pop
22 return
Line numbers:
[pc: 0, line: 343]
[pc: 15, line: 344]
[pc: 22, line: 346]
Local variable table:
[pc: 0, pc: 23] local: this index: 0 type: com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction
[pc: 0, pc: 23] local: customPeriodFromTicksCreator index: 1 type: com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator
[pc: 0, pc: 23] local: price index: 2 type: double
[pc: 0, pc: 23] local: time index: 4 type: long
[pc: 15, pc: 23] local: fakeTick index: 6 type: com.dukascopy.charts.data.datacache.TickData

// Method descriptor #205 ()V
// Stack: 9, Locals: 12
private void performLoadingForCandlesCount();
0 aconst_null
1 astore_1 [exception]
2 aconst_null
3 astore_2 [customPeriodAfterCreator]
4 aconst_null
5 astore_3 [customPeriodBeforeCreator]
6 aload_0 [this]
7 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getTime() : long [42]
10 lstore 4 [timeForBeforeCreator]
12 aload_0 [this]
13 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.numberOfCandlesBefore : int [10]
16 ifle 83
19 aload_0 [this]
20 aload_0 [this]
21 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.instrument : com.dukascopy.api.Instrument [3]
24 aload_0 [this]
25 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.offerSide : com.dukascopy.api.OfferSide [5]
28 aload_0 [this]
29 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.filter : com.dukascopy.api.Filter [6]
32 aload_0 [this]
33 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.desiredPeriod : com.dukascopy.api.Period [4]
36 aload_0 [this]
37 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.numberOfCandlesBefore : int [10]
40 lload 4 [timeForBeforeCreator]
42 aload_0 [this]
43 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.feedDataProvider : com.dukascopy.charts.data.datacache.IFeedDataProvider [2]
46 invokeinterface com.dukascopy.charts.data.datacache.IFeedDataProvider.getFilterManager() : com.dukascopy.charts.data.datacache.filtering.IFilterManager [53] [nargs: 1]
51 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.loadDataBeforeTime(com.dukascopy.api.Instrument, com.dukascopy.api.OfferSide, com.dukascopy.api.Filter, com.dukascopy.api.Period, int, long, com.dukascopy.charts.data.datacache.filtering.IFilterManager) : com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator [91]
54 astore_3 [customPeriodBeforeCreator]
55 aload_0 [this]
56 aload_0 [this]
57 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.offerSide : com.dukascopy.api.OfferSide [5]
60 aload_0 [this]
61 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.desiredPeriod : com.dukascopy.api.Period [4]
64 aload_0 [this]
65 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.filter : com.dukascopy.api.Filter [6]
68 aload_3 [customPeriodBeforeCreator]
69 lload 4 [timeForBeforeCreator]
71 aload_0 [this]
72 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.feedDataProvider : com.dukascopy.charts.data.datacache.IFeedDataProvider [2]
75 invokeinterface com.dukascopy.charts.data.datacache.IFeedDataProvider.getFilterManager() : com.dukascopy.charts.data.datacache.filtering.IFilterManager [53] [nargs: 1]
80 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.checkAndProcessLastCandle(com.dukascopy.api.OfferSide, com.dukascopy.api.Period, com.dukascopy.api.Filter, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, long, com.dukascopy.charts.data.datacache.filtering.IFilterManager) : void [72]
83 aload_0 [this]
84 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getTime() : long [42]
87 lstore 6 [timeForAfterCreator]
89 aload_0 [this]
90 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.numberOfCandlesBefore : int [10]
93 ifle 109
96 aload_0 [this]
97 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.desiredPeriod : com.dukascopy.api.Period [4]
100 aload_0 [this]
101 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getTime() : long [42]
104 invokestatic com.dukascopy.charts.data.datacache.DataCacheUtils.getNextCandleStart(com.dukascopy.api.Period, long) : long [92]
107 lstore 6 [timeForAfterCreator]
109 aload_0 [this]
110 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.numberOfCandlesAfter : int [11]
113 ifle 195
116 aload_0 [this]
117 aload_0 [this]
118 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.instrument : com.dukascopy.api.Instrument [3]
121 aload_0 [this]
122 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.offerSide : com.dukascopy.api.OfferSide [5]
125 aload_0 [this]
126 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.filter : com.dukascopy.api.Filter [6]
129 aload_0 [this]
130 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.desiredPeriod : com.dukascopy.api.Period [4]
133 aload_0 [this]
134 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.numberOfCandlesAfter : int [11]
137 lload 6 [timeForAfterCreator]
139 aload_0 [this]
140 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.feedDataProvider : com.dukascopy.charts.data.datacache.IFeedDataProvider [2]
143 invokeinterface com.dukascopy.charts.data.datacache.IFeedDataProvider.getFilterManager() : com.dukascopy.charts.data.datacache.filtering.IFilterManager [53] [nargs: 1]
148 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.loadDataAfterTime(com.dukascopy.api.Instrument, com.dukascopy.api.OfferSide, com.dukascopy.api.Filter, com.dukascopy.api.Period, int, long, com.dukascopy.charts.data.datacache.filtering.IFilterManager) : com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator [93]
151 astore_2 [customPeriodAfterCreator]
152 aload_0 [this]
153 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.desiredPeriod : com.dukascopy.api.Period [4]
156 lload 6 [timeForAfterCreator]
158 aload_0 [this]
159 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.numberOfCandlesAfter : int [11]
162 invokestatic com.dukascopy.charts.data.datacache.DataCacheUtils.getTimeForNCandlesForwardFast(com.dukascopy.api.Period, long, int) : long [94]
165 lstore 8 [lastCandleTime]
167 aload_0 [this]
168 aload_0 [this]
169 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.offerSide : com.dukascopy.api.OfferSide [5]
172 aload_0 [this]
173 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.desiredPeriod : com.dukascopy.api.Period [4]
176 aload_0 [this]
177 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.filter : com.dukascopy.api.Filter [6]
180 aload_2 [customPeriodAfterCreator]
181 lload 8 [lastCandleTime]
183 aload_0 [this]
184 getfield com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.feedDataProvider : com.dukascopy.charts.data.datacache.IFeedDataProvider [2]
187 invokeinterface com.dukascopy.charts.data.datacache.IFeedDataProvider.getFilterManager() : com.dukascopy.charts.data.datacache.filtering.IFilterManager [53] [nargs: 1]
192 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.checkAndProcessLastCandle(com.dukascopy.api.OfferSide, com.dukascopy.api.Period, com.dukascopy.api.Filter, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, long, com.dukascopy.charts.data.datacache.filtering.IFilterManager) : void [72]
195 aload_0 [this]
196 aload_3 [customPeriodBeforeCreator]
197 aload_2 [customPeriodAfterCreator]
198 aload_1 [exception]
199 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.postData(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, java.lang.Exception) : void [95]
202 goto 307
205 astore 4 [e]
207 getstatic com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.LOGGER : org.slf4j.Logger [67]
210 aload 4 [e]
212 invokevirtual java.lang.Exception.getMessage() : java.lang.String [68]
215 aload 4 [e]
217 invokeinterface org.slf4j.Logger.error(java.lang.String, java.lang.Throwable) : void [69] [nargs: 3]
222 goto 307
225 astore 4 [e]
227 aload 4 [e]
229 astore_1 [exception]
230 getstatic com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.LOGGER : org.slf4j.Logger [67]
233 aload 4 [e]
235 invokevirtual java.lang.Exception.getMessage() : java.lang.String [68]
238 aload 4 [e]
240 invokeinterface org.slf4j.Logger.error(java.lang.String, java.lang.Throwable) : void [69] [nargs: 3]
245 aload_0 [this]
246 aload_3 [customPeriodBeforeCreator]
247 aload_2 [customPeriodAfterCreator]
248 aload_1 [exception]
249 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.postData(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, java.lang.Exception) : void [95]
252 goto 307
255 astore 4 [e]
257 getstatic com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.LOGGER : org.slf4j.Logger [67]
260 aload 4 [e]
262 invokevirtual java.lang.Exception.getMessage() : java.lang.String [68]
265 aload 4 [e]
267 invokeinterface org.slf4j.Logger.error(java.lang.String, java.lang.Throwable) : void [69] [nargs: 3]
272 goto 307
275 astore 10
277 aload_0 [this]
278 aload_3 [customPeriodBeforeCreator]
279 aload_2 [customPeriodAfterCreator]
280 aload_1 [exception]
281 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.postData(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, java.lang.Exception) : void [95]
284 goto 304
287 astore 11 [e]
289 getstatic com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.LOGGER : org.slf4j.Logger [67]
292 aload 11 [e]
294 invokevirtual java.lang.Exception.getMessage() : java.lang.String [68]
297 aload 11 [e]
299 invokeinterface org.slf4j.Logger.error(java.lang.String, java.lang.Throwable) : void [69] [nargs: 3]
304 aload 10
306 athrow
307 return
Exception Table:
[pc: 195, pc: 202] -> 205 when : java.lang.Exception
[pc: 6, pc: 195] -> 225 when : java.lang.Exception
[pc: 245, pc: 252] -> 255 when : java.lang.Exception
[pc: 6, pc: 195] -> 275 when : any
[pc: 225, pc: 245] -> 275 when : any
[pc: 277, pc: 284] -> 287 when : java.lang.Exception
[pc: 275, pc: 277] -> 275 when : any
Line numbers:
[pc: 0, line: 349]
[pc: 2, line: 351]
[pc: 4, line: 352]
[pc: 6, line: 358]
[pc: 12, line: 359]
[pc: 19, line: 360]
[pc: 55, line: 370]
[pc: 83, line: 383]
[pc: 89, line: 384]
[pc: 96, line: 385]
[pc: 109, line: 387]
[pc: 116, line: 388]
[pc: 152, line: 398]
[pc: 167, line: 399]
[pc: 195, line: 416]
[pc: 202, line: 423]
[pc: 205, line: 418]
[pc: 207, line: 422]
[pc: 222, line: 424]
[pc: 225, line: 409]
[pc: 227, line: 410]
[pc: 230, line: 411]
[pc: 245, line: 416]
[pc: 252, line: 423]
[pc: 255, line: 418]
[pc: 257, line: 422]
[pc: 272, line: 424]
[pc: 275, line: 415]
[pc: 277, line: 416]
[pc: 284, line: 423]
[pc: 287, line: 418]
[pc: 289, line: 422]
[pc: 304, line: 423]
[pc: 307, line: 425]
Local variable table:
[pc: 167, pc: 195] local: lastCandleTime index: 8 type: long
[pc: 12, pc: 195] local: timeForBeforeCreator index: 4 type: long
[pc: 89, pc: 195] local: timeForAfterCreator index: 6 type: long
[pc: 207, pc: 222] local: e index: 4 type: java.lang.Exception
[pc: 227, pc: 245] local: e index: 4 type: java.lang.Exception
[pc: 257, pc: 272] local: e index: 4 type: java.lang.Exception
[pc: 289, pc: 304] local: e index: 11 type: java.lang.Exception
[pc: 0, pc: 308] local: this index: 0 type: com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction
[pc: 2, pc: 308] local: exception index: 1 type: java.lang.Exception
[pc: 4, pc: 308] local: customPeriodAfterCreator index: 2 type: com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator
[pc: 6, pc: 308] local: customPeriodBeforeCreator index: 3 type: com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator
Stack map table: number of frames 10
[pc: 83, full, stack: {}, locals: {com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction, java.lang.Exception, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, long}]
[pc: 109, append: {long}]
[pc: 195, chop 2 local(s)]
[pc: 205, same_locals_1_stack_item, stack: {java.lang.Exception}]
[pc: 225, same_locals_1_stack_item, stack: {java.lang.Exception}]
[pc: 255, same_locals_1_stack_item, stack: {java.lang.Exception}]
[pc: 275, same_locals_1_stack_item, stack: {java.lang.Throwable}]
[pc: 287, full, stack: {java.lang.Exception}, locals: {com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction, java.lang.Exception, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, _, _, _, _, _, _, java.lang.Throwable}]
[pc: 304, same]
[pc: 307, full, stack: {}, locals: {com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction, java.lang.Exception, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator}]

// Method descriptor #254 (Lcom/dukascopy/api/Instrument;Lcom/dukascopy/api/OfferSide;Lcom/dukascopy/api/Filter;Lcom/dukascopy/api/Period;IJLcom/dukascopy/charts/data/datacache/filtering/IFilterManager;)Lcom/dukascopy/charts/data/datacache/customperiod/tick/CustomPeriodFromTicksCreator;
// Stack: 11, Locals: 18
private com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator loadDataBeforeTime(com.dukascopy.api.Instrument instrument, com.dukascopy.api.OfferSide offerSide, com.dukascopy.api.Filter filter, com.dukascopy.api.Period desiredPeriod, int numberOfCandlesBefore, long time, com.dukascopy.charts.data.datacache.filtering.IFilterManager filterManager) throws com.dukascopy.charts.data.datacache.DataCacheException;
0 iload 5 [numberOfCandlesBefore]
2 ifgt 7
5 aconst_null
6 areturn
7 aload_3 [filter]
8 ifnull 21
11 getstatic com.dukascopy.api.Filter.NO_FILTER : com.dukascopy.api.Filter [82]
14 aload_3 [filter]
15 invokevirtual com.dukascopy.api.Filter.equals(java.lang.Object) : boolean [76]
18 ifeq 35
21 aload 4 [desiredPeriod]
23 lload 6 [time]
25 iload 5 [numberOfCandlesBefore]
27 invokestatic com.dukascopy.charts.data.datacache.DataCacheUtils.getTimeForNCandlesBackFast(com.dukascopy.api.Period, long, int) : long [32]
30 lstore 9 [from]
32 goto 154
35 aload 4 [desiredPeriod]
37 lload 6 [time]
39 invokestatic com.dukascopy.charts.data.datacache.DataCacheUtils.getNextCandleStartFast(com.dukascopy.api.Period, long) : long [40]
42 lconst_1
43 lsub
44 lstore 11 [to]
46 new com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator [96]
49 dup
50 aload_1 [instrument]
51 aload_2 [offerSide]
52 iload 5 [numberOfCandlesBefore]
54 aload 4 [desiredPeriod]
56 aload_3 [filter]
57 iconst_1
58 lload 11 [to]
60 invokestatic java.lang.Long.valueOf(long) : java.lang.Long [97]
63 aconst_null
64 aload 8 [filterManager]
66 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator(com.dukascopy.api.Instrument, com.dukascopy.api.OfferSide, int, com.dukascopy.api.Period, com.dukascopy.api.Filter, boolean, java.lang.Long, java.lang.Double, com.dukascopy.charts.data.datacache.filtering.IFilterManager) [98]
69 astore 13 [customPeriodBeforeInverseCreator]
71 new com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodTickLiveFeedListener [57]
74 dup
75 aload 13 [customPeriodBeforeInverseCreator]
77 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodTickLiveFeedListener(com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator) [58]
80 astore 14 [tickInverseLiveFeedListener]
82 aload_0 [this]
83 aload_0 [this]
84 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getOriginalLoadingProgress() : com.dukascopy.charts.data.datacache.ILoadingProgressListener [59]
87 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.createTickLoadingProgressListener(com.dukascopy.charts.data.datacache.ILoadingProgressListener) : com.dukascopy.charts.data.datacache.customperiod.tick.TickLoadingProgressListener [60]
90 astore 15 [tickInverseLoadingProgressListener]
92 aload_0 [this]
93 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getFeedDataProvider() : com.dukascopy.charts.data.datacache.IFeedDataProvider [61]
96 aload_0 [this]
97 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.getInstrument() : com.dukascopy.api.Instrument [48]
100 getstatic com.dukascopy.api.Period.TICK : com.dukascopy.api.Period [62]
103 invokeinterface com.dukascopy.charts.data.datacache.IFeedDataProvider.getTimeOfFirstCandle(com.dukascopy.api.Instrument, com.dukascopy.api.Period) : long [63] [nargs: 3]
108 lstore 16 [firstCandleTime]
110 aload_0 [this]
111 lload 11 [to]
113 lload 16 [firstCandleTime]
115 aload 14 [tickInverseLiveFeedListener]
117 aload 15 [tickInverseLoadingProgressListener]
119 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.loadDataBeforeTime(long, long, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodTickLiveFeedListener, com.dukascopy.charts.data.datacache.customperiod.tick.TickLoadingProgressListener) : void [99]
122 aload 13 [customPeriodBeforeInverseCreator]
124 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator.getLoadedCandleCount() : int [100]
127 ifle 143
130 aload 13 [customPeriodBeforeInverseCreator]
132 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator.getLastData() : com.dukascopy.charts.data.datacache.CandleData [73]
135 getfield com.dukascopy.charts.data.datacache.CandleData.time : long [101]
138 lstore 9 [from]
140 goto 154
143 aload 4 [desiredPeriod]
145 lload 6 [time]
147 iload 5 [numberOfCandlesBefore]
149 invokestatic com.dukascopy.charts.data.datacache.DataCacheUtils.getTimeForNCandlesBackFast(com.dukascopy.api.Period, long, int) : long [32]
152 lstore 9 [from]
154 aload_0 [this]
155 aload_1 [instrument]
156 aload_2 [offerSide]
157 aload_3 [filter]
158 aload 4 [desiredPeriod]
160 iload 5 [numberOfCandlesBefore]
162 lload 9 [from]
164 aload 8 [filterManager]
166 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.loadDataAfterTime(com.dukascopy.api.Instrument, com.dukascopy.api.OfferSide, com.dukascopy.api.Filter, com.dukascopy.api.Period, int, long, com.dukascopy.charts.data.datacache.filtering.IFilterManager) : com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator [93]
169 astore 11 [creator]
171 aload 11 [creator]
173 areturn
Line numbers:
[pc: 0, line: 437]
[pc: 5, line: 438]
[pc: 7, line: 443]
[pc: 21, line: 444]
[pc: 35, line: 448]
[pc: 46, line: 450]
[pc: 71, line: 462]
[pc: 82, line: 463]
[pc: 92, line: 465]
[pc: 110, line: 466]
[pc: 122, line: 468]
[pc: 130, line: 469]
[pc: 143, line: 472]
[pc: 154, line: 476]
[pc: 171, line: 486]
Local variable table:
[pc: 32, pc: 35] local: from index: 9 type: long
[pc: 140, pc: 143] local: from index: 9 type: long
[pc: 46, pc: 154] local: to index: 11 type: long
[pc: 71, pc: 154] local: customPeriodBeforeInverseCreator index: 13 type: com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator
[pc: 82, pc: 154] local: tickInverseLiveFeedListener index: 14 type: com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodTickLiveFeedListener
[pc: 92, pc: 154] local: tickInverseLoadingProgressListener index: 15 type: com.dukascopy.charts.data.datacache.customperiod.tick.TickLoadingProgressListener
[pc: 110, pc: 154] local: firstCandleTime index: 16 type: long
[pc: 0, pc: 174] local: this index: 0 type: com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction
[pc: 0, pc: 174] local: instrument index: 1 type: com.dukascopy.api.Instrument
[pc: 0, pc: 174] local: offerSide index: 2 type: com.dukascopy.api.OfferSide
[pc: 0, pc: 174] local: filter index: 3 type: com.dukascopy.api.Filter
[pc: 0, pc: 174] local: desiredPeriod index: 4 type: com.dukascopy.api.Period
[pc: 0, pc: 174] local: numberOfCandlesBefore index: 5 type: int
[pc: 0, pc: 174] local: time index: 6 type: long
[pc: 0, pc: 174] local: filterManager index: 8 type: com.dukascopy.charts.data.datacache.filtering.IFilterManager
[pc: 154, pc: 174] local: from index: 9 type: long
[pc: 171, pc: 174] local: creator index: 11 type: com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator
Stack map table: number of frames 5
[pc: 7, same]
[pc: 21, same]
[pc: 35, same]
[pc: 143, full, stack: {}, locals: {com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction, com.dukascopy.api.Instrument, com.dukascopy.api.OfferSide, com.dukascopy.api.Filter, com.dukascopy.api.Period, int, long, com.dukascopy.charts.data.datacache.filtering.IFilterManager, _, _, long, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodFromTicksCreator, com.dukascopy.charts.data.datacache.customperiod.tick.CustomPeriodTickLiveFeedListener, com.dukascopy.charts.data.datacache.customperiod.tick.TickLoadingProgressListener, long}]
[pc: 154, full, stack: {}, locals: {com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction, com.dukascopy.api.Instrument, com.dukascopy.api.OfferSide, com.dukascopy.api.Filter, com.dukascopy.api.Period, int, long, com.dukascopy.charts.data.datacache.filtering.IFilterManager, long}]

// Method descriptor #264 (JLcom/dukascopy/api/Period;)Lcom/dukascopy/charts/data/datacache/TickData;
// Stack: 7, Locals: 16
private com.dukascopy.charts.data.datacache.TickData getLastTickBeforeTime(long timeTo, com.dukascopy.api.Period period) throws com.dukascopy.charts.data.datacache.DataCacheException;
0 lload_1 [timeTo]
1 lstore 4 [from]
3 new com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction$1 [102]
6 dup
7 aload_0 [this]
8 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction$1(com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction) [103]
11 astore 6 [loadingProgressListener]
13 new com.dukascopy.charts.data.datacache.customperiod.tick.FirstTickLiveFeedListener [104]
16 dup
17 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.FirstTickLiveFeedListener() [105]
20 astore 7 [firstTickLoadingProgressListener]
22 aload_3 [period]
23 lload_1 [timeTo]
24 invokestatic com.dukascopy.charts.data.datacache.DataCacheUtils.getNextCandleStartFast(com.dukascopy.api.Period, long) : long [40]
27 lconst_1
28 lsub
29 lstore 8 [to]
31 aload_0 [this]
32 lload 4 [from]
34 lload 8 [to]
36 aload 7 [firstTickLoadingProgressListener]
38 aload 6 [loadingProgressListener]
40 invokespecial com.dukascopy.charts.data.datacache.customperiod.tick.LoadCandlesFromTicksAction.createLoadDataAction(long, long, com.dukascopy.charts.data.datacache.LiveFeedListener, com.dukascopy.charts.data.datacache.ILoadingProgressListener) : com.dukascopy.charts.data.datacache.LoadDataAction [106]
43 astore 10 [action]
45 aload 10 [action]
47 invokevirtual com.dukascopy.charts.data.datacache.LoadDataAction.run() : void [107]
50 aload 7 [firstTickLoadingProgressListener]
52 invokevirtual com.dukascopy.charts.data.datacache.customperiod.tick.FirstTickLiveFeedLi


 
 Post subject: Re: java.lang.IllegalArgumentException Issue with DataCache and loading History data Post rating: 0   New post Posted: Tue 02 Dec, 2014, 08:32 
User avatar

User rating:
Joined: Fri 31 Aug, 2007, 09:17
Posts: 6139
What version of SDK do you use?


 

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