haul        2002/12/17 06:53:17

  Modified:    src/java/org/apache/cocoon/components/modules/input
                        AbstractMetaModule.java ChainMetaModule.java
                        DateMetaInputModule.java DigestMetaModule.java
                        JXPathMetaModule.java MapMetaModule.java
                        SimpleMappingMetaModule.java XMLFileModule.java
                        XMLMetaModule.java
  Log:
    <action dev="CH" type="update">
      Make all "meta" modules ThreadSafe
    </action>
  
  Revision  Changes    Path
  1.7       +27 -27    
xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/AbstractMetaModule.java
  
  Index: AbstractMetaModule.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/AbstractMetaModule.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AbstractMetaModule.java   16 Dec 2002 14:55:05 -0000      1.6
  +++ AbstractMetaModule.java   17 Dec 2002 14:53:16 -0000      1.7
  @@ -73,7 +73,7 @@
    * @version CVS $Id$
    */
   public abstract class AbstractMetaModule extends AbstractInputModule
  -    implements Initializable, Composable, Disposable {
  +    implements Composable, Disposable {
   
       /** The component manager instance */
       protected ComponentManager manager;
  @@ -92,7 +92,7 @@
                                                  // during configure() so why bother 
here...
       
       /** Is this instance initialized? */
  -    protected Boolean initialized = new Boolean(false);
  +    protected boolean initialized = false;
   
       /* Constants */
   
  @@ -116,28 +116,34 @@
   
       /**
        * Initialize the meta module with exactly one other input
  -     * module. Override this method and dispose() to keep references
  -     * to more than one module.
  +     * module. Since "meta" modules require references to components
  +     * of the same role, initialization cannot be done in initialize()
  +     * when also implementing ThreadSafe since at that point the
  +     * component selector is not yet initialized it would trigger the
  +     * creation of a new one resulting in an endless loop of
  +     * initializations. Therefore, every module needs to call this
  +     * method when it first requires access to another module if the
  +     * module itself has not been initialized. Override this method
  +     * and dispose() to keep references to more than one module.
        */
  -    public void initialize() {
  +    public synchronized void lazy_initialize() {
   
           try {
               // obtain input modules
  -            synchronized (this.initialized) {
  -                if (!this.initialized.booleanValue()) 
  -                    this.inputSelector=(ComponentSelector) 
this.manager.lookup(INPUT_MODULE_SELECTOR); 
  -                    if (this.inputSelector != null && this.inputSelector instanceof 
ThreadSafe) {
  -                        
  -                        if (this.defaultInput != null) {
  -                            this.input = obtainModule(this.defaultInput);
  -                        }
  -                        
  +            if (!this.initialized) {
  +                this.inputSelector=(ComponentSelector) 
this.manager.lookup(INPUT_MODULE_SELECTOR); 
  +                if (this.inputSelector != null && this.inputSelector instanceof 
ThreadSafe) {
  +                    
  +                    if (this.defaultInput != null) {
  +                        this.input = obtainModule(this.defaultInput);
  +                    }
  +                    
                       } else if (!(this.inputSelector instanceof ThreadSafe) ) {
                           this.manager.release(this.inputSelector);
                           this.inputSelector = null;
                       }
  -                    
  -                    this.initialized = new Boolean(true);
  +                
  +                this.initialized = true;
               }
           } catch (Exception e) {
               if (getLogger().isWarnEnabled()) 
  @@ -152,16 +158,10 @@
        */
       public void dispose() {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) {
  -                getLogger().error("Uninitialized Component! FAILING");
  -            }
  -        } else {
  -            if (this.inputSelector != null) {
  -                if (this.input != null)
  -                    this.inputSelector.release(this.input);
  -                this.manager.release(this.inputSelector);
  -            }
  +        if (this.inputSelector != null) {
  +            if (this.input != null)
  +                this.inputSelector.release(this.input);
  +            this.manager.release(this.inputSelector);
           }
       }
   
  
  
  
  1.6       +27 -39    
xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/ChainMetaModule.java
  
  Index: ChainMetaModule.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/ChainMetaModule.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ChainMetaModule.java      16 Dec 2002 14:55:05 -0000      1.5
  +++ ChainMetaModule.java      17 Dec 2002 14:53:16 -0000      1.6
  @@ -96,7 +96,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Christian Haul</a>
    * @version CVS $Id$
    */
  -public class ChainMetaModule extends AbstractMetaModule  {
  +public class ChainMetaModule extends AbstractMetaModule implements ThreadSafe {
   
       class ModuleHolder {
           public String name = null;
  @@ -135,26 +135,25 @@
       }
   
   
  -    public void initialize() {
  +    public synchronized void lazy_initialize() {
   
           try {
               // obtain input modules
  -            synchronized (this.initialized) {
  -                if (!this.initialized.booleanValue())
  -                    this.inputSelector=(ComponentSelector) 
this.manager.lookup(INPUT_MODULE_SELECTOR); 
  -                    if (this.inputSelector != null && this.inputSelector instanceof 
ThreadSafe) {
  -                        
  -                        for (int i=0; i<this.inputs.length; i++) {
  -                            if (this.inputs[i].name != null) 
  -                                this.inputs[i].input = 
obtainModule(this.inputs[i].name);
  -                        }
  -                        
  -                    } else if (!(this.inputSelector instanceof ThreadSafe) ) {
  -                        this.manager.release(this.inputSelector);
  -                        this.inputSelector = null;
  +            if (!this.initialized) {
  +                this.inputSelector=(ComponentSelector) 
this.manager.lookup(INPUT_MODULE_SELECTOR); 
  +                if (this.inputSelector != null && this.inputSelector instanceof 
ThreadSafe) {
  +                    
  +                    for (int i=0; i<this.inputs.length; i++) {
  +                        if (this.inputs[i].name != null) 
  +                            this.inputs[i].input = 
obtainModule(this.inputs[i].name);
                       }
                       
  -                    this.initialized = new Boolean(true);
  +                } else if (!(this.inputSelector instanceof ThreadSafe) ) {
  +                    this.manager.release(this.inputSelector);
  +                    this.inputSelector = null;
  +                }
  +                
  +                this.initialized = true;
               }
           } catch (Exception e) {
               if (getLogger().isWarnEnabled()) 
  @@ -165,20 +164,14 @@
       
       public void dispose() {
           
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) {
  -                getLogger().error("Uninitialized Component! dispose() FAILING");
  -            }
  -        } else {
  -            if (this.inputSelector != null) {
  -                
  -                for (int i=0; i<this.inputs.length; i++) {
  -                    if (this.inputs[i].input != null)
  -                        this.inputSelector.release(this.inputs[i].input);
  -                }
  -                
  -                this.manager.release(this.inputSelector);
  +        if (this.inputSelector != null) {
  +            
  +            for (int i=0; i<this.inputs.length; i++) {
  +                if (this.inputs[i].input != null)
  +                    this.inputSelector.release(this.inputs[i].input);
               }
  +            
  +            this.manager.release(this.inputSelector);
           }
       }
   
  @@ -186,10 +179,8 @@
       public Object[] getAttributeValues( String attr, Configuration modeConf, Map 
objectModel ) 
           throws ConfigurationException {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! getAttributeValues() 
FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
   
           // obtain correct configuration objects
  @@ -252,11 +243,8 @@
       public Iterator getAttributeNames( Configuration modeConf, Map objectModel ) 
           throws ConfigurationException {
   
  -
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! getAttributeNames() 
FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
   
           // obtain correct configuration objects
  
  
  
  1.5       +7 -10     
xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/DateMetaInputModule.java
  
  Index: DateMetaInputModule.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/DateMetaInputModule.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DateMetaInputModule.java  5 Dec 2002 10:01:05 -0000       1.4
  +++ DateMetaInputModule.java  17 Dec 2002 14:53:16 -0000      1.5
  @@ -53,6 +53,7 @@
   
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
  +import org.apache.avalon.framework.thread.ThreadSafe;
   
   import java.text.DateFormat;
   import java.text.SimpleDateFormat;
  @@ -69,7 +70,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Christian Haul</a>
    * @version CVS $Id$
    */
  -public class DateMetaInputModule extends AbstractMetaModule {
  +public class DateMetaInputModule extends AbstractMetaModule implements ThreadSafe {
   
       private String defaultFormat = "yyyy-MM-dd";
       private DateFormat defaultFormatter = null;
  @@ -89,10 +90,8 @@
       public Object[] getAttributeValues( String name, Configuration modeConf, Map 
objectModel ) 
           throws ConfigurationException {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  @@ -144,10 +143,8 @@
       public Iterator getAttributeNames( Configuration modeConf, Map objectModel ) 
           throws ConfigurationException {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  
  
  
  1.9       +9 -14     
xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/DigestMetaModule.java
  
  Index: DigestMetaModule.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/DigestMetaModule.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DigestMetaModule.java     5 Dec 2002 10:01:04 -0000       1.8
  +++ DigestMetaModule.java     17 Dec 2002 14:53:16 -0000      1.9
  @@ -52,6 +52,7 @@
   
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
  +import org.apache.avalon.framework.thread.ThreadSafe;
   
   import java.net.URLEncoder;
   import java.security.MessageDigest;
  @@ -71,7 +72,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Christian Haul</a>
    * @version CVS $Id$
    */
  -public class DigestMetaModule extends AbstractMetaModule {
  +public class DigestMetaModule extends AbstractMetaModule implements ThreadSafe {
   
       private String defaultAlgorithm = "SHA";
       private String defaultProvider = null;
  @@ -92,10 +93,8 @@
       public Object getAttribute( String name, Configuration modeConf, Map 
objectModel ) 
           throws ConfigurationException {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  @@ -157,10 +156,8 @@
       public Iterator getAttributeNames( Configuration modeConf, Map objectModel ) 
           throws ConfigurationException {
   
  -         if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +         if (!this.initialized) {
  +             this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  @@ -193,10 +190,8 @@
       public Object[] getAttributeValues( String name, Configuration modeConf, Map 
objectModel ) 
           throws ConfigurationException {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  
  
  
  1.5       +11 -3     
xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/JXPathMetaModule.java
  
  Index: JXPathMetaModule.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/JXPathMetaModule.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JXPathMetaModule.java     16 Dec 2002 10:37:33 -0000      1.4
  +++ JXPathMetaModule.java     17 Dec 2002 14:53:16 -0000      1.5
  @@ -54,6 +54,7 @@
   import org.apache.avalon.framework.configuration.Configurable;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
  +import org.apache.avalon.framework.thread.ThreadSafe;
   import org.apache.commons.jxpath.*;
   
   import java.util.Iterator;
  @@ -95,7 +96,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Christian Haul</a>
    * @version $Id$
    */
  -public class JXPathMetaModule extends AbstractMetaModule implements Configurable {
  +public class JXPathMetaModule extends AbstractMetaModule implements Configurable, 
ThreadSafe {
   
       /**
        * Contains all globally registered extension classes and
  @@ -313,6 +314,10 @@
        */
       protected  Object getContextObject(Configuration modeConf, Map objectModel) {
   
  +        if (!this.initialized) {
  +            this.lazy_initialize();
  +        }
  +
           Configuration mConf = null;
           String inputName=null;
           String parameter = this.parameter;
  @@ -323,7 +328,10 @@
           }
   
           if (getLogger().isDebugEnabled())
  -            getLogger().debug("modeConf is "+modeConf+" this.inputConf is 
"+this.inputConf+" mConf is "+mConf+" this.input is "+this.input+" this.defaultInput 
is "+this.defaultInput+" inputName is "+inputName+" parameter is "+parameter);
  +            getLogger().debug("modeConf is "+modeConf+" this.inputConf is 
"+this.inputConf
  +                              +" mConf is "+mConf+" this.input is "+this.input
  +                              +" this.defaultInput is "+this.defaultInput
  +                              +" inputName is "+inputName+" parameter is 
"+parameter);
   
           Object obj =  this.getValue(parameter, objectModel, 
                                       this.input, this.defaultInput, this.inputConf,
  
  
  
  1.7       +7 -10     
xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/MapMetaModule.java
  
  Index: MapMetaModule.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/MapMetaModule.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- MapMetaModule.java        5 Dec 2002 10:01:05 -0000       1.6
  +++ MapMetaModule.java        17 Dec 2002 14:53:16 -0000      1.7
  @@ -52,6 +52,7 @@
   
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
  +import org.apache.avalon.framework.thread.ThreadSafe;
   
   import java.util.Iterator;
   import java.util.Map;
  @@ -67,7 +68,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Christian Haul</a>
    * @version CVS $Id$
    */
  -public class MapMetaModule extends AbstractMetaModule {
  +public class MapMetaModule extends AbstractMetaModule implements ThreadSafe {
   
       protected String objectName = null;
       protected String parameter = null;
  @@ -84,10 +85,8 @@
       public Object getAttribute( String name, Configuration modeConf, Map 
objectModel ) 
           throws ConfigurationException {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  @@ -127,10 +126,8 @@
       public Iterator getAttributeNames( Configuration modeConf, Map objectModel ) 
           throws ConfigurationException {
   
  -         if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +         if (!this.initialized) {
  +             this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  
  
  
  1.5       +9 -14     
xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/SimpleMappingMetaModule.java
  
  Index: SimpleMappingMetaModule.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/SimpleMappingMetaModule.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SimpleMappingMetaModule.java      16 Dec 2002 09:57:05 -0000      1.4
  +++ SimpleMappingMetaModule.java      17 Dec 2002 14:53:16 -0000      1.5
  @@ -52,6 +52,7 @@
   
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
  +import org.apache.avalon.framework.thread.ThreadSafe;
   
   import java.util.HashMap;
   import java.util.HashSet;
  @@ -84,7 +85,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Christian Haul</a>
    * @version CVS $Id$
    */
  -public class SimpleMappingMetaModule extends AbstractMetaModule {
  +public class SimpleMappingMetaModule extends AbstractMetaModule implements 
ThreadSafe {
   
       String prefix = null;
       String suffix = null;
  @@ -154,10 +155,8 @@
       public Object getAttribute( String name, Configuration modeConf, Map 
objectModel ) 
           throws ConfigurationException {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  @@ -217,10 +216,8 @@
       public Object[] getAttributeValues( String name, Configuration modeConf, Map 
objectModel ) 
           throws ConfigurationException {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  @@ -277,10 +274,8 @@
       public Iterator getAttributeNames( Configuration modeConf, Map objectModel ) 
           throws ConfigurationException {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  
  
  
  1.3       +4 -2      
xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/XMLFileModule.java
  
  Index: XMLFileModule.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/XMLFileModule.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLFileModule.java        5 Dec 2002 10:01:05 -0000       1.2
  +++ XMLFileModule.java        17 Dec 2002 14:53:16 -0000      1.3
  @@ -140,7 +140,9 @@
            * @return a <code>Document</code> value
            * @exception Exception if an error occurs
            */
  -        public Document getDocument(ComponentManager manager, SourceResolver 
resolver, Logger logger) throws Exception {
  +        public synchronized Document getDocument(ComponentManager manager, 
  +                                                 SourceResolver resolver, 
  +                                                 Logger logger) throws Exception {
   
               Source src = null;
               SourceValidity valid = null;
  
  
  
  1.8       +9 -14     
xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/XMLMetaModule.java
  
  Index: XMLMetaModule.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/modules/input/XMLMetaModule.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XMLMetaModule.java        16 Dec 2002 10:05:51 -0000      1.7
  +++ XMLMetaModule.java        17 Dec 2002 14:53:16 -0000      1.8
  @@ -60,6 +60,7 @@
   import org.apache.avalon.framework.component.Component;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
  +import org.apache.avalon.framework.thread.ThreadSafe;
   
   import org.apache.cocoon.xml.dom.DOMUtil;
   import org.apache.cocoon.xml.dom.DocumentWrapper;
  @@ -115,7 +116,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Christian Haul</a>
    * @version CVS $Id$
    */
  -public class XMLMetaModule extends AbstractMetaModule {
  +public class XMLMetaModule extends AbstractMetaModule implements ThreadSafe {
   
       protected String rootName = "root";
       protected String ignore = null;
  @@ -150,10 +151,8 @@
       public Object getAttribute( String name, Configuration modeConf, Map 
objectModel ) 
           throws ConfigurationException {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  @@ -298,10 +297,8 @@
       public Iterator getAttributeNames( Configuration modeConf, Map objectModel ) 
           throws ConfigurationException {
   
  -         if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +         if (!this.initialized) {
  +             this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  @@ -318,10 +315,8 @@
       public Object[] getAttributeValues( String name, Configuration modeConf, Map 
objectModel ) 
           throws ConfigurationException {
   
  -        if (!this.initialized.booleanValue()) {
  -            if (getLogger().isErrorEnabled()) 
  -                getLogger().error("Uninitialized Component! FAILING");
  -            return null;
  +        if (!this.initialized) {
  +            this.lazy_initialize();
           }
           if (this.defaultInput == null) {
               if (getLogger().isWarnEnabled()) 
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to