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) {