diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index cb8029e0e56..61d992c17ab 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -74,6 +74,8 @@ Bug Fixes * SOLR-13207: In dismax and edismax "minimum should match" queries, the < operator not followed by a number will now return an HTTP 400 error rather than 500, and the error message will explain that < must be followed by a number. (Chris Hennick) +* SOLR-13762: Fix BinaryField support for non-binary wt's (Thomas Woeckinger via Jason Gerlowski) + Other Changes --------------------- diff --git a/solr/core/src/java/org/apache/solr/schema/BinaryField.java b/solr/core/src/java/org/apache/solr/schema/BinaryField.java index 39b895a2416..a7eb64b2d72 100644 --- a/solr/core/src/java/org/apache/solr/schema/BinaryField.java +++ b/solr/core/src/java/org/apache/solr/schema/BinaryField.java @@ -110,6 +110,9 @@ public class BinaryField extends FieldType { public Object toNativeType(Object val) { if (val instanceof byte[]) { return ByteBuffer.wrap((byte[]) val); + } else if (val instanceof CharSequence) { + final CharSequence valAsCharSequence = (CharSequence) val; + return ByteBuffer.wrap(Base64.base64ToByteArray(valAsCharSequence.toString())); } return super.toNativeType(val); } diff --git a/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java b/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java index 05fd0e7e962..1bce4222385 100644 --- a/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java +++ b/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java @@ -209,7 +209,6 @@ public abstract class AbstractAtomicUpdatesMultivalueTestBase extends EmbeddedSo } @Test - @AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-13762") public void testMultivalueBinaryField() throws SolrServerException, IOException { runTestForFieldWithoutQuery("binaryRemove", new byte[][] {new byte[] {0}, new byte[] {1}, new byte[] {2}, new byte[] {3}});