>Hi Antonio,

Hi Armin,


>Could you post your stack trace too?

[BOOT] INFO: OJB.properties:
file:/E:/projects/fenix/fenix/config/OJB.properties
[org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl] INFO: Already
created persistence broker instances: 0
[org.apache.ojb.broker.util.sequence.SequenceManagerFactory] INFO: Use
sequence manager class: class
org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl
[org.apache.ojb.broker.accesslayer.AbstractPoolableConnectionFactory] INFO:
# Create connection pool for JdbcDescriptorKey -820980640 #
[org.apache.ojb.broker.accesslayer.AbstractConnectionFactory] INFO: #
Already created connections: 1 returning :
org.gjt.mm.mysql.jdbc2.Connection@a33d48
[org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl] INFO: Already
created persistence broker instances: 1
[org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl] INFO: Already
created persistence broker instances: 2
[org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl] INFO: Already
created persistence broker instances: 3
[org.apache.ojb.broker.accesslayer.AbstractConnectionFactory] INFO: #
Already created connections: 2 returning :
org.gjt.mm.mysql.jdbc2.Connection@e790c
[org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl] INFO: Already
created persistence broker instances: 4
[org.apache.ojb.broker.accesslayer.JdbcAccess] ERROR: SQLException during
the execution of the insert (for a Dominio.Sitio): Invalid argument value:
Duplicate entry '1' for key 2
Invalid argument value: Duplicate entry '1' for key 2
java.sql.SQLException: Invalid argument value: Duplicate entry '1' for key 2
        at org.gjt.mm.mysql.MysqlIO.sendCommand(MysqlIO.java:497)
        at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(MysqlIO.java:550)
        at org.gjt.mm.mysql.Connection.execSQL(Connection.java:885)
        at
org.gjt.mm.mysql.PreparedStatement.executeUpdate(PreparedStatement.java:389)
        at
org.apache.ojb.broker.accesslayer.JdbcAccess.executeInsert(Unknown Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
        at org.apache.ojb.odmg.states.StateNewDirty.commit(Unknown Source)
        at org.apache.ojb.odmg.ObjectEnvelopeTable.commit(Unknown Source)
        at org.apache.ojb.odmg.TransactionImpl.doCommit(Unknown Source)
        at org.apache.ojb.odmg.TransactionImpl.commit(Unknown Source)
        at ServidorPersistente.OJB.Application.newSitio(Application.java:50)
        at ServidorPersistente.OJB.Application.<init>(Application.java:38)
        at ServidorPersistente.OJB.Application.main(Application.java:60)
org.apache.ojb.broker.PersistenceBrokerSQLException
        at
org.apache.ojb.broker.accesslayer.JdbcAccess.executeInsert(Unknown Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
        at org.apache.ojb.odmg.[org.apache.ojb.odmg.TransactionImpl] WARN:
Abort transaction was called on tx
org.apache.ojb.odmg.TransactionImpl@a52fdf, associated PB was null
[org.apache.ojb.odmg.TransactionImpl] WARN: Abort transaction was called on
tx org.apache.ojb.odmg.TransactionImpl@ea0252, associated PB was
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl@3e89c3
states.StateNewDirty.commit(Unknown Source)
        at org.apache.ojb.odmg.ObjectEnvelopeTable.commit(Unknown Source)
        at org.apache.ojb.odmg.TransactionImpl.doCommit(Unknown Source)
        at org.apache.ojb.odmg.TransactionImpl.commit(Unknown Source)
        at ServidorPersistente.OJB.Application.newSitio(Application.java:50)
        at ServidorPersistente.OJB.Application.<init>(Application.java:38)
        at ServidorPersistente.OJB.Application.main(Application.java:60)

>How does the Sitio class look like?

public class Sitio implements ISitio, Serializable {
    private int _codigoInterno;
    private int _chaveDisciplinaExecucao;
    private List _seccoes;

    /** Construtor sem argumentos p�blico requerido pela moldura de objectos
OJB */
    public Sitio() {
    }

    public Sitio(int chaveDisciplinaExecucao) {
        _chaveDisciplinaExecucao = chaveDisciplinaExecucao;
    }

    public int getCodigoInterno() {
        return _codigoInterno;
    }

    public void setCodigoInterno(int codigoInterno) {
        _codigoInterno = codigoInterno;
    }

    public int getChaveDisciplinaExecucao() {
        return _chaveDisciplinaExecucao;
    }

    public void setChaveDisciplinaExecucao(int chaveDisciplinaExecucao) {
        _chaveDisciplinaExecucao = chaveDisciplinaExecucao;
    }

    public List getSeccoes() {
        return _seccoes;
    }

    public void setSeccoes(List seccoes) {
        _seccoes = seccoes;
    }

    public boolean equals(Object obj) {
        boolean resultado = false;
        if (obj instanceof Sitio) {
            Sitio sitio = (Sitio)obj;
            resultado = (getChaveDisciplinaExecucao() ==
sitio.getChaveDisciplinaExecucao());
        }
        return resultado;
    }
}

>Which version of OJB do you use?

0.95

Thanks,
Ant�nio

>
>regards,
>Armin
>
>> >    public Application()
>>> {
>> >        Implementation odmg = OJB.getInstance();
>> >        Database db = odmg.newDatabase();
>> >        try {
>> >            db.open("ServidorPersistente/OJB/repository.xml",
>> >Database.OPEN_READ_WRITE);
>> >        } catch (ODMGException ex) {
>> >        }
>> >
>> >        // create an object
>> >        newSitio(1);
>> >        // create the same object - fails on commit and then fails on
>> >catch/abort
>> >        newSitio(1);
>> >        // create a different object - fails, does not create the
>object...
>> >        newSitio(2);
>> >    }
>> >
>> >    private void newSitio(int value) {
>> >        Implementation odmg = OJB.getInstance();
>> >        Transaction tx = odmg.newTransaction();
>> >        try {
>> >            ISitio sitio = null;
>> >            tx.begin();
>> >            sitio = new Sitio(value);
>> >            tx.lock(sitio, tx.WRITE);
>> >            tx.commit();
>> >        } catch (Exception ex) {
>> >            try {
>> >                tx.abort();
>> >            } catch (Exception exx) {
>> >            }
>> >        }
>> >    }
>> >
>> >    public static void main(String [] args) {
>> >        Application app = new Application();
>> >    }
>
>


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

Reply via email to