Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Detekt 1.23.0-RC1 Number of aliases for non-scalar nodes exceeds the specified max=10 #5980

@vladimirfx

Description

@vladimirfx

Non scalar YAML aliases limit is harcoded at unusable low level - 10. Please raise it at least to rules count and/or provide config property. This issues broks existing configs that applies DRY pritciple.

Expected Behavior

Correct config should be parsed normally.

Observed Behavior

Error raised when running task on project that uses test sources alias instead of copy-paste it:

    excludes: &testPatterns
      - '**/test/**'
      - '**/androidTest/**'
      - '**/integrationTest/**'
      - '**/src/integration/**'
      - '**/commonTest/**'
      - '**/jvmTest/**'
      - '**/jsTest/**'
      - '**/iosTest/**'
      - '**/*.Test.kt'

Exception:


Caused by: io.gitlab.arturbosch.detekt.api.Config$InvalidConfigurationError: Provided configuration file is invalid: Structure must be from type Map<String,Any>!
Number of aliases for non-scalar nodes exceeds the specified max=10
        at io.gitlab.arturbosch.detekt.core.config.YamlConfig$Companion.load(YamlConfig.kt:77)
        at io.gitlab.arturbosch.detekt.core.config.YamlConfig$Companion.load(YamlConfig.kt:66)
        at io.gitlab.arturbosch.detekt.core.config.ConfigurationsKt.parsePathConfig(Configurations.kt:43)
        at io.gitlab.arturbosch.detekt.core.config.ConfigurationsKt.loadConfiguration(Configurations.kt:16)
        at io.gitlab.arturbosch.detekt.core.tooling.ProcessingSpecSettingsBridgeKt$withSettings$configuration$1.invoke(ProcessingSpecSettingsBridge.kt:16)
        at io.gitlab.arturbosch.detekt.core.tooling.ProcessingSpecSettingsBridgeKt$withSettings$configuration$1.invoke(ProcessingSpecSettingsBridge.kt:16)
        at io.gitlab.arturbosch.detekt.core.util.PerformanceMonitor.measure(PerformanceMonitor.kt:43)
        at io.gitlab.arturbosch.detekt.core.tooling.ProcessingSpecSettingsBridgeKt.withSettings(ProcessingSpecSettingsBridge.kt:16)
        at io.gitlab.arturbosch.detekt.core.tooling.AnalysisFacade.runAnalysis$detekt_core(AnalysisFacade.kt:47)
        at io.gitlab.arturbosch.detekt.core.tooling.AnalysisFacade.run(AnalysisFacade.kt:25)
        at io.gitlab.arturbosch.detekt.cli.runners.Runner.call(Runner.kt:33)
        at io.gitlab.arturbosch.detekt.cli.runners.Runner.execute(Runner.kt:23)
        ... 150 more
Caused by: org.snakeyaml.engine.v2.exceptions.YamlEngineException: Number of aliases for non-scalar nodes exceeds the specified max=10
        at org.snakeyaml.engine.v2.composer.Composer.composeNode(Composer.java:192)
        at org.snakeyaml.engine.v2.composer.Composer.composeValueNode(Composer.java:364)
        at org.snakeyaml.engine.v2.composer.Composer.composeMappingChildren(Composer.java:343)
        at org.snakeyaml.engine.v2.composer.Composer.composeMappingNode(Composer.java:321)
        at org.snakeyaml.engine.v2.composer.Composer.composeNode(Composer.java:210)
        at org.snakeyaml.engine.v2.composer.Composer.composeValueNode(Composer.java:364)
        at org.snakeyaml.engine.v2.composer.Composer.composeMappingChildren(Composer.java:343)
        at org.snakeyaml.engine.v2.composer.Composer.composeMappingNode(Composer.java:321)
        at org.snakeyaml.engine.v2.composer.Composer.composeNode(Composer.java:210)
        at org.snakeyaml.engine.v2.composer.Composer.composeValueNode(Composer.java:364)
        at org.snakeyaml.engine.v2.composer.Composer.composeMappingChildren(Composer.java:343)
        at org.snakeyaml.engine.v2.composer.Composer.composeMappingNode(Composer.java:321)
        at org.snakeyaml.engine.v2.composer.Composer.composeNode(Composer.java:210)
        at org.snakeyaml.engine.v2.composer.Composer.next(Composer.java:162)
        at org.snakeyaml.engine.v2.composer.Composer.getSingleNode(Composer.java:128)
        at org.snakeyaml.engine.v2.api.Load.loadOne(Load.java:110)
        at org.snakeyaml.engine.v2.api.Load.loadFromReader(Load.java:134)
        at io.gitlab.arturbosch.detekt.core.config.YamlConfig$Companion.load(YamlConfig.kt:76)

Steps to Reproduce

Use any non-scalar YAML aliase 10+ times. In out config we use test sources list 36 times.

Context

Your Environment

  • Version of detekt used: 1.23.0-RC1
  • Version of Gradle used (if applicable): 8.0
  • Gradle scan link (add --scan option when running the gradle task):
  • Operating System and version:
  • Link to your project (if it's a public repository):

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions