heroku Java更新到17版本后,CompletableFuture的通用签名格式错误

plicqrtu  于 2022-11-13  发布在  Java
关注(0)|答案(1)|浏览(189)

我已经将我们公司应用程序的Java版本从8升级到17。在本地机器上,无论是构建还是运行时调用,它都运行良好。在GitHub上,它的部署也很好,Junit测试也执行得很沿着。
这个问题是在我在Heroku上部署应用程序之后出现的。Heroku构建成功,但是在运行时,当我调用方法时,收到以下错误:

"message": "Handler dispatch failed; nested exception is java.lang.reflect.GenericSignatureFormatError: Signature Parse error: expected a class type\n\tRemaining input: java/util/concurrent/CompletableFuture",

公司名称:上海市某软件开发有限公司工作地点:上海市发布时间:2009 - 4 - 11

3vpjnl9f

3vpjnl9f1#

此错误与正在调查的this bug有关。
目前的解决方案是禁用CompletableFuture插装。这可以通过在newrelate.yml的公共节下添加以下内容来实现:

class_transformer:
    com.newrelic.instrumentation.java.completable-future-jdk8u40:
      enabled: false

2022年2月23日更新:New Relic中的错误是由Java 17中的以下错误引起的:https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8282241
2022年7月29日更新:Java 19早期版本已经包含一个修复。应该在Java 17.0.5中修复,将于2022年10月发布。
2022年10月19日更新:Java 17.0.5已发布,其中包含对导致此问题的错误的修复。

相关问题