[jboss-remoting-commits] JBoss Remoting SVN: r5726 - remoting2/branches/2.x/src/tests/org/jboss/test/remoting/classloader.

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Wed Feb 17 20:07:27 EST 2010


Author: ron.sigal at 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) {}



More information about the jboss-remoting-commits mailing list