Skip to content

Using repo pattern with asterisk for application causes YML error #727

Description

@jogjayr

Steps to

  1. Clone spring-cloud-config
  2. Modify spring-cloud-config-server's application.yml with the configuration given in the documentation:

spring: cloud: config: server: git: uri: https://github.com/spring-cloud-samples/config-repo repos: development: pattern: - */development - */staging uri: https://github.com/development/config-repo staging: pattern: - */qa - */production uri: https://github.com/staging/config-repo

(Note: Github has mangled my copy-paste, stripping out all newlines and whitespace. You can find the config here: http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_pattern_matching_and_multiple_repositories)

  1. Start the server

Expected:

Server starts without issues

Actual:

  • Server does not start

Stack trace

`
org.yaml.snakeyaml.scanner.ScannerException: while scanning an alias
in 'reader', line 13, column 19:
- */development

expected alphabetic or numeric character, but found /

in 'reader', line 13, column 20:
- */development

at org.yaml.snakeyaml.scanner.ScannerImpl.scanAnchor(ScannerImpl.java:1439) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchAlias(ScannerImpl.java:918) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:366) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:226) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockSequenceEntry.produce(ParserImpl.java:503) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockSequenceFirstEntry.produce(ParserImpl.java:495) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:157) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:147) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeSequenceNode(Composer.java:198) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:153) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:246) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:237) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:225) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:246) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:237) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:225) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:246) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:237) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:225) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:246) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:237) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:225) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:246) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:237) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:225) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:246) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:237) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:225) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:246) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:237) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:225) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:246) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:237) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:225) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:155) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:84) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:104) ~[snakeyaml-1.17.jar:na]
at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:471) ~[snakeyaml-1.17.jar:na]
at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:160) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:138) ~[spring-beans-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.boot.env.YamlPropertySourceLoader$Processor.process(YamlPropertySourceLoader.java:101) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:58) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.env.PropertySourcesLoader.load(PropertySourcesLoader.java:127) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.loadIntoGroup(ConfigFileApplicationListener.java:473) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:460) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.context.config.ConfigFileApplicationListener$Loader.load(ConfigFileApplicationListener.java:380) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.context.config.ConfigFileApplicationListener.addPropertySources(ConfigFileApplicationListener.java:215) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.context.config.ConfigFileApplicationListener.postProcessEnvironment(ConfigFileApplicationListener.java:184) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:171) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:157) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:122) ~[spring-context-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:73) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54) ~[spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:336) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at com.shn.maestro.ConfigServiceApplication.main(ConfigServiceApplication.java:11) [classes/:na]`

Note: Github has also mangled my stack trace a bit, or I couldn't figure out how to format it correctly. My apologies.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions