diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/ReflectingStringEscaper.java b/common/source/java/ch/systemsx/cisd/common/utilities/ReflectingStringEscaper.java index fee68b0dde03e3329af6a8a8ac22c4d9952ff81c..b60a47d4a5964368194a719abe0434f415c96db1 100644 --- a/common/source/java/ch/systemsx/cisd/common/utilities/ReflectingStringEscaper.java +++ b/common/source/java/ch/systemsx/cisd/common/utilities/ReflectingStringEscaper.java @@ -157,10 +157,24 @@ class ReflectingStringEscaperUnrestricted<T> extends ReflectingStringEscaperImpl private static class Visitor implements ReflectionStringTraverser.ReflectionFieldVisitor { + private final HashSet<String> unescapedProperties; + + private Visitor() + { + unescapedProperties = new HashSet<String>(); + // Don't escape these properties + unescapedProperties.add("permlink"); + } + public String tryVisit(String value, Object object, Field fieldOrNull) { - // Only change the value if the name of the field is in the list provided if (null == fieldOrNull) + { + return StringEscapeUtils.escapeHtml(value); + } + + // Don't escape the ones that are specified as not to be escaped + if (unescapedProperties.contains(fieldOrNull.getName())) { return null; }