diff --git a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/symbol/SymbolExtractor.java b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/symbol/SymbolExtractor.java index 88abfadde0f..5a65d220dcb 100644 --- a/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/symbol/SymbolExtractor.java +++ b/dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/symbol/SymbolExtractor.java @@ -237,8 +237,10 @@ private static Collection extractMethodModifiers( "Invalid access modifiers method[" + methodNode.name + methodNode.desc + "]: " + bit); } } - // if class is an interface && method as code this is a default method - if ((classNode.access & Opcodes.ACC_INTERFACE) > 0 && methodNode.instructions.size() > 0) { + // if class is an interface && method has code && non-static this is a default method + if ((classNode.access & Opcodes.ACC_INTERFACE) > 0 + && methodNode.instructions.size() > 0 + && (methodNode.access & Opcodes.ACC_STATIC) == 0) { results.add("default"); } return results; diff --git a/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/symbol/SymbolExtractionTransformerTest.java b/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/symbol/SymbolExtractionTransformerTest.java index 7f576c39aa5..b6c92ab6e00 100644 --- a/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/symbol/SymbolExtractionTransformerTest.java +++ b/dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/symbol/SymbolExtractionTransformerTest.java @@ -829,6 +829,14 @@ public void symbolExtraction14() throws IOException, URISyntaxException { null, null, Void.TYPE.getTypeName()); + Scope m4MethodScope = i1ClassScope.getScopes().get(1); + assertLangSpecifics( + m4MethodScope.getLanguageSpecifics(), + asList("public", "static"), + null, + null, + null, + String.class.getTypeName()); Scope myEnumClassScope = symbolSinkMock.jarScopes.get(3).getScopes().get(0); assertLangSpecifics( myEnumClassScope.getLanguageSpecifics(), diff --git a/dd-java-agent/agent-debugger/src/test/resources/com/datadog/debugger/symboltest/SymbolExtraction14.java b/dd-java-agent/agent-debugger/src/test/resources/com/datadog/debugger/symboltest/SymbolExtraction14.java index 45b89d01215..b2d6617921d 100644 --- a/dd-java-agent/agent-debugger/src/test/resources/com/datadog/debugger/symboltest/SymbolExtraction14.java +++ b/dd-java-agent/agent-debugger/src/test/resources/com/datadog/debugger/symboltest/SymbolExtraction14.java @@ -23,6 +23,9 @@ private strictfp synchronized final String m2(String... strVarArgs) { interface I1 { default void m3(){} + static String m4(String arg){ + return arg; + } } interface I2 {