From 31c4ba40d53dd0c9113ed6e831d227d58714a4e0 Mon Sep 17 00:00:00 2001
From: Christian Wulf <chw@informatik.uni-kiel.de>
Date: Mon, 8 Dec 2014 14:39:20 +0100
Subject: [PATCH] fixed bug in FileExtensionSwitch

---
 .../java/teetime/stage/FileExtensionSwitch.java     | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/main/java/teetime/stage/FileExtensionSwitch.java b/src/main/java/teetime/stage/FileExtensionSwitch.java
index 3824d223..5099b25a 100644
--- a/src/main/java/teetime/stage/FileExtensionSwitch.java
+++ b/src/main/java/teetime/stage/FileExtensionSwitch.java
@@ -1,17 +1,26 @@
 package teetime.stage;
 
 import java.io.File;
-import java.util.HashMap;
 import java.util.Map;
 
 import teetime.framework.AbstractConsumerStage;
 import teetime.framework.OutputPort;
+import teetime.util.HashMapWithDefault;
+import teetime.util.concurrent.hashmap.ValueFactory;
 
 import com.google.common.io.Files;
 
 public final class FileExtensionSwitch extends AbstractConsumerStage<File> {
 
-	private final Map<String, OutputPort<File>> fileExtensions = new HashMap<String, OutputPort<File>>();
+	private final OutputPort<File> unknownFileExtensionOutputPort = createOutputPort();
+
+	// BETTER use the hppc ObjectObjectMap that provide getOrDefault()
+	private final Map<String, OutputPort<File>> fileExtensions = new HashMapWithDefault<String, OutputPort<File>>(new ValueFactory<OutputPort<File>>() {
+		@Override
+		public OutputPort<File> create() {
+			return unknownFileExtensionOutputPort;
+		}
+	});
 
 	@Override
 	protected void execute(final File file) {
-- 
GitLab