From 8a1a41314e99ffce548f43c1d0b361a6b470c5a6 Mon Sep 17 00:00:00 2001 From: Fabian Meumertzheim Date: Mon, 18 Oct 2021 15:21:01 +0200 Subject: More informative error message in case of no implementing class --- .../jazzer/autofuzz/AutofuzzConstructionException.java | 3 +++ agent/src/main/java/com/code_intelligence/jazzer/autofuzz/Meta.java | 4 ++++ 2 files changed, 7 insertions(+) (limited to 'agent') diff --git a/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/AutofuzzConstructionException.java b/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/AutofuzzConstructionException.java index 760fef3d..e1d775c4 100644 --- a/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/AutofuzzConstructionException.java +++ b/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/AutofuzzConstructionException.java @@ -19,6 +19,9 @@ package com.code_intelligence.jazzer.autofuzz; * not the actual invocation of an autofuzzed method. */ public class AutofuzzConstructionException extends RuntimeException { + public AutofuzzConstructionException(String message) { + super(message); + } public AutofuzzConstructionException(Throwable cause) { super(cause); } diff --git a/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/Meta.java b/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/Meta.java index e31d7201..88826b9b 100644 --- a/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/Meta.java +++ b/agent/src/main/java/com/code_intelligence/jazzer/autofuzz/Meta.java @@ -146,6 +146,10 @@ public class Meta { cache.put(type, implementingClasses); } } + if (implementingClasses.isEmpty()) { + throw new AutofuzzConstructionException(String.format( + "Could not find classes implementing %s on the classpath", type.getName())); + } return consume(data, data.pickValue(implementingClasses)); } else if (type.getConstructors().length > 0) { Constructor constructor = data.pickValue(type.getConstructors()); -- cgit v1.2.3