From 68e2fc8946bd5113c276790b85bbbc8adffdfb50 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Fri, 9 Aug 2019 08:10:06 +0200
Subject: [PATCH] no-jira: fix more rerendering issues and flickering problems

---
 .../gui/components/ComponentRenderer.java     |  3 +-
 .../gui/components/choice/ChoiceRenderer.java |  6 ----
 .../impl/elements/SelectboxRenderer.java      |  4 +--
 .../elements/SingleSelectionRenderer.java     |  8 -----
 .../impl/elements/SpacerElementRenderer.java  |  8 -----
 .../elements/StaticTextElementRenderer.java   |  4 +--
 .../elements/TextAreaElementRenderer.java     |  9 +----
 .../table/AbstractFlexiTableRenderer.java     |  1 +
 .../table/FlexiTableClassicRenderer.java      |  1 +
 .../htmlheader/HtmlHeaderRenderer.java        | 19 +++--------
 .../HtmlStaticPageComponentRenderer.java      |  2 +-
 .../gui/components/image/ImageRenderer.java   |  6 ----
 .../panel/LayeredPanelRenderer.java           | 20 -----------
 .../gui/components/rating/RatingRenderer.java |  9 +----
 .../gui/components/table/TableRenderer.java   | 17 +++++-----
 .../text/TextComponentRenderer.java           |  8 -----
 .../textboxlist/TextBoxListRenderer.java      |  9 +----
 ...TranslationInterceptHandlerController.java | 34 ++++++-------------
 .../olat/modules/iq/IQComponentRenderer.java  | 14 +++-----
 19 files changed, 37 insertions(+), 145 deletions(-)

diff --git a/src/main/java/org/olat/core/gui/components/ComponentRenderer.java b/src/main/java/org/olat/core/gui/components/ComponentRenderer.java
index ed4cb117a65..ef7f12bb8a0 100644
--- a/src/main/java/org/olat/core/gui/components/ComponentRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/ComponentRenderer.java
@@ -41,7 +41,8 @@ import org.olat.core.gui.translator.Translator;
 public interface ComponentRenderer {
 
 	/**
-	 * calls must be threadsafe
+	 * Calls must be threadsafe and the caller set dirty to false on the component.
+	 * 
 	 * @param renderer
 	 * @param sb
 	 * @param source
diff --git a/src/main/java/org/olat/core/gui/components/choice/ChoiceRenderer.java b/src/main/java/org/olat/core/gui/components/choice/ChoiceRenderer.java
index 97dbbfff309..5cb3e21c6a2 100644
--- a/src/main/java/org/olat/core/gui/components/choice/ChoiceRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/choice/ChoiceRenderer.java
@@ -43,12 +43,6 @@ import org.olat.core.util.StringHelper;
  */
 public class ChoiceRenderer extends DefaultComponentRenderer {
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator,
-	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
 	@Override
 	public void render(Renderer renderer, StringOutput target, Component source, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SelectboxRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SelectboxRenderer.java
index 22a834736ae..9658ade6b0d 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SelectboxRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SelectboxRenderer.java
@@ -44,9 +44,7 @@ import org.olat.core.util.StringHelper;
  */
 class SelectboxRenderer extends DefaultComponentRenderer {
 
-	/**
-	 * @see org.olat.core.gui.components.ComponentRenderer#render(org.olat.core.gui.render.Renderer, org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component, org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator, org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
+
 	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionRenderer.java
index aa386ffc3f3..39b205cc668 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SingleSelectionRenderer.java
@@ -39,14 +39,6 @@ import org.olat.core.util.StringHelper;
  */
 class SingleSelectionRenderer extends DefaultComponentRenderer {
 
-	/**
-	 * @see org.olat.core.gui.components.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput,
-	 *      org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder,
-	 *      org.olat.core.gui.translator.Translator,
-	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
 	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SpacerElementRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SpacerElementRenderer.java
index e1fd848d3e9..0d23bd6b7fd 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SpacerElementRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/SpacerElementRenderer.java
@@ -36,14 +36,6 @@ import org.olat.core.gui.translator.Translator;
  */
 public class SpacerElementRenderer extends DefaultComponentRenderer {
 
-	/**
-	 * @see org.olat.core.gui.components.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput,
-	 *      org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder,
-	 *      org.olat.core.gui.translator.Translator,
-	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
 	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source,
 			URLBuilder ubu, Translator translator, RenderResult renderResult,
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/StaticTextElementRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/StaticTextElementRenderer.java
index e787b935844..672496bec8c 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/StaticTextElementRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/StaticTextElementRenderer.java
@@ -45,9 +45,7 @@ import org.olat.core.util.StringHelper;
  */
 class StaticTextElementRenderer extends DefaultComponentRenderer {
 
-	/**
-	 * @see org.olat.core.gui.components.ComponentRenderer#render(org.olat.core.gui.render.Renderer, org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component, org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator, org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
+	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
 
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java
index c34137d929e..f5c557f42e1 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/TextAreaElementRenderer.java
@@ -45,14 +45,7 @@ import org.olat.core.util.StringHelper;
  */
 class TextAreaElementRenderer extends DefaultComponentRenderer {
 
-	/**
-	 * @see org.olat.core.gui.components.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput,
-	 *      org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder,
-	 *      org.olat.core.gui.translator.Translator,
-	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
+
 	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
index 2551742adca..6d20fefbb83 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
@@ -387,6 +387,7 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere
 		if(item != null) {
 			Component cmp = item.getComponent();
 			cmp.getHTMLRendererSingleton().render(renderer, sb, cmp, ubu, translator, renderResult, args);
+			cmp.setDirty(false);
 		}
 	}
 	
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java
index 9df62051ce5..dce0146fdc8 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableClassicRenderer.java
@@ -229,6 +229,7 @@ class FlexiTableClassicRenderer extends AbstractFlexiTableRenderer implements Co
 
 			container.getHTMLRendererSingleton().render(renderer, target, container, ubu, translator, renderResult, null);
 			container.contextRemove("row");
+			container.setDirty(false);
 			
 			target.append("</td></tr>");
 		}
diff --git a/src/main/java/org/olat/core/gui/components/htmlheader/HtmlHeaderRenderer.java b/src/main/java/org/olat/core/gui/components/htmlheader/HtmlHeaderRenderer.java
index a3962985dc8..0d6928c79b2 100644
--- a/src/main/java/org/olat/core/gui/components/htmlheader/HtmlHeaderRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/htmlheader/HtmlHeaderRenderer.java
@@ -43,33 +43,22 @@ import org.olat.core.logging.OLATRuntimeException;
  */
 public class HtmlHeaderRenderer implements ComponentRenderer {
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator,
-	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
+
+	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
 		// nothing to render
 		throw new OLATRuntimeException(HtmlHeaderRenderer.class, "render method should never be called for JsCssHeaderRenderer", null);
 	}
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#renderBodyOnLoadJSFunctionCall(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component)
-	 */
+	@Override
 	public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) {
 		HtmlHeaderComponent hc = (HtmlHeaderComponent) source;
 		String js = hc.getJsBodyOnLoad();
 		if (js != null) sb.append(js);
 	}
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#renderHeaderIncludes(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator)
-	 */
+	@Override
 	public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderingState rstate) {
 		HtmlHeaderComponent hc = (HtmlHeaderComponent) source;
diff --git a/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponentRenderer.java b/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponentRenderer.java
index bc787249b4f..c874846a851 100644
--- a/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponentRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/htmlsite/HtmlStaticPageComponentRenderer.java
@@ -60,7 +60,7 @@ public class HtmlStaticPageComponentRenderer implements ComponentRenderer {
 		if (htmlContent != null && wrapperCssStyle != null) {
 			htmlContent = "<div style=\"" + wrapperCssStyle + "\">" + htmlContent + "</div>";			
 		}
-		// Indicate to framework that the page probably will load some media files
+		//S Indicate to framework that the page probably will load some media files
 		renderResult.setAsyncMediaResponsible(cpc); // indicate browser fetch of e.g. images includes in the rendered page should be directed to the cpcomponent so this component can deliver the e.g. images
 		if (htmlContent != null) target.append(htmlContent);
 	}
diff --git a/src/main/java/org/olat/core/gui/components/image/ImageRenderer.java b/src/main/java/org/olat/core/gui/components/image/ImageRenderer.java
index fbb622e90eb..3a31ee9dbdb 100644
--- a/src/main/java/org/olat/core/gui/components/image/ImageRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/image/ImageRenderer.java
@@ -44,12 +44,6 @@ import org.olat.core.util.StringHelper;
  */
 public class ImageRenderer extends DefaultComponentRenderer {
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator,
-	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
 	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
diff --git a/src/main/java/org/olat/core/gui/components/panel/LayeredPanelRenderer.java b/src/main/java/org/olat/core/gui/components/panel/LayeredPanelRenderer.java
index a1a93a84b70..2ef0fa83e29 100644
--- a/src/main/java/org/olat/core/gui/components/panel/LayeredPanelRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/panel/LayeredPanelRenderer.java
@@ -42,14 +42,6 @@ import org.olat.core.gui.translator.Translator;
  */
 public class LayeredPanelRenderer extends PanelRenderer {
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput,
-	 *      org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder,
-	 *      org.olat.core.gui.translator.Translator,
-	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
 	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source,
 			URLBuilder ubu, Translator translator, RenderResult renderResult,
@@ -82,13 +74,6 @@ public class LayeredPanelRenderer extends PanelRenderer {
 		}
 	}
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#renderHeaderIncludes(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput,
-	 *      org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder,
-	 *      org.olat.core.gui.translator.Translator)
-	 */
 	@Override
 	public void renderHeaderIncludes(Renderer renderer, StringOutput sb,
 			Component source, URLBuilder ubu, Translator translator,
@@ -104,11 +89,6 @@ public class LayeredPanelRenderer extends PanelRenderer {
 		}
 	}
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#renderBodyOnLoadJSFunctionCall(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput,
-	 *      org.olat.core.gui.components.Component)
-	 */
 	@Override
 	public void renderBodyOnLoadJSFunctionCall(Renderer renderer,
 			StringOutput sb, Component source, RenderingState rstate) {
diff --git a/src/main/java/org/olat/core/gui/components/rating/RatingRenderer.java b/src/main/java/org/olat/core/gui/components/rating/RatingRenderer.java
index 2b03e28c893..1371fe4b185 100644
--- a/src/main/java/org/olat/core/gui/components/rating/RatingRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/rating/RatingRenderer.java
@@ -44,14 +44,7 @@ import org.olat.core.util.StringHelper;
  */
 public class RatingRenderer extends DefaultComponentRenderer {
 
-	/**
-	 * @see org.olat.core.gui.components.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput,
-	 *      org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder,
-	 *      org.olat.core.gui.translator.Translator,
-	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
+
 	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
diff --git a/src/main/java/org/olat/core/gui/components/table/TableRenderer.java b/src/main/java/org/olat/core/gui/components/table/TableRenderer.java
index 69a4277bfcd..7484fec782f 100644
--- a/src/main/java/org/olat/core/gui/components/table/TableRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/table/TableRenderer.java
@@ -26,8 +26,10 @@
 
 package org.olat.core.gui.components.table;
 
+import java.io.IOException;
 import java.util.List;
 
+import org.apache.logging.log4j.Logger;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.DefaultComponentRenderer;
 import org.olat.core.gui.components.form.flexible.impl.NameValuePair;
@@ -37,7 +39,6 @@ import org.olat.core.gui.render.Renderer;
 import org.olat.core.gui.render.StringOutput;
 import org.olat.core.gui.render.URLBuilder;
 import org.olat.core.gui.translator.Translator;
-import org.apache.logging.log4j.Logger;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.StringHelper;
 
@@ -52,10 +53,7 @@ public class TableRenderer extends DefaultComponentRenderer {
 	
 	private static final Logger log = Tracing.createLoggerFor(TableRenderer.class);
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#render(org.olat.core.gui.render.Renderer, org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator, org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
+
 	@Override
 	public void render(final Renderer renderer, final StringOutput target, final Component source, final URLBuilder ubu, final Translator translator, final RenderResult renderResult,
 			final String[] args) {
@@ -281,9 +279,12 @@ public class TableRenderer extends DefaultComponentRenderer {
 			target.append("\">");
 			String action = cd.getAction(i);
 			if (action != null) {
-				StringOutput so = new StringOutput(100);
-				cd.renderValue(so, i, renderer);
-				appendSingleDataRowActionColumn(target, ubu, table, iframePostEnabled, i, currentPosInModel, j, cd, action, so.toString());
+				try(StringOutput so = new StringOutput(100)) {
+					cd.renderValue(so, i, renderer);
+					appendSingleDataRowActionColumn(target, ubu, table, iframePostEnabled, i, currentPosInModel, j, cd, action, so.toString());
+				} catch(IOException e) {
+					log.error("", e);
+				}
 			} else {
 				cd.renderValue(target, i, renderer);
 			}
diff --git a/src/main/java/org/olat/core/gui/components/text/TextComponentRenderer.java b/src/main/java/org/olat/core/gui/components/text/TextComponentRenderer.java
index 8fbd06a5b11..c60940c458c 100644
--- a/src/main/java/org/olat/core/gui/components/text/TextComponentRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/text/TextComponentRenderer.java
@@ -43,14 +43,6 @@ import org.olat.core.util.StringHelper;
  */
 class TextComponentRenderer extends DefaultComponentRenderer {
 
-	/**
-	 * @see org.olat.core.gui.components.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput,
-	 *      org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder,
-	 *      org.olat.core.gui.translator.Translator,
-	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
 	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
diff --git a/src/main/java/org/olat/core/gui/components/textboxlist/TextBoxListRenderer.java b/src/main/java/org/olat/core/gui/components/textboxlist/TextBoxListRenderer.java
index f98e9376255..6b881f55545 100644
--- a/src/main/java/org/olat/core/gui/components/textboxlist/TextBoxListRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/textboxlist/TextBoxListRenderer.java
@@ -45,14 +45,7 @@ import org.olat.core.util.Util;
  */
 public class TextBoxListRenderer extends DefaultComponentRenderer {
 
-	/**
-	 * @see org.olat.core.gui.components.ComponentRenderer#render(org.olat.core.gui.render.Renderer,
-	 *      org.olat.core.gui.render.StringOutput,
-	 *      org.olat.core.gui.components.Component,
-	 *      org.olat.core.gui.render.URLBuilder,
-	 *      org.olat.core.gui.translator.Translator,
-	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
+
 	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult,
 			String[] args) {
diff --git a/src/main/java/org/olat/core/util/i18n/ui/InlineTranslationInterceptHandlerController.java b/src/main/java/org/olat/core/util/i18n/ui/InlineTranslationInterceptHandlerController.java
index 5ee7ad4a1c0..e9c037a995b 100644
--- a/src/main/java/org/olat/core/util/i18n/ui/InlineTranslationInterceptHandlerController.java
+++ b/src/main/java/org/olat/core/util/i18n/ui/InlineTranslationInterceptHandlerController.java
@@ -148,41 +148,27 @@ public class InlineTranslationInterceptHandlerController extends BasicController
 				// we save the result in a new var since it is too early to
 				// append it
 				// to the 'stream' right now.
-				StringOutput sbOrig = new StringOutput();
-				try {
+				
+				try(StringOutput sbOrig = new StringOutput()) {
 					originalRenderer.render(renderer, sbOrig, source, ubu, translator, renderResult, args);
+					String rendered = sbOrig.toString();
+					
+					String renderedWithHTMLMarkup = InlineTranslationInterceptHandlerController.replaceLocalizationMarkupWithHTML(rendered,
+							inlineTranslationURLBuilder, getTranslator());
+					sb.append(renderedWithHTMLMarkup);
 				} catch (Exception e) {
 					String emsg = "exception while rendering component '" + source.getComponentName() + "' (" + source.getClass().getName() + ") "
 							+ source.getListenerInfo() + "<br />Message of exception: " + e.getMessage();
-					sbOrig.append("<span style=\"color:red\">Exception</span><br /><pre>" + emsg + "</pre>");
-				}
-
-				String rendered = sbOrig.toString();
-				String renderedWithHTMLMarkup = InlineTranslationInterceptHandlerController.replaceLocalizationMarkupWithHTML(rendered,
-						inlineTranslationURLBuilder, getTranslator());
-				sb.append(renderedWithHTMLMarkup);
+					sb.append("<span style=\"color:red\">Exception</span><br /><pre>" + emsg + "</pre>");
+				}	
 			}
-
-			/**
-			 * @see org.olat.core.gui.components.ComponentRenderer#renderHeaderIncludes(org.olat.core.gui.render.Renderer,
-			 *      org.olat.core.gui.render.StringOutput,
-			 *      org.olat.core.gui.components.Component,
-			 *      org.olat.core.gui.render.URLBuilder,
-			 *      org.olat.core.gui.translator.Translator,
-			 *      org.olat.core.gui.render.RenderingState)
-			 */
+			
 			@Override
 			public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 					RenderingState rstate) {
 				originalRenderer.renderHeaderIncludes(renderer, sb, source, ubu, translator, rstate);
 			}
 
-			/**
-			 * @see org.olat.core.gui.components.ComponentRenderer#renderBodyOnLoadJSFunctionCall(org.olat.core.gui.render.Renderer,
-			 *      org.olat.core.gui.render.StringOutput,
-			 *      org.olat.core.gui.components.Component,
-			 *      org.olat.core.gui.render.RenderingState)
-			 */
 			@Override
 			public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) {
 				originalRenderer.renderBodyOnLoadJSFunctionCall(renderer, sb, source, rstate);
diff --git a/src/main/java/org/olat/modules/iq/IQComponentRenderer.java b/src/main/java/org/olat/modules/iq/IQComponentRenderer.java
index 369bb94b337..325e8f95599 100644
--- a/src/main/java/org/olat/modules/iq/IQComponentRenderer.java
+++ b/src/main/java/org/olat/modules/iq/IQComponentRenderer.java
@@ -626,10 +626,8 @@ public class IQComponentRenderer implements ComponentRenderer {
 		feedback.render(sbTmp, ri);
 		sb.append(sbTmp);
 	}
-		
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#render(org.olat.core.gui.render.Renderer, org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component, org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator, org.olat.core.gui.render.RenderResult, java.lang.String[])
-	 */
+
+	@Override
 	public void render(Renderer renderer, StringOutput target, Component source, URLBuilder ubu, Translator translator, RenderResult renderResult, String[] args) {
 
 		IQComponent qticomp = (IQComponent)source;
@@ -641,16 +639,12 @@ public class IQComponentRenderer implements ComponentRenderer {
 		}		
 	}
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#renderHeaderIncludes(org.olat.core.gui.render.Renderer, org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component, org.olat.core.gui.render.URLBuilder, org.olat.core.gui.translator.Translator)
-	 */
+	@Override
 	public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator, RenderingState rstate) {
 		//
 	}
 
-	/**
-	 * @see org.olat.core.gui.render.ui.ComponentRenderer#renderBodyOnLoadJSFunctionCall(org.olat.core.gui.render.Renderer, org.olat.core.gui.render.StringOutput, org.olat.core.gui.components.Component)
-	 */
+	@Override
 	public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) {
 		//
 	}
-- 
GitLab