Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
异常java.lang.VerifyError:Heron中发生操作数堆栈上的错误类型_Java_Heron - Fatal编程技术网

异常java.lang.VerifyError:Heron中发生操作数堆栈上的错误类型

异常java.lang.VerifyError:Heron中发生操作数堆栈上的错误类型,java,heron,Java,Heron,我尝试使用以下代码从zookeeper处获取物理计划: String stateMgrClass = Context.stateManagerClass(this.config); IStateManager stateManager = null; stateManager = ReflectionUtils.newInstance(stateMgrClass); stateManager.initialize(this.config); SchedulerStateManagerAdapto

我尝试使用以下代码从zookeeper处获取物理计划:

String stateMgrClass = Context.stateManagerClass(this.config);
IStateManager stateManager = null;
stateManager = ReflectionUtils.newInstance(stateMgrClass);
stateManager.initialize(this.config);
SchedulerStateManagerAdaptor stateManagerAdaptor = new SchedulerStateManagerAdaptor(stateManager, 5000);
PhysicalPlans.PhysicalPlan physicalPlan = stateManagerAdaptor.getPhysicalPlan(this.topologyName);
然后出现异常:java.lang.VerifyError:操作数堆栈上的类型错误:

Exception in thread "Thread-4" java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    com/twitter/heron/proto/system/PhysicalPlans$PhysicalPlan$Builder.mergeTopology(Lcom/twitter/heron/api/generated/TopologyAPI$Topology;)Lcom/twitter/heron/proto/system/PhysicalPlans$PhysicalPlan$Builder; @72: invokevirtual
  Reason:
    Type 'com/twitter/heron/api/generated/TopologyAPI$Topology' (current frame, stack[1]) is not assignable to 'com/google/protobuf/AbstractMessage'
  Current Frame:
    bci: @72
    flags: { }
    locals: { 'com/twitter/heron/proto/system/PhysicalPlans$PhysicalPlan$Builder', 'com/twitter/heron/api/generated/TopologyAPI$Topology' }
    stack: { 'com/google/protobuf/SingleFieldBuilderV3', 'com/twitter/heron/api/generated/TopologyAPI$Topology' }
  Bytecode:
    0x0000000: 2ab4 0014 c700 3f2a b400 1604 7e04 a000
    0x0000010: 292a b400 09c6 0022 2ab4 0009 b800 4fa5
    0x0000020: 0018 2a2a b400 09b8 0055 2bb6 0056 b600
    0x0000030: 57b5 0009 a700 082a 2bb5 0009 2ab6 0037
    0x0000040: a700 0c2a b400 142b b600 5857 2a59 b400
    0x0000050: 1604 80b5 0016 2ab0                    
  Stackmap Table:
    same_frame(@55)
    same_frame(@60)
    same_frame(@67)
    same_frame(@76)

    at com.twitter.heron.proto.system.PhysicalPlans$PhysicalPlan.toBuilder(PhysicalPlans.java:4211)
    at com.twitter.heron.proto.system.PhysicalPlans$PhysicalPlan.newBuilder(PhysicalPlans.java:4204)
    at com.twitter.heron.statemgr.FileSystemStateManager.getPhysicalPlan(FileSystemStateManager.java:165)
    at com.twitter.heron.spi.statemgr.SchedulerStateManagerAdaptor.getPhysicalPlan(SchedulerStateManagerAdaptor.java:289)
    at zyt.custom.my.scheduler.aurora.AuroraSchedulerController.basedWeightSchedule(AuroraSchedulerController.java:782)
    at zyt.custom.my.scheduler.aurora.AuroraSchedulerThread.run(AuroraSchedulerThread.java:54)

我不知道是什么导致了这个异常。感谢您的帮助。

当类的编译时和运行时版本不同时,会出现异常


最近,我在尝试使用旧版本的探查器时遇到了这样一个问题,当探查器启动时,某个操作将被调用,verifyError被抛出

通过从pom.xml文件中删除
heron api:[heron version].jar
解决了这个问题

heron spi:[heron version].jar是创建heron的自定义调度程序所必需的

那么,关于如何解决这个问题有什么建议吗?我的问题是因为我的分析器,当我更改它的版本时,所有的事情都正确地完成了。首先,你应该检查Heron的版本,最后,如果有任何版本不兼容,你应该使用一个更新的版本。这个问题发生在我在类中添加了一个函数之后。在添加函数之前,所有操作都已正确完成。然而,即使我删除了函数并重新编译了项目的.jar文件,这个问题仍然存在。我已经检查了Heron版本,没有任何问题。