diff --git a/config/checkstyle.xml b/config/checkstyle.xml
index a05c12726..041e31ffb 100644
--- a/config/checkstyle.xml
+++ b/config/checkstyle.xml
@@ -89,6 +89,11 @@
+
+
+
+
+
diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java
index 981b437a5..35dde99b4 100644
--- a/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java
+++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/IntrospectionProvider.java
@@ -123,7 +123,9 @@ public class IntrospectionProvider{
case "java.lang.String":
return value;
case "boolean":
+ // CHECKSTYLE:OFF
return Boolean.valueOf(value);
+ // CHECKSTYLE:ON
case "int":
return Integer.valueOf(value);
case "long":
diff --git a/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java b/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java
index 472ca1ddb..f6d5bdbbd 100644
--- a/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java
+++ b/smack-core/src/main/java/org/jivesoftware/smack/util/ParserUtils.java
@@ -129,6 +129,27 @@ public class ParserUtils {
return Resourcepart.from(resourcepartString);
}
+ /**
+ * Prase a string to a boolean value as per "xs:boolean". Valid input strings are "true", "1" for true, and "false", "0" for false.
+ *
+ * @param booleanString the input string.
+ * @return the boolean representation of the input string
+ * @throws IllegalArgumentException if the input string is not valid.
+ * @since 4.3.2
+ */
+ public static boolean parseXmlBoolean(String booleanString) {
+ switch (booleanString) {
+ case "true":
+ case "1":
+ return true;
+ case "false":
+ case "0":
+ return false;
+ default:
+ throw new IllegalArgumentException(booleanString + " is not a valid boolean string");
+ }
+ }
+
/**
* Get the boolean value of an argument.
*
@@ -141,7 +162,7 @@ public class ParserUtils {
if (valueString == null)
return null;
valueString = valueString.toLowerCase(Locale.US);
- return valueString.equals("true") || valueString.equals("0");
+ return parseXmlBoolean(valueString);
}
public static boolean getBooleanAttribute(XmlPullParser parser, String name,
diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProvider.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProvider.java
index 0a69ab4bd..6edf5ca0c 100644
--- a/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProvider.java
+++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/hoxt/provider/HttpOverXmppReqProvider.java
@@ -16,6 +16,8 @@
*/
package org.jivesoftware.smackx.hoxt.provider;
+import org.jivesoftware.smack.util.ParserUtils;
+
import org.jivesoftware.smackx.hoxt.packet.HttpMethod;
import org.jivesoftware.smackx.hoxt.packet.HttpOverXmppReq;
@@ -47,13 +49,13 @@ public class HttpOverXmppReqProvider extends AbstractHttpOverXmppProvider