Index: lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java =================================================================== diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7266bcc81c24f62bf093e0cfd7f9ffae23c594ea --- lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80) +++ lams_common/src/java/org/lamsfoundation/lams/util/FileUtil.java (.../FileUtil.java) (revision 7266bcc81c24f62bf093e0cfd7f9ffae23c594ea) @@ -694,6 +694,7 @@ XStream conversionXml = xStream != null ? xStream : new XStream(new StaxDriver()); // allow parsing all classes conversionXml.addPermission(AnyTypePermission.ANY); + conversionXml.ignoreUnknownElements(); ConversionException finalException = null; String lastFieldRemoved = ""; ToolContentVersionFilter contentFilter = null; @@ -728,6 +729,13 @@ String message = ce.getMessage(); String classname = FileUtil.extractValue(message, "required-type"); String fieldname = FileUtil.extractValue(message, "message"); + /* + * alternative for field extraction + * String path = FileUtil.extractValue(message, "path"); + * int classFieldDelimiter = path.indexOf('/', 1); + * String classname = path.substring(1, classFieldDelimiter); + * String fieldname = path.substring(classFieldDelimiter + 1); + */ if ((fieldname == null) || fieldname.equals("") || lastFieldRemoved.equals(classname + "." + fieldname)) { // can't retry, so get out of here! @@ -769,7 +777,7 @@ startIndex = message.indexOf(":", startIndex + 1); if ((startIndex > -1) && ((startIndex + 2) < message.length())) { startIndex = startIndex + 2; - int endIndex = message.indexOf(" ", startIndex); + int endIndex = Math.min(message.indexOf(" ", startIndex), message.indexOf("\n", startIndex)); String value = message.substring(startIndex, endIndex); return value.trim(); }