Restore to Shared Mailbox fails

  • 7023473
  • 25-Oct-2018
  • 16-Jan-2019

Environment

Retain 4.1+
Groupwise 2014+

Situation

When logging into Retain and accessing a shared folder, you try to restore a message back to Groupwise.  It looks like it restored, but when you check the client, the message body says:

"Error [ea1d] downloading item from remote server - "Error from third-party.""

If you check the RetainServer logs, you may also notice this line:


        [http-bio-48080-exec-3] FATAL com.gwava.workerutils.ErrorHandle - reportError: readItemRequest :: com.gwava.gwarchive.GroupWiseArchiveImpl.readItemRequest:2152 :: EXCEPTION : com.thoughtworks.xstream.io.StreamException:  : Error on line 9: The markup in the document following the root element must be well-formed. com.thoughtworks.xstream.io.StreamException:  : Error on line 9: The markup in the document following the root element must be well-formed.
        at com.thoughtworks.xstream.io.xml.JDomDriver.createReader(JDomDriver.java:76)
        at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1049)
        at com.gwava.gwarchive.GroupWiseArchiveImpl.readItemFromRetain(GroupWiseArchiveImpl.java:2304)
        at com.gwava.gwarchive.GroupWiseArchiveImpl.readItemRequest(GroupWiseArchiveImpl.java:2101)
        at sun.reflect.GeneratedMethodAccessor1157.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
        at sun.reflect.GeneratedMethodAccessor1129.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
        at sun.reflect.GeneratedMethodAccessor1128.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at com.sun.xml.ws.api.server.MethodUtil.invoke(MethodUtil.java:83)
        at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:250)
        at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:149)
        at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:88)
        at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)
        at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)
        at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)
        at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)
        at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:419)
        at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:868)
        at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:422)
        at com.sun.xml.ws.transport.http.servlet.ServletAdapter.invokeAsync(ServletAdapter.java:225)
        at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:161)
        at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:197)
        at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:81)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.jdom.input.JDOMParseException: Error on line 9: The markup in the document following the root element must be well-formed.
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:533)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:865)
        at com.thoughtworks.xstream.io.xml.JDomDriver.createReader(JDomDriver.java:71)
        ... 50 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 9; columnNumber: 11; The markup in the document following the root element must be well-formed.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
        at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1437)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$TrailingMiscDriver.next(XMLDocumentScannerImpl.java:1397)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
        at org.jdom.input.SAXBuilder.build(SAXBuilder.java:518)
        ... 52 more

Resolution

In order for the restore to work properly you will need to browse to this specific file on the Retain Server:
~/RetainServer/WEB-INF/classes/config/misc.properties

You will need to edit this file and at the very bottom, you will need to add this line:
disable.stub.uuid.check=1

Once you have that line in the file, save it and then restart tomcat.  This will allow the restores to a shared folder work properly.

Cause

The problem is that the user restoring the message to someone else's mailbox instead of their own.  Since it's a shared folder but not a shared mailbox, the restoration can have problems.  Therefore, the setting in the Resolution is the only way around the problem.

Feedback service temporarily unavailable. For content questions or problems, please contact Support.