Hi, Michael,

Okay, sounds good to me.

-- Michelle

Michael Bouschen wrote:

Hi Michelle,

Michael W. and I discussed this as an alternative. The issue is that method getPMF might be called by the test method with the expectation to return "the" pmf instance. E.g. a test class might want to check whether the pmf is closed and calls getPMF().isClosed(). But getPMF returns a new pmf instance which is open and the test fails.

We thought we better do not change the behavior of getPMF, but fix the cleanup code in tearDown.

Regards Michael

Alternatively, getPMF() could check to see if pmf is closed or null and return a new pmf in either case.

-- Michelle

Michael Watzek wrote:

Hi,

there are 5 tests (AfterCloseGetPMThrowsException, AfterCloseSetMethodsThrowException, Close, CloseFailsIfTransactionActive, CloseWithoutPermissionThrowsSecurityException) that call "getPMF()" and "pmf.close()" in their "testXXX" methods , but they do not nullify field "pmf". All of those tests fail in "localTearDown": "localTearDown" calls "getPMF()" which returns field "pmf" if it is not null. For this reason, "getPMF()" returnes a closed PMF in those tests.

The proposal for a fix is to add a check before "localTearDown" is called:

if (pmf!=null && pmf.isClosed())
    pmf = null;

Regards,
Michael






Reply via email to