jerrypeng commented on a change in pull request #4577: fix issue when 
submitting NAR via file url
URL: https://github.com/apache/pulsar/pull/4577#discussion_r296538962
 
 

 ##########
 File path: 
pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/SinkConfigUtils.java
 ##########
 @@ -318,79 +322,89 @@ public static ExtractedSinkDetails validate(SinkConfig 
sinkConfig, Path archiveP
             throw new IllegalArgumentException("Sink timeout must be a 
positive number");
         }
 
-        String sinkClassName;
-        final Class<?> typeArg;
-        final ClassLoader classLoader;
-        if (!isEmpty(sinkConfig.getClassName())) {
-            sinkClassName = sinkConfig.getClassName();
-            // We really don't know if we should use nar class loader or 
regular classloader
-            ClassLoader jarClassLoader = null;
-            ClassLoader narClassLoader = null;
-            try {
-                jarClassLoader = 
FunctionCommon.extractClassLoader(archivePath, uploadedInputStreamAsFile);
-            } catch (Exception e) {
+
+        Class<?> typeArg;
+        ClassLoader classLoader;
+        String sinkClassName = sinkConfig.getClassName();
+        ClassLoader jarClassLoader = null;
+        ClassLoader narClassLoader = null;
+        try {
+            jarClassLoader = FunctionCommon.extractClassLoader(archivePath, 
sinkPackageFile);
+        } catch (Exception e) {
 
 Review comment:
   @sijie we can log the errors but they might mislead users.   For example if 
a user submitted a JAR, there will be an error loading it as a NAR but why log 
there error as its not relevant.  Also,  it is inherently difficult to tell 
whether the file submitted by the user is a JAR or a NAR, unless we assume 
based on file suffix but currently we do not do that.  The UrlClassloader in 
Java doesn't throw any exceptions if the file is not a JAR.  Technically you 
can put anything on the classpath regardless of whether is a JAR or not.  
   
   I rather not log errors that might not have any thing to do with what the 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to