Skip to content

Commit 30fa842

Browse files
committed
PR feedback
1 parent a030236 commit 30fa842

2 files changed

Lines changed: 13 additions & 8 deletions

File tree

ibm-mq-metrics/src/main/java/io/opentelemetry/ibm/mq/opentelemetry/ConfigWrapper.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import static java.util.Collections.emptyList;
99

10+
import java.io.BufferedReader;
1011
import java.io.IOException;
1112
import java.nio.charset.Charset;
1213
import java.nio.file.Files;
@@ -37,15 +38,19 @@ private ConfigWrapper(Map<String, ?> config) {
3738
this.config = config;
3839
}
3940

40-
@SuppressWarnings(
41-
"unchecked") // snakeyaml-engine returns Object; a valid config file is always a map
4241
public static ConfigWrapper parse(String configFile) throws IOException {
4342
Load load = new Load(LoadSettings.builder().build());
44-
Map<String, ?> config =
45-
(Map<String, ?>)
46-
load.loadFromReader(
47-
Files.newBufferedReader(Paths.get(configFile), Charset.defaultCharset()));
48-
return new ConfigWrapper(config);
43+
try (BufferedReader reader =
44+
Files.newBufferedReader(Paths.get(configFile), Charset.defaultCharset())) {
45+
Object loaded = load.loadFromReader(reader);
46+
if (!(loaded instanceof Map)) {
47+
throw new IllegalArgumentException(
48+
"Config file does not contain a YAML map: " + configFile);
49+
}
50+
@SuppressWarnings("unchecked") // Verified above
51+
Map<String, ?> config = (Map<String, ?>) loaded;
52+
return new ConfigWrapper(config);
53+
}
4954
}
5055

5156
public int getNumberOfThreads() {

ibm-mq-metrics/src/test/java/io/opentelemetry/ibm/mq/opentelemetry/ConfigWrapperTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void testTaskInitialDelay() throws Exception {
5757
}
5858

5959
@Test
60-
void testYamlTagDeserialisationRejected(@TempDir Path tempDir) throws IOException {
60+
void testYamlTagDeserializationRejected(@TempDir Path tempDir) throws IOException {
6161
Path tempFile = tempDir.resolve("gadget.yml");
6262
Files.write(tempFile, "!!java.lang.Runtime {}".getBytes(StandardCharsets.UTF_8));
6363
assertThatThrownBy(() -> ConfigWrapper.parse(tempFile.toString()))

0 commit comments

Comments
 (0)