Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

`IndyBootstrapDispatcher` cannot be properly loaded in the Resin environment

Abierto
#3,807 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
java

Línea de trabajo

Empieza reproduciendo el fallo con $RESIN_HOME/bin/httpd.sh, los argumentos de la JVM de resin.conf y la configuración de vulns.war. Lee com.caucho.boot.WatchdogProcess#createProcess en resin.jar y la ruta de carga de clases de tree-node de Resin 3; después compara su entrada esperada java/lang/IndyBootstrapDispatcher.class con la ruta del agente sombreado. Se considera terminado cuando Resin carga la clase y la funcionalidad del agente funciona.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

agent-java community

Describe the bug

When starting Resin 3 using the provided startup script ($RESIN_HOME/bin/httpd.sh), the runtime is unable to load java.lang.IndyBootstrapDispatcher via the DynamicClassLoader.

After some investigation, I found that the startup script ultimately calls the com.caucho.boot.WatchdogProcess#createProcess method (located in resin.jar) to launch Resin. This method hardcodes the startup argument -Djava.system.class.loader=com.caucho.loader.SystemClassLoader, which replaces the default system class loader.

As a result, when Resin tries to load IndyBootstrapDispatcher, the DynamicClassLoader delegates the loading to SystemClassLoader, which is unable to load it. In Resin 3, the resin.conf file provides a tree-node element to configure special JAR file paths, allowing SystemClassLoader to access the target files. However, the internal implementation is hardcoded to fetch the target entry from the JAR file, like configuredJars.getJarEntry("java/lang/IndyBootstrapDispatcher.class").

The issue is that Elastic has shaded the class, and its actual resource path is represented as agent/bootstrap/java/lang/IndyBootstrapDispatcher.esclazz. This mismatch causes the class loading to fail, leading to malfunctioning agent functionality.

All the above is specific to Resin 3. Resin 4 might have the same problem, but I haven't tested it yet.

Steps to reproduce

  1. In the resin.conf file, add the following configuration
<jvm-arg>-javaagent:/path/to/elastic-apm-agent.jar</jvm-arg>
<jvm-arg>-Delastic.apm.log_level=DEBUG</jvm-arg>
<jvm-arg>-Delastic.apm.log_file=/path/to/logs/elastic-apm-agent.log</jvm-arg>
  1. download the vulns.jar to $RESIN_HOME/webapps
  2. RUN $RESIN_HOME/bin/httpd.sh start
  3. Access http://localhost:7040/vulns through your browser
Lenguaje dominante
Java
Estrellas
593
Forks
338
Merge medio
1 d 9 h
PR fusionados (30 d)
13

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de elastic/apm-agent-java

Todos los issues de elastic/apm-agent-java

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.