@@ -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