diff --git a/internal/collector/iis/cache_metrics_test.go b/internal/collector/iis/cache_metrics_test.go index 336f51d8..eee05383 100644 --- a/internal/collector/iis/cache_metrics_test.go +++ b/internal/collector/iis/cache_metrics_test.go @@ -133,3 +133,8 @@ func (f cacheFixture[T]) Collect(dst *[]T) error { } func (f cacheFixture[T]) Close() {} + +func TestCloseBeforeCacheProviderInitialization(t *testing.T) { + t.Parallel() + require.NoError(t, New(nil).Close()) +} diff --git a/internal/collector/iis/iis.go b/internal/collector/iis/iis.go index 1921ec92..5e01676b 100644 --- a/internal/collector/iis/iis.go +++ b/internal/collector/iis/iis.go @@ -158,9 +158,16 @@ func (c *Collector) Close() error { c.perfDataCollectorWebService.Close() c.perfDataCollectorHttpServiceRequestQueues.Close() c.perfDataCollectorAppPoolWAS.Close() - c.w3SVCW3WPPerfDataCollector.Close() + + if c.w3SVCW3WPPerfDataCollector != nil { + c.w3SVCW3WPPerfDataCollector.Close() + } + c.w3SVCW3WPPerfDataCollectorV8.Close() - c.serviceCachePerfDataCollector.Close() + + if c.serviceCachePerfDataCollector != nil { + c.serviceCachePerfDataCollector.Close() + } return nil }