Question

J'ai le problème suivant. Je peux définir l'état de transaction comme "Démarrer, fin ou continu". Je définis ceci, puis mon objet de transaction sur le serveur, qui le récupère. Fonctionne comme un charme la première fois (lorsque la transaction est en mode Démarrage), mais lorsque je repense l'objet, cette fois en mode "en cours", le serveur continue de le voir en mode "Démarrer". J'ai testé le code à la ligne avant la sérialisation, et la ligne après la désérialisation, et c'est certainement là que se trouve le problème. Toute aide serait très appréciée. Les extraits de code pertinents sont les suivants:

sérialisation

        if ((query instanceof Transaction) && !(trx.getTransactionState()==Consts.trx_start)) System.out.println("Not start");
        oos.writeObject(query);
        oos.flush();

désérialisation

    while (true) {
                Object statement = null;

                try {

                    statement = ois.readObject();
                    if ((statement instanceof Transaction) && !(((Transaction) statement).getTransactionState()==Consts.trx_start)) System.out.println("Not start 2");
                    handle_statement(statement, socket);
                } catch (IOException e) {

et la classe de transaction:

    public class Transaction extends Statement{

/**
 * 
 */
private static final long serialVersionUID = -2284996855537430822L;
Statement statement_list;
int trx_state; 


/**
 * 
 */
public Transaction() {
    trx_state = Consts.trx_start;; 
}

/**
 * @param statement
 */
public void setStatement(Statement statement ) { 
    statement_list = statement; 
} 


public void setTransactionState(int state) {
        trx_state = state; 
}

public int getTransactionState() {
    return trx_state; 
}
/**
 * @return
 */
public Statement getStatement() {
    return statement_list;
}

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top