diff --git a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/source/PulsarSource.java b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/source/PulsarSource.java index caaa7bf3f1ebb..9048544da615b 100644 --- a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/source/PulsarSource.java +++ b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/source/PulsarSource.java @@ -128,7 +128,7 @@ public void close() throws Exception { private void setupSerde() throws ClassNotFoundException { - Class typeArg = Class.forName(this.pulsarConfig.getTypeClassName()); + Class typeArg = Thread.currentThread().getContextClassLoader().loadClass(this.pulsarConfig.getTypeClassName()); if (Void.class.equals(typeArg)) { throw new RuntimeException("Input type of Pulsar Function cannot be Void"); }