geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dblev...@apache.org
Subject svn commit: r1211251 - in /geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt: pom.xml src/main/java/javax/ejb/EJBException.java src/test/ src/test/java/ src/test/java/javax/ src/test/java/javax/ejb/ src/test/java/javax/ejb/EJBExceptionTest.java
Date Wed, 07 Dec 2011 01:14:14 GMT
Author: dblevins
Date: Wed Dec  7 01:14:14 2011
New Revision: 1211251

URL: http://svn.apache.org/viewvc?rev=1211251&view=rev
Log:
Test case

Added:
    geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/test/
    geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/test/java/
    geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/test/java/javax/
    geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/test/java/javax/ejb/
    geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/test/java/javax/ejb/EJBExceptionTest.java
Modified:
    geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/pom.xml
    geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/main/java/javax/ejb/EJBException.java

Modified: geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/pom.xml?rev=1211251&r1=1211250&r2=1211251&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/pom.xml (original)
+++ geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/pom.xml Wed Dec  7 01:14:14 2011
@@ -63,6 +63,13 @@
             <version>1.0</version>
             <scope>provided</scope>
         </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.8.1</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <scm>

Modified: geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/main/java/javax/ejb/EJBException.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/main/java/javax/ejb/EJBException.java?rev=1211251&r1=1211250&r2=1211251&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/main/java/javax/ejb/EJBException.java
(original)
+++ geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/main/java/javax/ejb/EJBException.java
Wed Dec  7 01:14:14 2011
@@ -58,12 +58,12 @@ public class EJBException extends Runtim
 
     @Override
     public Throwable getCause() {
-        return super.getCause() != null? super.getCause(): getCausedByException();
+        return super.getCause() != null ? super.getCause() : getCausedByException();
     }
 
     public String getMessage() {
 
-        if (causeException == null || causeException == super.getCause()) return super.getMessage();
+        if (causeException == null) return super.getMessage();
 
         StringBuilder sb = new StringBuilder();
 
@@ -88,10 +88,6 @@ public class EJBException extends Runtim
         }
     }
 
-    public void printStackTrace() {
-        printStackTrace(System.err);
-    }
-
     public void printStackTrace(PrintWriter pw) {
         if (causeException == null || causeException == super.getCause()) {
             super.printStackTrace(pw);
@@ -101,4 +97,8 @@ public class EJBException extends Runtim
             super.printStackTrace(pw);
         }
     }
+
+    public void printStackTrace() {
+        printStackTrace(System.err);
+    }
 }

Added: geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/test/java/javax/ejb/EJBExceptionTest.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/test/java/javax/ejb/EJBExceptionTest.java?rev=1211251&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/test/java/javax/ejb/EJBExceptionTest.java
(added)
+++ geronimo/specs/trunk/geronimo-ejb_3.1_spec-alt/src/test/java/javax/ejb/EJBExceptionTest.java
Wed Dec  7 01:14:14 2011
@@ -0,0 +1,259 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+//
+// This source code implements specifications defined by the Java
+// Community Process. In order to remain compliant with the specification
+// DO NOT add / change / or delete method signatures!
+//
+package javax.ejb;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.BufferedReader;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.io.PrintWriter;
+import java.io.StringReader;
+import java.io.StringWriter;
+
+public class EJBExceptionTest {
+
+    private static final EJBException exceptionDefaultConstructor = new EJBException();
+    private static final EJBException exceptionWithNullMessage = new EJBException((String)
null);
+    private static final EJBException exceptionWithMessage = new EJBException("msg");
+
+    private static final EJBException exceptionWithCausedBy = createException(true, false);
+    private static final EJBException exceptionWithInitCause = createException(false, true);
+    private static final EJBException exceptionWithCausedByAndInitCause = createException(true,
true);
+
+    private static EJBException createException(boolean causedBy, boolean initCause) {
+
+        try {
+
+            throw new Exception("cause");
+
+        } catch (Exception ex) {
+
+            EJBException ejbException = causedBy ? new EJBException("msg", ex) : new EJBException("msg");
+
+            if (initCause) {
+
+                ejbException.initCause(ex);
+
+            }
+
+            return ejbException;
+        }
+    }
+
+    @Test
+    public void testGetMessage() {
+
+        Assert.assertEquals(null, exceptionDefaultConstructor.getMessage());
+
+        Assert.assertEquals(null, exceptionWithNullMessage.getMessage());
+
+        Assert.assertEquals("msg", exceptionWithMessage.getMessage());
+
+        Assert.assertEquals("msg; nested exception is: java.lang.Exception: cause", exceptionWithCausedBy.getMessage());
+
+        Assert.assertEquals("msg", exceptionWithInitCause.getMessage());
+
+        Assert.assertEquals("msg; nested exception is: java.lang.Exception: cause", exceptionWithCausedByAndInitCause.getMessage());
+    }
+
+    @Test
+    public void testGetCause() {
+
+        Assert.assertNull(exceptionDefaultConstructor.getCause());
+
+        Assert.assertNull(exceptionWithNullMessage.getCause());
+
+        Assert.assertNull(exceptionWithMessage.getCause());
+
+        Assert.assertNotNull(exceptionWithCausedBy.getCause());
+
+        Assert.assertNotNull(exceptionWithInitCause.getCause());
+    }
+
+    @Test
+    public void testGetCausedByException() {
+
+        Assert.assertNull(exceptionDefaultConstructor.getCausedByException());
+
+        Assert.assertNull(exceptionWithNullMessage.getCausedByException());
+
+        Assert.assertNull(exceptionWithMessage.getCausedByException());
+
+        Assert.assertSame(exceptionWithCausedBy.getCause(), exceptionWithCausedBy.getCausedByException());
+
+        Assert.assertNull(exceptionWithInitCause.getCausedByException());
+    }
+
+    @Test
+    public void testInitCause() {
+
+        Exception cause1 = new Exception("cause1");
+
+        Exception cause2 = new Exception("cause2");
+
+
+        EJBException ejbEx = new EJBException(cause1);
+
+        Assert.assertSame(cause1, ejbEx.getCausedByException());
+
+        Assert.assertSame(cause1, ejbEx.getCause());
+
+        ejbEx.initCause(cause2);
+
+        Assert.assertSame(cause1, ejbEx.getCausedByException());
+
+        Assert.assertSame(cause2, ejbEx.getCause());
+    }
+
+    private static final String[] printStackTraces(Throwable t) {
+
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+        t.printStackTrace(new PrintStream(baos));
+
+
+        StringWriter sw = new StringWriter();
+
+        t.printStackTrace(new PrintWriter(sw));
+
+
+        return new String[]{new String(baos.toByteArray()), sw.toString()};
+    }
+
+    private static String highlight(String s) {
+
+        return ">>>" + s + "<<<";
+    }
+
+    private void assertStackTrace(String s, String... pieces) throws IOException {
+
+        BufferedReader br = new BufferedReader(new StringReader(s));
+
+        int pos = 0;
+
+
+        for (String line; (line = br.readLine()) != null; ) {
+
+            if (line.startsWith("\tat") && (pos > 0 && pieces[pos - 1].equals("\tat")))
{
+
+                continue;
+
+            }
+
+
+            if (pos == pieces.length) {
+
+                Assert.fail("unexpected lines" + System.getProperty("line.separator") + highlight(s));
+
+            }
+
+
+            if (!line.startsWith(pieces[pos])) {
+
+                Assert.fail(highlight(line) + " does not start with piece " +
+
+                        (pos + 1) + " " + highlight(pieces[pos]) +
+
+                        System.getProperty("line.separator") + highlight(s));
+
+            }
+
+
+            pos++;
+        }
+
+
+        if (pos != pieces.length) {
+
+            Assert.fail("expected piece " + (pos + 1) + System.getProperty("line.separator")
+ highlight(s));
+        }
+    }
+
+    @Test
+    public void _testPrintStackTrace() throws Exception {
+
+        for (String s : printStackTraces(exceptionDefaultConstructor)) {
+
+            assertStackTrace(s, "javax.ejb.EJBException", "\tat");
+        }
+
+
+        for (String s : printStackTraces(exceptionWithNullMessage)) {
+
+            assertStackTrace(s, "javax.ejb.EJBException", "\tat");
+        }
+
+
+        for (String s : printStackTraces(exceptionWithMessage)) {
+
+            assertStackTrace(s, "javax.ejb.EJBException", "\tat");
+        }
+
+
+        for (String s : printStackTraces(exceptionWithCausedBy)) {
+
+            assertStackTrace(s, "javax.ejb.EJBException: msg; nested exception",
+                    "\tat",
+                    "Caused by",
+                    "\tat",
+                    "\t...");
+        }
+
+
+        for (String s : printStackTraces(exceptionWithInitCause)) {
+
+            assertStackTrace(s,
+                    "javax.ejb.EJBException",
+                    "\tat",
+                    "Caused by",
+                    "\tat",
+                    "\t...");
+        }
+
+
+        for (String s : printStackTraces(exceptionWithCausedByAndInitCause)) {
+
+            assertStackTrace(s,
+                    "javax.ejb.EJBException: msg; nested exception",
+                    "\tat",
+                    "Caused by",
+                    "\tat",
+                    "\t...");
+        }
+
+
+        for (String s : printStackTraces(new EJBException(new Exception("cause1")).initCause(new
Exception("cause2")))) {
+
+            assertStackTrace(s,
+                    "javax.ejb.EJBException: nested exception is: java.lang.Exception: cause1",
+                    "java.lang.Exception: cause1",
+                    "\tat",
+                    "javax.ejb.EJBException: nested exception is: java.lang.Exception: cause1",
+                    "\tat",
+                    "Caused by: java.lang.Exception: cause2",
+                    "\t...");
+        }
+    }
+}
\ No newline at end of file



Mime
View raw message