Hello,
Analyzing bug 61567 , I end up thinking that what we're doing in the below
method is not correct:

   - ClassFinder#getClasspathMatches

This method does the following:

   - It takes a list of jars in search_path
   - It takes the classpath
   - For each entry in classpath , it tests if it ends with one of the jar
   of the first list
   - If one match is found, the entry will be returned , otherwise it will
   be ignored

So what is triggering the bug is the following, as search_path is empty,
only content of lib/ext is used.

So first list consist of :

   - ApacheJMeter_jms.jar
   ApacheJMeter_junit.jar
   ApacheJMeter_native.jar
   ApacheJMeter_ftp.jar
   ApacheJMeter_components.jar
   /data/jmeter/jmeters/apache-jmeter-3.3/lib/ext
   ApacheJMeter_ldap.jar
   ApacheJMeter_mail.jar
   ApacheJMeter_tcp.jar
   ApacheJMeter_http.jar
   ApacheJMeter_java.jar
   ApacheJMeter_core.jar
   ApacheJMeter_functions.jar
   ApacheJMeter_jdbc.jar
   ApacheJMeter_mongodb.jar

Classpath consists of many entries and specifically , JMeter artifacts end
with -3.3.jar

None of the entries are added due to endsWith test failing, example:

Testing if /MAVEN
.m2/repository/org/apache/jmeter/ApacheJMeter_functions/3.3/ApacheJMeter_functions-3.3.jar
ends
with ApacheJMeter_jms.jar *will return false*

As a consequence, no function is found


*One fix would be in JMeter to suffix artifacts in bin and lib/ext with the
version number.*

*But is this behaviour correct ?*

-- 
Regards.
Philippe M.

Reply via email to