You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by rs...@apache.org on 2002/10/02 17:27:12 UTC

cvs commit: xml-axis/java/src/org/apache/axis/handlers BasicHandler.java

rsitze      2002/10/02 08:27:12

  Modified:    java/src/org/apache/axis FaultableHandler.java
               java/src/org/apache/axis/handlers/soap SOAPService.java
               java/src/org/apache/axis/handlers BasicHandler.java
  Log:
  Issue being solved: WSDDService with 0 (zero) options:
  
  1. WSDDService.makeNewInstance():   calls  new SOAPService(..);
  2.   SOAPService(): calls initHashtable(true);
  3.     Options were then created as a LockableHashtable.
  4. makeNewInstance(): service.setOptions(getParametersTable())
         - note that getParametersTable() can return null,
           in which case service.options == null
  5. service.setOption() is called at least once...
         - since options == null, it calls initHashtable(false);
         - options is no long null... and it is a Hashtable
  5. If Call.setSOAPService() OR Call.invoke() are called,
     then service.setPropertyParent() is called.
  6. SOAPService.setPropertyParent()
         - typecasts options to LockableHashtable,
           options is now a Hashtable...
  7. Boom.
  
  There still remains one loose end: calling setOptions(Hashtable)
  may overwrite the (expected) LockableHashtable with a simple Hashtable.
  
  Regardless, tests are passing..
  
  Revision  Changes    Path
  1.45      +7 -5      xml-axis/java/src/org/apache/axis/FaultableHandler.java
  
  Index: FaultableHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/FaultableHandler.java,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- FaultableHandler.java	18 Sep 2002 16:10:31 -0000	1.44
  +++ FaultableHandler.java	2 Oct 2002 15:27:11 -0000	1.45
  @@ -134,11 +134,13 @@
               Handler faultHandler = null;
   
               Hashtable options = getOptions();
  -            Enumeration enum = options.keys();
  -            while (enum.hasMoreElements()) {
  -                String s = (String) enum.nextElement();
  -                if (s.equals("fault-" + fault.getFaultCode().getLocalPart())) {
  -                    faultHandler = (Handler)options.get(s);
  +            if (options != null) {
  +                Enumeration enum = options.keys();
  +                while (enum.hasMoreElements()) {
  +                    String s = (String) enum.nextElement();
  +                    if (s.equals("fault-" + fault.getFaultCode().getLocalPart())) {
  +                        faultHandler = (Handler)options.get(s);
  +                    }
                   }
               }
   
  
  
  
  1.85      +2 -1      xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java
  
  Index: SOAPService.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java,v
  retrieving revision 1.84
  retrieving revision 1.85
  diff -u -r1.84 -r1.85
  --- SOAPService.java	18 Sep 2002 16:10:40 -0000	1.84
  +++ SOAPService.java	2 Oct 2002 15:27:11 -0000	1.85
  @@ -235,7 +235,8 @@
        */
       public SOAPService()
       {
  -        initHashtable(true);
  +        setOptionsLockable(true);
  +        initHashtable();
   
           // For now, always assume we're the ultimate destination.
           // TODO : Handle SOAP 1.2 ultimateDestination actor as well
  
  
  
  1.39      +9 -3      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.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- BasicHandler.java	12 Aug 2002 22:58:46 -0000	1.38
  +++ BasicHandler.java	2 Oct 2002 15:27:11 -0000	1.39
  @@ -84,14 +84,20 @@
       protected static Log log =
           LogFactory.getLog(BasicHandler.class.getName());
   
  +    protected boolean makeLockable = false;
       protected Hashtable options;
       protected String name;
   
   
       /**
        * Should this Handler use a LockableHashtable for options?
  +     * Default is 'false'.
        */
  -    protected void initHashtable(boolean makeLockable)
  +    protected void setOptionsLockable(boolean makeLockable) {
  +        this.makeLockable = makeLockable;
  +    }
  +    
  +    protected void initHashtable()
       {
           if (makeLockable) {
               options = new LockableHashtable();
  @@ -128,7 +134,7 @@
        * Set the given option (name/value) in this handler's bag of options
        */
       public void setOption(String name, Object value) {
  -        if ( options == null ) initHashtable(false);
  +        if ( options == null ) initHashtable();
           options.put( name, value );
       }
   
  @@ -166,7 +172,7 @@
       }
   
       public void setOptions(Hashtable opts) {
  -        options = opts ;
  +        options = opts;
       }
   
       /**