This is an automated email from the ASF dual-hosted git repository.
wlo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/gobblin.git
The following commit(s) were added to refs/heads/master by this push:
new a28961370 [GOBBLIN-1906] Add null-check to
`JobConfigurationUtils.putStateIntoConfiguration` to avoid
`IllegalArgumentException` (#3770)
a28961370 is described below
commit a28961370ffbd41e740b9e6b9238b1c9d91ae6ac
Author: Kip Kohn <[email protected]>
AuthorDate: Mon Sep 18 13:27:13 2023 -0700
[GOBBLIN-1906] Add null-check to
`JobConfigurationUtils.putStateIntoConfiguration` to avoid
`IllegalArgumentException` (#3770)
---
.../main/java/org/apache/gobblin/writer/GobblinBaseOrcWriter.java | 5 ++---
.../java/org/apache/gobblin/runtime/mapreduce/MRJobLauncher.java | 3 ++-
.../src/main/java/org/apache/gobblin/util/JobConfigurationUtils.java | 5 ++++-
3 files changed, 8 insertions(+), 5 deletions(-)
diff --git
a/gobblin-modules/gobblin-orc/src/main/java/org/apache/gobblin/writer/GobblinBaseOrcWriter.java
b/gobblin-modules/gobblin-orc/src/main/java/org/apache/gobblin/writer/GobblinBaseOrcWriter.java
index ae671eeb3..739b84374 100644
---
a/gobblin-modules/gobblin-orc/src/main/java/org/apache/gobblin/writer/GobblinBaseOrcWriter.java
+++
b/gobblin-modules/gobblin-orc/src/main/java/org/apache/gobblin/writer/GobblinBaseOrcWriter.java
@@ -39,6 +39,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.gobblin.configuration.State;
import org.apache.gobblin.state.ConstructState;
+import org.apache.gobblin.util.JobConfigurationUtils;
/**
* A wrapper for ORC-core writer without dependency on Hive SerDe library.
@@ -117,9 +118,7 @@ public abstract class GobblinBaseOrcWriter<S, D> extends
FsDataWriter<D> {
// Create file-writer
this.writerConfig = new Configuration();
// Populate job Configurations into Conf as well so that configurations
related to ORC writer can be tuned easily.
- for (Object key : properties.getProperties().keySet()) {
- this.writerConfig.set((String) key, properties.getProp((String) key));
- }
+ JobConfigurationUtils.putStateIntoConfiguration(properties,
this.writerConfig);
OrcFile.WriterOptions options =
OrcFile.writerOptions(properties.getProperties(), this.writerConfig);
options.setSchema(typeDescription);
diff --git
a/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/mapreduce/MRJobLauncher.java
b/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/mapreduce/MRJobLauncher.java
index 1302cdab2..cd34fe1b5 100644
---
a/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/mapreduce/MRJobLauncher.java
+++
b/gobblin-runtime/src/main/java/org/apache/gobblin/runtime/mapreduce/MRJobLauncher.java
@@ -316,7 +316,8 @@ public class MRJobLauncher extends AbstractJobLauncher {
prepareHadoopJob(workUnits);
if (this.shouldPersistWorkUnitsThenCancel) {
- LOG.info("Cancelling job after persisting workunits beneath: " +
this.jobInputPath);
+ // NOTE: `warn` level is hack for including path among automatic
troubleshooter 'issues'
+ LOG.warn("Cancelling job after persisting workunits beneath: " +
this.jobInputPath);
jobState.setState(JobState.RunningState.CANCELLED);
return;
}
diff --git
a/gobblin-utility/src/main/java/org/apache/gobblin/util/JobConfigurationUtils.java
b/gobblin-utility/src/main/java/org/apache/gobblin/util/JobConfigurationUtils.java
index 957444cac..aad8d6aab 100644
---
a/gobblin-utility/src/main/java/org/apache/gobblin/util/JobConfigurationUtils.java
+++
b/gobblin-utility/src/main/java/org/apache/gobblin/util/JobConfigurationUtils.java
@@ -92,7 +92,10 @@ public class JobConfigurationUtils {
*/
public static void putStateIntoConfiguration(State state, Configuration
configuration) {
for (String key : state.getPropertyNames()) {
- configuration.set(key, state.getProp(key));
+ String value = state.getProp(key);
+ if (value != null) { // ignore `null`, to prevent
`IllegalArgumentException` from `Configuration::set`
+ configuration.set(key, value);
+ }
}
}