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 {