Skip to content

Commit

Permalink
GraylogExtendedLogFormatProperties throws NullPointerException
Browse files Browse the repository at this point in the history
when only 'logging.structured.gelf.host' is specified

Signed-off-by: Dmytro Nosan <[email protected]>
  • Loading branch information
nosan committed Jan 16, 2025
1 parent e48cfce commit fcfc1f8
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2012-2024 the original author or authors.
* Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -34,6 +34,11 @@ public record GraylogExtendedLogFormatProperties(String host, Service service) {

static final GraylogExtendedLogFormatProperties NONE = new GraylogExtendedLogFormatProperties(null, Service.NONE);

public GraylogExtendedLogFormatProperties(String host, Service service) {
this.host = host;
this.service = (service != null) ? service : Service.NONE;
}

GraylogExtendedLogFormatProperties withDefaults(Environment environment) {
String name = withFallbackProperty(environment, this.host, "spring.application.name");
Service service = this.service.withDefaults(environment);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2012-2024 the original author or authors.
* Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -41,6 +41,23 @@ void getBindsFromEnvironment() {
assertThat(properties).isEqualTo(new GraylogExtendedLogFormatProperties("spring", new Service("1.2.3")));
}

@Test
void getBindsFromEnvironmentWhenHostIsPresentAndServiceIsMissing() {
MockEnvironment environment = new MockEnvironment();
environment.setProperty("logging.structured.gelf.host", "spring");
GraylogExtendedLogFormatProperties properties = GraylogExtendedLogFormatProperties.get(environment);
assertThat(properties).isEqualTo(new GraylogExtendedLogFormatProperties("spring", Service.NONE));
}

@Test
void getBindsFromEnvironmentWhenHostIsPresentAndServiceIsMissingUsesApplicationVersion() {
MockEnvironment environment = new MockEnvironment();
environment.setProperty("logging.structured.gelf.host", "spring");
environment.setProperty("spring.application.version", "1.2.3");
GraylogExtendedLogFormatProperties properties = GraylogExtendedLogFormatProperties.get(environment);
assertThat(properties).isEqualTo(new GraylogExtendedLogFormatProperties("spring", new Service("1.2.3")));
}

@Test
void getWhenNoServiceNameUsesApplicationName() {
MockEnvironment environment = new MockEnvironment();
Expand Down

0 comments on commit fcfc1f8

Please sign in to comment.