> On 25 Oct 2016, at 13:50, Roger Riggs <roger.ri...@oracle.com> wrote: > > Hi, > > On 10/25/2016 4:31 PM, Paul Sandoz wrote: >> Hi Roger, >> >> Do you need to use a double-checked locking idiom in getEchoStub? > Probably not, I'm just practicing the idiom. > We are unlikely to move to concurrent test execution in testng (when it > supports it). >> >> I cannot recall the life-cycle of per test execution, but i suspect you >> might be able to turn the static field and method getEchoStub into a >> non-static field and just make the method synchronized, but you might ned to >> annotate the shutdown with @AfterClass instead. > That would work too. > > What's the rule for choosing synchronized vs volatile? I've gotten different > recommendations in different cases. > What's Occam's razor here?
Double-checked locking requires both :-), so you can safely publish the singleton. It’s generally used when performance is a concern, otherwise i would go for the simpler solution which is more likely to be correct and easier to understand :-) >> >> Actually, perhaps even better initiate the ORB and create the stub in a >> @BeforeClass method and clean up in a @AfterClass method? > that would work, but it is only used in one of the tests. So just trying to > keep the usage localized. > Ah, yes, i see. Paul.