You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by Dan Diephouse <di...@eastnode.com> on 2002/02/06 19:28:38 UTC

IdGenerator gives NPE with Peers

I am using the latest cvs of Torque with Fulcrum and T3.  With all my 
business objects, my key generator is turning up to be null at line 763, 
so there is no id broker for them to use:

        DatabaseMap dbMap = Torque.getDatabaseMap( criteria.getDbName() );
        TableMap tableMap = dbMap.getTable(tableName);
        Object keyInfo = tableMap.getPrimaryKeyMethodInfo();
        IdGenerator keyGen = tableMap.getIdGenerator();
        ^^^^^ -> null

The result is a NPE a few lines down.  I can't figure out why this is! 
I've been through the debugger and all my TableMap's primaryKeyMethod 
variables are "idbroker."  But, when the tablemap looks up the 
idgenerator in the database map, its turns out to be null.

Stack Trace:

java.lang.reflect.InvocationTargetException: java.lang.Exception: 
IdGenerator for table 'PROJECT_TASK' is null
        at org.apache.torque.util.BasePeer.doInsert(BasePeer.java:779)
        at 
org.compassarts.basecamp.om.BaseProjectTaskPeer.doInsert(BaseProjectTaskPeer.java:178)
        at 
org.compassarts.basecamp.om.BaseProjectTaskPeer.doInsert(BaseProjectTaskPeer.java:452)
        at 
org.compassarts.basecamp.om.BaseProjectTask.save(BaseProjectTask.java:781)
        at 
org.compassarts.basecamp.om.BaseProjectTask.save(BaseProjectTask.java:746)
        at 
org.compassarts.basecamp.om.BaseProjectTask.save(BaseProjectTask.java:729)


Any ideas?  I'm guessing its probably a stupid error of some sort, but I 
can't put any new data into my databases until its fixed!

Here's parts of my schema and Fulcrum.properties.

Thanks,

- Dan Diephouse

services.DatabaseService.database.default=default
services.DatabaseService.database.default.driver=org.gjt.mm.mysql.Driver
services.DatabaseService.database.default.url=jdbc:mysql://127.0.0.1:3306/db
services.DatabaseService.database.default.username=user
services.DatabaseService.database.default.password=pass
services.DatabaseService.database.default.maxConnections=3
services.DatabaseService.database.default.expiryTime=3600000
services.DatabaseService.database.connectionWaitTimeout=10000
services.DatabaseService.database.logInterval=0
services.DatabaseService.database.adapter=DBMM
services.DatabaseService.database.adapter.DBMM=org.gjt.mm.mysql.Driver

-------------------------

<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE database SYSTEM 
"file:/home/dan/WDev/tdk/webapps/basecamp/WEB-INF/torque/database.dtd">

<database name="default" defaultIdMethod="idbroker">
   <table name="PROJECT_PHASE">
      <column name="PROJECT_PHASE_ID" required="true" primaryKey="true" 
type="INTEGER"/>
      <column name="NAME" size="255" type="VARCHAR"/>
      <column name="JOB_ID" type="INTEGER"/>
      <column name="START_DATE" type="DATE"/>
      <column name="END_DATE" type="DATE"/>

      <foreign-key foreignTable="JOB">
          <reference local="JOB_ID" foreign="JOB_ID"/>
      </foreign-key>
    </table>
      <table name="PROJECT_TASK">
      <column name="PROJECT_TASK_ID" required="true" primaryKey="true" 
type="INTEGER"/>
      <column name="NAME" size="255" type="VARCHAR"/>
      <column name="DESCR" type="LONGVARCHAR"/>
      <column name="PROJECT_PHASE_ID" type="INTEGER"/>
      <column name="START_DATE" type="DATE"/>
      <column name="END_DATE" type="DATE"/>
      <column name="TASK_STATUS_ID" type="INTEGER"/>
      <foreign-key foreignTable="TASK_STATUS">
          <reference local="TASK_STATUS_ID" foreign="TASK_STATUS_ID"/>
      </foreign-key>
      <foreign-key foreignTable="PROJECT_PHASE">
          <reference local="PROJECT_PHASE_ID" foreign="PROJECT_PHASE_ID"/>
      </foreign-key>
    </table>

</database>


--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>


Re: IdGenerator gives NPE with Peers

Posted by Dan Diephouse <di...@eastnode.com>.
once again I have proven myself a dumb SOB.  My problem was that I had 
an old IDMethod.class file hanging around in my Torque build which 
specified IDBROKER as "idbroker_table" instead of "idbroker."  I almost 
died when I saw it in the debugger....

- Dan Diephouse

Dan Diephouse wrote:

> I am using the latest cvs of Torque with Fulcrum and T3.  With all my 
> business objects, my key generator is turning up to be null at line 763, 
> so there is no id broker for them to use:




--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>