private static Object getURLStreamHandlerFactoryLock() throws IllegalAccessException { Object lock; try { Field streamHandlerLockField = URL.class.getDeclaredField("streamHandlerLock"); //$NON-NLS-1$ MultiplexingFactory.setAccessible(streamHandlerLockField); lock = streamHandlerLockField.get(null); } catch (NoSuchFieldException noField) { // could not find the lock, lets sync on the class object lock = URL.class; } return lock; }
private static Object getURLStreamHandlerFactoryLock() throws IllegalAccessException { Object lock; try { Field streamHandlerLockField = URL.class.getDeclaredField("streamHandlerLock"); //$NON-NLS-1$ MultiplexingFactory.setAccessible(streamHandlerLockField); lock = streamHandlerLockField.get(null); } catch (NoSuchFieldException noField) { // could not find the lock, lets sync on the class object lock = URL.class; } return lock; }
public static Field getField(Class<?> clazz, Class<?> type, boolean instance) { Field[] fields = clazz.getDeclaredFields(); for (int i = 0; i < fields.length; i++) { boolean isStatic = Modifier.isStatic(fields[i].getModifiers()); if (instance != isStatic && fields[i].getType().equals(type)) { MultiplexingFactory.setAccessible(fields[i]); return fields[i]; } } return null; } }
public static Field getField(Class<?> clazz, Class<?> type, boolean instance) { Field[] fields = clazz.getDeclaredFields(); for (int i = 0; i < fields.length; i++) { boolean isStatic = Modifier.isStatic(fields[i].getModifiers()); if (instance != isStatic && fields[i].getType().equals(type)) { MultiplexingFactory.setAccessible(fields[i]); return fields[i]; } } return null; } }
try { openConnectionMethod = URLStreamHandler.class.getDeclaredMethod("openConnection", new Class[] {URL.class}); //$NON-NLS-1$ MultiplexingFactory.setAccessible(openConnectionMethod); MultiplexingFactory.setAccessible(openConnectionProxyMethod); MultiplexingFactory.setAccessible(equalsMethod); MultiplexingFactory.setAccessible(getDefaultPortMethod); MultiplexingFactory.setAccessible(getHostAddressMethod); MultiplexingFactory.setAccessible(hashCodeMethod); MultiplexingFactory.setAccessible(hostsEqualMethod); MultiplexingFactory.setAccessible(parseURLMethod); MultiplexingFactory.setAccessible(sameFileMethod); MultiplexingFactory.setAccessible(setURLMethod); MultiplexingFactory.setAccessible(toExternalFormMethod); MultiplexingFactory.setAccessible(handlerField); } catch (Exception e) { factory.container.getLogServices().log(MultiplexingURLStreamHandler.class.getName(), FrameworkLogEntry.ERROR, "initializeMethods", e); //$NON-NLS-1$
try { openConnectionMethod = URLStreamHandler.class.getDeclaredMethod("openConnection", new Class[] {URL.class}); //$NON-NLS-1$ MultiplexingFactory.setAccessible(openConnectionMethod); MultiplexingFactory.setAccessible(openConnectionProxyMethod); MultiplexingFactory.setAccessible(equalsMethod); MultiplexingFactory.setAccessible(getDefaultPortMethod); MultiplexingFactory.setAccessible(getHostAddressMethod); MultiplexingFactory.setAccessible(hashCodeMethod); MultiplexingFactory.setAccessible(hostsEqualMethod); MultiplexingFactory.setAccessible(parseURLMethod); MultiplexingFactory.setAccessible(sameFileMethod); MultiplexingFactory.setAccessible(setURLMethod); MultiplexingFactory.setAccessible(toExternalFormMethod); MultiplexingFactory.setAccessible(handlerField); } catch (Exception e) { factory.container.getLogServices().log(MultiplexingURLStreamHandler.class.getName(), FrameworkLogEntry.ERROR, "initializeMethods", e); //$NON-NLS-1$