On Thu, 19 Dec 2002, robert burrell donkin wrote:
> Date: Thu, 19 Dec 2002 18:59:00 +0000
> From: robert burrell donkin <[EMAIL PROTECTED]>
> Reply-To: Jakarta Commons Developers List <[EMAIL PROTECTED]>
> To: Jakarta Commons Developers List <[EMAIL PROTECTED]>
> Subject: Re: cvs commit:
> jakarta-commons/beanutils/src/test/org/apache/commons/beanutils
> BasicDynaBeanTestCase.java
>
> hi craig
>
> i'm on java 1.3 and seem to be getting an exception when i run the
> beanutils test cases:
>
> [java] 1)
> testSerialization(org.apache.commons.beanutils.BasicDynaBeanTestCase)junit.
> framework.AssertionFailedError: Exception during deserialization:
> java.lang.ClassNotFoundException: boolean
> [java] at
> org.apache.commons.beanutils.BasicDynaBeanTestCase.testSerialization
> (BasicDynaBeanTestCase.java:713)
> [java]
>
> any ideas?
There might be two different issues here.
I made a mistake with the commit referred to below, and only ran the one
test case (the "test.basic.dynabean" target) for the classes I was
modifying, and not realizing that the tests for WrapDynaBean would inherit
the new testing. This caused a failure in the "test.wrap.dynabean"
target. I just checked in a patch for that.
If you do a fresh checkout and build and still have the problem, we might
indeed have a 1.3 versus 1.4 issue (I build everything with 1.4). Are you
still encountering this after picking up the change I just committed?
>
> - robert
Craig
>
> On Wednesday, December 18, 2002, at 06:20 AM, [EMAIL PROTECTED] wrote:
>
> > craigmcc 2002/12/17 22:20:41
> >
> > Modified: beanutils/src/java/org/apache/commons/beanutils
> > BasicDynaBean.java BasicDynaClass.java
> > beanutils/src/test/org/apache/commons/beanutils
> > BasicDynaBeanTestCase.java
> > Log:
> > Make BasicDynaBean and BasicDynaClass implement Serializable, including
> > a
> > JUnit test case method that ensures successful operation. Based on a
> > suggested patch included in the bug report (but with a slightly altered
> > technique).
> >
> > PR: Bugzilla #15067
> > Submitted by: Peter Rossbach <pr at webapp.de> and Roman Stumm
> >
> > Revision Changes Path
> > 1.7 +10 -5 jakarta-
> > commons/beanutils/src/java/org/apache/commons/beanutils/BasicDynaBean.java
> >
> > Index: BasicDynaBean.java
> > ===================================================================
> > RCS file: /home/cvs/jakarta-
> > commons/beanutils/src/java/org/apache/commons/beanutils/BasicDynaBean.java,
> > v
> > retrieving revision 1.6
> > retrieving revision 1.7
> > diff -u -r1.6 -r1.7
> > --- BasicDynaBean.java 25 Oct 2002 00:15:50 -0000 1.6
> > +++ BasicDynaBean.java 18 Dec 2002 06:20:40 -0000 1.7
> > @@ -63,6 +63,7 @@
> > package org.apache.commons.beanutils;
> >
> >
> > +import java.io.Serializable;
> > import java.lang.reflect.Array;
> > import java.util.HashMap;
> > import java.util.List;
> > @@ -76,11 +77,15 @@
> > * <p><strong>IMPLEMENTATION NOTE</strong> - Instances of this class
> > that are
> > * accessed from multiple threads simultaneously need to be
> > synchronized.</p>
> > *
> > + * <p><strong>IMPLEMENTATION NOTE</strong> - Instances of this class
> > can be
> > + * successfully serialized and deserialized <strong>ONLY</strong> if
> > all
> > + * property values are <code>Serializable</code>.</p>
> > + *
> > * @author Craig McClanahan
> > * @version $Revision$ $Date$
> > */
> >
> > -public class BasicDynaBean implements DynaBean {
> > +public class BasicDynaBean implements DynaBean, Serializable {
> >
> >
> > // ----------------------------------------------------------
> > Constructors
> >
> >
> >
> > 1.7 +12 -6 jakarta-
> > commons/beanutils/src/java/org/apache/commons/beanutils/BasicDynaClass.java
> >
> > Index: BasicDynaClass.java
> > ===================================================================
> > RCS file: /home/cvs/jakarta-
> > commons/beanutils/src/java/org/apache/commons/beanutils/BasicDynaClass.java,
> > v
> > retrieving revision 1.6
> > retrieving revision 1.7
> > diff -u -r1.6 -r1.7
> > --- BasicDynaClass.java 23 Jan 2002 22:35:58 -0000 1.6
> > +++ BasicDynaClass.java 18 Dec 2002 06:20:40 -0000 1.7
> > @@ -63,6 +63,7 @@
> > package org.apache.commons.beanutils;
> >
> >
> > +import java.io.Serializable;
> > import java.lang.reflect.Constructor;
> > import java.lang.reflect.InvocationTargetException;
> > import java.util.HashMap;
> > @@ -80,7 +81,7 @@
> > * @version $Revision$ $Date$
> > */
> >
> > -public class BasicDynaClass implements DynaClass {
> > +public class BasicDynaClass implements DynaClass, Serializable {
> >
> >
> > // -----------------------------------------------------------
> > Constructors
> > @@ -138,7 +139,7 @@
> > * The constructor of the <code>dynaBeanClass</code> that we will
> > use
> > * for creating new instances.
> > */
> > - protected Constructor constructor = null;
> > + protected transient Constructor constructor = null;
> >
> >
> > /**
> > @@ -248,6 +249,11 @@
> > throws IllegalAccessException, InstantiationException {
> >
> > try {
> > + // Refind the constructor after a deserialization (if
> > needed)
> > + if (constructor == null) {
> > + setDynaBeanClass(this.dynaBeanClass);
> > + }
> > + // Invoke the constructor to create a new bean instance
> > return ((DynaBean)
> > constructor.newInstance(constructorValues));
> > } catch (InvocationTargetException e) {
> > throw new InstantiationException
> >
> >
> >
> > 1.7 +83 -4 jakarta-
> > commons/beanutils/src/test/org/apache/commons/beanutils/BasicDynaBeanTestCase.
> > java
> >
> > Index: BasicDynaBeanTestCase.java
> > ===================================================================
> > RCS file: /home/cvs/jakarta-
> > commons/beanutils/src/test/org/apache/commons/beanutils/BasicDynaBeanTestCase.
> > java,v
> > retrieving revision 1.6
> > retrieving revision 1.7
> > diff -u -r1.6 -r1.7
> > --- BasicDynaBeanTestCase.java 25 Oct 2002 00:27:42 -0000 1.6
> > +++ BasicDynaBeanTestCase.java 18 Dec 2002 06:20:41 -0000 1.7
> > @@ -63,6 +63,11 @@
> > package org.apache.commons.beanutils;
> >
> >
> > +import java.io.ByteArrayInputStream;
> > +import java.io.ByteArrayOutputStream;
> > +import java.io.ObjectInputStream;
> > +import java.io.ObjectOutputStream;
> > +
> > import java.util.ArrayList;
> > import java.util.HashMap;
> > import java.util.List;
> > @@ -676,6 +681,80 @@
> > } catch (Throwable t) {
> > fail("Exception: " + t);
> > }
> > +
> > + }
> > +
> > +
> > + /**
> > + * Test serialization and deserialization.
> > + */
> > + public void testSerialization() {
> > +
> > + // Serialize the test bean
> > + ByteArrayOutputStream baos = new ByteArrayOutputStream();
> > + try {
> > + ObjectOutputStream oos = new ObjectOutputStream(baos);
> > + oos.writeObject(bean);
> > + oos.flush();
> > + oos.close();
> > + } catch (Exception e) {
> > + fail("Exception during serialization: " + e);
> > + }
> > +
> > + // Deserialize the test bean
> > + try {
> > + bean = null;
> > + ByteArrayInputStream bais =
> > + new ByteArrayInputStream(baos.toByteArray());
> > + ObjectInputStream ois = new ObjectInputStream(bais);
> > + bean = (DynaBean) ois.readObject();
> > + bais.close();
> > + } catch (Exception e) {
> > + fail("Exception during deserialization: " + e);
> > + }
> > +
> > + // Confirm property values
> > + testGetDescriptorArguments();
> > + testGetDescriptorBoolean();
> > + testGetDescriptorDouble();
> > + testGetDescriptorFloat();
> > + testGetDescriptorInt();
> > + testGetDescriptorLong();
> > + testGetDescriptorSecond();
> > + testGetDescriptorShort();
> > + testGetDescriptorString();
> > + testGetDescriptors();
> > + testGetIndexedArguments();
> > + testGetIndexedValues();
> > + testGetMappedArguments();
> > + testGetMappedValues();
> > + testGetSimpleArguments();
> > + testGetSimpleBoolean();
> > + testGetSimpleDouble();
> > + testGetSimpleFloat();
> > + testGetSimpleInt();
> > + testGetSimpleLong();
> > + testGetSimpleShort();
> > + testGetSimpleString();
> > + testMappedContains();
> > + testMappedRemove();
> > +
> > + // Ensure that we can create a new instance of the same
> > DynaClass
> > + try {
> > + bean = bean.getDynaClass().newInstance();
> > + } catch (Exception e) {
> > + fail("Exception creating new instance: " + e);
> > + }
> > + testGetDescriptorArguments();
> > + testGetDescriptorBoolean();
> > + testGetDescriptorDouble();
> > + testGetDescriptorFloat();
> > + testGetDescriptorInt();
> > + testGetDescriptorLong();
> > + testGetDescriptorSecond();
> > + testGetDescriptorShort();
> > + testGetDescriptorString();
> > + testGetDescriptors();
> >
> > }
> >
> >
> >
> >
> >
> > --
> > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED].
> > org>
> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED].
> > org>
> >
>
>
> --
> To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>