Hmmm, how does CustomCL see com.Sample class?
Afair, <classloader> then has zero roots, meaning it only sees system classpath.
Where your CustomCL is created in deployment's CL, with zero-root CL as parent,
where you then try to load com.Sample ... beats me. :-)
Unless this zero-roots CL shares the same domain as deployment's CL.