One of our users recently purchased an iPhone 3GS, previously they had been using a Blackberry with BIS & IMAP for months without issues. We had the user setup the device to sync email, contacts & calendar via Activesync. After setup, it would download messages...and then not work. If the user tried to sync, it would give the message "Cannot get mail the connection to the server failed" on the iPhone.
In the scalix-wireless.log, we saw a few of the following message repeated:
2009-10-01 11:03:13,607 WARN [WirelessServlet.doPost:119] SERVLET - deviceId: Appl88936CNW3QQ, user: username - Uncaught and unhandled exception was reported by the server:
S00000 internal server error
Message:Input request could not be processed
Stacktrace:
[Ljava.lang.StackTraceElement;@ecceab
at com.scalix.wireless.controller.command.SyncCommand.execute(SyncCommand.java:158)
at com.scalix.wireless.handlers.WirelessRequestImpl.execute(WirelessRequestImpl.java:176)
at com.scalix.wireless.HttpRequestHandler.handleRequest(HttpRequestHandler.java:138)
at com.scalix.wireless.WirelessServlet.doPost(WirelessServlet.java:113)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:158)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:156)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)
Caused by: org.jdom.input.JDOMParseException: Error on line 1022: XML document structures must start and end within the same entity.
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:504)
at com.scalix.wireless.utils.XmlUtils.parseXml(XmlUtils.java:82)
at com.scalix.wireless.api.entity.PlatformResponse.<init>(PlatformResponse.java:48)
at com.scalix.wireless.api.entity.MessageListSequence.<init>(MessageListSequence.java:96)
at com.scalix.wireless.api.service.PlatformClient.getMessageChanges(PlatformClient.java:655)
at com.scalix.wireless.controller.command.SyncCommand.doSync(SyncCommand.java:199)
at com.scalix.wireless.controller.command.SyncCommand.execute(SyncCommand.java:155)
... 33 more
Caused by: org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.scanContent(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanContent(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.jdom.input.SAXBuilder.build(SAXBuilder.java:489)
... 39 more
In omshowlog, we saw the following error:
ERROR IMAP Server Da(IMAP Server Pr) 10.01.09 12:04:18
[OM.UI 2203] MSL problem - item MIME structure not produced - see error log
File Name: ~/data/00000gh/00vrih1:1
User Name: First Last / email/CN=First Last
Current errno value: 1
Last Msg Id: 8CB568FCC5745D3-988-793(a)WEBMAIL-DF13.sysops.aol.com
Last Msg DirectRef: 0029fbf48499acf9
-> ct_FindDITEntry
<- ct_FindDITEntry
-> ct_MapDITEntryToRef
<- ct_MapDITEntryToRef
-> ct_MatchCounts
<- ct_MatchCounts
<- /build/11.4.5/src/lib/ombase/sfl/sfl_Blcked.c:1394[100,28875]
<- /build/11.4.5/src/lib/ombase/sfl/sfl_Blcked.c:1697[100,28875]
<- /build/11.4.5/src/lib/ct/ct_rdext.c:153[100,28875]
<- /build/11.4.5/src/lib/ct/ct_exext.c:133[100,28875]
<- /build/11.4.5/src/lib/ct/ct_open.c:904[100,28875]
<- /build/11.4.5/src/lib/ct/ct_open.c:919[100,28875]
-> ct_CloseCtner 0
<- /build/11.4.5/src/lib/ct/ct_octner.c:75[3,3433]
<- msl_readContainerOpenedParent
<- /build/11.4.5/src/bin/imap41/imap41_mime.c:139[101,2203]
We fixed the issue by using sxmboxexp to export the user's inbox. Deleted everything in the inbox. Then reimported the inbox using sxmboximp.
After that, sync worked as expected.