The code was right, but there was two lines of spurious unpack code in there left over from some previous connector modification. See CONNECTORS-882. I've attached a patch to the ticket; if there's another RC of 1.5 I'll pull it up there as well. But I don't think we should spin another RC for this problem alone.
Karl On Wed, Feb 5, 2014 at 2:00 PM, Karl Wright <[email protected]> wrote: > Sorry, that should have been: unpacking: > > > > // extract keep all metadata Flag > boolean keepAllMetadata = true; > if (index < outputDescription.length()) > { > keepAllMetadata = (outputDescription.charAt(index++) == '+'); > } > > > ... and here's the packing: > > boolean keepAllMetadata = true; > while (i < spec.getChildCount()) { > SpecificationNode sn = spec.getChild(i++); > > if(sn.getType().equals( > SolrConfig.NODE_KEEPMETADATA)) { > String value = sn.getAttributeValue(SolrConfig.ATTRIBUTE_VALUE); > keepAllMetadata = Boolean.parseBoolean(value); > } > ... > > } > ... > > // Keep all metadata flag > if (keepAllMetadata) > sb.append('+'); > else > sb.append('-'); > > > On Wed, Feb 5, 2014 at 1:58 PM, Karl Wright <[email protected]> wrote: > >> Hi Alessandro, >> The implementation was changed from the patch, for two reasons: first, >> because of backwards compatibility requirements, and second because the >> packing/unpacking was taking place at the wrong time. Here's the unpacking: >> >> boolean keepAllMetadata = true; >> while (i < spec.getChildCount()) { >> SpecificationNode sn = spec.getChild(i++); >> >> if(sn.getType().equals(SolrConfig.NODE_KEEPMETADATA)) { >> String value = sn.getAttributeValue(SolrConfig.ATTRIBUTE_VALUE); >> keepAllMetadata = Boolean.parseBoolean(value); >> } >> ... >> >> } >> >> // extract keep all metadata Flag >> boolean keepAllMetadata = true; >> if (index < outputDescription.length()) >> { >> keepAllMetadata = (outputDescription.charAt(index++) == '+'); >> } >> >> >> ... and here's the packing: >> >> // Keep all metadata flag >> if (keepAllMetadata) >> sb.append('+'); >> else >> sb.append('-'); >> >> >> This looks correct to me. What does your debugging session show? >> >> Karl >> >> >> >> >> On Wed, Feb 5, 2014 at 12:44 PM, Alessandro Benedetti < >> [email protected]> wrote: >> >>> Hi guys, >>> the flag keep All Metadata is broken. >>> After a debug session >>> In this line, whatever you click in the ui you get keepAllMetadata=true : >>> >>> >>> Class : >>> SolrConnector >>> >>> Code : >>> >>> // extract keep all metadata Flag >>> boolean keepAllMetadata = true; >>> if (index < outputDescription.length()) >>> { >>> keepAllMetadata = (outputDescription.charAt(index++) == '+'); >>> } >>> >>> It seems the implementation has been a little bit changed from our >>> original >>> patch... >>> Am I wrong ? Any hint ? >>> >>> Cheers >>> >>> >>> >>> -- >>> -------------------------- >>> >>> Benedetti Alessandro >>> Visiting card : http://about.me/alessandro_benedetti >>> >>> "Tyger, tyger burning bright >>> In the forests of the night, >>> What immortal hand or eye >>> Could frame thy fearful symmetry?" >>> >>> William Blake - Songs of Experience -1794 England >>> >> >> >
