Does anybody else use Castor JDO in it's current version for relational
mapping? Do you use 1-many relationships? If so, how have you fixed these
bugs?
Thanks
Rainer
> -----Original Message-----
> From: Bischof, Rainer
> Sent: Donnerstag, 13. September 2001 12:54
> To: '[EMAIL PROTECTED]'
> Subject: RE: [castor-dev] Problem with example. Bug?
> Importance: High
>
>
> After having a closer look it appears to me as a bug:
>
> Upon deletion of the first Computer Castor also marks the
> dependent Prod_Details as deleted.
> On results.hasMore() it populates the second Computer
> instance. During this process it does not only add the
> Prod_Detaisl of the second Computer as expected but also the
> Prod_Details of the first computer. These are already marked
> deleted. Therefore an exception is thrown and later
> results.hasMore() returns false.
>
> The Problem seems to be located in SqlEngine.SqlQuery.loadRow()
>
> This method shut clear multi-field if it is in the first row:
>
> private int loadRow( Object[] fields, boolean isFirst
> ) throws SQLException, PersistenceException
> {
> int count = _engine._ids.length + 1;
>
> // Load all the fields.
> for ( int i = 0 ; i < _engine._fields.length ; ++i ) {
> if ( !_engine._fields[i].load )
> continue;
>
> if ( _engine._fields[i].multi ) {
>
> //RB: inserted to clear the multi-field
> if ( isFirst ){
> if(fields[i] == null){
> fields[i] = new ArrayList();
> }else{
> ((ArrayList) fields[i]).clear();
> }
> }
> fields[i] = loadMultiField( i, count, fields[i] );
> }else if (isFirst ){
> fields[i] = loadSingleField( i, count );
> }
> count += _engine._fields[i].columns.length;
> //System.out.println( "loadRow: fields[" + i
> + "] = '" + fields[i] + "' (count = '" + count + "')" );
> }
> return count;
> }
>
> This would also eliminate the null check in loadMultiField,
> if this is not necessary in other contexts.
>
> Is this a known Bug or did I get something wrong here?
> I am using the downloadable CVS Snapshot but it seems to be
> in the distribution as well?
>
>
> Thanks
> Rainer
>
>
>
>
> > -----Original Message-----
> > From: Bischof, Rainer
> > Sent: Donnerstag, 13. September 2001 00:39
> > To: [EMAIL PROTECTED]
> > Subject: [castor-dev] Problem with example
> > Importance: High
> >
> >
> > Hi,
> >
> > I am in trouble with the example examples.jdo.Test.java :
> > I modified the computer query section to return and delete
> > all computers
> > that exist. The section that creates computers is modified to
> > create two
> > computers instead of one.
> > Everything else including mapping.xml remains untouched. I
> > use a local mySQL
> > DB and JBuilder 5 with JDK1.3, all running under Win2K. I
> > tried both the
> > 0.9.3 as well as the CVS snapshot download.
> >
> > Result:
> > Two computers are created in the tables on the first run, the
> > computer query
> > returns nothing.
> > On the second run the the program performs the compter query
> > which should
> > return two computers. It deletes the first one and but the
> > query does not
> > return the second one to delete, it just drops through and continues
> > execution outside the query section.
> > Funny thing: If I remove the delete statement the query does
> > return the
> > second computer....
> >
> > I experienced the same thing with my own test programs.
> > Any idea?
> >
> > BTW: I also encountered in my own code an issue that was
> > reported earlier by
> > Oliver Lieven in the Msg "Why does Castor remove dependent
> > Objects after
> > query?"
> >
> > Thanks
> > Rainer
> >
> >
> > -----------------------------------------------------------
> > If you wish to unsubscribe from this mailing, send mail to
> > [EMAIL PROTECTED] with a subject of:
> > unsubscribe castor-dev
> >
>
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev