Hi, I am running castor inside JBoss using the MBean implementation provided
by the castor folks. Our application uses castor to the extreme, and we've
built a set of junit tests we certify builds against. With castor0.9.2 we
run 100%, no errors. With the current cvs snapshot we're starting to see
rollbacks when trying to update objects.

calendaryears refer to periods and periods refer to calendaryears. This was
not a problem with 0.9.2.

I just tested and our code tests 100% no errors with the release version of
0.9.3. I'm assuming this change in functionality (bug?) was added since the
release of 0.9.3

[CastorJDOImpl] org.exolab.castor.jdo.PersistenceException: Object,
com.againtech.ce.calendar.PeriodImpl@531380, links t
o another object, com.againtech.ce.calendar.CalendarYearImpl@254a1a that is
not loaded/updated/created in this transacti
on
[CastorJDOImpl]         at
org.exolab.castor.persist.ClassMolder.preStore(ClassMolder.java:1267)
[CastorJDOImpl]         at
org.exolab.castor.persist.LockEngine.preStore(LockEngine.java:724)
[CastorJDOImpl]         at
org.exolab.castor.persist.TransactionContext.prepare(TransactionContext.java
:1358)
[CastorJDOImpl]         at
org.exolab.castor.jdo.engine.DatabaseImpl.beforeCompletion(DatabaseImpl.java
:542)
[CastorJDOImpl]         at
org.jboss.tm.TxCapsule.doBeforeCompletion(TxCapsule.java:1210)
[CastorJDOImpl]         at org.jboss.tm.TxCapsule.commit(TxCapsule.java:304)
[CastorJDOImpl]         at
org.jboss.tm.TransactionImpl.commit(TransactionImpl.java:76)
[CastorJDOImpl]         at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
java:364)
[CastorJDOImpl]         at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:99)
[CastorJDOImpl]         at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:12
8)
[CastorJDOImpl]         at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
[CastorJDOImpl]         at
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.jav
a:286)
[CastorJDOImpl]         at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java:393)
[CastorJDOImpl]         at java.lang.reflect.Method.invoke(Native Method)
[CastorJDOImpl]         at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:241)
[CastorJDOImpl]         at
sun.rmi.transport.Transport$1.run(Transport.java:152)
[CastorJDOImpl]         at
java.security.AccessController.doPrivileged(Native Method)
[CastorJDOImpl]         at
sun.rmi.transport.Transport.serviceCall(Transport.java:148)
[CastorJDOImpl]         at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:465)
[CastorJDOImpl]         at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:7
06)
[CastorJDOImpl]         at java.lang.Thread.run(Thread.java:484)

period mapping
<!-- period mapping -->
        <class name="com.againtech.ce.calendar.PeriodImpl" identity="UUID">
                <cache-type type="unlimited"/>
                <description>Period Implementation</description>
                <map-to table="PERIOD" xml="Period"/>
                <!--the primary key field -->
                <field name="UUID" type="string">
                        <sql name="period_uuid" type="varchar"/>
                </field>
                <!-- attributes -->
                <field name="calendar" type="com.againtech.ce.calendar.CalendarImpl">
                        <sql name="calendar_uuid"/>
                </field>
                <field name="absolutePeriodNumber" type="integer">
                        <sql name="abs_period_no" type="integer"/>
                </field>
                <field name="periodNumber" type="integer">
                        <sql name="period_no" type="integer"/>
                </field>
                <field name="calendarYear"
type="com.againtech.ce.calendar.CalendarYearImpl">
                        <sql name="calendar_year_uuid"/>
                </field>
                <field name="hours" type="integer">
                        <sql name="hours" type="integer"/>
                </field>
                <field name="days" type="integer">
                        <sql name="days" type="integer"/>
                </field>
                <field name="beginDate" type="date">
                        <sql name="begin_date" type="timestamp"/>
                </field>
                <field name="endDate" type="date">
                        <sql name="end_date" type="timestamp"/>
                </field>
                <field name="payPeriod" type="com.againtech.ce.calendar.PeriodImpl">
                        <sql name="pay_period_uuid"/>
                </field>
                <field name="activationDate" type="date">
                        <sql name="activation_date" type="timestamp"/>
                </field>
        </class>

calendaryear mapping
<class name="com.againtech.ce.calendar.CalendarYearImpl" identity="UUID">
                <cache-type type="unlimited" />
                <description>
                Calendar Year Implementation: can NOT use key generators for
dependent objects.
                </description>
                <map-to table="CALENDAR_YEAR" xml="CalendarYear"/>
                <field name="UUID" type="string">
                        <sql name="calendar_year_uuid" type="varchar"/>
                </field>
                <field name="calendar" type="com.againtech.ce.calendar.CalendarImpl">
                        <sql name="calendar_uuid"/>
                </field>
                <field name="code" type="string">
                        <sql name="calendar_year_code" type="varchar"/>
                </field>
                <field name="name" type="string">
                        <sql name="calendar_year_name" type="varchar"/>
                </field>
                <field name="segmentType"
type="com.againtech.ce.calendar.CalendarSegmentTypeImpl">
                        <sql name="period_segment_type_uuid"/>
                </field>
                <field name="beginPeriod" type="com.againtech.ce.calendar.PeriodImpl">
                        <sql name="begin_period_uuid"/>
                </field>
                <field name="endPeriod" type="com.againtech.ce.calendar.PeriodImpl">
                        <sql name="end_period_uuid"/>
                </field>
                <field name="activationDate" type="date">
                        <sql name="activation_date" type="timestamp"/>
                </field>
        </class>

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to