< prev index next >

jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/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
*** 25,46 **** package com.sun.xml.internal.ws.policy.sourcemodel.attach; 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) { --- 25,42 ---- package com.sun.xml.internal.ws.policy.sourcemodel.attach; 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,78 **** 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 AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() { public ClassLoader run() { ClassLoader cl = null; try { cl = Thread.currentThread().getContextClassLoader(); } catch (SecurityException ex) { --- 54,70 ---- 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 >