I'm running the following code that errors when I try to commit my changes using Cayenne as my ORM. The code is pasted below and errors out on the context.commitChanges();line. The output messages are pasted below the code. Any help on figuring this out would be appreciated.
import org.apache.cayenne.access.DataContext; import java.util.*; import com.jared.*; public class Main { public static void main(String[] args) { DataContext context = DataContext.createDataContext(); Stocks theStock=(Stocks) context.createAndRegisterNewObject(Stocks.class); theStock.setAsk(3.4); theStock.setAvgdailyvolume(323849); theStock .setBid(5.29); theStock.setChange(-1.22); theStock.setDayhigh(9.21); theStock.setDaylow(2.11); theStock.setLasttradeprice(5.11); theStock.setLasttradesize(3827); theStock.setOpen(6.21); theStock.setPriorclose(4.21); theStock.setShortratio(1.1); theStock.setSymbol("^SP%"); theStock.setVolume(28193); theStock.setLasttradedate(new Date()); context.commitChanges(); System.out.println("Done with the database"); } }
Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate startedLoading INFO: started configuration loading. Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataDomain INFO: loaded domain: stocks Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate loadDataMap INFO: loaded . Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode INFO: loading . Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode INFO: using factory: org.apache.cayenne.conf.DriverDataSourceFactory Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.DriverDataSourceFactory load INFO: loading driver information from 'stocksNode.driver.xml'. Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.DriverDataSourceFactory$DriverHandler init INFO: loading driver org.hsqldb.jdbcDriver Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.DriverDataSourceFactory$LoginHandler init INFO: loading user name and password. Nov 20, 2008 11:20:37 PM org.apache.cayenne.access.QueryLogger logPoolCreated INFO: Created connection pool: jdbc:hsqldb:file:/hsqldb/data/stocks Driver class: org.hsqldb.jdbcDriver Min. connections in the pool: 1 Max. connections in the pool: 1 Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode INFO: loaded datasource. Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate initAdapter INFO: no adapter set, using automatic adapter. Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate finishedLoading INFO: finished configuration loading in 203 ms. Exception in thread "main" org.apache.cayenne.CayenneRuntimeException: [v.3.0M4 May 18 2008 16:32:02] Commit Exception at org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1192) at org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1066) at Main.main(Main.java:24) Caused by: java.lang.NullPointerException at org.apache.cayenne.access.DataDomainInsertBucket.createPermIds(DataDomainInsertBucket.java:101) at org.apache.cayenne.access.DataDomainInsertBucket.appendQueriesInternal(DataDomainInsertBucket.java:76) at org.apache.cayenne.access.DataDomainSyncBucket.appendQueries(DataDomainSyncBucket.java:80) at org.apache.cayenne.access.DataDomainFlushAction.preprocess(DataDomainFlushAction.java:183) at org.apache.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:135) at org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:821) at org.apache.cayenne.access.DataDomain$2.transform(DataDomain.java:788) at org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:847) at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:785) at org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1164) ... 2 more