Hi!

I meet a problem using ojb 1.0rc5 and mysql (innodb): when i try to insert
an object with some children  in a concurrent environment a
ClassNotPersistenceCapableException is thrown if some other clients are
doing the same (See the stacktrace below).

What am I doing wrong? Has anybody experienced the same and solved it (and:
how)?

Thank you for answering?

Stacktrace:
INFO: Beleg wird gespeichert...
08.06.2004 08:14:16 ch.eugster.pos.db.Table describeError
SCHWERWIEGEND: Can not init Identity for given object
[EMAIL PROTECTED]
org.apache.ojb.broker.metadata.ClassNotPersistenceCapableException: Can not
init Identity for given
object [EMAIL PROTECTED]
        at org.apache.ojb.broker.Identity.init(Unknown Source)
        at org.apache.ojb.broker.Identity.<init>(Unknown Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeCollectionObject(Unkno
wn Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeCollections(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(Unknown Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown
Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown
Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown Source)
        at ch.eugster.pos.db.Table.store(Table.java:119)
        at ch.eugster.pos.db.Table.store(Table.java:215)
        at
ch.eugster.pos.client.model.ReceiptModel.storeReceipt(ReceiptModel.java:313)
        at
ch.eugster.pos.client.model.ReceiptModel.posEventPerformed(ReceiptModel.java
:210)
        at
ch.eugster.pos.client.event.Action.actionPerformed(Action.java:114)
        at
ch.eugster.pos.client.event.StoreReceiptAction.actionPerformed(StoreReceiptA
ction.java:85
)
        at
ch.eugster.pos.client.event.ExpressStoreReceiptAction.actionPerformed(Expres
sStoreReceipt
Action.java:99)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown
Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown
Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown
Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown
Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.apache.ojb.broker.PersistenceBrokerException: Could not get
key value
        at
org.apache.ojb.broker.util.BrokerHelper.getAutoIncrementValue(Unknown
Source)
        at
org.apache.ojb.broker.util.BrokerHelper.getValuesForObject(Unknown Source)
        at org.apache.ojb.broker.util.BrokerHelper.getKeyValues(Unknown
Source)
        ... 40 more
Caused by: org.apache.ojb.broker.util.sequence.SequenceManagerException:
Can't build new sequence
        at
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getSequence(U
nknown Source
)
        at
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.getUniqueLong
(Unknown Sour
ce)
        at
org.apache.ojb.broker.util.sequence.AbstractSequenceManager.getUniqueValue(U
nknown Source
)
        ... 43 more
Caused by: org.apache.ojb.broker.OptimisticLockException: Object has been
modified by someone else
        at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeUpdate(Unknown
Source)
        at
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(Unknown Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown
Source)
        at org.apache.ojb.broker.core.PersistenceBrokerImpl.store(Unknown
Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown Source)
        at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(Unknown Source)
        at
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.lookupStoreSe
quence(Unknow
n Source)
        at
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.lookupStoreSe
quence(Unknow
n Source)
        at
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.lookupStoreSe
quence(Unknow
n Source)
        at
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.lookupStoreSe
quence(Unknow
n Source)
        at
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.lookupStoreSe
quence(Unknow
n Source)
        at
org.apache.ojb.broker.util.sequence.SequenceManagerHighLowImpl.lookupStoreSe
quence(Unknow
n Source)
        ... 46 more


the used classes are (class-descriptors)
Receipt:
<class-descriptor class="ch.eugster.pos.db.Receipt" table="pos_receipt"
isolation-level="read-uncommitted" accept-locks="true" refresh="false">
    <field-descriptor name="id" column="id" jdbc-type="BIGINT"
primarykey="true" indexed="true" access="readwrite" autoincrement="true"
nullable="true" locking="false" update-lock="true" default-fetch="false" />
    <field-descriptor name="timestamp" column="timestamp"
jdbc-type="TIMESTAMP" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="number" column="number" indexed="true"
jdbc-type="VARCHAR" length="25" primarykey="false" nullable="true"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="transactionId" column="transaction_id"
jdbc-type="BIGINT" primarykey="false" indexed="true" access="readwrite"
autoincrement="false" nullable="false" locking="false" update-lock="true"
default-fetch="false" />
    <field-descriptor name="bookingId" column="booking_id"
jdbc-type="BIGINT" primarykey="false" indexed="true" access="readwrite"
autoincrement="false" nullable="false" locking="false" update-lock="true"
default-fetch="false" />
    <field-descriptor name="salespointId" column="salespoint_id"
jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="userId" column="user_id" jdbc-type="BIGINT"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="foreignCurrencyId" column="foreign_currency_id"
jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="status" column="status" jdbc-type="INTEGER"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="settlement" column="settlement"
jdbc-type="BIGINT" primarykey="false" indexed="true" nullable="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="amount" column="amount" jdbc-type="DOUBLE"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="payment" column="payment" jdbc-type="DOUBLE"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="paymentFC" column="payment_fc"
jdbc-type="DOUBLE" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />

    <reference-descriptor name="salespoint"
class-ref="ch.eugster.pos.db.Salespoint" proxy="false" refresh="false"
auto-retrieve="true" auto-update="false" auto-delete="false"
otm-dependent="false">
                <foreignkey field-ref="salespointId" />
    </reference-descriptor>

    <reference-descriptor name="user" class-ref="ch.eugster.pos.db.User"
proxy="false" refresh="false" auto-retrieve="true" auto-update="false"
auto-delete="false" otm-dependent="false">
                <foreignkey field-ref="userId" />
    </reference-descriptor>

    <reference-descriptor name="foreignCurrency"
class-ref="ch.eugster.pos.db.ForeignCurrency" proxy="false" refresh="false"
auto-retrieve="true" auto-update="false" auto-delete="false"
otm-dependent="false">
                <foreignkey field-ref="foreignCurrencyId" />
    </reference-descriptor>

    <collection-descriptor name="positions"
element-class-ref="ch.eugster.pos.db.Position" auto-retrieve="true"
auto-update="true" auto-delete="true" sort="ASC" proxy="false"
refresh="false" otm-dependent="false">
                <orderby name="id" sort="ASC" />
        <inverse-foreignkey field-ref="receiptId" />
    </collection-descriptor>

    <collection-descriptor name="payments"
element-class-ref="ch.eugster.pos.db.Payment" auto-retrieve="true"
auto-update="true" auto-delete="true" sort="ASC" proxy="false"
refresh="false" otm-dependent="false">
                <orderby name="id" sort="ASC" />
                <inverse-foreignkey field-ref="receiptId" />
    </collection-descriptor>
</class-descriptor>

Position:
<class-descriptor class="ch.eugster.pos.db.Position" table="pos_position"
isolation-level="read-uncommitted" accept-locks="true" refresh="false">
    <field-descriptor name="id" column="id" jdbc-type="BIGINT"
primarykey="true" indexed="true" access="readwrite" autoincrement="true"
nullable="true" locking="false" update-lock="true" default-fetch="false" />
    <field-descriptor name="receiptId" column="receipt_id"
jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="productId" column="product_id"
jdbc-type="VARCHAR" length="50" primarykey="false" nullable="true"
indexed="false" autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="productGroupId" column="product_group_id"
jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="currentTaxId" column="current_tax_id"
jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="quantity" column="quantity" jdbc-type="INTEGER"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="price" column="price" jdbc-type="DOUBLE"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="discount" column="discount" jdbc-type="DOUBLE"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="expense" column="expense" jdbc-type="BIT"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="galileoBook" column="galileo_book"
jdbc-type="BIT" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="galileoBooked" column="galileo_booked"
jdbc-type="BIT" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="optCode" column="opt_code" jdbc-type="CHAR"
length="1" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="author" column="author" jdbc-type="VARCHAR"
length="100" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="title" column="title" jdbc-type="VARCHAR"
length="100" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="publisher" column="publisher"
jdbc-type="VARCHAR" length="100" primarykey="false" nullable="true"
indexed="false" autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="isbn" column="isbn" jdbc-type="VARCHAR"
length="13" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="bznr" column="bznr" jdbc-type="VARCHAR"
length="10" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="productNumber" column="product_number"
jdbc-type="VARCHAR" length="100" primarykey="false" nullable="true"
indexed="false" autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="ordered" column="ordered" jdbc-type="BIT"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="orderId" column="order_id" jdbc-type="VARCHAR"
length="100" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />

    <reference-descriptor name="receipt"
class-ref="ch.eugster.pos.db.Receipt" proxy="false" refresh="false"
auto-retrieve="true" auto-update="false" auto-delete="false"
otm-dependent="false">
                <foreignkey field-ref="receiptId" />
    </reference-descriptor>

    <reference-descriptor name="productGroup"
class-ref="ch.eugster.pos.db.ProductGroup" proxy="false" refresh="false"
auto-retrieve="true" auto-update="false" auto-delete="false"
otm-dependent="false">
                <foreignkey field-ref="productGroupId" />
    </reference-descriptor>

    <reference-descriptor name="currentTax"
class-ref="ch.eugster.pos.db.CurrentTax" proxy="false" refresh="false"
auto-retrieve="true" auto-update="false" auto-delete="false"
otm-dependent="false">
                <foreignkey field-ref="currentTaxId" />
    </reference-descriptor>

</class-descriptor>

Payment:
<class-descriptor class="ch.eugster.pos.db.Payment" table="pos_payment"
isolation-level="read-uncommitted" accept-locks="true" refresh="false">
    <field-descriptor name="id" column="id" jdbc-type="BIGINT"
primarykey="true" indexed="true" access="readwrite" autoincrement="true"
nullable="true" locking="false" update-lock="true" default-fetch="false" />
    <field-descriptor name="receiptId" column="receipt_id"
jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="paymentTypeId" column="payment_type_id"
jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="foreignCurrencyId" column="foreign_currency_id"
jdbc-type="BIGINT" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="quotation" column="quotation" jdbc-type="DOUBLE"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="amount" column="amount" jdbc-type="DOUBLE"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="amountFC" column="amount_fc" jdbc-type="DOUBLE"
primarykey="false" nullable="true" indexed="false" autoincrement="false"
locking="false" update-lock="true" default-fetch="false" access="readwrite"
/>
    <field-descriptor name="roundFactor" column="round_factor"
jdbc-type="DOUBLE" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />
    <field-descriptor name="roundFactorFC" column="round_factor_fc"
jdbc-type="DOUBLE" primarykey="false" nullable="true" indexed="false"
autoincrement="false" locking="false" update-lock="true"
default-fetch="false" access="readwrite" />

    <reference-descriptor name="receipt"
class-ref="ch.eugster.pos.db.Receipt" proxy="false" refresh="false"
auto-retrieve="true" auto-update="false" auto-delete="false"
otm-dependent="false">
                <foreignkey field-ref="receiptId" />
    </reference-descriptor>

    <reference-descriptor name="paymentType"
class-ref="ch.eugster.pos.db.PaymentType" proxy="false" refresh="false"
auto-retrieve="true" auto-update="false" auto-delete="false"
otm-dependent="false">
                <foreignkey field-ref="paymentTypeId" />
    </reference-descriptor>

    <reference-descriptor name="foreignCurrency"
class-ref="ch.eugster.pos.db.ForeignCurrency" proxy="false" refresh="false"
auto-retrieve="true" auto-update="false" auto-delete="false"
otm-dependent="false">
                <foreignkey field-ref="foreignCurrencyId" />
    </reference-descriptor>

</class-descriptor>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to