Author: fhanik Date: Thu Jun 22 08:08:58 2006 New Revision: 416390 URL: http://svn.apache.org/viewvc?rev=416390&view=rev Log: Support for JDK1.4 all the way
Added: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BufferPool14Impl.java Modified: tomcat/container/tc5.5.x/modules/groupcom/VERSION tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/GroupChannel.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BufferPool.java Modified: tomcat/container/tc5.5.x/modules/groupcom/VERSION URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/VERSION?rev=416390&r1=416389&r2=416390&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/VERSION (original) +++ tomcat/container/tc5.5.x/modules/groupcom/VERSION Thu Jun 22 08:08:58 2006 @@ -1,3 +1,5 @@ +0.9.2.9 + - jdk1.4 support for buffer pools 0.9.2.8 - finished coordinator and bug fixes in the coordinator and ChannelReceiver 0.9.2.6 Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/GroupChannel.java URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/GroupChannel.java?rev=416390&r1=416389&r2=416390&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/GroupChannel.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/GroupChannel.java Thu Jun 22 08:08:58 2006 @@ -318,7 +318,8 @@ try { clazz = Class.forName("org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor", true,GroupChannel.class.getClassLoader()); - } catch ( Exception x ) { + clazz.newInstance(); + } catch ( Throwable x ) { clazz = MessageDispatchInterceptor.class; }//catch try { Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java?rev=416390&r1=416389&r2=416390&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java Thu Jun 22 08:08:58 2006 @@ -323,6 +323,7 @@ Membership merged = mergeOnArrive(msg, sender); if (isViewConf(msg)) handleViewConf(msg, sender, merged); else handleToken(msg, sender, merged); + ClassLoader loader; } @@ -363,7 +364,7 @@ protected void handleOtherToken(MemberImpl local, CoordinationMessage msg, Member sender,Membership merged) throws ChannelException { if ( local.equals(msg.getLeader()) ) { //I am the new leader - startElection(false); + //startElection(false); } else { msg.view = (MemberImpl[])merged.getMembers(); sendElectionMsgToNextInline(local,msg); Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BufferPool.java URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BufferPool.java?rev=416390&r1=416389&r2=416390&view=diff ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BufferPool.java (original) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BufferPool.java Thu Jun 22 08:08:58 2006 @@ -58,16 +58,22 @@ synchronized (BufferPool.class) { if ( instance == null ) { BufferPoolAPI pool = null; + Class clazz = null; try { - Class clazz = Class.forName("org.apache.catalina.tribes.io.BufferPool15Impl"); + clazz = Class.forName("org.apache.catalina.tribes.io.BufferPool15Impl"); pool = (BufferPoolAPI)clazz.newInstance(); - pool.setMaxSize(DEFAULT_POOL_SIZE); - log.info("Created a buffer pool with max size:"+DEFAULT_POOL_SIZE+" bytes."); - } catch ( Exception x ) { - log.warn("Unable to initilize BufferPool, not pooling XByteBuffer objects.",x); + } catch ( Throwable x ) { + try { + clazz = Class.forName("org.apache.catalina.tribes.io.BufferPool14Impl"); + pool = (BufferPoolAPI)clazz.newInstance(); + } catch ( Throwable e ) { + log.warn("Unable to initilize BufferPool, not pooling XByteBuffer objects:"+x.getMessage()); + if ( log.isDebugEnabled() ) log.debug("Unable to initilize BufferPool, not pooling XByteBuffer objects:",x); + } } + pool.setMaxSize(DEFAULT_POOL_SIZE); + log.info("Created a buffer pool with max size:"+DEFAULT_POOL_SIZE+" bytes of type:"+(clazz!=null?clazz.getName():"null")); instance = new BufferPool(pool); - }//end if }//sync }//end if Added: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BufferPool14Impl.java URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BufferPool14Impl.java?rev=416390&view=auto ============================================================================== --- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BufferPool14Impl.java (added) +++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/BufferPool14Impl.java Thu Jun 22 08:08:58 2006 @@ -0,0 +1,69 @@ +/* + * Copyright 1999,2004-2006 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 + * limitations under the License. + */ +package org.apache.catalina.tribes.io; + +import java.util.Queue; +import java.util.LinkedList; + + +/** + * + * @author Filip Hanik + * @version 1.0 + */ +class BufferPool14Impl implements BufferPool.BufferPoolAPI { + protected int maxSize; + protected int size = 0; + protected LinkedList queue = new LinkedList(); + + public void setMaxSize(int bytes) { + this.maxSize = bytes; + } + + public synchronized int addAndGet(int val) { + size = size + (val); + return size; + } + + + + public synchronized XByteBuffer getBuffer(int minSize, boolean discard) { + XByteBuffer buffer = (XByteBuffer)(queue.size()>0?queue.remove(0):null); + if ( buffer != null ) addAndGet(-buffer.getCapacity()); + if ( buffer == null ) buffer = new XByteBuffer(minSize,discard); + else if ( buffer.getCapacity() <= minSize ) buffer.expand(minSize); + buffer.setDiscard(discard); + buffer.reset(); + return buffer; + } + + public synchronized void returnBuffer(XByteBuffer buffer) { + if ( (size + buffer.getCapacity()) <= maxSize ) { + addAndGet(buffer.getCapacity()); + queue.add(buffer); + } + } + + public synchronized void clear() { + queue.clear(); + size = 0; + } + + public int getMaxSize() { + return maxSize; + } + +} --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]