Hi!
This is a very long e-mail. Excuse-me sending as is, but is the only way to
explain this bug.

I think I already reported this issue, but since today I had some extended
tests, I'll report results:

1) I've created a bean called MyFirstBean with properties

public class MyFirstBean implements Serializable {
  private int beanId;
  private String beanName;
  private ArrayList myCollection = new ArrayList( );

  public void setBeanId( int newBeanId ) {
    beanId = newBeanId;
  }
  public int getBeanId( ) {
    return beanId;
  }
  public void setBeanName( String newBeanName ) {
    beanName = newBeanName;
  }
  public String getBeanName( ) {
    return beanName;
  }
  public void setMyCollection( int index, MySecondBean bean ) {
    if( index > myCollection.size( ) )
      myCollection.add( bean );
    else
      myCollection.set( index, bean );
  }
  public MySecondBean getMyCollection( int index ) {
    return ( MySecondBean )myCollection.get( index );
  }
  public Collection getMyCollection( ) {
    return myCollection;
  }
  public void setMyCollection( Collection myNewCollection ) {
    myCollection.clear( );
    myCollection.addAll( myNewCollection );
  }
}

Ok, define the main class (MySecondBean no makes difference here), and
creating a repository.xml that makes relationships between two tables to
work by a collection descriptor, if I maintain the method setMyCollection
(int, bean), I get (mail continues after stacktrace):

java.lang.NullPointerException
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(Unkn
own Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections(Unk
nown Source)
        at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown
Source)
[org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl] INFO: Already
created persistence broker instances: 1
[ConfigurableFactory] INFO: ConfigurableFactory called to serve a class
org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl instance
[ConfigurableFactory] INFO: ConfigurableFactory called to serve a class
org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl instance
[ConfigurableFactory] INFO: ConfigurableFactory called to serve a class
org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl instance
[ConfigurableFactory] INFO: ConfigurableFactory called to serve a class
org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl instance
[ConfigurableFactory] INFO: ConfigurableFactory called to serve a class
org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl instance
        at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)[org.apache.ojb.broker.accesslayer.RsIterator] ERROR: null
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
        at
br.com.everest.composer.persistence.TestePersistente.<init>(TestePersistente
.java:39)
        at
br.com.everest.composer.persistence.TestePersistente.main(TestePersistente.j
ava:63)
java.lang.NullPointerException
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(Unkn
own Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections(Unk
nown Source)
        at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown
Source)
        at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)Erro: null
        at
br.com.everest.composer.persistence.TestePersistente.<init>(TestePersistente
.java:39)
        at
br.com.everest.composer.persistence.TestePersistente.main(TestePersistente.j
ava:63)
java.util.NoSuchElementException
        at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Un
known Source)
        at
br.com.everest.composer.persistence.TestePersistente.<init>(TestePersistente
.java:39)
        at
br.com.everest.composer.persistence.TestePersistente.main(TestePersistente.j
ava:63)


and, if I remove this method, maintaining only setMyCollection (Collection),
all works fine.

Since the bean is correct (and compatible) with JavaBean spec, someone can
fix this? I really tryied to do this, but OJB is above my compreension (I
don't have domain over XML/Reflections APIs - and I get lost in OJB
sources).

Thanks,

Edson Richter



---
Email foi verificado quanto a exist�ncia de virus antes de seu envio, e n�o
h� virus.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.394 / Virus Database: 224 - Release Date: 03/10/2002



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to