@@ -530,6 +530,7 @@ void findViews_ApplyAdvice() {
530530 }
531531
532532 @ Test
533+ @ SuppressLogger (ViewRegistry .class )
533534 void findViews_OptInAndViewEnabled () {
534535 ViewBuilder enabledViewBuilder = View .builder ().setDescription ("enabled view" );
535536 SdkMeterProviderUtil .setEnabled (enabledViewBuilder , /* enabled= */ true );
@@ -547,6 +548,15 @@ void findViews_OptInAndViewEnabled() {
547548 disabledViewBuilder .build (),
548549 /* enabled= */ false );
549550
551+ ViewBuilder incompatibleDisabledViewBuilder =
552+ View .builder ().setAggregation (Aggregation .explicitBucketHistogram ());
553+ SdkMeterProviderUtil .setEnabled (incompatibleDisabledViewBuilder , /* enabled= */ false );
554+ RegisteredView incompatibleDisabledView =
555+ registeredView (
556+ InstrumentSelector .builder ().setName ("incompatible_disabled" ).build (),
557+ incompatibleDisabledViewBuilder .build (),
558+ /* enabled= */ false );
559+
550560 RegisteredView unsetEnabledView =
551561 registeredView (
552562 InstrumentSelector .builder ().setName ("opt_in_unset_view" ).build (),
@@ -557,7 +567,7 @@ void findViews_OptInAndViewEnabled() {
557567 ViewRegistry .create (
558568 DefaultAggregationSelector .getDefault (),
559569 CardinalityLimitSelector .defaultCardinalityLimitSelector (),
560- Arrays .asList (enabledView , disabledView , unsetEnabledView ));
570+ Arrays .asList (enabledView , disabledView , incompatibleDisabledView , unsetEnabledView ));
561571
562572 // OptIn instrument with no matching view gets DROP_REGISTERED_VIEW
563573 assertThat (
@@ -615,6 +625,21 @@ void findViews_OptInAndViewEnabled() {
615625 .hasSize (1 )
616626 .element (0 )
617627 .satisfies (rv -> assertThat (rv .getView ().getAggregation ()).isEqualTo (Aggregation .drop ()));
628+
629+ // Incompatible view with enabled=false still logs a warning and is ignored
630+ assertThat (
631+ viewRegistry .findViews (
632+ InstrumentDescriptor .create (
633+ "incompatible_disabled" ,
634+ "" ,
635+ "" ,
636+ InstrumentType .OBSERVABLE_COUNTER ,
637+ InstrumentValueType .LONG ,
638+ Advice .empty ()),
639+ INSTRUMENTATION_SCOPE_INFO ))
640+ .isEqualTo (Collections .singletonList (DEFAULT_REGISTERED_VIEW ));
641+ logs .assertContains (
642+ "View aggregation explicit_bucket_histogram is incompatible with instrument incompatible_disabled of type OBSERVABLE_COUNTER" );
618643 }
619644
620645 private static void assertAdviceFilter (RegisteredView view , AttributeKey <?>... expectedKeys ) {
0 commit comments