Revision: 323bd68b51b1
Author:   Alexandre Mendonça <ammendonca>
Date:     Tue Jan  8 15:14:37 2013
Log:      Improving logging in TCPClientConnection

Update Issue 21
Committed logging for TCPClientConnection

http://code.google.com/p/jdiameter/source/detail?r=323bd68b51b1

Modified:
/core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/transport/tcp/TCPClientConnection.java

=======================================
--- /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/transport/tcp/TCPClientConnection.java Mon Mar 19 19:16:58 2012 +++ /core/jdiameter/impl/src/main/java/org/jdiameter/client/impl/transport/tcp/TCPClientConnection.java Tue Jan 8 15:14:37 2013
@@ -116,6 +116,8 @@
   }

   public void disconnect() throws InternalError {
+        //PCB added logging
+        logger.debug("In disconnect for [{}]", this.getKey());
     try {
       if (getClient() != null) {
         getClient().stop();
@@ -127,6 +129,8 @@
   }

   public void release() throws IOException {
+    //PCB added logging
+    logger.debug("In release for [{}]", this.getKey());
     try {
       if (getClient() != null) {
         getClient().release();
@@ -145,7 +149,22 @@
public void sendMessage(IMessage message) throws TransportException, OverloadException {
     try {
       if (getClient() != null) {
+        //PCB added logging
+ //Long receivedAt = timerMap.remove(message.getEndToEndIdentifier() + "_"+ message.getHopByHopIdentifier());
+        //if (receivedAt != null) {
+        //  long millis = System.currentTimeMillis() - receivedAt;
+        //  if (millis >= 200) {
+ // logger.warn("Diameter Message processing took [{}]ms", millis);
+        //  }
+        //}
         getClient().sendMessage(parser.encodeMessage(message));
+        //PCB added logging
+        //if (receivedAt != null) {
+        //  long millis = System.currentTimeMillis() - receivedAt;
+        //  if (millis >= 200) {
+ // logger.warn("Diameter Message processing and sending took [{}]ms", millis);
+        //  }
+        //}
       }
     }
     catch (Exception e) {
@@ -180,6 +199,8 @@
       if (buffer.size() != 0) {
         for (Event e : buffer) {
           try {
+            //PCB added logging
+            logger.debug("Processing event from buffer");
             onEvent(e);
           }
           catch (AvpDataException e1) {
@@ -195,8 +216,12 @@
   }

   public void remAllConnectionListener() {
+    //PCB added logging
+    logger.debug("Waiting to get lock in order to remove all listeners");
     lock.lock();
     try {
+      //PCB added logging
+      logger.debug("Removing all listeners on [{}]", this.getKey());
       listeners.clear();
     }
     finally {
@@ -207,6 +232,8 @@
   public void remConnectionListener(IConnectionListener listener) {
     lock.lock();
     try {
+      //PCB added logging
+ logger.debug("Removing listener [{}] on [{}]", listener.getClass().getName(), this.getKey());
       listeners.remove(listener);
     }
     finally {
@@ -260,10 +287,18 @@
   }

   protected void onEvent(Event event) throws AvpDataException {
+    //PCB added logging
+ logger.debug("In onEvent for connection [{}]. Getting lock", this.getKey());
     lock.lock();
+    //PCB added logging
+    logger.debug("Got lock");
     try {
       if (processBufferedMessages(event)) {
         for (IConnectionListener listener : listeners) {
+          //PCB added logging
+          if (logger.isDebugEnabled()) {
+ logger.debug("Passing event to listener. Event type is [{}]", event.type.toString());
+          }
           switch (event.type) {
             case CONNECTED:
               listener.connectionOpened(getKey());
@@ -272,7 +307,10 @@
               listener.connectionClosed(getKey(), null);
               break;
             case MESSAGE_RECEIVED:
- listener.messageReceived(getKey(), parser.createMessage(event.message));
+              //PCB added
+              IMessage msg = parser.createMessage(event.message);
+ //timerMap.put(msg.getEndToEndIdentifier() + "_"+ msg.getHopByHopIdentifier(), System.currentTimeMillis());
+              listener.messageReceived(getKey(), msg);
               break;
             case DATA_EXCEPTION:
listener.internalError(getKey(), null, new TransportException("Avp Data Exception:",
@@ -283,24 +321,33 @@
       }
     }
     finally {
+ logger.debug("Releasing lock and finished onEvent for connection [{}]", this.getKey());
       lock.unlock();
     }
   }
+
+ //private static final Map<String, Long> timerMap = new ConcurrentHashMap<String, Long>();

protected boolean processBufferedMessages(Event event) throws AvpDataException {
     if (listeners.size() == 0) {
+      //PCB added logging
+ logger.debug("listeners.size() == 0 on connection [{}]", this.getKey());
       try {
         buffer.add(event);
       }
       catch (IllegalStateException e) {
+ logger.debug("Got IllegalStateException in processBufferedMessages");
         // FIXME : requires JDK6 : buffer.removeLast();
         Event[] tempBuffer = buffer.toArray(new Event[buffer.size()]);
         buffer.remove(tempBuffer[tempBuffer.length-1]);
         buffer.add(event);
       }
+      //PCB added logging
+      logger.debug("processBufferedMessages is returning false");
       return false;
     }
     else {
+ logger.debug("processBufferedMessages is returning true on connection [{}] as there are listeners", getKey());
       return true;
     }
   }

Reply via email to