2

JMS를 사용하여 통신하는 매우 간단한 Java EE 응용 프로그램이 있습니다. 내가 배포하고 내 응용 프로그램을 디버깅 할 때 내가 얻을이JavaEE + Glassfish - BufferUnderflowException

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] 

난 글래스 피쉬 4.1 (13 구축) 및 jre1.8.0_31과 관련하여이 문제에 대해 인터넷에서 아무것도 찾을 수 없습니다 NetBeans 8.0.2에서 사용. 누군가 나를 도울 수 있습니까?

+0

업데이트 : 일부 데코레이터를 제거하고 오류가 사라졌지만 새로운 코드를 추가하면 오류가 다시 발생합니다. 이 오류가 발생할 경우 다른 조합에서 새 코드를 추가/제거하는 것이 결정적인 것으로 보입니다. 정말 혼란 스럽습니다. – Federinik

답변

1

동일한 문제가 발생했습니다.

나는이 문제를 추적했다 glassfish/modules/dol.jar (sources). 이 jar 내의 클래스 com.sun.enterprise.deployment.annotation.introspection.ConstantPoolInfo은 배포하는 동안 관련 주석에 대한 클래스를 테스트합니다.

문제 :

클래스는 바이트 현명한 판독하여이를 수행하고 .class 파일의 특별한 부분을 해석 : 정수 풀 (JVM spec). 풀에는 "모든 종류의 숫자, 문자열, 식별자 이름, 클래스 및 메서드에 대한 참조 및 유형 설명자와 같은 값"(Wiki)이 들어 있습니다. 여기에는 주석의 클래스 이름이 포함됩니다.
문제는 Java 7에서 상수 풀의 가능한 내용이 증가했고 JVM을 사용하여 스크립트 언어를 지원하기 위해 몇 가지 추가 항목 유형이 추가되었습니다. 이러한 항목 (메서드 핸들, 메서드 형식 및 InvokeDynamic (ids 15, 16 및 18))은 ConstantPoolInfo에서 아직 지원되지 않습니다. 이러한 상수 풀 항목 중 하나의 유형 식별자 바이트를 읽고 검사 할 때 클래스는 "Unknow [sic] 유형 상수 풀 x 위치 i에"경고를 기록하고 다음 바이트로 처리를 진행하며 누락 된 바이트를 건너 뜁니다 현재 유형의 데이터 구조 (어쨌든 관계가 없습니다). 건너 뛰었어야하는 다음 바이트가 유형 식별자로 해석되므로 완전히 엉망이됩니다.
잘못 해석 된 바이트로 인해 "UTF 8/ASCII"- 항목의 경우 코드가 실행되고 다음 두 바이트가 상수 풀의 문자열 길이로 해석되어 읽어야합니다 그 String. 그리고 이것은 BufferUnderflowException의 출처입니다. 상수 풀의 데이터를 포함하는 입력 소스는 요청한대로 바이트 수를 보유하지 않을 수 있습니다.

과 :

이 아무런 문제가 없을 때 보통 개발자/컴파일러가 추가 정수 풀 항목 유형을 필요로 바이트 코드를 생성하지 않았으로, 자바 (7) 코드를 사용하여.
Java 8에서는 변경되었습니다. Lambdas 및 methdod 참조가이를 사용합니다.

내가 조사하지 않은 몇 가지 이유 때문에, war 모듈의 lambdas에서는 문제가 발생하지 않지만 ejb 모듈에서만 문제가 발생합니다. 아마도 클래스 파일의 인트로 스펙 션은 적어도 ConstantPoolInfo를 기반으로하지는 않습니다.

해결 방법 : https://java.net/jira/browse/GLASSFISH-21510 :

나는 버그 리포트를 열었습니다.

ejb 모듈에서 람다/메소드 참조 (또는 invokedynamic 바이트 코드로 컴파일 된 것을 사용하는 것)를 삼가는 것 이외의 해결책이 없습니다.

경고가 생성되고 예외가 발생하지 않을 때까지 코드를 리팩토링하면 깨끗한 해결책으로 간주되지 않습니다. 코드 변경 또는 jdk 업데이트로 인해 다시 손상 될 수 있습니다. 그 외에도, 수업의 검사는 여전히 손상되어 다른 문제를 일으킬 수 있습니다.

[TL, DR]
는 EJB-프로젝트에서 람다/방법 참조를 제거한다.
[/ TL; DR]

1

우리 전쟁을 배치 할 때이 코드는 또한 실행될 GF 이전 버전과 같은 문제가 있었다 FLO 개정. 어쨌든 그의 뛰어난 조사 덕분에 우리는 ConstantPoolInfo를 패치하고 그것을 나타나는 병에서 으로 바꾸어서 빨리 고칠 수있었습니다.

따라서 GF4의 경우 소스 코드 (예 : ConstantPoolInfo.java)를 다운로드하여 컴파일하고 jar로 교체하십시오 (GF4의 경우 % gf_install_dir % glassfish/modules에 있음). 구형 GF 버전을 사용하는 경우 동일한 루틴을 사용하지만 해당 버전의 소스를 다운로드해야합니다 (시간 경과에 따라 약간의 수정이있었습니다). 또한 클래스가 나타나는 JAR의 이름이 다를 수 있습니다.

이 방법 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;