Author: rhs
Date: Mon Feb  4 14:11:22 2008
New Revision: 618462

URL: http://svn.apache.org/viewvc?rev=618462&view=rev
Log:
added a TransportException

Added:
    
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/TransportException.java
   (with props)
    incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/
    
incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/transport/
    
incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/transport/ConnectionTest.java
   (with props)
Modified:
    
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaSender.java

Added: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/TransportException.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/TransportException.java?rev=618462&view=auto
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/TransportException.java
 (added)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/TransportException.java
 Mon Feb  4 14:11:22 2008
@@ -0,0 +1,46 @@
+/*
+ *
+ * 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.
+ *
+ */
+package org.apache.qpidity.transport;
+
+
+/**
+ * TransportException
+ */
+
+public class TransportException extends RuntimeException
+{
+
+    public TransportException(String msg)
+    {
+        super(msg);
+    }
+
+    public TransportException(String msg, Throwable cause)
+    {
+        super(msg, cause);
+    }
+
+    public TransportException(Throwable cause)
+    {
+        super(cause);
+    }
+
+}

Propchange: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/TransportException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaSender.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaSender.java?rev=618462&r1=618461&r2=618462&view=diff
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaSender.java
 (original)
+++ 
incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/mina/MinaSender.java
 Mon Feb  4 14:11:22 2008
@@ -26,6 +26,7 @@
 import org.apache.mina.common.WriteFuture;
 
 import org.apache.qpidity.transport.Sender;
+import org.apache.qpidity.transport.TransportException;
 
 
 /**
@@ -48,7 +49,7 @@
     {
         if (session.isClosing())
         {
-            throw new RuntimeException("Trying to write on a closed socket");
+            throw new TransportException("attempted to write to a closed 
socket");
         }
         lastWrite = session.write(ByteBuffer.wrap(buf));
     }

Added: 
incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/transport/ConnectionTest.java
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/transport/ConnectionTest.java?rev=618462&view=auto
==============================================================================
--- 
incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/transport/ConnectionTest.java
 (added)
+++ 
incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/transport/ConnectionTest.java
 Mon Feb  4 14:11:22 2008
@@ -0,0 +1,84 @@
+/*
+ *
+ * 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.
+ *
+ */
+package org.apache.qpidity.transport;
+
+import org.apache.qpidity.transport.network.mina.MinaHandler;
+import org.apache.qpidity.transport.util.Logger;
+
+import junit.framework.TestCase;
+
+/**
+ * ConnectionTest
+ */
+
+public class ConnectionTest extends TestCase
+{
+
+    private static final Logger log = Logger.get(ConnectionTest.class);
+
+    private static final int PORT = 1234;
+
+    public void testWriteToClosed() throws Exception {
+        ConnectionDelegate server = new ConnectionDelegate() {
+            public void init(Channel ch, ProtocolHeader hdr) {
+                ch.getConnection().close();
+            }
+
+            public SessionDelegate getSessionDelegate() {
+                return new SessionDelegate() {};
+            }
+            public void exception(Throwable t) {
+                log.error(t, "exception caught");
+            }
+        };
+
+        MinaHandler.accept("0.0.0.0", PORT, server);
+
+        Connection conn = MinaHandler.connect("0.0.0.0", PORT,
+                                              new ConnectionDelegate()
+                                              {
+                                                  public SessionDelegate 
getSessionDelegate()
+                                                  {
+                                                      return new 
SessionDelegate() {};
+                                                  }
+                                                  public void 
exception(Throwable t)
+                                                  {
+                                                      t.printStackTrace();
+                                                  }
+                                              });
+
+        conn.send(new ConnectionEvent(0, new ProtocolHeader(1, 0, 10)));
+        Channel ch = conn.getChannel(0);
+        Session ssn = new Session();
+        ssn.attach(ch);
+
+        try
+        {
+            ssn.sessionOpen(1234);
+            fail("writing to a closed socket succeeded");
+        }
+        catch (TransportException e)
+        {
+            // expected
+        }
+    }
+
+}

Propchange: 
incubator/qpid/trunk/qpid/java/common/src/test/java/org/apache/qpidity/transport/ConnectionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to