I've discovered the problem. The error is related to

                if( fld.getClassDescriptor().getFullTableName() != aTableAlias.table )

It should not be

                if( ! fld.getClassDescriptor().getFullTableName().equals( 
aTableAlias.table ) )

???

Thanks,

Edson Richter

  ----- Original Message ----- 
  From: Edson Carlos Ericksson Richter 
  To: OJB Users List 
  Sent: Friday, September 05, 2003 10:59 AM
  Subject: Re: upgrade from rc3 to CVS Head rc4 doesn't work


  Ok, let's go. My app is working for month on top of rc3 (with some bug fixes - I am 
using a CVS Head until 1.0 final doesnt came to us, the mortals).

  Yesterday I've downloaded rc4 and noticed changes in OJB.properties and DTD.
  I've adjusted the new OJB.properties to my app (I'm using beans with formal 
getters/setters), and DBCP impl for connections.

  But I've discovered a (bug?) problem in SqlSelecteStatement. Debugging I came to 
(SqlQueryStatement)

   protected String getColName(TableAlias aTableAlias, PathInfo aPathInfo, boolean 
translate)
  ...
     if (fld != null)
     {
                  // added to suport the super reference descriptor
                  if( fld.getClassDescriptor().getFullTableName() != aTableAlias.table 
)
                  {
                      Iterator itr = aTableAlias.joins.iterator();
                      while( itr.hasNext() )
                      {
                          Join join = (Join) itr.next();
                          if( join.right.table == 
fld.getClassDescriptor().getFullTableName() )
                          {
                              result = join.right.alias + "." + fld.getColumnName();
                              break;
                          }
                      }

                      if( result == null )
                      {
                          result = aPathInfo.column;
                      }
                  }
                  else
                  {
          result = aTableAlias.alias + "." + fld.getColumnName();
                  }
     }


  But what happens if aTableAlias has no joins? The line

  Iterator itr = aTableAlias.joins.iterator();

  Will thrown a NullPointerException (what I'm having).
  Could someone confirm this?


  Thanks,

  Edson Richter




  ---
  Outgoing mail is certified Virus Free.
  Checked by AVG anti-virus system (http://www.grisoft.com).
  Version: 6.0.515 / Virus Database: 313 - Release Date: 1/9/2003

Reply via email to