Skip to content

Commit f4b3872

Browse files
committed
Fix DockerPrinter NPE when Label or Env pairs are null
DockerPrinter.visitLabel() and visitEnv() used for-each loops directly on getPairs() which throws NPE when the list is null. Added null guards matching the existing pattern used for other nullable list fields like getFlags().
1 parent 8abf885 commit f4b3872

1 file changed

Lines changed: 16 additions & 12 deletions

File tree

rewrite-docker/src/main/java/org/openrewrite/docker/internal/DockerPrinter.java

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -157,13 +157,15 @@ public Docker visitArg(Docker.Arg arg, PrintOutputCapture<P> p) {
157157
public Docker visitEnv(Docker.Env env, PrintOutputCapture<P> p) {
158158
beforeSyntax(env, p);
159159
p.append(env.getKeyword());
160-
for (Docker.Env.EnvPair pair : env.getPairs()) {
161-
visitSpace(pair.getPrefix(), p);
162-
visit(pair.getKey(), p);
163-
if (pair.isHasEquals()) {
164-
p.append("=");
160+
if (env.getPairs() != null) {
161+
for (Docker.Env.EnvPair pair : env.getPairs()) {
162+
visitSpace(pair.getPrefix(), p);
163+
visit(pair.getKey(), p);
164+
if (pair.isHasEquals()) {
165+
p.append("=");
166+
}
167+
visit(pair.getValue(), p);
165168
}
166-
visit(pair.getValue(), p);
167169
}
168170
afterSyntax(env, p);
169171
return env;
@@ -173,13 +175,15 @@ public Docker visitEnv(Docker.Env env, PrintOutputCapture<P> p) {
173175
public Docker visitLabel(Docker.Label label, PrintOutputCapture<P> p) {
174176
beforeSyntax(label, p);
175177
p.append(label.getKeyword());
176-
for (Docker.Label.LabelPair pair : label.getPairs()) {
177-
visitSpace(pair.getPrefix(), p);
178-
visit(pair.getKey(), p);
179-
if (pair.isHasEquals()) {
180-
p.append("=");
178+
if (label.getPairs() != null) {
179+
for (Docker.Label.LabelPair pair : label.getPairs()) {
180+
visitSpace(pair.getPrefix(), p);
181+
visit(pair.getKey(), p);
182+
if (pair.isHasEquals()) {
183+
p.append("=");
184+
}
185+
visit(pair.getValue(), p);
181186
}
182-
visit(pair.getValue(), p);
183187
}
184188
afterSyntax(label, p);
185189
return label;

0 commit comments

Comments
 (0)