You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ra...@apache.org on 2007/08/14 01:05:13 UTC

svn commit: r565561 - in /incubator/qpid/trunk/qpid/java: client/src/main/java/org/apache/qpidity/client/ client/src/main/java/org/apache/qpidity/jms/message/ common/src/main/grammar/ common/src/main/java/org/apache/qpidity/ common/src/main/java/org/ap...

Author: rajith
Date: Mon Aug 13 16:05:11 2007
New Revision: 565561

URL: http://svn.apache.org/viewvc?view=rev&rev=565561
Log:
added error code support

Added:
    incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ErrorCode.java
Modified:
    incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/Client.java
    incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/ClientSession.java
    incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/ClientSessionDelegate.java
    incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/message/MessageImpl.java
    incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/message/QpidMessage.java
    incubator/qpid/trunk/qpid/java/common/src/main/grammar/SelectorParser.jj
    incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/QpidException.java
    incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SecurityHelper.java
    incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/filter/PropertyExpression.java

Modified: incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/Client.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/Client.java?view=diff&rev=565561&r1=565560&r2=565561
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/Client.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/Client.java Mon Aug 13 16:05:11 2007
@@ -10,6 +10,7 @@
 import org.apache.qpidity.Connection;
 import org.apache.qpidity.ConnectionClose;
 import org.apache.qpidity.ConnectionDelegate;
+import org.apache.qpidity.ErrorCode;
 import org.apache.qpidity.MinaHandler;
 import org.apache.qpidity.QpidException;
 import org.apache.qpidity.SessionDelegate;
@@ -39,9 +40,13 @@
                 return new ClientSessionDelegate();
             }
             
-            @Override public void connectionClose(Channel context, ConnectionClose struct) 
+            @Override public void connectionClose(Channel context, ConnectionClose connectionClose) 
             {
-                _exceptionListner.onException(new QpidException("Server closed the connection: Reason " + struct.getReplyText(),struct.getReplyCode(),null));
+                _exceptionListner.onException(
+                        new QpidException("Server closed the connection: Reason " + 
+                                           connectionClose.getReplyText(),
+                                           ErrorCode.get(connectionClose.getReplyCode()),
+                                           null));
             }
         };
         

Modified: incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/ClientSession.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/ClientSession.java?view=diff&rev=565561&r1=565560&r2=565561
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/ClientSession.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/ClientSession.java Mon Aug 13 16:05:11 2007
@@ -3,6 +3,7 @@
 import java.io.EOFException;
 import java.io.IOException;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 
@@ -21,11 +22,9 @@
     private ExceptionListener _exceptionListner;
     private RangeSet _acquiredMessages;
     private RangeSet _rejectedMessages;
-    private Map<String,List<RangeSet>> _unackedMessages = new HashMap<String,List<RangeSet>>();
     
     @Override public void sessionClose()
     {
-        // release all unacked messages and then issues a close
         super.sessionClose();
     }
     

Modified: incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/ClientSessionDelegate.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/ClientSessionDelegate.java?view=diff&rev=565561&r1=565560&r2=565561
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/ClientSessionDelegate.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/client/ClientSessionDelegate.java Mon Aug 13 16:05:11 2007
@@ -2,6 +2,7 @@
 
 import java.nio.ByteBuffer;
 
+import org.apache.qpidity.ErrorCode;
 import org.apache.qpidity.Frame;
 import org.apache.qpidity.MessageAcquired;
 import org.apache.qpidity.MessageReject;
@@ -10,6 +11,7 @@
 import org.apache.qpidity.Range;
 import org.apache.qpidity.RangeSet;
 import org.apache.qpidity.Session;
+import org.apache.qpidity.SessionClosed;
 import org.apache.qpidity.SessionDelegate;
 import org.apache.qpidity.Struct;
 
@@ -19,6 +21,14 @@
     private MessageTransfer _currentTransfer;
     private MessagePartListener _currentMessageListener;
     
+    @Override public void sessionClosed(Session ssn,SessionClosed sessionClosed)
+    {
+        ((ClientSession)ssn).notifyException(new QpidException(sessionClosed.getReplyText(),ErrorCode.get(sessionClosed.getReplyCode()),null));
+    }
+    
+    //  --------------------------------------------
+    //   Message methods
+    // --------------------------------------------
     @Override public void data(Session ssn, Frame frame)
     {
         for (ByteBuffer b : frame)
@@ -52,10 +62,6 @@
         }
     }
     
-    //  --------------------------------------------
-    //   Message methods
-    // --------------------------------------------
-    
     
     @Override public void messageReject(Session session, MessageReject struct) 
     {
@@ -68,7 +74,7 @@
             }
         }
         ((ClientSession)session).setRejectedMessages(struct.getTransfers());
-        ((ClientSession)session).notifyException(new QpidException("Message Rejected",0,null));
+        ((ClientSession)session).notifyException(new QpidException("Message Rejected",ErrorCode.MESSAGE_REJECTED,null));
     }
     
     @Override public void messageAcquired(Session session, MessageAcquired struct) 

Modified: incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/message/MessageImpl.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/message/MessageImpl.java?view=diff&rev=565561&r1=565560&r2=565561
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/message/MessageImpl.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/message/MessageImpl.java Mon Aug 13 16:05:11 2007
@@ -864,7 +864,7 @@
     {
         if (_destination == null)
         {
-            throw new QpidException("Invalid destination null", null, null);
+            throw new QpidException("Invalid destination null",null, null);
         }
     }
 

Modified: incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/message/QpidMessage.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/message/QpidMessage.java?view=diff&rev=565561&r1=565560&r2=565561
==============================================================================
--- incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/message/QpidMessage.java (original)
+++ incubator/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpidity/jms/message/QpidMessage.java Mon Aug 13 16:05:11 2007
@@ -20,15 +20,15 @@
  */
 package org.apache.qpidity.jms.message;
 
-import org.apache.qpidity.ReplyTo;
-import org.apache.qpidity.QpidException;
-
-import javax.jms.Message;
-import java.util.Map;
+import java.nio.ByteBuffer;
 import java.util.Enumeration;
-import java.util.Vector;
 import java.util.HashMap;
-import java.nio.ByteBuffer;
+import java.util.Map;
+import java.util.Vector;
+
+import org.apache.qpidity.ErrorCode;
+import org.apache.qpidity.QpidException;
+import org.apache.qpidity.ReplyTo;
 
 
 public class QpidMessage
@@ -170,7 +170,7 @@
         {
             throw new QpidException(
                     "Problem when setting message delivery mode, " + deliveryMode + " is not a valid mode",
-                    "wrong delivery mode", null);
+                    ErrorCode.UNDEFINED, null);
         }
         _qpidityMessage.getDeliveryProperties().setDeliveryMode(deliveryMode);
     }

Modified: incubator/qpid/trunk/qpid/java/common/src/main/grammar/SelectorParser.jj
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/grammar/SelectorParser.jj?view=diff&rev=565561&r1=565560&r2=565561
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/grammar/SelectorParser.jj (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/grammar/SelectorParser.jj Mon Aug 13 16:05:11 2007
@@ -94,7 +94,7 @@
             return this.JmsSelector();
         }
         catch (Throwable e) {
-	        throw new QpidException(sql,"filter error",e);
+	        throw new QpidException(sql,null,e);
         }
 
     }

Added: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ErrorCode.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ErrorCode.java?view=auto&rev=565561
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ErrorCode.java (added)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/ErrorCode.java Mon Aug 13 16:05:11 2007
@@ -0,0 +1,101 @@
+package org.apache.qpidity;
+
+public enum ErrorCode
+{
+    //Qpid specific - for the time being
+    UNDEFINED(1,"undefined",true),
+    MESSAGE_REJECTED(1,"message_rejected",true),
+    
+    //This might change in the spec, the error class is not applicable
+    NO_ERROR(200,"reply-success",true),
+    
+    //From the spec
+    CONTENT_TOO_LARGE(311,"content-too-large",false),
+    NO_ROUTE(312,"no-route",false),
+    NO_CONSUMERS(313,"content-consumers",false),
+    CONNECTION_FORCED(320,"connection-forced",true),
+    INVALID_PATH(402,"invalid-path",true),
+    ACCESS_REFUSED(403,"access-refused",false),
+    NOT_FOUND(404,"not-found",false),    
+    RESOURCE_LOCKED(405,"resource-locked",false),    
+    PRE_CONDITION_FAILED(406,"precondition-failed",false),
+    
+    FRAME_ERROR(501,"frame_error",true),
+    SYNTAX_ERROR(502,"syntax_error",true),
+    COMMAND_INVALID(503,"command_invalid",true),
+    SESSION_ERROR(504,"sesion_error",true),
+    NOT_ALLOWED(530,"not_allowed",true),
+    NOT_IMPLEMENTED(540,"not_implemented",true),
+    INTERNAL_ERROR(541,"internal_error",true),
+    INVALID_ARGUMENT(542,"invalid_argument",true);
+        
+    private int _code;
+    private String _desc;
+    private boolean _hardError;
+    
+    private ErrorCode(int code,String desc,boolean hardError)
+    {
+        _code = code;
+        _desc= desc;
+        _hardError = hardError;
+    }
+
+    public int getCode()
+    {
+        return _code;
+    }
+
+    public String getDesc()
+    {
+        return _desc;
+    }
+    
+    private boolean isHardError()
+    {
+        return _hardError;
+    }
+    
+    public static ErrorCode get(int code)
+    {
+        switch(code)
+        {
+            case 200 : return NO_ERROR;
+            case 311 : return CONTENT_TOO_LARGE;
+            case 312 : return NO_ROUTE;
+            case 313 : return NO_CONSUMERS;
+            case 320 : return CONNECTION_FORCED;
+            case 402 : return INVALID_PATH;
+            case 403 : return ACCESS_REFUSED;
+            case 404 : return NOT_FOUND;
+            case 405 : return RESOURCE_LOCKED;
+            case 406 : return PRE_CONDITION_FAILED;
+            case 501 : return FRAME_ERROR;
+            case 502 : return SYNTAX_ERROR;
+            case 503 : return COMMAND_INVALID;
+            case 504 : return SESSION_ERROR;            
+            case 530 : return NOT_ALLOWED;
+            case 540 : return NOT_IMPLEMENTED;
+            case 541 : return INTERNAL_ERROR;
+            case 542 : return INVALID_ARGUMENT;
+            
+            default : return UNDEFINED;
+        }
+    }
+    
+}
+
+/*
+
+<constant name="internal-error" value="541" class="hard-error">
+<doc>
+  The server could not complete the method because of an internal error. The server may require
+  intervention by an operator in order to resume normal operations.
+</doc>
+</constant>
+
+<constant name="invalid-argument" value="542" class="hard-error">
+<doc>
+  An invalid or illegal argument was passed to a method, and the operation could not proceed.
+</doc>
+</constant>
+*/
\ No newline at end of file

Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/QpidException.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/QpidException.java?view=diff&rev=565561&r1=565560&r2=565561
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/QpidException.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/QpidException.java Mon Aug 13 16:05:11 2007
@@ -17,17 +17,12 @@
  */
 package org.apache.qpidity;
 
-/**
- * Created by Arnaud Simon
- * Date: 20-Jul-2007
- * Time: 10:56:55
- */
 public class QpidException extends Exception
 {
     /**
      * AMQP error code
      */
-    private int _errorCode;
+    private ErrorCode _errorCode;
 
     /**
      * Constructor for a Qpid Exception.
@@ -38,24 +33,24 @@
      * @param cause      The linked Execption.    * 
      * 
      */
-    public QpidException(String message, int errorCode, Throwable cause)
+    public QpidException(String message, ErrorCode errorCode, Throwable cause)
     {
         super(message, cause);
         _errorCode = errorCode;
     }
     
-    //hack to get rid of a compile error from a  generated class
+    /*hack to get rid of a compile error from a  generated class
     public QpidException(String message, String errorCode, Throwable cause)
     {
         
-    }
+    }*/
 
     /**
      * Get this execption error code.
      *
      * @return This exception error code.
      */
-    public int getErrorCode()
+    public ErrorCode getErrorCode()
     {
         return _errorCode;
     }

Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SecurityHelper.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SecurityHelper.java?view=diff&rev=565561&r1=565560&r2=565561
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SecurityHelper.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/SecurityHelper.java Mon Aug 13 16:05:11 2007
@@ -64,7 +64,7 @@
         }
         catch (Exception e)
         {
-            throw new QpidException("Unable to create callback handler: " + e,0, e.getCause());
+            throw new QpidException("Unable to create callback handler: " + e,ErrorCode.UNDEFINED, e.getCause());
         }
     }
 

Modified: incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/filter/PropertyExpression.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/filter/PropertyExpression.java?view=diff&rev=565561&r1=565560&r2=565561
==============================================================================
--- incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/filter/PropertyExpression.java (original)
+++ incubator/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpidity/filter/PropertyExpression.java Mon Aug 13 16:05:11 2007
@@ -18,6 +18,7 @@
 package org.apache.qpidity.filter;
 
 import org.slf4j.LoggerFactory;
+import org.apache.qpidity.ErrorCode;
 import org.apache.qpidity.QpidException;
 
 import javax.jms.Message;
@@ -56,7 +57,7 @@
             }
             catch (Exception e)
             {
-                throw new QpidException("cannot evaluate property ", 0, e);
+                throw new QpidException("cannot evaluate property ", ErrorCode.UNDEFINED, e);
             }
         }
         return result;