Author: fhanik
Date: Fri Apr 28 11:56:11 2006
New Revision: 397981

URL: http://svn.apache.org/viewcvs?rev=397981&view=rev
Log:
Tribes should be jdk1.4 compatible. Broke out the only reference to a 1.5 class 
in its own class

Added:
    
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/MessageDispatch15Interceptor.java
Modified:
    tomcat/container/tc5.5.x/modules/groupcom/VERSION
    
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java

Modified: tomcat/container/tc5.5.x/modules/groupcom/VERSION
URL: 
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/VERSION?rev=397981&r1=397980&r2=397981&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/VERSION (original)
+++ tomcat/container/tc5.5.x/modules/groupcom/VERSION Fri Apr 28 11:56:11 2006
@@ -1 +1,3 @@
-0.9.1.1
+0.9.1.2
+ - 1.4 compatibility
+0.9.1.1

Added: 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/MessageDispatch15Interceptor.java
URL: 
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/MessageDispatch15Interceptor.java?rev=397981&view=auto
==============================================================================
--- 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/MessageDispatch15Interceptor.java
 (added)
+++ 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/MessageDispatch15Interceptor.java
 Fri Apr 28 11:56:11 2006
@@ -0,0 +1,45 @@
+/*
+ * Copyright 1999,2004 The Apache Software Foundation.
+ * 
+ * Licensed 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
+ */
+package org.apache.catalina.tribes.group.interceptors;
+
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * 
+ * Same implementation as the MessageDispatchInterceptor
+ * except is ues an atomic long for the currentSize calculation
+ * 
+ * @author Filip Hanik
+ * @version 1.0
+ */
+
+public class MessageDispatch15Interceptor extends MessageDispatchInterceptor {
+
+    protected AtomicLong currentSize = new AtomicLong(0);
+
+    public long getCurrentSize() {
+        return currentSize.get();
+    }
+
+    public long addAndGetCurrentSize(long inc) {
+        return currentSize.addAndGet(inc);
+    }
+
+    public long setAndGetCurrentSize(long value) {
+        currentSize.set(value);
+        return value;
+    }
+
+}
\ No newline at end of file

Modified: 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java
URL: 
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java?rev=397981&r1=397980&r2=397981&view=diff
==============================================================================
--- 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java
 (original)
+++ 
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/MessageDispatchInterceptor.java
 Fri Apr 28 11:56:11 2006
@@ -15,8 +15,6 @@
 
 package org.apache.catalina.tribes.group.interceptors;
 
-import java.util.concurrent.atomic.AtomicLong;
-
 import org.apache.catalina.tribes.Channel;
 import org.apache.catalina.tribes.ChannelException;
 import org.apache.catalina.tribes.ChannelMessage;
@@ -44,19 +42,19 @@
     private FastQueue queue = new FastQueue();
     private boolean run = false;
     private Thread msgDispatchThread = null;
-    private AtomicLong currentSize = new AtomicLong(0);
+    protected long currentSize = 0;
     private boolean useDeepClone = false;
 
     public void sendMessage(Member[] destination, ChannelMessage msg, 
InterceptorPayload payload) throws ChannelException {
         boolean async = (msg.getOptions() & Channel.SEND_OPTIONS_ASYNCHRONOUS) 
== Channel.SEND_OPTIONS_ASYNCHRONOUS;
         if ( async && run ) {
-            if ( (currentSize.get()+msg.getMessage().getLength()) > 
maxQueueSize ) throw new ChannelException("Asynchronous queue is full, reached 
its limit of "+maxQueueSize+" bytes, current:"+currentSize+" bytes.");
+            if ( (getCurrentSize()+msg.getMessage().getLength()) > 
maxQueueSize ) throw new ChannelException("Asynchronous queue is full, reached 
its limit of "+maxQueueSize+" bytes, current:"+getCurrentSize()+" bytes.");
             //add to queue
             if ( useDeepClone ) msg = (ChannelMessage)msg.deepclone();
             if (!queue.add(msg, destination, payload) ) {
                 throw new ChannelException("Unable to add the message to the 
async queue, queue bug?");
             }
-            currentSize.addAndGet(msg.getMessage().getLength());
+            addAndGetCurrentSize(msg.getMessage().getLength());
         } else {
             super.sendMessage(destination, msg, payload);
         }
@@ -77,6 +75,20 @@
     public boolean getUseDeepClone() {
         return useDeepClone;
     }
+    
+    public long getCurrentSize() {
+        return currentSize;
+    }
+    
+    public synchronized long addAndGetCurrentSize(long inc) {
+        currentSize += inc;
+        return currentSize;
+    }
+    
+    public synchronized long setAndGetCurrentSize(long value) {
+        currentSize = value;
+        return value;
+    }
 
     public void start(int svc) throws ChannelException {
         //start the thread
@@ -105,7 +117,7 @@
                     run = false;
                     queue.setEnabled(false);
                     msgDispatchThread.interrupt();
-                    currentSize = new AtomicLong(0);
+                    setAndGetCurrentSize(0);
                 }//end if
             }//sync
         }//end if
@@ -135,7 +147,7 @@
                         log.error("Unable to report back error message.",ex);
                     }
                 } finally {
-                    currentSize.addAndGet(-msg.getMessage().getLength());
+                    addAndGetCurrentSize(-msg.getMessage().getLength());
                     link = link.next();
                 }//try
             }//while



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to