Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
54625cc2
Commit
54625cc2
authored
Aug 19, 2014
by
Phillip Webb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make LaunchedURLClassLoader lock provider static
Fixes gh-1380
parent
fc7823bc
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
12 additions
and
22 deletions
+12
-22
LaunchedURLClassLoader.java
...g/springframework/boot/loader/LaunchedURLClassLoader.java
+12
-22
No files found.
spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/LaunchedURLClassLoader.java
View file @
54625cc2
...
...
@@ -36,19 +36,10 @@ import org.springframework.boot.loader.jar.JarFile;
*/
public
class
LaunchedURLClassLoader
extends
URLClassLoader
{
static
{
try
{
ClassLoader
.
registerAsParallelCapable
();
}
catch
(
NoSuchMethodError
ex
)
{
// Not available on earlier JDKs
}
}
private
static
LockProvider
LOCK_PROVIDER
=
setupLockProvider
();
private
final
ClassLoader
rootClassLoader
;
private
final
LockProvider
lockProvider
;
/**
* Create a new {@link LaunchedURLClassLoader} instance.
* @param urls the URLs from which to load classes and resources
...
...
@@ -57,17 +48,6 @@ public class LaunchedURLClassLoader extends URLClassLoader {
public
LaunchedURLClassLoader
(
URL
[]
urls
,
ClassLoader
parent
)
{
super
(
urls
,
parent
);
this
.
rootClassLoader
=
findRootClassLoader
(
parent
);
this
.
lockProvider
=
createLockProvider
();
}
private
LockProvider
createLockProvider
()
{
try
{
ClassLoader
.
class
.
getMethod
(
"getClassLoadingLock"
,
String
.
class
);
return
new
Java7LockProvider
();
}
catch
(
NoSuchMethodException
ex
)
{
return
new
LockProvider
();
}
}
private
ClassLoader
findRootClassLoader
(
ClassLoader
classLoader
)
{
...
...
@@ -148,7 +128,7 @@ public class LaunchedURLClassLoader extends URLClassLoader {
@Override
protected
Class
<?>
loadClass
(
String
name
,
boolean
resolve
)
throws
ClassNotFoundException
{
synchronized
(
this
.
lockProvider
.
getLock
(
this
,
name
))
{
synchronized
(
LaunchedURLClassLoader
.
LOCK_PROVIDER
.
getLock
(
this
,
name
))
{
Class
<?>
loadedClass
=
findLoadedClass
(
name
);
if
(
loadedClass
==
null
)
{
Handler
.
setUseFastConnectionExceptions
(
true
);
...
...
@@ -244,6 +224,16 @@ public class LaunchedURLClassLoader extends URLClassLoader {
}
}
private
static
LockProvider
setupLockProvider
()
{
try
{
ClassLoader
.
registerAsParallelCapable
();
return
new
Java7LockProvider
();
}
catch
(
NoSuchMethodError
ex
)
{
return
new
LockProvider
();
}
}
/**
* Strategy used to provide the synchronize lock object to use when loading classes.
*/
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment