[jboss-jira] [JBoss JIRA] (WFLY-12699) Avoid stack overflow with Hibernate bytecode transformer

Scott Marlow (Jira) issues at jboss.org
Tue Oct 22 12:41:00 EDT 2019


Scott Marlow created WFLY-12699:
-----------------------------------

             Summary: Avoid stack overflow with Hibernate bytecode transformer
                 Key: WFLY-12699
                 URL: https://issues.jboss.org/browse/WFLY-12699
             Project: WildFly
          Issue Type: Bug
            Reporter: Scott Marlow
            Assignee: Brian Stansberry


Part of stackoverflow that can occur:

{code}
	at org.hibernate.bytecodetransformer at 7.2.4.GA-redhat-00002//org.jboss.as.hibernate.Hibernate51CompatibilityTransformer.transform(Hibernate51CompatibilityTransformer.java:114)
	at org.jboss.as.server at 6.0.16.Final-redhat-00002//org.jboss.as.server.deployment.module.DelegatingClassFileTransformer.transform(DelegatingClassFileTransformer.java:60)
	at org.jboss.modules.JLIClassTransformer.transform(JLIClassTransformer.java:55)
	at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:503)
	at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:339)
	at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:126)
	at org.jboss.modules.Module.loadModuleClass(Module.java:731)
	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:247)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:398)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassWriter.getCommonSuperClass(ClassWriter.java:955)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.SymbolTable.addMergedType(SymbolTable.java:1209)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.Frame.merge(Frame.java:1293)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.Frame.merge(Frame.java:1175)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.MethodWriter.computeAllFrames(MethodWriter.java:1613)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.MethodWriter.visitMaxs(MethodWriter.java:1549)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.MethodVisitor.visitMaxs(MethodVisitor.java:773)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.readCode(ClassReader.java:2429)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1275)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.accept(ClassReader.java:679)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.accept(ClassReader.java:391)
	at org.hibernate.bytecodetransformer at 7.2.4.GA-redhat-00002//org.jboss.as.hibernate.Hibernate51CompatibilityTransformer.transform(Hibernate51CompatibilityTransformer.java:114)
	at org.jboss.as.server at 6.0.16.Final-redhat-00002//org.jboss.as.server.deployment.module.DelegatingClassFileTransformer.transform(DelegatingClassFileTransformer.java:60)
	at org.jboss.modules.JLIClassTransformer.transform(JLIClassTransformer.java:55)
	at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:503)
	at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:339)
	at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:126)
	at org.jboss.modules.Module.loadModuleClass(Module.java:731)
	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:247)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:398)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassWriter.getCommonSuperClass(ClassWriter.java:955)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.SymbolTable.addMergedType(SymbolTable.java:1209)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.Frame.merge(Frame.java:1293)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.Frame.merge(Frame.java:1175)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.MethodWriter.computeAllFrames(MethodWriter.java:1613)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.MethodWriter.visitMaxs(MethodWriter.java:1549)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.MethodVisitor.visitMaxs(MethodVisitor.java:773)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.readCode(ClassReader.java:2429)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1275)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.accept(ClassReader.java:679)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.accept(ClassReader.java:391)
	at org.hibernate.bytecodetransformer at 7.2.4.GA-redhat-00002//org.jboss.as.hibernate.Hibernate51CompatibilityTransformer.transform(Hibernate51CompatibilityTransformer.java:114)
	at org.jboss.as.server at 6.0.16.Final-redhat-00002//org.jboss.as.server.deployment.module.DelegatingClassFileTransformer.transform(DelegatingClassFileTransformer.java:60)
	at org.jboss.modules.JLIClassTransformer.transform(JLIClassTransformer.java:55)
	at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:503)
	at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:339)
	at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:126)
	at org.jboss.modules.Module.loadModuleClass(Module.java:731)
	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:247)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:398)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassWriter.getCommonSuperClass(ClassWriter.java:955)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.SymbolTable.addMergedType(SymbolTable.java:1209)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.Frame.merge(Frame.java:1293)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.Frame.merge(Frame.java:1175)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.MethodWriter.computeAllFrames(MethodWriter.java:1613)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.MethodWriter.visitMaxs(MethodWriter.java:1549)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.MethodVisitor.visitMaxs(MethodVisitor.java:773)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.readCode(ClassReader.java:2429)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1275)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.accept(ClassReader.java:679)
	at asm.asm at 6.2.1.redhat-00001//org.objectweb.asm.ClassReader.accept(ClassReader.java:391)
	at org.hibernate.bytecodetransformer at 7.2.4.GA-redhat-00002//org.jboss.as.hibernate.Hibernate51CompatibilityTransformer.transform(Hibernate51CompatibilityTransformer.java:114)
	at org.jboss.as.server at 6.0.16.Final-redhat-00002//org.jboss.as.server.deployment.module.DelegatingClassFileTransformer.transform(DelegatingClassFileTransformer.java:60)
	at org.jboss.modules.JLIClassTransformer.transform(JLIClassTransformer.java:55)
{code}

Perhaps the Hibernate bytecode transformer also needs to implement [https://asm.ow2.io/javadoc/org/objectweb/asm/ClassWriter.html#getCommonSuperClass-java.lang.String-java.lang.String-], as others have mentioned on [https://github.com/cglib/cglib/issues/117].



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the jboss-jira mailing list