Author: ron.sigal(a)jboss.com
Date: 2010-02-17 20:07:26 -0500 (Wed, 17 Feb 2010)
New Revision: 5726
Modified:
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/classloader/RemoteClassloaderTestCase.java
Log:
JBREM-1184: Captured System.out to look for NPE.
Modified:
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/classloader/RemoteClassloaderTestCase.java
===================================================================
---
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/classloader/RemoteClassloaderTestCase.java 2010-02-18
00:49:20 UTC (rev 5725)
+++
remoting2/branches/2.x/src/tests/org/jboss/test/remoting/classloader/RemoteClassloaderTestCase.java 2010-02-18
01:07:26 UTC (rev 5726)
@@ -22,8 +22,13 @@
package org.jboss.test.remoting.classloader;
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
import java.lang.reflect.Field;
import java.net.InetAddress;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -49,6 +54,8 @@
import org.jboss.remoting.marshal.MarshallerLoaderHandler;
import org.jboss.remoting.transport.Connector;
import org.jboss.remoting.transport.PortUtil;
+import org.jboss.remoting.util.SecurityUtility;
+import org.jboss.test.remoting.locator.MalformedLocatorTestCase;
/**
@@ -65,10 +72,10 @@
*/
public class RemoteClassloaderTestCase extends TestCase
{
- private static Logger log = Logger.getLogger(RemoteClassloaderTestCase.class);
+ private ByteArrayOutputStream baos;
+ private PrintStream originalPrintStream;
+ private Logger log;
- private static boolean firstTime = true;
-
protected String host;
protected int port;
protected String locatorURI;
@@ -79,16 +86,18 @@
public void setUp() throws Exception
{
- if (firstTime)
- {
- firstTime = false;
- Logger.getLogger("org.jboss.remoting").setLevel(Level.INFO);
- Logger.getLogger("org.jboss.test.remoting").setLevel(Level.INFO);
- String pattern = "[%d{ABSOLUTE}] [%t] %5p (%F:%L) - %m%n";
- PatternLayout layout = new PatternLayout(pattern);
- ConsoleAppender consoleAppender = new ConsoleAppender(layout);
- Logger.getRootLogger().addAppender(consoleAppender);
- }
+ originalPrintStream = System.out;
+ baos = new ByteArrayOutputStream();
+ PrintStream ps = new PrintStream(baos);
+ setOut(ps);
+
+ Logger.getLogger("org.jboss.remoting").setLevel(Level.DEBUG);
+ Logger.getLogger("org.jboss.test.remoting").setLevel(Level.INFO);
+ String pattern = "[%d{ABSOLUTE}] [%t] %5p (%F:%L) - %m%n";
+ PatternLayout layout = new PatternLayout(pattern);
+ ConsoleAppender consoleAppender = new ConsoleAppender(layout);
+ Logger.getRootLogger().addAppender(consoleAppender);
+ log = Logger.getLogger(MalformedLocatorTestCase.class);
}
@@ -122,6 +131,12 @@
fail("expected ClassNotFoundException: got " + t);
}
+ setOut(originalPrintStream);
+ String s = new String(baos.toByteArray());
+ System.out.println(s);
+ assertTrue(s.indexOf("java.lang.NullPointerException") == -1);
+ assertTrue(s.indexOf("Can not load remote class bytes: server returned null
class") >= 0);
+
shutdownServer();
log.info(getName() + " PASSES");
}
@@ -175,6 +190,31 @@
}
+ static private void setOut(final PrintStream ps)
+ {
+ if (SecurityUtility.skipAccessControl())
+ {
+ System.setOut(ps);
+ return;
+ }
+
+ try
+ {
+ AccessController.doPrivileged( new PrivilegedExceptionAction()
+ {
+ public Object run() throws Exception
+ {
+ System.setOut(ps);
+ return null;
+ }
+ });
+ }
+ catch (PrivilegedActionException e)
+ {
+ throw (RuntimeException) e.getCause();
+ }
+ }
+
static class TestInvocationHandler implements ServerInvocationHandler
{
public void addListener(InvokerCallbackHandler callbackHandler) {}
Show replies by date