gdaniels 02/03/14 21:07:11
Modified: java/src/org/apache/axis/providers/java JavaProvider.java
java/src/org/apache/axis Handler.java
java/src/org/apache/axis/client Call.java
java/src/org/apache/axis/handlers BasicHandler.java
Log:
Protect the thread-unsafe parts of getServiceObject() with sync blocks.
Remove deprecated "setOption" methods for the beta.
Revision Changes Path
1.44 +19 -13
xml-axis/java/src/org/apache/axis/providers/java/JavaProvider.java
Index: JavaProvider.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/providers/java/JavaProvider.java,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- JavaProvider.java 14 Mar 2002 21:33:34 -0000 1.43
+++ JavaProvider.java 15 Mar 2002 05:07:10 -0000 1.44
@@ -133,30 +133,36 @@
// look in incoming session
if (msgContext.getSession() != null) {
- // store service objects in session, indexed by class name
- Object obj = msgContext.getSession().get(serviceName);
- if (obj == null) {
- obj = getNewServiceObject(msgContext, clsName);
- msgContext.getSession().set(serviceName, obj);
+ // This part isn't thread safe...
+ synchronized (this) {
+ // store service objects in session, indexed by class name
+ Object obj = msgContext.getSession().get(serviceName);
+ if (obj == null) {
+ obj = getNewServiceObject(msgContext, clsName);
+ msgContext.getSession().set(serviceName, obj);
+ }
+ return obj;
}
- return obj;
} else {
// was no incoming session, sigh, treat as request scope
return getNewServiceObject(msgContext, clsName);
}
} else if (scope.equalsIgnoreCase("Application")) {
-
// MUST be AxisEngine here!
AxisEngine engine = msgContext.getAxisEngine();
if (engine.getApplicationSession() != null) {
- // store service objects in session, indexed by class name
- Object obj = engine.getApplicationSession().get(serviceName);
- if (obj == null) {
- obj = getNewServiceObject(msgContext, clsName);
- engine.getApplicationSession().set(serviceName, obj);
+ // This part isn't thread safe
+ synchronized (this) {
+ // store service objects in session, indexed by class name
+ Object obj =
+ engine.getApplicationSession().get(serviceName);
+ if (obj == null) {
+ obj = getNewServiceObject(msgContext, clsName);
+ engine.getApplicationSession().set(serviceName, obj);
+ }
+ return obj;
}
- return obj;
} else {
// was no incoming session, sigh, treat as request scope
return getNewServiceObject(msgContext, clsName);
1.25 +0 -7 xml-axis/java/src/org/apache/axis/Handler.java
Index: Handler.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Handler.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- Handler.java 10 Jan 2002 20:00:59 -0000 1.24
+++ Handler.java 15 Mar 2002 05:07:10 -0000 1.25
@@ -106,13 +106,6 @@
public void setOption(String name, Object value);
/**
- * Old version of setOption()
- *
- * @deprecated replaced by setOption, to be more consistent
- */
- public void addOption(String name, Object value);
-
- /**
* Returns the option corresponding to the 'name' given
*/
public Object getOption(String name);
1.96 +0 -9 xml-axis/java/src/org/apache/axis/client/Call.java
Index: Call.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/Call.java,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -r1.95 -r1.96
--- Call.java 15 Mar 2002 01:14:10 -0000 1.95
+++ Call.java 15 Mar 2002 05:07:11 -0000 1.96
@@ -1663,15 +1663,6 @@
}
/**
- * Old version of above
- *
- * @deprecated replaced with setOption()
- */
- public void addOption(String name, Object value) {
- setOption(name, value);
- }
-
- /**
* Invoke this Call with its established MessageContext
* (perhaps because you called this.setRequestMessage())
*
1.26 +0 -9 xml-axis/java/src/org/apache/axis/handlers/BasicHandler.java
Index: BasicHandler.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/BasicHandler.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- BasicHandler.java 22 Feb 2002 23:39:45 -0000 1.25
+++ BasicHandler.java 15 Mar 2002 05:07:11 -0000 1.26
@@ -117,15 +117,6 @@
}
/**
- * Old version of setOption()
- *
- * @deprecated replaced by setOption, to be more consistent
- */
- public void addOption(String name, Object value) {
- setOption(name, value);
- }
-
- /**
* Returns the option corresponding to the 'name' given
*/
public Object getOption(String name) {