tp3_commit: Atomicité

Programmation Avancée

Modérateur : douinj

djabir_w
Messages : 13
Inscription : 25 oct. 2020 14:08

tp3_commit: Atomicité

Message par djabir_w » 29 nov. 2020 19:24

Bonjour,

Je galère à la question 3 du tp_commit, et j'imagine que ca vient du problème d'atomicité/transaction, mais je ne vois pas comment le résoudre.

There were 6 failures:
1) testTransactionDebitSure6(question3): solde erroné, revoyez la transaction !!!
2) testTransactionDebitSure5(question3): solde erroné, revoyez la transaction !!!
3) testDebitAvecTransaction2(question3): solde erroné, revoyez la transaction !!!
4) testTransactionDebitSure7(question3): solde erroné, revoyez la transaction !!!
5) testTransactionDebitSure9(question3): solde erroné, revoyez la transaction !!!
6) testTransactionDebitSure8(question3): solde erroné, revoyez la transaction !!!

J'ai l'impression que mon tp fonctionne comme demandé: Si je teste dans un main, les transactions et rollbacks fonctionnent bien.

Code : Tout sélectionner

public static void main(String[] args) throws Exception {
    
    GroupeDeContributeurs g = new GroupeDeContributeurs("g");
    g.ajouter(new Contributeur("g_a",100));
    g.ajouter(new Contributeur("g_b",200));
    g.ajouter(new Contributeur("g_c",300));
    GroupeDeContributeurs g1 = new GroupeDeContributeurs("g1");
    g1.ajouter(new Contributeur("g1_a",100));
    g1.ajouter(new Contributeur("g1_b",200));
    GroupeDeContributeurs g11 = new GroupeDeContributeurs("g11");
    g11.ajouter(new Contributeur("g11_a",100));
    g1.ajouter(g11);
    g.ajouter(g1);
    AbstractTransaction transaction = new TransactionDebit(g);
    try {
        transaction.debit(120);
    } catch (SoldeDebiteurException e) {
        System.out.println("test");
    }    
    System.out.println(g.solde());
}
Ici, le résultat affiché est bien
"test
1000"
puisque un débit de 120 est trop elevé pour 4 des contributeurs. Si je change le débit à 100 ou moins, tout fonctionne bien. testDebitAvecTransaction et testTransactionsImbriquees passent, mais pas les autres.
Faut-il changer quelque chose dans AbstractTransaction et TransactionDebit ? J'ai l'impression qu'il n'y a pas de changements à faire dans ces 2 la.

Est-ce que quelqu'un pourrait m'expliquer le problème, je ne vois pas du tout.
Merc beaucoup.

douinj
Messages : 281
Inscription : 18 mars 2009 15:46

Re: tp3_commit: Atomicité

Message par douinj » 29 nov. 2020 19:53

Bonsoir,

Ici vous avez le testTransactionDebitSure7(question3): solde erroné, revoyez la transaction !!!

viewtopic.php?f=40&t=20256&sid=4666d649 ... 08f4485789

l'erreur est peut être en amont ...

à suivre...

djabir_w
Messages : 13
Inscription : 25 oct. 2020 14:08

Re: tp3_commit: Atomicité

Message par djabir_w » 30 nov. 2020 17:07

Merci beaucoup, le problème venait en fait de mon Memento et de mes visiteurs pour la sauvegarde et restitution.

Répondre