Skip to content

Commit e8b240d

Browse files
committed
Catching exceptions in registerSourceFile
avoid dropping some source files after an exception that are queued together
1 parent cc12228 commit e8b240d

1 file changed

Lines changed: 20 additions & 16 deletions

File tree

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/agent/SourceFileTrackingTransformer.java

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -98,23 +98,27 @@ public byte[] transform(
9898
}
9999

100100
private void registerSourceFile(String className, byte[] classfileBuffer) {
101-
String javaClassName = Strings.getClassName(className);
102-
if (classNameFilter.isExcluded(javaClassName)) {
103-
return;
104-
}
105-
String sourceFile = ClassFileHelper.extractSourceFile(classfileBuffer);
106-
if (sourceFile == null) {
107-
return;
108-
}
109-
if (!isExtensionAllowed(sourceFile)) {
110-
return;
111-
}
112-
String simpleClassName = stripPackagePath(className);
113-
String simpleSourceFile = removeExtension(sourceFile);
114-
if (simpleClassName.equals(simpleSourceFile)) {
115-
return;
101+
try {
102+
String javaClassName = Strings.getClassName(className);
103+
if (classNameFilter.isExcluded(javaClassName)) {
104+
return;
105+
}
106+
String sourceFile = ClassFileHelper.extractSourceFile(classfileBuffer);
107+
if (sourceFile == null) {
108+
return;
109+
}
110+
if (!isExtensionAllowed(sourceFile)) {
111+
return;
112+
}
113+
String simpleClassName = stripPackagePath(className);
114+
String simpleSourceFile = removeExtension(sourceFile);
115+
if (simpleClassName.equals(simpleSourceFile)) {
116+
return;
117+
}
118+
finder.register(sourceFile, className);
119+
} catch (Exception e) {
120+
LOGGER.debug("Error registering source file {}: {}", className, e);
116121
}
117-
finder.register(sourceFile, className);
118122
}
119123

120124
private boolean isExtensionAllowed(String sourceFile) {

0 commit comments

Comments
 (0)