Skip to content

Commit 91c5623

Browse files
committed
fix #41, only send metadata that has been explicity set
1 parent bf183ca commit 91c5623

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/main/java/com/marklogic/client/io/DocumentMetadataHandle.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,7 @@ private PropertiesImpl() {
278278
private DocumentPermissions permissions;
279279
private DocumentProperties properties;
280280
private int quality = 0;
281+
private boolean qualityModified = false;
281282
private ValueSerializer valueSerializer;
282283

283284
/**
@@ -407,6 +408,7 @@ public int getQuality() {
407408
*/
408409
public void setQuality(int quality) {
409410
this.quality = quality;
411+
this.qualityModified = true;
410412
}
411413
/**
412414
* Locally specifies the match quality for the document.
@@ -696,6 +698,7 @@ private void sendMetadataImpl(OutputStream out) {
696698
}
697699
}
698700
private void sendCollectionsImpl(XMLStreamWriter serializer) throws XMLStreamException {
701+
if ( getCollections() == null || getCollections().size() == 0 ) return;
699702
serializer.writeStartElement("rapi", "collections", REST_API_NS);
700703

701704
for (String collection: getCollections()) {
@@ -707,6 +710,7 @@ private void sendCollectionsImpl(XMLStreamWriter serializer) throws XMLStreamExc
707710
serializer.writeEndElement();
708711
}
709712
private void sendPermissionsImpl(XMLStreamWriter serializer) throws XMLStreamException {
713+
if ( getPermissions() == null || getPermissions().size() == 0 ) return;
710714
serializer.writeStartElement("rapi", "permissions", REST_API_NS);
711715

712716
for (Map.Entry<String, Set<Capability>> permission: getPermissions().entrySet()) {
@@ -728,6 +732,7 @@ private void sendPermissionsImpl(XMLStreamWriter serializer) throws XMLStreamExc
728732
serializer.writeEndElement();
729733
}
730734
private void sendPropertiesImpl(final XMLStreamWriter serializer) throws XMLStreamException, TransformerFactoryConfigurationError, TransformerException {
735+
if ( getProperties() == null || getProperties().size() == 0 ) return;
731736
serializer.writeStartElement("prop", "properties", PROPERTY_API_NS);
732737

733738
for (Map.Entry<QName, Object> property: getProperties().entrySet()) {
@@ -765,6 +770,7 @@ private void sendPropertiesImpl(final XMLStreamWriter serializer) throws XMLStre
765770
serializer.writeEndElement();
766771
}
767772
private void sendQualityImpl(XMLStreamWriter serializer) throws XMLStreamException {
773+
if ( qualityModified == false ) return;
768774
serializer.writeStartElement("rapi", "quality", REST_API_NS);
769775
serializer.writeCharacters(String.valueOf(getQuality()));
770776
serializer.writeEndElement();

0 commit comments

Comments
 (0)