Bruce,

Could you describe the problem with Oracle timestamps? We are having trouble
with a timestamp field that we were hoping to use to prevent concurrency.
The ObjecModifiedException goes away when we put dirty="ignore" in the sql
field.

Perhaps I could help by giving the Oracle timestamp a tolerance?

Thanks

-----Original Message-----
From: Bruce Snyder [mailto:[EMAIL PROTECTED]]
Sent: Friday, September 27, 2002 17:54
To: [EMAIL PROTECTED]
Subject: Re: [castor-dev] errors with insert and update, JDO inheritance


This one time, at band camp, Dave Carlson said:

DC>Adding dirty="ignore" to any fields with primitive type or Date fixed the
DC>update() error.  (And, yes, I had figured out that update() is only used
for
DC>long transactions.)
DC>
DC>However, I still get the null pointer when calling insert().
DC>
DC>Here is a bit more on the error:
DC>
DC>Caused by: org.exolab.castor.jdo.PersistenceException: Nested error:
DC>java.lang.NullPointerException
DC>        at org.exolab.castor.persist.TransactionContext.create(Unknown
Source)
DC>        at org.exolab.castor.jdo.engine.DatabaseImpl.create(Unknown
Source)
DC>        at
com.xmlmodeling.portal.data.PortalUser.insert(PortalUser.java:41)
DC>
DC>The Java classes were generated from an XML Schema using Castor source
DC>generator, so they are a bit verbose to copy relevant parts.  Here is the
DC>mapping.xml for the two classes involved in the inheritance.  I'm
attempting to
DC>insert the subclass, PortalUser.

The NullPointerException stack trace says that PortalUser.java, line
#41 is the problem. What's on that line? When debugging this type of
exception, without the relevant code it's difficult to speculate. 

DC><class name="com.xmlmodeling.portal.data.PortalUser" identity="endUserId"
DC>extends="com.xmlmodeling.sentinel.express.EndUserType">
DC><map-to table="Portal_PortalUser" />
DC><field name="endUserId" type="integer" required="true">
DC><sql type="integer" name="EnduserID" />
DC></field>
DC><field name="createDate" type="date">
DC><sql type="timestamp" name="CreateDate" dirty="ignore" />
DC></field>
DC><field name="lastLoginDate" type="date">
DC><sql type="timestamp" name="LastLoginDate" dirty="ignore" />
DC></field>
DC><field name="confirmValue" type="string">
DC><sql type="varchar" name="ConfirmValue" />
DC></field>
DC><field name="emailOptIn" type="boolean">
DC><sql type="integer" name="EmailOptIn" dirty="ignore" />
DC></field>
DC><field name="acceptLicenseHyperModel" type="boolean">
DC><sql type="integer" name="AcceptLicenseHyperModel" dirty="ignore" />
DC></field>
DC><field name="maxUploadSize" type="integer">
DC><sql type="integer" name="MaxUploadSize" dirty="ignore" />
DC></field>
DC></class>

What database are you using? The reason I ask is that there is a problem
with
either Oracle or the Oracle JDBC drivers and the way timestamps are handled.
The trouble is with handling of the nanoseconds. This is what could cause
the
date fields to be off resulting in the ObjecModifiedException. 

Bruce
-- 
perl -e 'print
unpack("u30","<0G)U8V4\@4VYY9&5R\"F9E<G)E=\$\!F<FEI+F-O;0\`\`");'

----------------------------------------------------------- 
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

Reply via email to