equal
deleted
inserted
replaced
143 return instance; |
143 return instance; |
144 } |
144 } |
145 |
145 |
146 // Cache for tool classes. |
146 // Cache for tool classes. |
147 // Use weak references to avoid keeping classes around unnecessarily |
147 // Use weak references to avoid keeping classes around unnecessarily |
148 private Map<String, Reference<Class<?>>> toolClasses = new HashMap<String, Reference<Class<?>>>(); |
148 private Map<String, Reference<Class<?>>> toolClasses = new HashMap<>(); |
149 |
149 |
150 // Cache for tool classloader. |
150 // Cache for tool classloader. |
151 // Use a weak reference to avoid keeping it around unnecessarily |
151 // Use a weak reference to avoid keeping it around unnecessarily |
152 private Reference<ClassLoader> refToolClassLoader = null; |
152 private Reference<ClassLoader> refToolClassLoader = null; |
153 |
153 |
171 try { |
171 try { |
172 c = findSystemToolClass(name); |
172 c = findSystemToolClass(name); |
173 } catch (Throwable e) { |
173 } catch (Throwable e) { |
174 return trace(WARNING, e); |
174 return trace(WARNING, e); |
175 } |
175 } |
176 toolClasses.put(name, new WeakReference<Class<?>>(c)); |
176 toolClasses.put(name, new WeakReference<>(c)); |
177 } |
177 } |
178 return c.asSubclass(clazz); |
178 return c.asSubclass(clazz); |
179 } |
179 } |
180 |
180 |
181 private static final String[] defaultToolsLocation = { "lib", "tools.jar" }; |
181 private static final String[] defaultToolsLocation = { "lib", "tools.jar" }; |
205 |
205 |
206 URL[] urls = { file.toURI().toURL() }; |
206 URL[] urls = { file.toURI().toURL() }; |
207 trace(FINE, urls[0].toString()); |
207 trace(FINE, urls[0].toString()); |
208 |
208 |
209 cl = URLClassLoader.newInstance(urls); |
209 cl = URLClassLoader.newInstance(urls); |
210 refToolClassLoader = new WeakReference<ClassLoader>(cl); |
210 refToolClassLoader = new WeakReference<>(cl); |
211 } |
211 } |
212 |
212 |
213 return Class.forName(toolClassName, false, cl); |
213 return Class.forName(toolClassName, false, cl); |
214 } |
214 } |
215 } |
215 } |