< prev index next >
jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/developer/ContextClassloaderLocal.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 23,46 ****
* questions.
*/
package com.sun.xml.internal.ws.developer;
import java.security.AccessController;
import java.security.PrivilegedAction;
- import java.text.MessageFormat;
- import java.util.ResourceBundle;
import java.util.WeakHashMap;
/**
* Simple utility ensuring that the value is cached only in case it is non-internal implementation
*/
abstract class ContextClassloaderLocal<V> {
! private static final String FAILED_TO_CREATE_NEW_INSTANCE = "FAILED_TO_CREATE_NEW_INSTANCE";
!
! private WeakHashMap<ClassLoader, V> CACHE = new WeakHashMap<ClassLoader, V>();
public V get() throws Error {
ClassLoader tccl = getContextClassLoader();
V instance = CACHE.get(tccl);
if (instance == null) {
--- 23,44 ----
* questions.
*/
package com.sun.xml.internal.ws.developer;
+ import com.sun.xml.internal.ws.resources.ContextClassloaderLocalMessages;
+
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.WeakHashMap;
/**
* Simple utility ensuring that the value is cached only in case it is non-internal implementation
*/
abstract class ContextClassloaderLocal<V> {
! private WeakHashMap<ClassLoader, V> CACHE = new WeakHashMap<>();
public V get() throws Error {
ClassLoader tccl = getContextClassLoader();
V instance = CACHE.get(tccl);
if (instance == null) {
*** 58,80 ****
private V createNewInstance() {
try {
return initialValue();
} catch (Exception e) {
! throw new Error(format(FAILED_TO_CREATE_NEW_INSTANCE, getClass().getName()), e);
}
}
- private static String format(String property, Object... args) {
- String text = ResourceBundle.getBundle(ContextClassloaderLocal.class.getName()).getString(property);
- return MessageFormat.format(text, args);
- }
-
private static ClassLoader getContextClassLoader() {
! return (ClassLoader)
! AccessController.doPrivileged(new PrivilegedAction() {
! public Object run() {
ClassLoader cl = null;
try {
cl = Thread.currentThread().getContextClassLoader();
} catch (SecurityException ex) {
}
--- 56,73 ----
private V createNewInstance() {
try {
return initialValue();
} catch (Exception e) {
! throw new Error(ContextClassloaderLocalMessages.FAILED_TO_CREATE_NEW_INSTANCE(getClass().getName()), e);
}
}
private static ClassLoader getContextClassLoader() {
! return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
! @Override
! public ClassLoader run() {
ClassLoader cl = null;
try {
cl = Thread.currentThread().getContextClassLoader();
} catch (SecurityException ex) {
}
< prev index next >