summaryrefslogtreecommitdiffstats
path: root/configgen
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahoo-inc.com>2017-06-14 20:05:20 +0200
committerBjørn Christian Seime <bjorncs@yahoo-inc.com>2017-06-15 10:59:16 +0200
commit96b644bf817b2b789d882008166793bd177c35c0 (patch)
tree743ea0dd0522556f3f5532a767a06bbe63478c6c /configgen
parent65a9c242caf0ad4e9d1d96c2faa7567b07b0ecd5 (diff)
Fix race condition in config maven plugin
The race occur during Maven parallel build where multiple threads will race to create the output directory.
Diffstat (limited to 'configgen')
-rw-r--r--configgen/src/main/scala/com/yahoo/config/codegen/JavaClassBuilder.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/configgen/src/main/scala/com/yahoo/config/codegen/JavaClassBuilder.scala b/configgen/src/main/scala/com/yahoo/config/codegen/JavaClassBuilder.scala
index c346338e543..f2ee4f74157 100644
--- a/configgen/src/main/scala/com/yahoo/config/codegen/JavaClassBuilder.scala
+++ b/configgen/src/main/scala/com/yahoo/config/codegen/JavaClassBuilder.scala
@@ -166,7 +166,9 @@ object JavaClassBuilder {
val subDirs: Array[String] = (PackagePrefix + namespace).split("""\.""")
for (subDir <- subDirs) {
dir = new File(dir, subDir)
- if (!dir.isDirectory && !dir.mkdir) throw new CodegenRuntimeException("Could not create " + dir.getPath)
+ this.synchronized {
+ if (!dir.isDirectory && !dir.mkdir) throw new CodegenRuntimeException("Could not create " + dir.getPath)
+ }
}
dir
}