1 2 3 4 5 6 7 Previous Next 96 Replies Latest reply on Jun 14, 2010 6:20 PM by clebert.suconic Go to original post
      • 45. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
        clebert.suconic

        Andy Taylor wrote:

         

        I think Tims point is that if we ran in an app server that didnt plugin its transaction manager then the test would not pass making us non portable.

         

        So we can either leave cleberts changes in until we have given the eap guys a release or remove them now and the eap guys can wait a while, i'm not sure how long these changes will take having not done them, clebert, Jeff, is this a quick job?

         

         

        You can just *plug in* the TM used on GlassFish, and the test will pass the same way.

         

        I don't think there's an issue here.

         

        There are no JBoss specific hacks here.

        • 46. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
          timfox

          Clebert Suconic wrote:

           

          Andy Taylor wrote:

           

          I think Tims point is that if we ran in an app server that didnt plugin its transaction manager then the test would not pass making us non portable.

           

          So we can either leave cleberts changes in until we have given the eap guys a release or remove them now and the eap guys can wait a while, i'm not sure how long these changes will take having not done them, clebert, Jeff, is this a quick job?

           

           

          You can just *plug in* the TM used on GlassFish, and the test will pass the same way.

           

          I don't think there's an issue here.

           

          There are no JBoss specific hacks here.

          LOL, that is ludicrous.

           

          If that's was true that "plugin" would have to be part  of the JCA spec.

           

          In order to implement a JCA adaptor and pass the TCK the knowledge in the JCA spec should be sufficient. What you are saying, is you also need an extra piece of knowledge (this plugin).

           

          Another illustration - It should be possible to pass the TCK with JBoss AS using ActiveMQ and the ActiveMQ adaptor. Clearly they won't have your hack in their adaptor.

           

          Is this getting any clearer now?

           

          We've discussed this too much now. Let's roll back to how this was done before. I don't mind who does it, but that's what we need to do.

          • 47. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
            clebert.suconic

            I already said the TCK will pass regardless of the TM being integrated or not.

             

            The TM integration is to fix TransactionActiveUnitTestCase which is a a *JBoss Application Server* test.

             

            The same test would pass on Glassfish if the TM is integrated.

            • 48. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
              clebert.suconic

              Let me clear wo points:

               

              I - If you remove the TM integration. The TCK will pass either way.

                  TransactionActiveUnitTestCase would fail though.

               

              II - To fix TransactionActiveUnitTestCase you would need access t othe TM (which is optional)

                   And if done properly with GlassFish or any application server, TransactionActiveUnitTestCase would work the same way.

              • 49. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
                timfox

                Clebert Suconic wrote:

                 

                Let me clear wo points:

                 

                I - If you remove the TM integration. The TCK will pass either way.

                    TransactionActiveUnitTestCase would fail though.

                 

                II - To fix TransactionActiveUnitTestCase you would need access t othe TM (which is optional)

                     And if done properly with GlassFish or any application server, TransactionActiveUnitTestCase would work the same way.

                If TransactionActiveUnitTestCase requires special APIs that are not part of the JCA/JEE spec in order to pass then it's invalid. All the EJB / MDB tests should be able to pass with any compliant JMS provider that provides a valid JCA adaptor. No other APIs should be necessary to make it pass.

                • 50. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
                  clebert.suconic

                  Can you join us on IRC?

                   

                  I don't think the test is invalid. It's part of the application server.. and a Timed out session shouldn't be used as non-transacitonal

                  • 51. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
                    clebert.suconic

                    There are only two ways to fixTransactionActiveUnitTestCase:

                     

                     

                    I - Change the TM to send us end(FAIL) before the rollback, when the rollback ocurred. We have no way to know there was a problem otherwise.

                     

                     

                    II - Verify if there's a TX activate on the TM, and use XASession on that case. (which is currently in place now)

                    • 52. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
                      timfox

                      Clebert Suconic wrote:

                       

                      There are only two ways to fixTransactionActiveUnitTestCase:

                       

                       

                      I - Change the TM to send us end(FAIL) before the rollback, when the rollback ocurred. We have no way to know there was a problem otherwise.

                       

                       

                      II - Verify if there's a TX activate on the TM, and use XASession on that case. (which is currently in place now)

                      You forgot:

                       

                      III - roll back to the old way we used to do it before we did the caching of multiple sessions. The test used to work then.

                       

                      In the time taken to discuss this, you could probably have already rolled back the code.

                      • 53. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
                        clebert.suconic

                        Tim Fox wrote:

                         

                        Clebert Suconic wrote:

                         

                        There are only two ways to fixTransactionActiveUnitTestCase:

                         

                         

                        I - Change the TM to send us end(FAIL) before the rollback, when the rollback ocurred. We have no way to know there was a problem otherwise.

                         

                         

                        II - Verify if there's a TX activate on the TM, and use XASession on that case. (which is currently in place now)

                        You forgot:

                         

                        III - roll back to the old way we used to do it before we did the caching of multiple sessions. The test used to work then.

                         

                        In the time taken to discuss this, you could probably have already rolled back the code.

                         

                         

                        No, the test didn't pass. That test will fail if we rollback all this. We will be back at point 0.

                        • 54. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
                          timfox

                          Clebert Suconic wrote:

                           

                          Tim Fox wrote:

                           

                          Clebert Suconic wrote:

                           

                          There are only two ways to fixTransactionActiveUnitTestCase:

                           

                           

                          I - Change the TM to send us end(FAIL) before the rollback, when the rollback ocurred. We have no way to know there was a problem otherwise.

                           

                           

                          II - Verify if there's a TX activate on the TM, and use XASession on that case. (which is currently in place now)

                          You forgot:

                           

                          III - roll back to the old way we used to do it before we did the caching of multiple sessions. The test used to work then.

                           

                          In the time taken to discuss this, you could probably have already rolled back the code.

                           

                           

                          No, the test didn't pass. That test will fail if we rollback all this. We will be back at point 0.

                          What do you mean the test didn't pass?

                           

                          We had all tests passing for the AS6 integration. At least that's what you should have done. Are you now saying that the AS6 integration was completed without getting the AS test suite to pass?

                           

                          If so, it's not finished.

                          • 55. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
                            clebert.suconic

                            - Point 0: TransactionActiveUnitTestCase is failing

                            - Point 1: We changed XASession to not accept anything when not enlisted. That breaks a great part of the TCK

                            - Point 2: We changed it to dual session, TransactionActiveUnitTestCase fails again now (however nobody checked it)

                            - Point 3: I have changed the RA to not clear the Session if XAEnd is caleld. Now the test will pass but the TCK fail

                            - Point 4: I have changed our dual session behaviour to use XASession if there's a pending TX. Now both the TCK and the test will pass.

                             

                             

                            Just because the test is not covered by the TCK it doesn't mean the test is invalid.

                             

                            If we're back a point0, we will have to change the TM either way. (We would need to convince them it's their bug anyway). and change our code to throw exceptions if XAEnd(Fail) was called.

                            • 56. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
                              clebert.suconic

                              What do you mean the test didn't pass?

                               

                              We had all tests passing for the AS6 integration. At least that's what you should have done. Are you now saying that the AS6 integration was completed without getting the AS test suite to pass?

                               

                              If so, it's not finished.

                               

                               

                              that's why this whole thread started. the AS6 integration was finished with Beta3. All the tests were passing.

                               

                              Later Jeff worked on the TCK, while he fixed it. Then the TransactionTest started to fail.

                              • 57. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
                                timfox

                                Are we going around in circles here?

                                 

                                You have just admitted that the test used to pass when the AS6 integration was complete. No tx mgr hack was necessary to make that test pass then. Therefore your hack is unnecessary.

                                 

                                So, we roll back to that time.

                                 

                                OK?

                                • 58. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
                                  jmesnil

                                  ok, to sum up: at no point we had both the TransactionActiveUnitTestCase and the TCK pass.

                                  there is no time to rollback to have both correct, right?

                                   

                                  We could rollback to "fix" TransactionActiveUnitTestCase but this will break the TCK.

                                  However the current code pass both tests at the price of injecting the JTA TM into our RA (like JBoss generic RA is doing).

                                   

                                  is that correct?

                                  • 59. Re: Regression on AS6 org.jboss.test.jca.test.TransactionActiveUnitTestCase
                                    clebert.suconic

                                    No, it's not OK..

                                     

                                    I said when the test was passing, TCK would fail.

                                     

                                     

                                    As I said, there are only two ways to fix this. We either interact with the TM looking at a current TX, or have the TM sending us a failure.

                                     

                                    I don't think rolling back would be an option at this point.

                                     

                                     

                                    The only feasible option is changing the TM's code to provide us some information when a failure happened. (But I believe they would have other issues with that. Like.. you're not supposed to call Fail then Rollback).