@@ -108,6 +108,7 @@ public class JmxApplicationProvider {
108
108
CURRENT_SNAPSHOT_VERSION_MINOR ;
109
109
110
110
public static final String PROPERTY_RETRY_WITHOUT_SSL = "prop_retry_without_ssl" ; // NOI18N
111
+ static final String PROPERTY_DISABLE_HEARTBEAT = "prop_disable_heartbeat" ; // NOI18N
111
112
private static final String PROPERTY_CONNECTION_STRING = "prop_conn_string" ; // NOI18N
112
113
private static final String PROPERTY_HOSTNAME = "prop_conn_hostname" ; // NOI18N
113
114
private static final String PROPERTY_ENV_PROVIDER_ID = "prop_env_provider_id" ; // NOI18N
@@ -384,8 +385,7 @@ private void scheduleHeartbeatImpl(boolean immediately) {
384
385
unavailableApps .clear ();
385
386
}
386
387
387
- Iterator <JmxApplication > appsI = apps .iterator ();
388
- while (appsI .hasNext ()) if (appsI .next ().isRemoved ()) appsI .remove ();
388
+ cleanupUnavailableApps (apps );
389
389
if (apps .isEmpty ()) {
390
390
heartbeatRunning = false ;
391
391
if (anotherHeartbeatPending ) { // just a safe fallback, likely not needed at all
@@ -443,8 +443,7 @@ public void propertyChange(PropertyChangeEvent evt) {
443
443
boolean pendingApps ;
444
444
445
445
synchronized (unavailableApps ) {
446
- Iterator <JmxApplication > appsI = unavailableApps .iterator ();
447
- while (appsI .hasNext ()) if (appsI .next ().isRemoved ()) appsI .remove ();
446
+ cleanupUnavailableApps (unavailableApps );
448
447
pendingApps = !unavailableApps .isEmpty ();
449
448
heartbeatRunning = false ;
450
449
}
@@ -461,6 +460,16 @@ public void propertyChange(PropertyChangeEvent evt) {
461
460
}
462
461
463
462
463
+ private void cleanupUnavailableApps (Set <JmxApplication > apps ) {
464
+ String trueS = Boolean .TRUE .toString ();
465
+ Iterator <JmxApplication > appsI = apps .iterator ();
466
+ while (appsI .hasNext ()) {
467
+ JmxApplication app = appsI .next ();
468
+ if (app .isRemoved () || trueS .equals (app .getStorage ().getCustomProperty (PROPERTY_DISABLE_HEARTBEAT )))
469
+ appsI .remove ();
470
+ }
471
+ }
472
+
464
473
465
474
private void cleanupCreatedHost (Set <Host > hosts , Host host ) {
466
475
// NOTE: this is not absolutely failsafe, if resolving the JMX application
0 commit comments