Jakarta ee JavaEE+;Glassfish-缓冲区下溢异常

Jakarta ee JavaEE+;Glassfish-缓冲区下溢异常,jakarta-ee,netbeans,jms,glassfish-4.1,bufferunderflowexception,Jakarta Ee,Netbeans,Jms,Glassfish 4.1,Bufferunderflowexception,我有一个非常简单的JavaEE应用程序,其中有些bean使用JMS进行通信。当我尝试部署和调试我的应用程序时,我得到了以下结果 Informazioni: visiting unvisited references Grave: Unknow type constant pool 18 at position38 Grave: Unknow type constant pool 0 at position39 Grave: Unknow type constant pool 0

我有一个非常简单的JavaEE应用程序,其中有些bean使用JMS进行通信。当我尝试部署和调试我的应用程序时,我得到了以下结果

Informazioni:   visiting unvisited references
Grave:   Unknow type constant pool 18 at position38
Grave:   Unknow type constant pool 0 at position39
Grave:   Unknow type constant pool 0 at position40
Grave:   Unknow type constant pool 105 at position43
Grave:   Unknow type constant pool 116 at position44
Grave:   Unknow type constant pool 101 at position45
Grave:   Unknow type constant pool 32 at position46
Grave:   Unknow type constant pool 108 at position47
Grave:   Unknow type constant pool -30 at position48
Grave:   Unknow type constant pool -128 at position49
Grave:   Unknow type constant pool -103 at position50
Grave:   Unknow type constant pool 105 at position51
Grave:   Unknow type constant pool 110 at position52
Grave:   Unknow type constant pool 110 at position53
Grave:   Unknow type constant pool 111 at position54
Grave:   Unknow type constant pool 118 at position55
Grave:   Unknow type constant pool 97 at position56
Grave:   Unknow type constant pool 116 at position57
Grave:   Unknow type constant pool 105 at position58
Grave:   Unknow type constant pool 118 at position59
Grave:   Unknow type constant pool 97 at position60
Grave:   Unknow type constant pool 32 at position61
Grave:   Unknow type constant pool 116 at position62
Grave:   Unknow type constant pool 101 at position63
Grave:   Unknow type constant pool 99 at position64
Grave:   Unknow type constant pool 110 at position65
Grave:   Unknow type constant pool 111 at position66
Grave:   Unknow type constant pool 108 at position67
Grave:   Unknow type constant pool 111 at position68
Grave:   Unknow type constant pool 103 at position69
Grave:   Unknow type constant pool 105 at position70
Grave:   Unknow type constant pool 97 at position71
Grave:   Unknow type constant pool 32 at position72
Grave:   Unknow type constant pool 68 at position73
Grave:   Unknow type constant pool 111 at position74
Grave:   Unknow type constant pool 119 at position75
Grave:   Unknow type constant pool 110 at position76
Grave:   Unknow type constant pool 108 at position77
Grave:   Unknow type constant pool 111 at position78
Grave:   Unknow type constant pool 97 at position79
Grave:   Unknow type constant pool 100 at position80
Grave:   Unknow type constant pool 32 at position81
Grave:   Unknow type constant pool 66 at position82
Grave:   Unknow type constant pool 111 at position83
Grave:   Unknow type constant pool 111 at position84
Grave:   Unknow type constant pool 115 at position85
Grave:   Unknow type constant pool 116 at position86
Grave:   Unknow type constant pool 101 at position87
Grave:   Unknow type constant pool 114 at position88
Grave:   Unknow type constant pool 44 at position89
Grave:   Unknow type constant pool 32 at position90
Grave:   Unknow type constant pool 112 at position91
Grave:   Unknow type constant pool 111 at position92
Grave:   Unknow type constant pool 116 at position93
Grave:   Unknow type constant pool 114 at position94
Grave:   Unknow type constant pool 97 at position95
Grave:   Unknow type constant pool 105 at position96
Grave:   Unknow type constant pool 32 at position97
Grave:   Unknow type constant pool 97 at position98
Grave:   Unknow type constant pool 117 at position99
Grave:   Unknow type constant pool 109 at position100
Grave:   Unknow type constant pool 101 at position101
Grave:   Unknow type constant pool 110 at position102
Grave:   Unknow type constant pool 116 at position103
Grave:   Unknow type constant pool 97 at position104
Grave:   Unknow type constant pool 114 at position105
Grave:   Unknow type constant pool 101 at position106
Grave:   Unknow type constant pool 32 at position107
Grave:   Unknow type constant pool 115 at position108
Grave:   Unknow type constant pool 105 at position109
Grave:   Unknow type constant pool 103 at position110
Grave:   Unknow type constant pool 110 at position111
Grave:   Unknow type constant pool 105 at position112
Grave:   Unknow type constant pool 102 at position113
Grave:   Unknow type constant pool 105 at position114
Grave:   Unknow type constant pool 99 at position115
Grave:   Unknow type constant pool 97 at position116
Grave:   Unknow type constant pool 116 at position117
Grave:   Unknow type constant pool 105 at position118
Grave:   Unknow type constant pool 118 at position119
Grave:   Unknow type constant pool 97 at position120
Grave:   Unknow type constant pool 109 at position121
Grave:   Unknow type constant pool 101 at position122
Grave:   Unknow type constant pool 110 at position123
Grave:   Unknow type constant pool 116 at position124
Grave:   Unknow type constant pool 101 at position125
Grave:   Unknow type constant pool 32 at position126
Grave:   Unknow type constant pool 108 at position127
Grave:   Unknow type constant pool 97 at position128
Grave:   Unknow type constant pool 32 at position129
Grave:   Unknow type constant pool 118 at position130
Grave:   Unknow type constant pool 101 at position131
Grave:   Unknow type constant pool 108 at position132
Grave:   Unknow type constant pool 111 at position133
Grave:   Unknow type constant pool 99 at position134
Grave:   Unknow type constant pool 105 at position135
Grave:   Unknow type constant pool 116 at position136
Grave:   Unknow type constant pool -61 at position137
Grave:   Unknow type constant pool -96 at position138
Grave:   Unknow type constant pool 32 at position139
Grave:   Unknow type constant pool 100 at position140
Grave:   Unknow type constant pool 105 at position141
Grave:   Unknow type constant pool 32 at position142
Grave:   Unknow type constant pool 100 at position143
Grave:   Unknow type constant pool 111 at position144
Grave:   Unknow type constant pool 119 at position145
Grave:   Unknow type constant pool 110 at position146
Grave:   Unknow type constant pool 108 at position147
Grave:   Unknow type constant pool 111 at position148
Grave:   Unknow type constant pool 97 at position149
Grave:   Unknow type constant pool 100 at position150
Grave:   Unknow type constant pool 32 at position151
Grave:   Unknow type constant pool 100 at position152
Grave:   Unknow type constant pool 101 at position153
Grave:   Unknow type constant pool 105 at position154
Grave:   Unknow type constant pool 32 at position155
Grave:   Unknow type constant pool 100 at position156
Grave:   Unknow type constant pool 97 at position157
Grave:   Unknow type constant pool 116 at position158
Grave:   Unknow type constant pool 105 at position159
Grave:   Unknow type constant pool 32 at position160
Grave:   Unknow type constant pool 99 at position161
Grave:   Unknow type constant pool 111 at position162
Grave:   Unknow type constant pool 109 at position163
Grave:   Unknow type constant pool 98 at position164
Grave:   Unknow type constant pool 105 at position165
Grave:   Unknow type constant pool 110 at position166
Grave:   Unknow type constant pool 97 at position167
Grave:   Unknow type constant pool 110 at position168
Grave:   Unknow type constant pool 100 at position169
Grave:   Unknow type constant pool 111 at position170
Grave:   Unknow type constant pool 32 at position171
Grave:   Unknow type constant pool 87 at position172
Grave:   Unknow type constant pool 105 at position173
Grave:   Unknow type constant pool 45 at position174
Grave:   Unknow type constant pool 70 at position175
Grave:   Unknow type constant pool 105 at position176
Grave:   Unknow type constant pool 32 at position177
Grave:   Unknow type constant pool 101 at position178
Grave:   Unknow type constant pool 32 at position179
Grave:   Unknow type constant pool 52 at position180
Grave:   Unknow type constant pool 71 at position181
Grave:   Unknow type constant pool 32 at position182
Grave:   Unknow type constant pool 76 at position183
Grave:   Unknow type constant pool 84 at position184
Grave:   Unknow type constant pool 69 at position185
Grave:   Unknow type constant pool 46 at position186
Grave:   Unknow type constant pool 103 at position188
Grave:   Unknow type constant pool 110 at position189
Grave:   Unknow type constant pool 105 at position190
Grave:   Unknow type constant pool 32 at position191
Grave:   Unknow type constant pool 115 at position192
Grave:   Unknow type constant pool 105 at position193
Grave:   Unknow type constant pool 116 at position194
Grave:   Unknow type constant pool 117 at position195
Grave:   Unknow type constant pool 97 at position196
Grave:   Unknow type constant pool 122 at position197
Grave:   Unknow type constant pool 105 at position198
Grave:   Unknow type constant pool 111 at position199
Grave:   Unknow type constant pool 110 at position200
Grave:   Unknow type constant pool 101 at position201
Grave:   Unknow type constant pool 32 at position202
Grave:   Unknow type constant pool 105 at position203
Grave:   Unknow type constant pool 108 at position204
Grave:   Unknow type constant pool 32 at position205
Grave:   Unknow type constant pool 116 at position206
Grave:   Unknow type constant pool 117 at position207
Grave:   Unknow type constant pool 111 at position208
Grave:   Unknow type constant pool 32 at position209
Grave:   Unknow type constant pool 71 at position210
Grave:   Unknow type constant pool 97 at position211
Grave:   Unknow type constant pool 108 at position212
Grave:   Unknow type constant pool 97 at position213
Grave:   Unknow type constant pool 120 at position214
Grave:   Unknow type constant pool 121 at position215
Grave:   Unknow type constant pool 32 at position216
Grave:   Unknow type constant pool 83 at position217
Grave:   Unknow type constant pool 53 at position218
Grave:   Unknow type constant pool 32 at position219
Grave:   Unknow type constant pool 115 at position220
Grave:   Unknow type constant pool 97 at position221
Grave:   Unknow type constant pool 114 at position222
Grave:   Unknow type constant pool -61 at position223
Grave:   Unknow type constant pool -96 at position224
Grave:   Unknow type constant pool 32 at position225
Grave:   Unknow type constant pool 112 at position226
Grave:   Unknow type constant pool 114 at position227
Grave:   Unknow type constant pool 111 at position228
Grave:   Unknow type constant pool 116 at position229
Grave:   Unknow type constant pool 101 at position230
Grave:   Unknow type constant pool 116 at position231
Grave:   Unknow type constant pool 116 at position232
Grave:   Unknow type constant pool 111 at position233
Grave:   Unknow type constant pool 32 at position234
Grave:   Unknow type constant pool 100 at position235
Grave:   Unknow type constant pool 97 at position236
Grave:   Unknow type constant pool 32 at position237
Grave:   Unknow type constant pool 97 at position238
Grave:   Unknow type constant pool 99 at position239
Grave:   Unknow type constant pool 113 at position240
Grave:   Unknow type constant pool 117 at position241
Grave:   Unknow type constant pool 97 at position242
Grave:   Unknow type constant pool 44 at position243
Grave:   Unknow type constant pool 32 at position244
Grave:   Unknow type constant pool 112 at position245
Grave:   Unknow type constant pool 105 at position246
Grave:   Unknow type constant pool 111 at position247
Grave:   Unknow type constant pool 103 at position248
Grave:   Unknow type constant pool 103 at position249
Grave:   Unknow type constant pool 105 at position250
Grave:   Unknow type constant pool 97 at position251
Grave:   Unknow type constant pool 44 at position252
Grave:   Unknow type constant pool 32 at position253
Grave:   Unknow type constant pool 112 at position254
Grave:   Unknow type constant pool 111 at position255
Grave:   Unknow type constant pool 108 at position256
Grave:   Unknow type constant pool 118 at position257
Grave:   Unknow type constant pool 101 at position258
Grave:   Unknow type constant pool 114 at position259
Grave:   Unknow type constant pool 101 at position260
Grave:   Unknow type constant pool 32 at position261
Grave:   Unknow type constant pool 101 at position262
Grave:   Unknow type constant pool 32 at position263
Grave:   Unknow type constant pool 115 at position264
Grave:   Unknow type constant pool 97 at position265
Grave:   Unknow type constant pool 98 at position266
Grave:   Unknow type constant pool 98 at position267
Grave:   Unknow type constant pool 105 at position268
Grave:   Unknow type constant pool 97 at position269
Grave:   Unknow type constant pool 44 at position270
Grave:   Unknow type constant pool 32 at position271
Grave:   Unknow type constant pool 103 at position272
Grave:   Unknow type constant pool 114 at position273
Grave:   Unknow type constant pool 97 at position274
Grave:   Unknow type constant pool 122 at position275
Grave:   Unknow type constant pool 105 at position276
Grave:   Unknow type constant pool 101 at position277
Grave:   Unknow type constant pool 32 at position278
Grave:   Unknow type constant pool 97 at position279
Grave:   Unknow type constant pool 108 at position280
Grave:   Unknow type constant pool 108 at position281
Grave:   Unknow type constant pool 97 at position282
Grave:   Unknow type constant pool 32 at position283
Grave:   Unknow type constant pool 99 at position284
Grave:   Unknow type constant pool 101 at position285
Grave:   Unknow type constant pool 114 at position286
Grave:   Unknow type constant pool 116 at position287
Grave:   Unknow type constant pool 105 at position288
Grave:   Unknow type constant pool 102 at position289
Grave:   Unknow type constant pool 105 at position290
Grave:   Unknow type constant pool 99 at position291
Grave:   Unknow type constant pool 97 at position292
Grave:   Unknow type constant pool 122 at position293
Grave:   Unknow type constant pool 105 at position294
Grave:   Unknow type constant pool 111 at position295
Grave:   Unknow type constant pool 110 at position296
Grave:   Unknow type constant pool 101 at position297
Grave:   Unknow type constant pool 32 at position298
Grave:   Unknow type constant pool 73 at position299
Grave:   Unknow type constant pool 80 at position300
Grave:   Unknow type constant pool 54 at position301
Grave:   Unknow type constant pool 55 at position302
Grave:   Unknow type constant pool 46 at position303
Grave:   Unknow type constant pool 15 at position330
Grave:   Unknow type constant pool 118 at position333
Grave:   Unknow type constant pool 16 at position334
Grave:   Exception while deploying the app [AsteRibasso]
Grave:   Exception during lifecycle processing
java.nio.BufferUnderflowException
    at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:151)
    at com.sun.enterprise.deployment.annotation.introspection.ConstantPoolInfo.containsAnnotation(ConstantPoolInfo.java:86)
    at com.sun.enterprise.deployment.annotation.introspection.ClassFile.containsAnnotation(ClassFile.java:133)
    at com.sun.enterprise.deployment.annotation.introspection.ClassFile.containsAnnotation(ClassFile.java:87)
    at com.sun.enterprise.deployment.util.AnnotationDetector.containsAnnotation(AnnotationDetector.java:157)
    at com.sun.enterprise.deployment.util.AnnotationDetector.containsAnnotation(AnnotationDetector.java:146)
    at com.sun.enterprise.deployment.util.AnnotationDetector.hasAnnotationInArchive(AnnotationDetector.java:137)
    at com.sun.enterprise.deployment.archivist.ApplicationArchivist.getApplicationFromIntrospection(ApplicationArchivist.java:393)
    at com.sun.enterprise.deployment.archivist.ApplicationArchivist.createApplication(ApplicationArchivist.java:264)
    at org.glassfish.javaee.full.deployment.EarHandler.getApplicationHolder(EarHandler.java:578)
    at org.glassfish.javaee.full.deployment.EarHandler.initCompositeMetaData(EarHandler.java:555)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.getSniffers(ApplicationLifecycle.java:655)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:358)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:360)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:360)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
    at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
    at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)

Grave:   Exception while deploying the app [AsteRibasso]

在互联网上找不到任何关于GlassFish 4.1(build 13)和jre1.8.031的问题,我在NetBeans 8.0.2中使用了这两个版本。有人能帮我吗?

我遇到了同样的问题

我将问题跟踪到jar
glassfish/modules/dol.jar
()。这个jar中的类
com.sun.enterprise.deployment.annotation.introspection.ConstantPoolInfo
负责在部署时测试相关注释上的类

问题:

该类通过按字节读取和解释
.class
文件的一个特殊部分:常量池()来实现这一点。该池包含“各种类型的数字、字符串、标识符名称、对类和方法的引用以及类型描述符等值”()。这包括注释的类名。
问题是,Java 7增加了常量池的可能内容,并添加了一些额外的条目类型以支持JVM中的脚本语言。那些条目(方法句柄、方法类型和InvokeDynamic(ID15、16和18))尚不受
ConstantPoolInfo
的支持。当读取和检查其中一个常量池条目的类型标识符字节时,该类只需记录警告“Unknow[sic]type constant pool x位于位置i”,并继续处理下一个字节,忽略跳过属于当前类型数据结构的字节(它们无论如何都不相关)。 这会导致完全混乱,因为下一个本应跳过的字节被解释为类型标识符。
在某些情况下,错误解释的字节会导致执行“UTF 8/ASCII”输入情况的代码,并将下两个字节解释为常量池中字符串的长度,然后希望读取该字符串。这就是
BufferUnderflowException
的来源:包含常量池数据的输入源可能无法按请求保存字节

地点和时间:

使用Java 7代码时没有问题,因为通常的开发人员/编译器不会生成需要额外常量池条目类型的字节码。
Java8改变了这一点:Lambdas和methdod引用使用了它

出于某种原因,我没有检查,war模块中的lambdas不会出现问题,而只会出现在ejb模块中。可能,类文件的内省没有在那里完成——至少没有基于ConstantPoolInfo

解决方案:

我打开了一个错误报告:

除了在ejb模块中避免使用lambdas/方法引用(或编译为
invokedynamic
bytecode的任何内容)之外,我没有其他解决方案

<>重构代码,直到它只产生警告,没有例外可能有帮助,但我不认为它是一个干净的解决方案。它可能会因任何代码更改或jdk更新而再次中断。除此之外,对班级的检查仍然没有完成,可能会导致其他问题

[TL;DR]
从ejb项目中删除lambda/方法引用。

[/TL;DR]

为了修改flo,我们在较早的GF版本中遇到了相同的问题,在部署WAR时也会执行此代码。 无论如何,多亏了他出色的调查,我们能够通过自己修补ConstantPoolInfo并更换它来快速修复它 在它出现的罐子里

因此,对于GF4,请下载下面的源代码(例如)apply fix,编译它,并在jar中替换(对于GF4,它将位于%gf_install_dir%glassfish/modules中)。如果您使用的是较旧的GF版本,则使用相同的例程,但请确保下载该版本的源代码(随着时间的推移,会有一些小的修改)。此外,类出现在其中的JAR的名称可能不同。用于修补类的相关代码段:

/**
 * New types since Java7/8
 **/
public static final int METHODHANDLE = 15;
public static final int METHODTYPE = 16;
public static final int INVOKEDYNAMIC = 18;
通过将额外类型添加到方法containsAnnotation中的switch语句中,跳过这些额外类型:

case METHODHANDLE:
    buffer.get();
    buffer.getShort();
    break;

case METHODTYPE:
    buffer.getShort();
    break;

case INVOKEDYNAMIC:
    buffer.getShort();
    buffer.getShort();
    break;
要添加到类末尾常量的新类型:

/**
 * New types since Java7/8
 **/
public static final int METHODHANDLE = 15;
public static final int METHODTYPE = 16;
public static final int INVOKEDYNAMIC = 18;

更新:我删除了一些decorator,错误消失了,但是添加了一些新代码使我再次遇到错误。似乎在不同的组合中添加/删除新代码可能决定是否会发生此错误,我真的很困惑。