Hi Andrus,
Yes I am using the Cayenne trunk. Following is the JPA class comes with
Geronimo test suite & the error I am getting for it. As soon as I put
the..d annotation to the given error won't come. Is there anything am I
missing here? :-)
Thanks,
Lasantha
org.apache.cayenne.jpa.JpaProviderException: Error loading ORM descriptors
at
org.apache.cayenne.jpa.conf.EntityMapLoader.loadEntityMap(EntityMapLoader.java:105)
at
org.apache.cayenne.jpa.conf.EntityMapLoader.<init>(EntityMapLoader.java:77)
at
org.apache.cayenne.jpa.Provider.createContainerEntityManagerFactory(Provider.java:222)
at
org.apache.geronimo.persistence.PersistenceUnitGBean.<init>(PersistenceUnitGBean.java:95)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:936)
at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:267)
at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:543)
at
org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
at
org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:434)
at
org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:188)
at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:530)
at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:511)
at
org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:855)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
at
org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
at
org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:855)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
at
org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:168)
at
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
at
com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
at
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408)
at
javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
at java.security.AccessController.doPrivileged(Native Method)
at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1348)
at
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at
org.apache.cayenne.jpa.conf.EntityMapDefaultsProcessor$BasicVisitor.onStartNode(EntityMapDefaultsProcessor.java:219)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:92)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:113)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:118)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:113)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:80)
at
org.apache.cayenne.jpa.conf.EntityMapDefaultsProcessor.applyDefaults(EntityMapDefaultsProcessor.java:74)
at
org.apache.cayenne.jpa.conf.EntityMapLoader.updateFromDefaults(EntityMapLoader.java:113)
at
org.apache.cayenne.jpa.conf.EntityMapLoader.loadEntityMap(EntityMapLoader.java:99)
... 52 more
08:25:24,503 ERROR [GBeanInstanceState] Error while starting; GBean is
now in the FAILED state:
abstractName="org.apache.geronimo.testsuite/jpa-ear/2.0-SNAPSHOT/ear?EJBModule=ejb.jar,J2EEApplication=org.apache.geronimo.testsuite/jpa-ear/2.0-SNAPSHOT/ear,j2eeType=PersistenceUnit,name=openjpa-itest"
org.apache.cayenne.jpa.JpaProviderException: Error loading ORM descriptors
at
org.apache.cayenne.jpa.conf.EntityMapLoader.loadEntityMap(EntityMapLoader.java:105)
at
org.apache.cayenne.jpa.conf.EntityMapLoader.<init>(EntityMapLoader.java:77)
at
org.apache.cayenne.jpa.Provider.createContainerEntityManagerFactory(Provider.java:222)
at
org.apache.geronimo.persistence.PersistenceUnitGBean.<init>(PersistenceUnitGBean.java:95)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:936)
at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:267)
at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:543)
at
org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
at
org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:434)
at
org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:188)
at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:530)
at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:511)
at
org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:855)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
at
org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
at
org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:855)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
at
org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:168)
at
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
at
com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
at
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408)
at
javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
at java.security.AccessController.doPrivileged(Native Method)
at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1348)
at
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at
org.apache.cayenne.jpa.conf.EntityMapDefaultsProcessor$BasicVisitor.onStartNode(EntityMapDefaultsProcessor.java:219)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:92)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:113)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:118)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:113)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:80)
at
org.apache.cayenne.jpa.conf.EntityMapDefaultsProcessor.applyDefaults(EntityMapDefaultsProcessor.java:74)
at
org.apache.cayenne.jpa.conf.EntityMapLoader.updateFromDefaults(EntityMapLoader.java:113)
at
org.apache.cayenne.jpa.conf.EntityMapLoader.loadEntityMap(EntityMapLoader.java:99)
... 52 more
08:25:25,821 ERROR [GBeanInstanceState] Error while starting; GBean is
now in the FAILED state:
abstractName="org.apache.geronimo.testsuite/jpa-ear/2.0-SNAPSHOT/ear?J2EEApplication=org.apache.geronimo.testsuite/jpa-ear/2.0-SNAPSHOT/ear,PersistenceUnitModule=ejb.jar,j2eeType=PersistenceUnit,name=openjpa-itest"
org.apache.cayenne.jpa.JpaProviderException: Error loading ORM descriptors
at
org.apache.cayenne.jpa.conf.EntityMapLoader.loadEntityMap(EntityMapLoader.java:105)
at
org.apache.cayenne.jpa.conf.EntityMapLoader.<init>(EntityMapLoader.java:77)
at
org.apache.cayenne.jpa.Provider.createContainerEntityManagerFactory(Provider.java:222)
at
org.apache.geronimo.persistence.PersistenceUnitGBean.<init>(PersistenceUnitGBean.java:95)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:936)
at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:267)
at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
at
org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:543)
at
org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
at
org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:434)
at
org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:188)
at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:530)
at
org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:511)
at
org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:855)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
at
org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
at
org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:855)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
at
org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:168)
at
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:213)
at
com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:815)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
at
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1408)
at
javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
at java.security.AccessController.doPrivileged(Native Method)
at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1348)
at
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:782)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at
org.apache.cayenne.jpa.conf.EntityMapDefaultsProcessor$BasicVisitor.onStartNode(EntityMapDefaultsProcessor.java:219)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:92)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:113)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:118)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:113)
at
org.apache.cayenne.util.TraversalUtil.traverse(TraversalUtil.java:80)
at
org.apache.cayenne.jpa.conf.EntityMapDefaultsProcessor.applyDefaults(EntityMapDefaultsProcessor.java:74)
at
org.apache.cayenne.jpa.conf.EntityMapLoader.updateFromDefaults(EntityMapLoader.java:113)
at
org.apache.cayenne.jpa.conf.EntityMapLoader.loadEntityMap(EntityMapLoader.java:99)
... 52 more
package org.apache.geronimo.itest.jpa;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class AllFieldTypes {
private short shortField;
private int intField;
private boolean booleanField;
private long longField;
private float floatField;
private char charField;
private double doubleField;
private byte byteField;
private String stringField;
private Date dateField;
private Set<String> setOfStrings = new HashSet<String>();
private String[] arrayOfStrings;
public void setShortField(short shortField) {
this.shortField = shortField;
}
public short getShortField() {
return this.shortField;
}
public void setIntField(int intField) {
this.intField = intField;
}
public int getIntField() {
return this.intField;
}
public void setBooleanField(boolean booleanField) {
this.booleanField = booleanField;
}
public boolean getBooleanField() {
return this.booleanField;
}
public void setLongField(long longField) {
this.longField = longField;
}
public long getLongField() {
return this.longField;
}
public void setFloatField(float floatField) {
this.floatField = floatField;
}
public float getFloatField() {
return this.floatField;
}
public void setCharField(char charField) {
this.charField = charField;
}
public char getCharField() {
return this.charField;
}
public void setDoubleField(double doubleField) {
this.doubleField = doubleField;
}
public double getDoubleField() {
return this.doubleField;
}
public void setByteField(byte byteField) {
this.byteField = byteField;
}
public byte getByteField() {
return this.byteField;
}
public void setStringField(String stringField) {
this.stringField = stringField;
}
public String getStringField() {
return this.stringField;
}
public void setDateField(Date dateField) {
this.dateField = dateField;
}
public Date getDateField() {
return this.dateField;
}
public void setSetOfStrings(Set<String> setOfStrings) {
this.setOfStrings = setOfStrings;
}
public Set<String> getSetOfStrings() {
return this.setOfStrings;
}
public void setArrayOfStrings(String[] arrayOfStrings) {
this.arrayOfStrings = arrayOfStrings;
}
public String[] getArrayOfStrings() {
return this.arrayOfStrings;
}
}
Andrus Adamchik wrote:
> Hi Lasantha,
>
> Are you using trunk build of Cayenne? While property access is not yet
> implemented, field access should work just fine and should be the
> default. If this is a bug, I'll be happy to look into it. Do you have
> more info about the error?
>
> Thanks
> Andrus
>
>
> On Mar 31, 2007, at 11:15 PM, Lasantha Ranaweera wrote:
>
>> Hi Cayenne Experts,
>>
>> I have been working with Cayenne Geronimo integration quite a
>> sometime (working with my own speed) ;-) . After introduction of
>> runtime entity enhancement feature in Geronimo Cayenne also working
>> fine. So we are almost there :-) .
>>
>> When am I executing JPA sample application given with Geronimo causes
>> a NPE in Cayenne side. Looks like it is due to the missing feature in
>> Cayenne side (according to the Cayenne source code comments). This
>> sample JPA does not provide field or property level annotations. So
>> it makes access level to null in Cayenne causes NPE (related to JSR
>> 220 - 2.1.1). As soon as I introduce a property level annotation it
>> works fine. Any ideas comments?
>>
>> (If this is a missing feature I would be greatful if somebody can fix
>> this issue ASAP :-) )
>>
>> Thanks,
>> Lasantha
>>
>>
>
>
>
> --No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.446 / Virus Database: 268.18.24/742 - Release Date:
> 4/1/2007 8:49 PM
>
>
This archive was generated by hypermail 2.0.0 : Sun Apr 01 2007 - 22:43:11 EDT