Domanda

Ho il seguente problema. Posso impostare lo stato di transazione in modo che sia "avvio, fine o in corso". Ho impostato questo, quindi serializza il mio oggetto di transazione sul server, che lo recupera. Funziona come un fascino per la prima volta (quando la transazione è in modalità iniziale), ma poi quando faccio riferimento all'oggetto, questa volta in modalità "in corso", il server continua a vederlo in modalità "start". Ho testato il codice sulla riga prima della serializzazione e la linea dopo la deserializzazione, e questo è sicuramente dove si trova il problema. Qualsiasi aiuto sarebbe molto apprezzato. I frammenti di codice pertinenti sono i seguenti:

serializzazione

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

deserializzazione

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

e la classe di transazione:

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

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top