ggolden 02/05/14 07:50:11
Modified: src/java/org/apache/jetspeed/services/statemanager
JetspeedStateManagerService.java SessionState.java
StateManagerService.java
Log:
Changed getAttributeNames to return a String[] rather than an iterator.
Made the JetspeedStateManagerService implementation use synchronized
maps to be more thread safe.
Revision Changes Path
1.3 +36 -29
jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/JetspeedStateManagerService.java
Index: JetspeedStateManagerService.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/JetspeedStateManagerService.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JetspeedStateManagerService.java 3 May 2002 17:40:44 -0000 1.2
+++ JetspeedStateManagerService.java 14 May 2002 14:50:11 -0000 1.3
@@ -1,6 +1,6 @@
/**********************************************************************************
*
-* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/JetspeedStateManagerService.java,v
1.2 2002/05/03 17:40:44 ggolden Exp $
+* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/JetspeedStateManagerService.java,v
1.3 2002/05/14 14:50:11 ggolden Exp $
*
* ====================================================================
* The Apache Software License, Version 1.1
@@ -64,6 +64,8 @@
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+import java.util.Collections;
+import java.util.Vector;
import javax.servlet.ServletConfig;
import org.apache.jetspeed.services.statemanager.StateManagerService;
@@ -77,7 +79,7 @@
* <p>SessionState is stored in a HashMap, keyed by state key. In the HashMap, each
* SessionState has another HashMap, storing the names and values of the state info.
</p>
* <p>See the proposal: jakarta-jetspeed/proposals/StateManager.txt for more
details.</p>
-* @version $Revision: 1.2 $
+* @version $Revision: 1.3 $
* @see org.apache.jetspeed.services.statemanager.StateManagerService
* @see org.apache.jetspeed.services.statemanager.SessionState
* @author <a href="mailto:[EMAIL PROTECTED]">Glenn R. Golden</a>
@@ -89,7 +91,7 @@
{
/** Store each set of state parameters by state key
(each is a HashMap keyed by parameter name) */
- private HashMap m_states = null;
+ private Map m_states = null;
/**
* Performs early initialization.
@@ -134,7 +136,9 @@
throws InitializationException
{
super.init();
- m_states = new HashMap();
+
+ // create our states map synchronized
+ m_states = Collections.synchronizedMap(new HashMap());
} // init
@@ -161,9 +165,9 @@
*/
public Object getAttribute ( String key, String name )
{
- Map map = (Map) m_states.get(key);
- if (map == null) return null;
- return map.get(name);
+ Map state = (Map) m_states.get(key);
+ if (state == null) return null;
+ return state.get(name);
} // getAttribute
@@ -175,13 +179,15 @@
*/
public void setAttribute( String key, String name, Object value )
{
- Map map = (Map) m_states.get(key);
- if (map == null)
+ Map state = (Map) m_states.get(key);
+ if (state == null)
{
- map = new HashMap();
- m_states.put(key, map);
+ // create a synchronized map to store the state attributes
+ state = Collections.synchronizedMap(new HashMap());
+ m_states.put(key, state);
}
- map.put(name, value);
+
+ state.put(name, value);
} // setAttribute
@@ -192,9 +198,9 @@
*/
public void removeAttribute( String key, String name )
{
- Map map = (Map) m_states.get(key);
- if (map == null) return;
- map.remove(name);
+ Map state = (Map) m_states.get(key);
+ if (state == null) return;
+ state.remove(name);
} // removeAttribute
@@ -204,11 +210,11 @@
*/
public void clear( String key )
{
- Map map = (Map) m_states.get(key);
- if (map != null)
+ Map state = (Map) m_states.get(key);
+ if (state != null)
{
// remove all attributes
- map.clear();
+ state.clear();
// and forget about it
m_states.remove(key);
@@ -217,16 +223,17 @@
} // clear
/**
- * Access an iterator on all names of attributes stored in the keyed state.
+ * Access an array of all names of attributes stored in the keyed state.
* @param key The state key.
- * @return An iterator on all names of attributes stored in the keyed state.
+ * @return An array of all names of attributes stored in the keyed state.
*/
- public Iterator getAttributeNames( String key )
+ public String[] getAttributeNames( String key )
{
- Map map = (Map) m_states.get(key);
- if (map == null) return null;
- Set keys = map.keySet();
- return keys.iterator();
+ Map state = (Map) m_states.get(key);
+ if (state == null) return null;
+
+ // process all the current keys, synchronized
+ return (String[]) state.keySet().toArray(new String[state.size()]);
} // getAttributeNames
@@ -328,10 +335,10 @@
} // clear
/**
- * Access an iterator on all names of attributes stored in the SessionState.
- * @return An iterator on all names of attribute stored in the SessionState.
+ * Access an array of all names of attributes stored in the SessionState.
+ * @return An array of all names of attribute stored in the SessionState.
*/
- public Iterator getAttributeNames()
+ public String[] getAttributeNames()
{
return m_service.getAttributeNames(m_key);
@@ -362,7 +369,7 @@
/**********************************************************************************
*
-* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/JetspeedStateManagerService.java,v
1.2 2002/05/03 17:40:44 ggolden Exp $
+* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/JetspeedStateManagerService.java,v
1.3 2002/05/14 14:50:11 ggolden Exp $
*
**********************************************************************************/
1.3 +6 -6
jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/SessionState.java
Index: SessionState.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/SessionState.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SessionState.java 3 May 2002 17:40:44 -0000 1.2
+++ SessionState.java 14 May 2002 14:50:11 -0000 1.3
@@ -1,6 +1,6 @@
/**********************************************************************************
*
-* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/SessionState.java,v
1.2 2002/05/03 17:40:44 ggolden Exp $
+* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/SessionState.java,v
1.3 2002/05/14 14:50:11 ggolden Exp $
*
* ====================================================================
* The Apache Software License, Version 1.1
@@ -66,7 +66,7 @@
* <p>SessionState is an interface for objects that provide name - value information
sets
* with a unique key that can be used in the StateManager service</p>
* <p>See the proposal: jakarta-jetspeed/proposals/StateManager.txt for more
details.</p>
-* @version $Revision: 1.2 $
+* @version $Revision: 1.3 $
* @see org.apache.jetspeed.services.statemanager.StateManagerService
* @author <a href="mailto:[EMAIL PROTECTED]">Glenn R. Golden</a>
*/
@@ -98,10 +98,10 @@
public void clear();
/**
- * Access an iterator on all names of attributes stored in the SessionState.
- * @return An iterator on all names of attribute stored in the SessionState.
+ * Access an array of all names of attributes stored in the SessionState.
+ * @return An array of all names of attribute stored in the SessionState.
*/
- public Iterator getAttributeNames();
+ public String[] getAttributeNames();
/**
* Access the unique StateManager key for the SessionState.
@@ -118,7 +118,7 @@
/**********************************************************************************
*
-* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/SessionState.java,v
1.2 2002/05/03 17:40:44 ggolden Exp $
+* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/SessionState.java,v
1.3 2002/05/14 14:50:11 ggolden Exp $
*
**********************************************************************************/
1.2 +6 -9
jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/StateManagerService.java
Index: StateManagerService.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/StateManagerService.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- StateManagerService.java 3 May 2002 15:04:38 -0000 1.1
+++ StateManagerService.java 14 May 2002 14:50:11 -0000 1.2
@@ -1,6 +1,6 @@
/**********************************************************************************
*
-* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/StateManagerService.java,v
1.1 2002/05/03 15:04:38 ggolden Exp $
+* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/StateManagerService.java,v
1.2 2002/05/14 14:50:11 ggolden Exp $
*
* ====================================================================
* The Apache Software License, Version 1.1
@@ -59,15 +59,12 @@
// package
package org.apache.jetspeed.services.statemanager;
-// imports
-import java.util.Iterator;
-
/**
* <p>The StateManagerService is a service that manages SessionState information.
* Each SessionState is identified by a unique key in this service. The SessionState
* is composed of name - value sets of information, stored under the key by the
service.</p>
* <p>See the proposal: jakarta-jetspeed/proposals/StateManager.txt for more
details.</p>
-* @version $Revision: 1.1 $
+* @version $Revision: 1.2 $
* @see org.apache.jetspeed.services.statemanager.SessionState
* @author <a href="mailto:[EMAIL PROTECTED]">Glenn R. Golden</a>
*/
@@ -106,11 +103,11 @@
public void clear( String key );
/**
- * Access an iterator on all names of attributes stored in the keyed state.
+ * Access an array of all names of attributes stored in the keyed state.
* @param key The state key.
- * @return An iterator on all names of attributes stored in the keyed state.
+ * @return An array of all names of attributes stored in the keyed state.
*/
- public Iterator getAttributeNames( String key );
+ public String[] getAttributeNames( String key );
/**
* Access an SessionState object with the given key.
@@ -129,7 +126,7 @@
/**********************************************************************************
*
-* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/StateManagerService.java,v
1.1 2002/05/03 15:04:38 ggolden Exp $
+* $Header:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/statemanager/StateManagerService.java,v
1.2 2002/05/14 14:50:11 ggolden Exp $
*
**********************************************************************************/
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>