fhanik 2004/11/19 11:33:16 Modified: modules/cluster/src/share/org/apache/catalina/cluster/session DeltaRequest.java Log: Synchronized Revision Changes Path 1.11 +28 -11 jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaRequest.java Index: DeltaRequest.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/modules/cluster/src/share/org/apache/catalina/cluster/session/DeltaRequest.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- DeltaRequest.java 26 Oct 2004 14:52:17 -0000 1.10 +++ DeltaRequest.java 19 Nov 2004 19:33:15 -0000 1.11 @@ -34,6 +34,9 @@ public class DeltaRequest implements Externalizable { + public static org.apache.commons.logging.Log log = + org.apache.commons.logging.LogFactory.getLog( DeltaRequest.class ); + public static final int TYPE_ATTRIBUTE = 0; public static final int TYPE_PRINCIPAL = 1; public static final int TYPE_ISNEW = 2; @@ -91,13 +94,18 @@ addAction(TYPE_ISNEW,action,NAME_ISNEW,new Boolean(n)); } - protected void addAction(int type, + protected synchronized void addAction(int type, int action, String name, Object value) { AttributeInfo info = null; if ( this.actionPool.size() > 0 ) { - info = (AttributeInfo)actionPool.removeFirst(); + try { + info = (AttributeInfo) actionPool.removeFirst(); + }catch ( Exception x ) { + log.error("Unable to remove element:",x); + info = new AttributeInfo(type, action, name, value); + } info.init(type,action,name,value); } else { info = new AttributeInfo(type, action, name, value); @@ -119,7 +127,7 @@ execute(session,true); } - public void execute(DeltaSession session, boolean notifyListeners) { + public synchronized void execute(DeltaSession session, boolean notifyListeners) { if ( !this.sessionId.equals( session.getId() ) ) throw new java.lang.IllegalArgumentException("Session id mismatch, not executing the delta request"); session.access(); @@ -156,11 +164,15 @@ session.endAccess(); } - public void reset() { + public synchronized void reset() { while ( actions.size() > 0 ) { - AttributeInfo info = (AttributeInfo)actions.removeFirst(); - info.recycle(); - actionPool.addLast(info); + try { + AttributeInfo info = (AttributeInfo) actions.removeFirst(); + info.recycle(); + actionPool.addLast(info); + }catch ( Exception x ) { + log.error("Unable to remove element",x); + } } actions.clear(); } @@ -178,7 +190,7 @@ return actions.size(); } - public void clear() { + public synchronized void clear() { actions.clear(); actionPool.clear(); } @@ -200,7 +212,12 @@ for (int i = 0; i < cnt; i++) { AttributeInfo info = null; if (this.actionPool.size() > 0) { - info = (AttributeInfo) actionPool.removeFirst(); + try { + info = (AttributeInfo) actionPool.removeFirst(); + } catch ( Exception x ) { + log.error("Unable to remove element",x); + info = new AttributeInfo(-1,-1,null,null); + } } else { info = new AttributeInfo(-1,-1,null,null); @@ -284,7 +301,7 @@ return other.getName().equals(this.getName()); } - public void readExternal(java.io.ObjectInput in ) throws java.io.IOException, + public synchronized void readExternal(java.io.ObjectInput in ) throws java.io.IOException, java.lang.ClassNotFoundException { //type - int //action - int @@ -296,7 +313,7 @@ value = in.readObject(); } - public void writeExternal(java.io.ObjectOutput out) throws java.io. + public synchronized void writeExternal(java.io.ObjectOutput out) throws java.io. IOException { //type - int //action - int
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]