java.lang.ClassCastException - Come eseguire il debug
2 risposte
Giosuè
2 anni fa #282633
Ho lavorato su un codice indicatore personalizzato che voglio includere nella generazione della mia strategia. Purtroppo quando provo a eseguire il costruttore (v135.868) alla fine si blocca a causa di una ClassCastException. Sono sicuro di aver commesso uno stupido errore nel mio codice personalizzato. Tuttavia, con lo stacktrace che ottengo dai log di SQ, non sono in grado di capire da dove provenga il problema. Esiste un modo per ottenere una migliore visibilità su quale blocco sta effettivamente causando questo problema? Lo stacktrace di esempio è riportato di seguito come riferimento. Grazie!
22:17:23.578 [Nonblocking computeThread - 2 - Builder_2] ERROR GPGenerationalEngine - Errore
java.lang.ClassCastException: la classe java.lang.Integer non può essere lanciata nella classe java.lang.Double (java.lang.Integer e java.lang.Double sono nel modulo java.base del caricatore 'bootstrap')
at SQ.Negater.ConditionsNegater.negate(ConditionsNegater.java:56) ~[na:na]
at com.strategyquant.tradinglib.NegatersList.negate(Unknown Source) ~[SQTradingLib.jar:na]
at SQ.Negater.AndOrNegater.negate(AndOrNegater.java:40) ~[na:na]
at com.strategyquant.tradinglib.NegatersList.negate(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.blocks.random.ReplacementsConfig.negateBlock(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.findAndReplaceNegatedBlocks(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.generator.StrategyGenerator.generate(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.strategies.NodeFactory.generateStrategy(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.strategies.NodeFactory.generateRandomCandidate(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.strategies.NodeFactory.generateRandomCandidate(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.GPGenerationalEngine.generateInitialPopulation(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.GPGenerationalEngine.gpEvolution(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.GPGenerationalEngine.evolve(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.GPIslandJob.call(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.tradinglib.gp.GPIslandJob.call(Unknown Source) ~[SQTradingLib.jar:na]
at com.strategyquant.gridlib.compute.performer.MultithreadComputePerformer$1.run(Unknown Source) ~[SQGridLib2.jar:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]
Giosuè
2 anni fa #282692
Sono riuscito a capire quale blocco di segnale causava il problema disabilitandoli tutti e riaccendendoli uno alla volta, finché non ho trovato quello che dava l'errore.

tomas262
2 anni fa #282711
Ok, grazie per averci informato
Stai visualizzando 2 risposte - da 1 al 2 (di 2 totali)