AppMap Recording Failure in Spring Boot Applications
@dividedmind ya está trabajando en esto.
Desde el 28/2/2025.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Hello, at our organization, a team installed AppMap as part of an initiative to evaluate GenAI developer assistance tools for licensing. However, we are consistently encountering an issue while running our Java Spring Boot application with AppMap. We have tried exploring the AppMap documentation and other resources, but we have been unable to resolve the error.
We would appreciate any support you can provide, as we are interested in further exploring AppMap and recommending it for an organization-level license if it works as documented.
Spring Boot : v2.7.13 and Spring : v5.3.28 and Java : 17.0.8
The error log for the Spring Boot application is as follows:
11:53:06.474 [main] WARN ClassFileTransformer.transform:
java.lang.ArrayIndexOutOfBoundsException: Index 46 out of bounds for length 42 at
com.appland.shade.javassist.bytecode.ByteArray.readU16bit(ByteArray.java:27) at
com.appland.shade.javassist.bytecode.LocalVariableAttribute.nameIndex(LocalVariableAttribute.java:207) at
com.appland.shade.javassist.bytecode.LocalVariableAttribute.variableName(LocalVariableAttribute.java:217) at
com.appland.appmap.output.v1.Parameters.(Parameters.java:122) at
com.appland.appmap.output.v1.Event.(Event.java:159) at
com.appland.appmap.record.EventTemplateRegistry.register(EventTemplateRegistry.java:42) at
com.appland.appmap.transform.annotations.Hook.prepare(Hook.java:95) at
com.appland.appmap.transform.ClassFileTransformer.getHookSites(ClassFileTransformer.java:254) at
com.appland.appmap.transform.ClassFileTransformer.applyHooks(ClassFileTransformer.java:196) at
com.appland.appmap.transform.ClassFileTransformer.transform(ClassFileTransformer.java:334) at
java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:244) at
java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188) at
java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:541) at
java.base/java.lang.ClassLoader.defineClass1(Native Method) at
java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) at
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at
java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) at
java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:76) at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:188) at
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:579) at
java.base/java.lang.Class.forName(Class.java:467) at
org.springframework.util.ClassUtils.forName(ClassUtils.java:284) at
org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:469) at
org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1621) at
org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1548) at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:704) at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:674) at
org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1684) at
org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:542) at
org.springframework.boot.autoconfigure.condition.OnBeanCondition.collectBeanNamesForType(OnBeanCondition.java:246) at
org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:229) at
org.springframework.boot.autoconfigure.condition.OnBeanCondition.getBeanNamesForType(OnBeanCondition.java:182) at
org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchingBeans(OnBeanCondition.java:157) at
org.springframework.boot.autoconfigure.condition.OnBeanCondition.getMatchOutcome(OnBeanCondition.java:47) at
org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:47) at
org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:108) at
org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForBeanMethod(ConfigurationClassBeanDefinitionReader.java:193) at
org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:153) at
org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129) at
org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:343) at
org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247) at
org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311) at
org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112) at
org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:748) at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) at
org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) at
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) at
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) at
org.springframework.boot.SpringApplication.run(SpringApplication.java:307) at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) at
org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
- Lenguaje dominante
- Java
- Estrellas
- 88
- Forks
- 17
- Merge medio
- 2 d 2 h
- PR fusionados (30 d)
- 1
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de getappmap/appmap-java
-
Labeled methods should always be recorded, even if they match trivial-method filtersPosiblemente ocupada @kgilpin la tomó hace 190 días. Abierto
getappmap/appmap-java#323 · 1 reacción · 2 asignados ·
-
Warning with Java 25Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
getappmap/appmap-java#322 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
getappmap/appmap-java#308 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
getappmap/appmap-java#305 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
getappmap/appmap-java#304 ·
Todos los issues de getappmap/appmap-java
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
liquid-java/liquidjava#373 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
NationalSecurityAgency/ghidra#9748 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
spring-mcp-tools
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
explyt/spring-plugin#591 ·
Los mantenedores suelen responder en 1 día