You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by David Chancogne <da...@o-ms.com> on 2003/11/07 23:22:54 UTC

[Betwixt] Betwixt and Log4j

Hello,

My setup:
   Java: Sun SDK, java version "1.4.2-beta"
   Betwixt: 1.0 apha1
   Digester: 1.5
   Log4j: 1.2.8


The code attached reproduces the problem.

Running the attached code produce the expected result, i.e.
the outside tag is renamed to 'product' and the 'archives'
field is ignore:

<product>
  <id>1</id>
  <name>Productname</name>
</product>


Turning debugging on to 'DEBUG' level in log4j.properties
generates the following output (as well has the
stack exception thrown by XMLIntrospectorHelper):
 
<ProductXMLTest>
  <archives>
    <archive>
      <id>2</id>
      <name>ArchiveName</name>
    </archive>
  </archives>
  <id>1</id>
  <name>Productname</name>
</ProductXMLTest>


Obviously this is not the right output (e.g. 'archives'
should be hidden). This is probably due to the exception
thrown by Betwixt. Am I missing something?

--
/David

--------8<-------- CUT HERE -----------------8<-------------
File: ProductXMLTest.java

import java.util.*;

import java.beans.*;
import java.io.*;
import java.util.*;
import org.xml.sax.*;

import org.apache.commons.betwixt.io.*;
import org.apache.commons.betwixt.strategy.*;

public class ProductXMLTest {
    
    private int id;
    private String name;
    private List archives;
    
    
    /** Creates a new instance of ProductXMLTest */
    public ProductXMLTest(int id, String name) {
        this.id = id;
        this.name = name;
        this.archives = new ArrayList();
    }
   
    
    /** Getter for property id.
     * @return Value of property id.
     *
     */
    public int getId() {
        return id;
    }
    
    /** Setter for property id.
     * @param id New value of property id.
     *
     */
    public void setId(int id) {
        this.id = id;
    }
    
    /** Getter for property name.
     * @return Value of property name.
     *
     */
    public String getName() {
        return name;
    }
    
    /** Setter for property name.
     * @param name New value of property name.
     *
     */
    public void setName(String name) {
        this.name = name;
    }
    
    /** Getter for property archives.
     * @return Value of property archives.
     *
     */
    public List getArchives() {
        return archives;
    }
    
    /** Setter for property archives.
     * @param archives New value of property archives.
     *
     */
    public void addArchive(ArchiveXMLTest archive) {
        this.archives.add(archive);
    }
    
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
    
        ProductXMLTest p = new ProductXMLTest(1, "Productname");
        p.addArchive(new ArchiveXMLTest(2, "ArchiveName"));
        
        String xml = null;
        try {
            StringWriter w = new StringWriter();
            BeanWriter beanWriter  = new BeanWriter(w);
            beanWriter.enablePrettyPrint();
            beanWriter.setWriteIDs(false);
            beanWriter.write(p);
            System.out.println(w.toString());
            
        }
       catch (Exception e) {
           e.printStackTrace();
        }
        
        
    }
    
    
}
--------8<-------- CUT HERE -----------------8<-------------
File: ArchiveXMLTest.java

public class ArchiveXMLTest {
    
    private String name;
    private int id;
    
    /** Creates a new instance of ArchiveXMLTest */
    public ArchiveXMLTest(int id, String name) {
        this.id = id;
        this.name = name;
    }
    
    /** Getter for property name.
     * @return Value of property name.
     *
     */
    public String getName() {
        return name;
    }
    
    /** Setter for property name.
     * @param name New value of property name.
     *
     */
    public void setName(String name) {
        this.name = name;
    }
    
    /** Getter for property id.
     * @return Value of property id.
     *
     */
    public int getId() {
        return id;
    }
    
    /** Setter for property id.
     * @param id New value of property id.
     *
     */
    public void setId(int id) {
        this.id = id;
    }
    
}
--------8<-------- CUT HERE -----------------8<-------------
File: ProductXMLText.betwixt

<?xml version='1.0' encoding='UTF-8' ?>
<info primitiveTypes='element'>
<hide property='archives'/>
    <element name='product'>
        <addDefaults/>
    </element>
</info>
--------8<-------- CUT HERE -----------------8<-------------
File: log4j.properties

# 
# Log4J properties file.

# Set root logger level to FATAL and its only appender to console.
log4j.rootLogger=FATAL, console

# console is set to be a ConsoleAppender.
log4j.appender.console=org.apache.log4j.ConsoleAppender

# console uses PatternLayout.
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x -
%m%n
--------8<-------- CUT HERE -----------------8<--------------




---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Re: [Betwixt] Betwixt and Log4j

Posted by Martin van den Bemt <ml...@mvdb.net>.
You probably should wait till I fix/investigate some pending issues
(other than related to NPE's though) that people have..

Mvgr,
Martin

On Mon, 2003-11-24 at 01:01, David Chancogne wrote:
> Martin van den Bemt wrote:
>  > Sorry for the verrry late answer...
>  > Got swamped with personal problems and a huge workload at the office..
>  > sorry.. Finally got my betwixt evening though :)
> 
> Perfectly understandable.
> 
> 
>  > I've been trying to reproduce your problem, with debug level turned on.
>  > It turns out that you must be using betwixt 1.0 ALPHA 1.. The bug was
>  > fixed a month after the release (even by myself). If you use cvs head
>  > you should be without any problems. (the code snippet you pasted also
>  > got me doubting it was the correct code for your version, since an npe
>  > is actually prevented in the descriptor!=null line..
>  >
>  > Hope this helps and is not too late :(
> 
> Not a problem, an easy work around for me was to turn debug to
> FATAL for all Betwix packages. I'll grab the CVS HEAD code if/when
> I get a chance.
> 
> Thank you.
> 
> 
>  > On Sun, 2003-11-09 at 15:54, David Chancogne wrote:
>  >
>  >>Hello,
>  >>
>  >>I originally sent this on Friday but it seems it did not
>  >>make it to the list.
>  >>
>  >>---------8<-------------CUT HERE ----------------8<----------
>  >>
>  >>Subject: Re: [Betwixt] Betwixt and Log4j
>  >>From: David Chancogne <da...@o-ms.com>
>  >>Date: Fri, 07 Nov 2003 21:59:34 -0500
>  >>To: Jakarta Commons Users List <co...@jakarta.apache.org>
>  >>
>  >>
>  >>David Chancogne wrote:
>  >> > Hello,
>  >> >
>  >> > My setup:
>  >> >    Java: Sun SDK, java version "1.4.2-beta"
>  >> >    Betwixt: 1.0 apha1
>  >> >    Digester: 1.5
>  >> >    Log4j: 1.2.8
>  >> >
>  >> >
>  >> > The code attached reproduces the problem.
>  >> >
>  >> > Running the attached code produce the expected result, i.e.
>  >> > the outside tag is renamed to 'product' and the 'archives'
>  >> > field is ignore:
>  >> >
>  >> > <product>
>  >> >   <id>1</id>
>  >> >   <name>Productname</name>
>  >> > </product>
>  >> >
>  >> >
>  >> > Turning debugging on to 'DEBUG' level in log4j.properties
>  >> > generates the following output (as well has the
>  >> > stack exception thrown by XMLIntrospectorHelper):
>  >> >
>  >> > <ProductXMLTest>
>  >> >   <archives>
>  >> >     <archive>
>  >> >       <id>2</id>
>  >> >       <name>ArchiveName</name>
>  >> >     </archive>
>  >> >   </archives>
>  >> >   <id>1</id>
>  >> >   <name>Productname</name>
>  >> > </ProductXMLTest>
>  >> >
>  >> >
>  >> > Obviously this is not the right output (e.g. 'archives'
>  >> > should be hidden). This is probably due to the exception
>  >> > thrown by Betwixt. Am I missing something?
>  >>
>  >>
>  >>To answer my own question, I believe the error comes
>  >>from XMLIntrospectorHelper.java, around line 488 (latest
>  >>from CVS):
>  >>
>  >>    ...
>  >>    ElementDescriptor descriptor =
>  >>       findGetCollectionDescriptor(
>  >>                                   introspector,
>  >>                                   rootDescriptor,
>  >>                                   propertyName );
>  >>
>  >>    if ( log.isDebugEnabled() ) {
>  >>       log.debug( "!! " + propertyName + " -> " + descriptor );
>  >>       log.debug( "!! " + name + " -> "
>  >>       + (descriptor!=null?descriptor.getPropertyName():"") );
>  >>    }
>  >>    if ( descriptor != null ) {
>  >>    ...
>  >>
>  >>
>  >>If 'descriptor' is null and debugging turned on, a NullPointer
>  >>Exception will be raised. The debug message should go in the
>  >>following if block.
-- 
Martin van den Bemt <ml...@mvdb.net>
mvdb.com


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Re: [Betwixt] Betwixt and Log4j

Posted by David Chancogne <dc...@comcast.net>.
Martin van den Bemt wrote:
 > Sorry for the verrry late answer...
 > Got swamped with personal problems and a huge workload at the office..
 > sorry.. Finally got my betwixt evening though :)

Perfectly understandable.


 > I've been trying to reproduce your problem, with debug level turned on.
 > It turns out that you must be using betwixt 1.0 ALPHA 1.. The bug was
 > fixed a month after the release (even by myself). If you use cvs head
 > you should be without any problems. (the code snippet you pasted also
 > got me doubting it was the correct code for your version, since an npe
 > is actually prevented in the descriptor!=null line..
 >
 > Hope this helps and is not too late :(

Not a problem, an easy work around for me was to turn debug to
FATAL for all Betwix packages. I'll grab the CVS HEAD code if/when
I get a chance.

Thank you.


 > On Sun, 2003-11-09 at 15:54, David Chancogne wrote:
 >
 >>Hello,
 >>
 >>I originally sent this on Friday but it seems it did not
 >>make it to the list.
 >>
 >>---------8<-------------CUT HERE ----------------8<----------
 >>
 >>Subject: Re: [Betwixt] Betwixt and Log4j
 >>From: David Chancogne <da...@o-ms.com>
 >>Date: Fri, 07 Nov 2003 21:59:34 -0500
 >>To: Jakarta Commons Users List <co...@jakarta.apache.org>
 >>
 >>
 >>David Chancogne wrote:
 >> > Hello,
 >> >
 >> > My setup:
 >> >    Java: Sun SDK, java version "1.4.2-beta"
 >> >    Betwixt: 1.0 apha1
 >> >    Digester: 1.5
 >> >    Log4j: 1.2.8
 >> >
 >> >
 >> > The code attached reproduces the problem.
 >> >
 >> > Running the attached code produce the expected result, i.e.
 >> > the outside tag is renamed to 'product' and the 'archives'
 >> > field is ignore:
 >> >
 >> > <product>
 >> >   <id>1</id>
 >> >   <name>Productname</name>
 >> > </product>
 >> >
 >> >
 >> > Turning debugging on to 'DEBUG' level in log4j.properties
 >> > generates the following output (as well has the
 >> > stack exception thrown by XMLIntrospectorHelper):
 >> >
 >> > <ProductXMLTest>
 >> >   <archives>
 >> >     <archive>
 >> >       <id>2</id>
 >> >       <name>ArchiveName</name>
 >> >     </archive>
 >> >   </archives>
 >> >   <id>1</id>
 >> >   <name>Productname</name>
 >> > </ProductXMLTest>
 >> >
 >> >
 >> > Obviously this is not the right output (e.g. 'archives'
 >> > should be hidden). This is probably due to the exception
 >> > thrown by Betwixt. Am I missing something?
 >>
 >>
 >>To answer my own question, I believe the error comes
 >>from XMLIntrospectorHelper.java, around line 488 (latest
 >>from CVS):
 >>
 >>    ...
 >>    ElementDescriptor descriptor =
 >>       findGetCollectionDescriptor(
 >>                                   introspector,
 >>                                   rootDescriptor,
 >>                                   propertyName );
 >>
 >>    if ( log.isDebugEnabled() ) {
 >>       log.debug( "!! " + propertyName + " -> " + descriptor );
 >>       log.debug( "!! " + name + " -> "
 >>       + (descriptor!=null?descriptor.getPropertyName():"") );
 >>    }
 >>    if ( descriptor != null ) {
 >>    ...
 >>
 >>
 >>If 'descriptor' is null and debugging turned on, a NullPointer
 >>Exception will be raised. The debug message should go in the
 >>following if block.
-- 
/Doc
"Trying is the first step toward failure!" - H. Simpson - The Simpsons


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Re: [Betwixt] Betwixt and Log4j

Posted by Martin van den Bemt <ml...@mvdb.net>.
Sorry for the verrry late answer... 
Got swamped with personal problems and a huge workload at the office..
sorry.. Finally got my betwixt evening though :) 
I've been trying to reproduce your problem, with debug level turned on. 
It turns out that you must be using betwixt 1.0 ALPHA 1.. The bug was
fixed a month after the release (even by myself). If you use cvs head
you should be without any problems. (the code snippet you pasted also
got me doubting it was the correct code for your version, since an npe
is actually prevented in the descriptor!=null line..

Hope this helps and is not too late :(

Mvgr,
Martin

On Sun, 2003-11-09 at 15:54, David Chancogne wrote:
> Hello,
> 
> I originally sent this on Friday but it seems it did not
> make it to the list.
> 
> ---------8<-------------CUT HERE ----------------8<----------
> 
> Subject: Re: [Betwixt] Betwixt and Log4j
> From: David Chancogne <da...@o-ms.com>
> Date: Fri, 07 Nov 2003 21:59:34 -0500
> To: Jakarta Commons Users List <co...@jakarta.apache.org>
> 
> 
> David Chancogne wrote:
>  > Hello,
>  >
>  > My setup:
>  >    Java: Sun SDK, java version "1.4.2-beta"
>  >    Betwixt: 1.0 apha1
>  >    Digester: 1.5
>  >    Log4j: 1.2.8
>  >
>  >
>  > The code attached reproduces the problem.
>  >
>  > Running the attached code produce the expected result, i.e.
>  > the outside tag is renamed to 'product' and the 'archives'
>  > field is ignore:
>  >
>  > <product>
>  >   <id>1</id>
>  >   <name>Productname</name>
>  > </product>
>  >
>  >
>  > Turning debugging on to 'DEBUG' level in log4j.properties
>  > generates the following output (as well has the
>  > stack exception thrown by XMLIntrospectorHelper):
>  >
>  > <ProductXMLTest>
>  >   <archives>
>  >     <archive>
>  >       <id>2</id>
>  >       <name>ArchiveName</name>
>  >     </archive>
>  >   </archives>
>  >   <id>1</id>
>  >   <name>Productname</name>
>  > </ProductXMLTest>
>  >
>  >
>  > Obviously this is not the right output (e.g. 'archives'
>  > should be hidden). This is probably due to the exception
>  > thrown by Betwixt. Am I missing something?
> 
> 
> To answer my own question, I believe the error comes
> from XMLIntrospectorHelper.java, around line 488 (latest
> from CVS):
> 
>     ...
>     ElementDescriptor descriptor =
>        findGetCollectionDescriptor(
>                                    introspector,
>                                    rootDescriptor,
>                                    propertyName );
> 
>     if ( log.isDebugEnabled() ) {
>        log.debug( "!! " + propertyName + " -> " + descriptor );
>        log.debug( "!! " + name + " -> "
>        + (descriptor!=null?descriptor.getPropertyName():"") );
>     }
>     if ( descriptor != null ) {
>     ...
> 
> 
> If 'descriptor' is null and debugging turned on, a NullPointer
> Exception will be raised. The debug message should go in the
> following if block.
> 
> /David
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
-- 
Martin van den Bemt <ml...@mvdb.net>
mvdb.com


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Re: [Betwixt] Betwixt and Log4j

Posted by David Chancogne <da...@o-ms.com>.
Hello,

I originally sent this on Friday but it seems it did not
make it to the list.

---------8<-------------CUT HERE ----------------8<----------

Subject: Re: [Betwixt] Betwixt and Log4j
From: David Chancogne <da...@o-ms.com>
Date: Fri, 07 Nov 2003 21:59:34 -0500
To: Jakarta Commons Users List <co...@jakarta.apache.org>


David Chancogne wrote:
 > Hello,
 >
 > My setup:
 >    Java: Sun SDK, java version "1.4.2-beta"
 >    Betwixt: 1.0 apha1
 >    Digester: 1.5
 >    Log4j: 1.2.8
 >
 >
 > The code attached reproduces the problem.
 >
 > Running the attached code produce the expected result, i.e.
 > the outside tag is renamed to 'product' and the 'archives'
 > field is ignore:
 >
 > <product>
 >   <id>1</id>
 >   <name>Productname</name>
 > </product>
 >
 >
 > Turning debugging on to 'DEBUG' level in log4j.properties
 > generates the following output (as well has the
 > stack exception thrown by XMLIntrospectorHelper):
 >
 > <ProductXMLTest>
 >   <archives>
 >     <archive>
 >       <id>2</id>
 >       <name>ArchiveName</name>
 >     </archive>
 >   </archives>
 >   <id>1</id>
 >   <name>Productname</name>
 > </ProductXMLTest>
 >
 >
 > Obviously this is not the right output (e.g. 'archives'
 > should be hidden). This is probably due to the exception
 > thrown by Betwixt. Am I missing something?


To answer my own question, I believe the error comes
from XMLIntrospectorHelper.java, around line 488 (latest
from CVS):

    ...
    ElementDescriptor descriptor =
       findGetCollectionDescriptor(
                                   introspector,
                                   rootDescriptor,
                                   propertyName );

    if ( log.isDebugEnabled() ) {
       log.debug( "!! " + propertyName + " -> " + descriptor );
       log.debug( "!! " + name + " -> "
       + (descriptor!=null?descriptor.getPropertyName():"") );
    }
    if ( descriptor != null ) {
    ...


If 'descriptor' is null and debugging turned on, a NullPointer
Exception will be raised. The debug message should go in the
following if block.

/David


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Re: [Betwixt] Betwixt and Log4j

Posted by Martin van den Bemt <ml...@mvdb.net>.
I'll try to have a look at this this weekend..

Mvgr,
Martin
On Fri, 2003-11-07 at 23:22, David Chancogne wrote:
> Hello,
> 
> My setup:
>    Java: Sun SDK, java version "1.4.2-beta"
>    Betwixt: 1.0 apha1
>    Digester: 1.5
>    Log4j: 1.2.8
> 
> 
> The code attached reproduces the problem.
> 
> Running the attached code produce the expected result, i.e.
> the outside tag is renamed to 'product' and the 'archives'
> field is ignore:
> 
> <product>
>   <id>1</id>
>   <name>Productname</name>
> </product>
> 
> 
> Turning debugging on to 'DEBUG' level in log4j.properties
> generates the following output (as well has the
> stack exception thrown by XMLIntrospectorHelper):
>  
> <ProductXMLTest>
>   <archives>
>     <archive>
>       <id>2</id>
>       <name>ArchiveName</name>
>     </archive>
>   </archives>
>   <id>1</id>
>   <name>Productname</name>
> </ProductXMLTest>
> 
> 
> Obviously this is not the right output (e.g. 'archives'
> should be hidden). This is probably due to the exception
> thrown by Betwixt. Am I missing something?
> 
> --
> /David
> 
> --------8<-------- CUT HERE -----------------8<-------------
> File: ProductXMLTest.java
> 
> import java.util.*;
> 
> import java.beans.*;
> import java.io.*;
> import java.util.*;
> import org.xml.sax.*;
> 
> import org.apache.commons.betwixt.io.*;
> import org.apache.commons.betwixt.strategy.*;
> 
> public class ProductXMLTest {
>     
>     private int id;
>     private String name;
>     private List archives;
>     
>     
>     /** Creates a new instance of ProductXMLTest */
>     public ProductXMLTest(int id, String name) {
>         this.id = id;
>         this.name = name;
>         this.archives = new ArrayList();
>     }
>    
>     
>     /** Getter for property id.
>      * @return Value of property id.
>      *
>      */
>     public int getId() {
>         return id;
>     }
>     
>     /** Setter for property id.
>      * @param id New value of property id.
>      *
>      */
>     public void setId(int id) {
>         this.id = id;
>     }
>     
>     /** Getter for property name.
>      * @return Value of property name.
>      *
>      */
>     public String getName() {
>         return name;
>     }
>     
>     /** Setter for property name.
>      * @param name New value of property name.
>      *
>      */
>     public void setName(String name) {
>         this.name = name;
>     }
>     
>     /** Getter for property archives.
>      * @return Value of property archives.
>      *
>      */
>     public List getArchives() {
>         return archives;
>     }
>     
>     /** Setter for property archives.
>      * @param archives New value of property archives.
>      *
>      */
>     public void addArchive(ArchiveXMLTest archive) {
>         this.archives.add(archive);
>     }
>     
>     
>     /**
>      * @param args the command line arguments
>      */
>     public static void main(String[] args) {
>     
>         ProductXMLTest p = new ProductXMLTest(1, "Productname");
>         p.addArchive(new ArchiveXMLTest(2, "ArchiveName"));
>         
>         String xml = null;
>         try {
>             StringWriter w = new StringWriter();
>             BeanWriter beanWriter  = new BeanWriter(w);
>             beanWriter.enablePrettyPrint();
>             beanWriter.setWriteIDs(false);
>             beanWriter.write(p);
>             System.out.println(w.toString());
>             
>         }
>        catch (Exception e) {
>            e.printStackTrace();
>         }
>         
>         
>     }
>     
>     
> }
> --------8<-------- CUT HERE -----------------8<-------------
> File: ArchiveXMLTest.java
> 
> public class ArchiveXMLTest {
>     
>     private String name;
>     private int id;
>     
>     /** Creates a new instance of ArchiveXMLTest */
>     public ArchiveXMLTest(int id, String name) {
>         this.id = id;
>         this.name = name;
>     }
>     
>     /** Getter for property name.
>      * @return Value of property name.
>      *
>      */
>     public String getName() {
>         return name;
>     }
>     
>     /** Setter for property name.
>      * @param name New value of property name.
>      *
>      */
>     public void setName(String name) {
>         this.name = name;
>     }
>     
>     /** Getter for property id.
>      * @return Value of property id.
>      *
>      */
>     public int getId() {
>         return id;
>     }
>     
>     /** Setter for property id.
>      * @param id New value of property id.
>      *
>      */
>     public void setId(int id) {
>         this.id = id;
>     }
>     
> }
> --------8<-------- CUT HERE -----------------8<-------------
> File: ProductXMLText.betwixt
> 
> <?xml version='1.0' encoding='UTF-8' ?>
> <info primitiveTypes='element'>
> <hide property='archives'/>
>     <element name='product'>
>         <addDefaults/>
>     </element>
> </info>
> --------8<-------- CUT HERE -----------------8<-------------
> File: log4j.properties
> 
> # 
> # Log4J properties file.
> 
> # Set root logger level to FATAL and its only appender to console.
> log4j.rootLogger=FATAL, console
> 
> # console is set to be a ConsoleAppender.
> log4j.appender.console=org.apache.log4j.ConsoleAppender
> 
> # console uses PatternLayout.
> log4j.appender.console.layout=org.apache.log4j.PatternLayout
> log4j.appender.console.layout.ConversionPattern=%-4r [%t] %-5p %c %x -
> %m%n
> --------8<-------- CUT HERE -----------------8<--------------
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
-- 
Martin van den Bemt <ml...@mvdb.net>
mvdb.com


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org