From 0b27fac7ec84d9770f1dc88529d8687801be02e4 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 7 May 2013 08:50:28 +0200
Subject: [PATCH] OO-534: fix loadtest mode

---
 .../olat/core/gui/components/Container.java   |  4 ++++
 .../org/olat/core/gui/components/Window.java  |  2 +-
 .../org/olat/core/gui/render/Renderer.java    | 21 ++++++++-----------
 3 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/src/main/java/org/olat/core/gui/components/Container.java b/src/main/java/org/olat/core/gui/components/Container.java
index 79ab79d993b..790bd473572 100644
--- a/src/main/java/org/olat/core/gui/components/Container.java
+++ b/src/main/java/org/olat/core/gui/components/Container.java
@@ -110,6 +110,10 @@ public abstract class Container extends Component implements ComponentCollection
 		return components.values();
 	}
 	
+	public Map<String,Component> getComponentMap() {
+		return components;
+	}
+	
 	public void clear() {
 		components.clear();
 	}
diff --git a/src/main/java/org/olat/core/gui/components/Window.java b/src/main/java/org/olat/core/gui/components/Window.java
index 0409dc21412..7eb9abd3ebc 100644
--- a/src/main/java/org/olat/core/gui/components/Window.java
+++ b/src/main/java/org/olat/core/gui/components/Window.java
@@ -1066,7 +1066,7 @@ public class Window extends Container {
 			boolean correctFullPath = true;
 			for (int i = res.length -1; i >= 0 && correctFullPath; i--) {
 				String cname = res[i];	
-				Container co = (Container) cur; // we did not record the leaf, so we know it's a container
+				ComponentCollection co = (ComponentCollection) cur; // we did not record the leaf, so we know it's a container
 				Component c = co.getComponent(cname);
 				if (c == null) {
 					correctFullPath = false;
diff --git a/src/main/java/org/olat/core/gui/render/Renderer.java b/src/main/java/org/olat/core/gui/render/Renderer.java
index e2371d389d4..839465929d7 100644
--- a/src/main/java/org/olat/core/gui/render/Renderer.java
+++ b/src/main/java/org/olat/core/gui/render/Renderer.java
@@ -26,6 +26,9 @@
 
 package org.olat.core.gui.render;
 
+import java.util.Iterator;
+import java.util.Map;
+
 import org.olat.core.defaults.dispatcher.StaticMediaDispatcher;
 import org.olat.core.gui.GUIInterna;
 import org.olat.core.gui.GlobalSettings;
@@ -43,16 +46,6 @@ import org.olat.core.util.WebappHelper;
  */
 public class Renderer {
 
-	/**
-	 * <code>showDebugInfo</code>
-	 */
-	//public static boolean showDebugInfo = false;
-	/**
-	 * true: use mini style, false: use traditional style
-	 */
-	//public static boolean debugMiniStyle = true;
-	
-
 	private URLBuilder urlBuilder;
 	private Translator translator;
 	private Container renderContainer;
@@ -235,16 +228,20 @@ public class Renderer {
 				Container ccpar = cc.getParent();
 				while (ccpar != null) { // omit content pane
 					// find out name under which cc was registered in its parent - that is the relevant name, not the name of the component itself
-					for (Component chd: ccpar.getComponents()) {
+					Map<String,Component> namedChildren = ccpar.getComponentMap();
+					for (Iterator<String> it_chd = namedChildren.keySet().iterator(); it_chd.hasNext();) {
+						String chdName = it_chd.next();
+						Component chd = ccpar.getComponent(chdName);
 						if (chd == cc) {
 							// found -> append name
-							pathsb.append(chd.getComponentName()).append('!');
+							pathsb.append(chdName).append('!');
 							break;
 						}
 					}
 					cc = ccpar;
 					ccpar = cc.getParent();
 				}			
+				System.out.println(pathsb.toString());
 				cubu.setComponentPath(pathsb.toString());
 			}
 			
-- 
GitLab