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