@@ -488,8 +488,6 @@ public VirtualServer() {
488488
489489 private ActionReport report = null ;
490490
491- private HttpProbeImpl httpProbe = null ;
492-
493491 // ------------------------------------------------------------- Properties
494492
495493 /**
@@ -1836,22 +1834,7 @@ void configureRemoteHostFilterValve(String allow, String deny) {
18361834
18371835 void addProbes (boolean globalAccessLoggingEnabled ) {
18381836
1839- List <String > listenerList = StringUtils .parseStringList (
1840- vsBean .getNetworkListeners (), "," );
1841- String [] listeners = (listenerList != null ) ?
1842- listenerList .toArray (new String [listenerList .size ()]) :
1843- new String [0 ];
1844- List <NetworkListener > networkListeners = new ArrayList <NetworkListener >();
1845-
1846- for (String listener : listeners ) {
1847- for (NetworkListener networkListener :
1848- serverConfig .getNetworkConfig ().getNetworkListeners ().getNetworkListener ()) {
1849- if (networkListener .getName ().equals (listener )) {
1850- networkListeners .add (networkListener );
1851- }
1852- }
1853- }
1854- for (final NetworkListener listener : networkListeners ) {
1837+ for (final NetworkListener listener : getGrizzlyNetworkListeners ()) {
18551838 try {
18561839 final GrizzlyProxy proxy = (GrizzlyProxy ) grizzlyService .lookupNetworkProxy (listener );
18571840 if (proxy != null ) {
@@ -1866,7 +1849,7 @@ void addProbes(boolean globalAccessLoggingEnabled) {
18661849 } else {
18671850 for (HttpCodecFilter codecFilter : codecFilters ) {
18681851 if (codecFilter .getMonitoringConfig ().getProbes ().length == 0 ) {
1869- httpProbe = new HttpProbeImpl (listener , isAccessLoggingEnabled (globalAccessLoggingEnabled ));
1852+ HttpProbeImpl httpProbe = new HttpProbeImpl (listener , isAccessLoggingEnabled (globalAccessLoggingEnabled ));
18701853 codecFilter .getMonitoringConfig ().addProbes (httpProbe );
18711854 }
18721855 }
@@ -1946,8 +1929,9 @@ void reconfigureAccessLog(
19461929 webcontainerFeatureFactory );
19471930 if (restart ) {
19481931 accessLogValve .start ();
1949- if (httpProbe != null )
1950- httpProbe .enableAccessLogging ();
1932+ for (HttpProbeImpl p : getHttpProbeImpl ()) {
1933+ p .enableAccessLogging ();
1934+ }
19511935 }
19521936 } catch (LifecycleException le ) {
19531937 _logger .log (Level .SEVERE , UNABLE_RECONFIGURE_ACCESS_LOG , le );
@@ -1975,8 +1959,9 @@ void enableAccessLogging() {
19751959 accessLogValve .stop ();
19761960 }
19771961 accessLogValve .start ();
1978- if (httpProbe != null )
1979- httpProbe .enableAccessLogging ();
1962+ for (HttpProbeImpl p : getHttpProbeImpl ()) {
1963+ p .enableAccessLogging ();
1964+ }
19801965 } catch (LifecycleException le ) {
19811966 _logger .log (Level .SEVERE , UNABLE_RECONFIGURE_ACCESS_LOG , le );
19821967 }
@@ -1989,8 +1974,9 @@ void enableAccessLogging() {
19891974 */
19901975 void disableAccessLogging () {
19911976 removeValve (accessLogValve );
1992- if (httpProbe != null )
1993- httpProbe .disableAccessLogging ();
1977+ for (HttpProbeImpl p : getHttpProbeImpl ()) {
1978+ p .disableAccessLogging ();
1979+ }
19941980 }
19951981
19961982 /**
@@ -2714,8 +2700,46 @@ public void updateWebXml(ContextFacade facade, File file) throws Exception {
27142700 }
27152701 }
27162702
2703+ private List <NetworkListener > getGrizzlyNetworkListeners () {
2704+ List <String > listenerList = StringUtils .parseStringList (vsBean .getNetworkListeners (), "," );
2705+ String [] listeners = (listenerList != null ) ? listenerList .toArray (new String [listenerList .size ()]) : new String [0 ];
2706+ List <NetworkListener > networkListeners = new ArrayList <NetworkListener >();
27172707
2708+ for (String listener : listeners ) {
2709+ for (NetworkListener networkListener : serverConfig .getNetworkConfig ().getNetworkListeners ().getNetworkListener ()) {
2710+ if (networkListener .getName ().equals (listener )) {
2711+ networkListeners .add (networkListener );
2712+ }
2713+ }
2714+ }
27182715
2716+ return networkListeners ;
2717+ }
2718+
2719+ private List <HttpProbeImpl > getHttpProbeImpl () {
2720+ List <HttpProbeImpl > httpProbes = new ArrayList <>();
2721+ for (final NetworkListener listener : getGrizzlyNetworkListeners ()) {
2722+ final GrizzlyProxy proxy = (GrizzlyProxy ) grizzlyService .lookupNetworkProxy (listener );
2723+ if (proxy != null ) {
2724+ GenericGrizzlyListener grizzlyListener = (GenericGrizzlyListener ) proxy .getUnderlyingListener ();
2725+ List <HttpCodecFilter > codecFilters = grizzlyListener .getFilters (HttpCodecFilter .class );
2726+ if (codecFilters != null && !codecFilters .isEmpty ()) {
2727+ for (HttpCodecFilter codecFilter : codecFilters ) {
2728+ HttpProbe [] probes = codecFilter .getMonitoringConfig ().getProbes ();
2729+ if (probes != null ) {
2730+ for (HttpProbe probe : probes ) {
2731+ if (probe instanceof HttpProbeImpl ) {
2732+ httpProbes .add ((HttpProbeImpl )probe );
2733+ }
2734+ }
2735+ }
2736+ }
2737+ }
2738+ }
2739+ }
2740+
2741+ return httpProbes ;
2742+ }
27192743
27202744 // ---------------------------------------------------------- Nested Classes
27212745
0 commit comments