From 858ba3f82a2068bc7c1dcfeceaba1838ed315d82 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Wed, 5 Jul 2017 18:27:47 +0200 Subject: [PATCH] Fix HTTP File Upload's SlotRequest Fixes SMACK-774. Thanks to Nathan Freitas for reporting this. --- .../httpfileupload/element/SlotRequest.java | 14 +++++++------- .../element/SlotRequest_V0_2.java | 9 +++++++++ .../httpfileupload/SlotRequestCreateTest.java | 18 +++++++++--------- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/SlotRequest.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/SlotRequest.java index 882e93054..961fc27e1 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/SlotRequest.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/SlotRequest.java @@ -32,9 +32,9 @@ public class SlotRequest extends IQ { public static final String ELEMENT = "request"; public static final String NAMESPACE = HttpFileUploadManager.NAMESPACE; - private final String filename; - private final long size; - private final String contentType; + protected final String filename; + protected final long size; + protected final String contentType; public SlotRequest(DomainBareJid uploadServiceAddress, String filename, long size) { this(uploadServiceAddress, filename, size, null); @@ -82,10 +82,10 @@ public class SlotRequest extends IQ { @Override protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) { - xml.rightAngleBracket(); - xml.element("filename", filename); - xml.element("size", String.valueOf(size)); - xml.optElement("content-type", contentType); + xml.attribute("filename", filename); + xml.attribute("size", String.valueOf(size)); + xml.optAttribute("content-type", contentType); + xml.setEmptyElement(); return xml; } } diff --git a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/SlotRequest_V0_2.java b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/SlotRequest_V0_2.java index 4a7b02244..719371f52 100644 --- a/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/SlotRequest_V0_2.java +++ b/smack-experimental/src/main/java/org/jivesoftware/smackx/httpfileupload/element/SlotRequest_V0_2.java @@ -40,4 +40,13 @@ public class SlotRequest_V0_2 extends SlotRequest { public SlotRequest_V0_2(DomainBareJid uploadServiceAddress, String filename, long size, String contentType) { super(uploadServiceAddress, filename, size, contentType, NAMESPACE); } + + @Override + protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) { + xml.rightAngleBracket(); + xml.element("filename", filename); + xml.element("size", String.valueOf(size)); + xml.optElement("content-type", contentType); + return xml; + } } diff --git a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java index 153dec1cc..e72c9dcf4 100644 --- a/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java +++ b/smack-experimental/src/test/java/org/jivesoftware/smackx/httpfileupload/SlotRequestCreateTest.java @@ -27,17 +27,17 @@ import org.jxmpp.stringprep.XmppStringprepException; public class SlotRequestCreateTest { String testRequest - = "" - + "my_juliet.png" - + "23456" - + "image/jpeg" - + ""; + = ""; String testRequestWithoutContentType - = "" - + "my_romeo.png" - + "52523" - + ""; + = ""; @Test public void checkSlotRequestCreation() throws XmppStringprepException {