pinpoint-apm/pinpoint · error · RuntimeException
IO error. Error:
Error message
IO error. Error:
What it means
Guard in ProfilerConfigLoader.loadProperties: reading the agent configuration InputStream via PropertyUtils.loadProperty threw IOException; the message prefixes the underlying I/O error text. Fires when the profiler config stream (e.g. pinpoint.config) cannot be read.
Solutions
- Check the appended Error: text for the real IOException cause (missing file, closed stream, permission)
- Verify pinpoint.config path and readability in the agent directory
- Ensure the InputStream passed in is open and non-null
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/config/ProfilerConfigLoader.java:39 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of pinpoint-apm/pinpoint@744c3d3075 (2026-09-07).
Data as JSON: /api/errors/563159da4a24c27a.
Report an issue: GitHub.
Appendix: source
Thrown at agent-module/bootstraps/bootstrap-core/src/main/java/com/navercorp/pinpoint/bootstrap/config/ProfilerConfigLoader.java:39
import com.navercorp.pinpoint.common.config.util.ValueAnnotationProcessor;
import com.navercorp.pinpoint.common.util.PropertyUtils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class ProfilerConfigLoader {
public static ProfilerConfig load(InputStream inputStream) {
Properties properties = loadProperties(inputStream);
return load(properties);
}
public static Properties loadProperties(InputStream inputStream) {
try {
return PropertyUtils.loadProperty(inputStream);
} catch (IOException ex) {
throw new RuntimeException("IO error. Error:" + ex.getMessage(), ex);
}
}
public static ProfilerConfig load(Properties properties) {
ValueAnnotationProcessor processor = new ValueAnnotationProcessor();
JdbcOption jdbcOption = new DefaultJdbcOption();
processor.process(jdbcOption, properties::getProperty);
ProfilerConfig profilerConfig = new DefaultProfilerConfig(properties, jdbcOption);
processor.process(profilerConfig, properties::getProperty);
return profilerConfig;
}
}
View on GitHub (pinned to 744c3d3075)