User: d_jencks
Date: 02/02/14 20:17:05
Modified: src/main/org/jboss/test/perf/test PerfTest.java
Log:
Workaround for bug 516684. Set context classloader to be classloader of class of
object we are trying to look up in jndi before lookup. Proxy is then generated with
correct classloader.
Revision Changes Path
1.3 +91 -64 jbosstest/src/main/org/jboss/test/perf/test/PerfTest.java
Index: PerfTest.java
===================================================================
RCS file: /cvsroot/jboss/jbosstest/src/main/org/jboss/test/perf/test/PerfTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PerfTest.java 14 Feb 2002 06:27:53 -0000 1.2
+++ PerfTest.java 15 Feb 2002 04:17:05 -0000 1.3
@@ -26,7 +26,7 @@
*showing the output of each test run.
@author [EMAIL PROTECTED]
- @version $Revision: 1.2 $
+ @version $Revision: 1.3 $
*/
public class PerfTest implements PerfTestMBean
{
@@ -94,85 +94,112 @@
public void testTimings(StringBuffer results) throws Exception
{
results.append("\n+++ testTimings()");
- Object obj = new InitialContext().lookup("Probe");
- // Print out some codebase info for the ProbeHome
- Class homeClass = obj.getClass();
- ClassLoader cl = homeClass.getClassLoader();
- results.append("\nProbeHome.ClassLoader="+cl);
- ClassLoader parent = cl;
- while( parent != null )
- {
- results.append("\n.."+parent);
- if( parent instanceof URLClassLoader )
+ ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
+
Thread.currentThread().setContextClassLoader(ProbeHome.class.getClassLoader());
+ try
+ {
+ Object obj = new InitialContext().lookup("Probe");
+ // Print out some codebase info for the ProbeHome
+ Class homeClass = obj.getClass();
+ ClassLoader cl = homeClass.getClassLoader();
+ results.append("\nProbeHome.ClassLoader="+cl);
+ ClassLoader parent = cl;
+ while( parent != null )
{
- URLClassLoader ucl = (URLClassLoader) parent;
- URL[] urls = ucl.getURLs();
- int length = urls != null ? urls.length : 0;
- for(int u = 0; u < length; u ++)
+ results.append("\n.."+parent);
+ if( parent instanceof URLClassLoader )
{
- results.append("\n...."+urls[u]);
+ URLClassLoader ucl = (URLClassLoader) parent;
+ URL[] urls = ucl.getURLs();
+ int length = urls != null ? urls.length : 0;
+ for(int u = 0; u < length; u ++)
+ {
+ results.append("\n...."+urls[u]);
+ }
}
+ if( parent != null )
+ parent = parent.getParent();
}
- if( parent != null )
- parent = parent.getParent();
- }
- results.append("\nProbeHome Interfaces:");
- Class[] ifaces = homeClass.getInterfaces();
- for(int i = 0; i < ifaces.length; i ++)
- {
- results.append("\n++"+ifaces[i]);
- ProtectionDomain pd = ifaces[i].getProtectionDomain();
- CodeSource cs = pd.getCodeSource();
- if( cs != null )
- results.append("\n++++CodeSource: "+cs);
+ results.append("\nProbeHome Interfaces:");
+ Class[] ifaces = homeClass.getInterfaces();
+ for(int i = 0; i < ifaces.length; i ++)
+ {
+ results.append("\n++"+ifaces[i]);
+ ProtectionDomain pd = ifaces[i].getProtectionDomain();
+ CodeSource cs = pd.getCodeSource();
+ if( cs != null )
+ results.append("\n++++CodeSource: "+cs);
+ else
+ results.append("\n++++Null CodeSource");
+ }
+ CodeSource homeCS = ProbeHome.class.getProtectionDomain().getCodeSource();
+ if( homeCS != null )
+ results.append("\nPerfTest ProbHome CodeSource: "+homeCS);
else
- results.append("\n++++Null CodeSource");
+ results.append("\nPerfTest ProbHome CodeSource is NULL");
+
+ ProbeHome home = (ProbeHome) obj;
+ results.append("\n\nFound ProbeHome @ jndiName=Probe");
+ Probe bean = home.create();
+ results.append("\nCreated Probe");
+ warmup(bean, results);
+ noop(bean, results);
+ ping(bean, results);
+ echo(bean, results);
}
- CodeSource homeCS = ProbeHome.class.getProtectionDomain().getCodeSource();
- if( homeCS != null )
- results.append("\nPerfTest ProbHome CodeSource: "+homeCS);
- else
- results.append("\nPerfTest ProbHome CodeSource is NULL");
-
- ProbeHome home = (ProbeHome) obj;
- results.append("\n\nFound ProbeHome @ jndiName=Probe");
- Probe bean = home.create();
- results.append("\nCreated Probe");
- warmup(bean, results);
- noop(bean, results);
- ping(bean, results);
- echo(bean, results);
+ finally
+ {
+ Thread.currentThread().setContextClassLoader(oldCl);
+ } // end of finally
}
public void testTimingsCMT(StringBuffer results) throws Exception
{
results.append("\n+++ testTimingsCMT()");
- Object obj = new InitialContext().lookup("ProbeCMT");
- ProbeHome home = (ProbeHome) obj;
- results.append("\nFound ProbeHome @ jndiName=ProbeCMT");
- Probe bean = home.create();
- results.append("\nCreated ProbeCMT");
- warmup(bean, results);
- noop(bean, results);
- ping(bean, results);
- echo(bean, results);
+ ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
+
Thread.currentThread().setContextClassLoader(ProbeHome.class.getClassLoader());
+ try
+ {
+ Object obj = new InitialContext().lookup("ProbeCMT");
+ ProbeHome home = (ProbeHome) obj;
+ results.append("\nFound ProbeHome @ jndiName=ProbeCMT");
+ Probe bean = home.create();
+ results.append("\nCreated ProbeCMT");
+ warmup(bean, results);
+ noop(bean, results);
+ ping(bean, results);
+ echo(bean, results);
+ }
+ finally
+ {
+ Thread.currentThread().setContextClassLoader(oldCl);
+ } // end of finally
}
public void testTxTimings(StringBuffer results) throws Exception
{
results.append("\n+++ testTxTimings()");
- Object obj = new InitialContext().lookup("TxSession");
- TxSessionHome home = (TxSessionHome) obj;
- results.append("\nFound TxSession @ jndiName=TxSession");
- TxSession bean = home.create();
- results.append("\nCreated TxSession");
- txRequired(bean, results);
- txRequiresNew(bean, results);
- txSupports(bean, results);
- txNotSupported(bean, results);
- requiredToSupports(bean, results);
- requiredToMandatory(bean, results);
- requiredToRequiresNew(bean, results);
+ ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
+
Thread.currentThread().setContextClassLoader(TxSessionHome.class.getClassLoader());
+ try
+ {
+ Object obj = new InitialContext().lookup("TxSession");
+ TxSessionHome home = (TxSessionHome) obj;
+ results.append("\nFound TxSession @ jndiName=TxSession");
+ TxSession bean = home.create();
+ results.append("\nCreated TxSession");
+ txRequired(bean, results);
+ txRequiresNew(bean, results);
+ txSupports(bean, results);
+ txNotSupported(bean, results);
+ requiredToSupports(bean, results);
+ requiredToMandatory(bean, results);
+ requiredToRequiresNew(bean, results);
+ }
+ finally
+ {
+ Thread.currentThread().setContextClassLoader(oldCl);
+ } // end of finally
}
private void warmup(Probe bean, StringBuffer results) throws Exception
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development