Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
Java-SCA-2.x
-
None
Description
In compliance testcase POJO_10009 service1ClassLoaderCheckImpl.operation1() is checking if the TCCL retrieved is exactly the same as service1ClassLoaderCheckImpl's classloader. However, it seems as long as the implementation class is loadable from the TCCL the testcase is still compliant with the specifiation.
The suggested update is to change:
public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
String result = " thread context classloader is correct";
if( loader != tccl ) result = " thread context classloader not correct";
return serviceName + " operation1 invoked" + result;
}
to:
public String operation1(String input) {
ClassLoader tccl = Thread.currentThread().getContextClassLoader();
ClassLoader loader = this.getClass().getClassLoader();
ClassLoader loader2 = Class.forName("org.oasisopen.sca.test.service1ClassLoaderCheckImpl", false, tccl);
String result = " thread context classloader is correct";
if (loader != loader2) result = " thread context classloader not correct";
return serviceName + " operation1 invoked" + result;
}