diff --git a/davmail-setup.nsi b/davmail-setup.nsi index 9f77839d..57608743 100644 --- a/davmail-setup.nsi +++ b/davmail-setup.nsi @@ -98,9 +98,9 @@ Section "MainSection" SEC01 File "dist\lib\mail-1.4.1.jar" File "dist\lib\slf4j-api-1.3.1.jar" File "dist\lib\slf4j-log4j12-1.3.1.jar" - File "dist\lib\stax-api-1.0.1.jar" + File "dist\lib\stax2-api-3.0.3.jar" File "dist\lib\swt-3.6-win32-x86.jar" - File "dist\lib\wstx-asl-3.2.7.jar" + File "dist\lib\woodstox-core-asl-4.0.9.jar" File "dist\lib\xercesImpl-2.8.1.jar" WriteRegStr HKEY_CURRENT_USER "Software\Microsoft\Windows\CurrentVersion\Run" "DavMail" "$INSTDIR\davmail.exe" @@ -169,9 +169,9 @@ no_quest: Delete "$INSTDIR\lib\mail-1.4.1.jar" Delete "$INSTDIR\lib\slf4j-api-1.3.1.jar" Delete "$INSTDIR\lib\slf4j-log4j12-1.3.1.jar" - Delete "$INSTDIR\lib\stax-api-1.0.1.jar" + Delete "$INSTDIR\lib\stax2-api-3.0.3.jar" Delete "$INSTDIR\lib\swt-3.6-win32-x86.jar" - Delete "$INSTDIR\lib\wstx-asl-3.2.7.jar" + Delete "$INSTDIR\lib\woodstox-core-asl-4.0.9.jar" Delete "$INSTDIR\lib\xercesImpl-2.8.1.jar" Delete "$INSTDIR\davmailservice.exe" diff --git a/davmail.jsmooth b/davmail.jsmooth index f366c238..7dd12219 100644 --- a/davmail.jsmooth +++ b/davmail.jsmooth @@ -21,9 +21,9 @@ dist/lib/mail-1.4.1.jar dist/lib/slf4j-api-1.3.1.jar dist/lib/slf4j-log4j12-1.3.1.jar -dist/lib/stax-api-1.0.1.jar +dist/lib/stax2-api-3.0.3.jar dist/lib/swt-3.6-win32-x86.jar -dist/lib/wstx-asl-3.2.7.jar +dist/lib/woodstox-core-asl-4.0.9.jar dist/lib/xercesImpl-2.8.1.jar false dist/davmail.exe diff --git a/davmailconsole.jsmooth b/davmailconsole.jsmooth index a1021970..1a8ac440 100644 --- a/davmailconsole.jsmooth +++ b/davmailconsole.jsmooth @@ -21,9 +21,9 @@ dist/lib/mail-1.4.1.jar dist/lib/slf4j-api-1.3.1.jar dist/lib/slf4j-log4j12-1.3.1.jar -dist/lib/stax-api-1.0.1.jar +dist/lib/stax2-api-3.0.3.jar dist/lib/swt-3.6-win32-x86.jar -dist/lib/wstx-asl-3.2.7.jar +dist/lib/woodstox-core-asl-4.0.9.jar dist/lib/xercesImpl-2.8.1.jar false dist/davmailconsole.exe diff --git a/davmailservice.jsmooth b/davmailservice.jsmooth index cbfd0908..fd077239 100644 --- a/davmailservice.jsmooth +++ b/davmailservice.jsmooth @@ -21,9 +21,9 @@ dist/lib/mail-1.4.1.jar dist/lib/slf4j-api-1.3.1.jar dist/lib/slf4j-log4j12-1.3.1.jar -dist/lib/stax-api-1.0.1.jar +dist/lib/stax2-api-3.0.3.jar dist/lib/swt-3.6-win32-x86.jar -dist/lib/wstx-asl-3.2.7.jar +dist/lib/woodstox-core-asl-4.0.9.jar dist/lib/xercesImpl-2.8.1.jar ${EXECUTABLEPATH} false diff --git a/lib/stax-api-1.0.1.jar b/lib/stax-api-1.0.1.jar deleted file mode 100644 index d9a16651..00000000 Binary files a/lib/stax-api-1.0.1.jar and /dev/null differ diff --git a/lib/stax2-api-3.0.3.jar b/lib/stax2-api-3.0.3.jar new file mode 100644 index 00000000..721feb2e Binary files /dev/null and b/lib/stax2-api-3.0.3.jar differ diff --git a/lib/woodstox-core-asl-4.0.9.jar b/lib/woodstox-core-asl-4.0.9.jar new file mode 100644 index 00000000..7f225fcb Binary files /dev/null and b/lib/woodstox-core-asl-4.0.9.jar differ diff --git a/lib/wstx-asl-3.2.7.jar b/lib/wstx-asl-3.2.7.jar deleted file mode 100644 index 27770170..00000000 Binary files a/lib/wstx-asl-3.2.7.jar and /dev/null differ diff --git a/pom.xml b/pom.xml index a37429de..543603a2 100644 --- a/pom.xml +++ b/pom.xml @@ -242,8 +242,8 @@ org.codehaus.woodstox - wstx-asl - 3.2.7 + woodstox-core-asl + 4.0.9 org.samba.jcifs diff --git a/src/java/davmail/exchange/ews/EWSMethod.java b/src/java/davmail/exchange/ews/EWSMethod.java index 3887dead..6fd75203 100644 --- a/src/java/davmail/exchange/ews/EWSMethod.java +++ b/src/java/davmail/exchange/ews/EWSMethod.java @@ -28,6 +28,7 @@ import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.log4j.Logger; +import org.codehaus.stax2.XMLStreamReader2; import javax.xml.stream.XMLStreamConstants; import javax.xml.stream.XMLStreamException; @@ -837,8 +838,14 @@ public abstract class EWSMethod extends PostMethod { protected void handleMimeContent(XMLStreamReader reader, Item responseItem) throws XMLStreamException { - byte[] base64MimeContent = reader.getElementText().getBytes(); - responseItem.mimeContent = Base64.decodeBase64(base64MimeContent); + if (reader instanceof XMLStreamReader2) { + // Stax2 parser: use enhanced base64 conversion + responseItem.mimeContent = ((XMLStreamReader2) reader).getElementAsBinary(); + } else { + // failover: slow and memory consuming conversion + byte[] base64MimeContent = reader.getElementText().getBytes(); + responseItem.mimeContent = Base64.decodeBase64(base64MimeContent); + } } protected void addExtendedPropertyValue(XMLStreamReader reader, Item item) throws XMLStreamException {