Restore original TCCL in PropertiesLauncherTests

Calling launch of PropertiesLauncherTests sets the thread context
class loader to an instance of LaunchedURLClassLoader. To avoid this
class loader being used beyond the scope of the test and launcher
that created it, this commit updates PropertiesLauncherTests to
capture the TCCL before each test and restore it after each test.

Closes gh-9378
pull/8060/merge
Andy Wilkinson 8 years ago
parent 6415828693
commit 5b4f9edc86

@ -1,5 +1,5 @@
/*
* Copyright 2012-2016 the original author or authors.
* Copyright 2012-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -53,8 +53,11 @@ public class PropertiesLauncherTests {
@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();
private ClassLoader contextClassLoader;
@Before
public void setup() throws IOException {
this.contextClassLoader = Thread.currentThread().getContextClassLoader();
MockitoAnnotations.initMocks(this);
System.setProperty("loader.home",
new File("src/test/resources").getAbsolutePath());
@ -62,6 +65,7 @@ public class PropertiesLauncherTests {
@After
public void close() {
Thread.currentThread().setContextClassLoader(this.contextClassLoader);
System.clearProperty("loader.home");
System.clearProperty("loader.path");
System.clearProperty("loader.main");

Loading…
Cancel
Save