有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何修复Jenkins插件中的“此位置的预期stackmap帧”

我正在维护一个jenkins插件,它已经公开使用两年了。最近,它停止工作,在此位置显示“预期的堆栈映射帧”JVM错误

有一些话题在讨论这个问题,但没有一个答案能真正提供有用的解决方案。一个建议的解决方案是使用-XX:-UseSplitVerifier选项配置JVM。然而,通过强制每个jenkins服务器安装来更新其JVM配置,这是不实际的

到目前为止,我所做的是将Java编译版本设置为7,并将所有MVN依赖项更新为其最新版本,并执行干净的重建。到目前为止没有任何进展。我仍然得到这个错误:

javax.servlet.ServletException: java.lang.VerifyError: Expecting a stackmap frame at branch target 53
Exception Details:
  Location:
    com/loadimpact/ApiTokenClient.isValidToken()Z @0: aload_0
  Reason:
    Expected stackmap frame at this location.
  Bytecode:
    0x0000000: 2ab4 00db 12ac b901 5902 0004 bd01 5f59
    0x0000010: 03b2 0163 53b9 0167 0200 b901 cf01 004c
    0x0000020: 2bb6 017f b901 d301 00b2 01d7 a600 0704
    0x0000030: a700 0403 ac4c 2ab4 00d7 bb01 d959 b701
    0x0000040: da13 01dc b601 e02b b601 e3b6 01e5 b601
    0x0000050: e803 ac                                
  Exception Handler Table:
    bci [0, 52] => handler: 53

    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
    at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)

我的测试环境是Ubuntu 15.04,OpenJDK运行时环境(build 1.8.0_45-internal-b14)运行最新的Jenkins(版本1.611)

该插件(现在)依赖于最新的jenkins父插件

<parent>
    <groupId>org.jenkins-ci.plugins</groupId>
    <artifactId>plugin</artifactId>
    <version>1.610</version>
</parent>

因此,我的问题很简单:如果我只能为插件指定依赖项和编译选项(即,不要求人们更改Jenkins配置),我如何解决这个问题


共 (0) 个答案