Resposta

java.lang.ClassCastException - Como depurar

2 respostas

Josué

Assinante, bbp_participante, cliente, comunidade, 3 respostas.

Perfil da visita

2 anos atrás #282633

Estou trabalhando em alguns códigos de indicadores personalizados que quero incluir na geração de minha estratégia. Infelizmente, quando tento executar o construtor (v135.868), ele acaba parando devido a uma ClassCastException. Tenho certeza de que provavelmente cometi um erro bobo em algum lugar do meu código personalizado. No entanto, com o stacktrace que obtenho dos logs do SQ, não consigo ver de onde vem o problema. Existe alguma maneira de obter melhor visibilidade do bloco que está realmente causando esse problema? O exemplo de stacktrace está abaixo para referência. Obrigado!

22:17:23.578 [Nonblocking computeThread - 2 - Builder_2] ERROR GPGenerationalEngine - Error
java.lang.ClassCastException: a classe java.lang.Integer não pode ser convertida para a classe java.lang.Double (java.lang.Integer e java.lang.Double estão no módulo java.base do carregador 'bootstrap')
em 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]
em 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]
em 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]
em java.base/java.lang.Thread.run(Thread.java:832) ~[na:na]

0

Josué

Assinante, bbp_participante, cliente, comunidade, 3 respostas.

Perfil da visita

2 anos atrás #282692

Consegui descobrir qual bloco de sinal estava causando o problema desativando todos eles e, em seguida, ativando-os um de cada vez, até encontrar o que estava causando o erro.

0

tomas262

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

2 anos atrás #282711

Ok, obrigado por nos informar

0

Visualizando 2 respostas - 1 até 2 (de um total de 2)