Hello Support,
You are right that I mistakenly have used the wrong jar.
This exception persists though(also with API(2.12.6)).
I've checked when this exceptions occures and it is
not related to the login process.
I could narrow down the problem to the point where the threads call
client.startStrategy(...)
I suspect that some Dukascopy thread notifies all current running strategies which are stored in a List or other
non-concurrent container.
Now, one of my threads calls
client.startStrategy(...)
while the Dukascopy thread loops through the already listed strategies.
This should result in the above exception.
Would it be much of a problem to use a concurrent-modifiable List instead, so that we can start and stop strategies at any time?
Thanks,
Juergen
PS: Here is the new log
java.util.concurrent.ExecutionException: java.util.ConcurrentModificationException
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
at java.util.concurrent.FutureTask.get(FutureTask.java:111)
at com.dukascopy.dds2.greed.market.LiveCurrencyMarketProcessingThread.run(LiveCurrencyMarketProcessingThread.java:116)
Caused by: java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:894)
at java.util.HashMap$ValueIterator.next(HashMap.java:922)
at com.dukascopy.api.impl.connect.DCClientImpl$7.tickReceived(DCClientImpl.java:794)
at com.dukascopy.dds2.greed.market.LiveCurrencyMarketProcessingThread$1.run(LiveCurrencyMarketProcessingThread.java:135)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
With API 2.12.6(DCClientImpl.java:794 differs)