Aman Verma created SOLR-16363:
---------------------------------

             Summary: addDoc() in DirectUpdateHandler2 needs additional 
Exception Handling
                 Key: SOLR-16363
                 URL: https://issues.apache.org/jira/browse/SOLR-16363
             Project: Solr
          Issue Type: Improvement
      Security Level: Public (Default Security Level. Issues are Public)
          Components: UpdateRequestProcessors
    Affects Versions: 8.11.2
            Reporter: Aman Verma


In certain situation, to handle IllegalArgumentException while adding doc to 
solr is linked below

[https://github.com/apache/lucene-solr/blob/releases/lucene-solr/8.11.2/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java#L249|https://github.com/apache/lucene-solr/blob/releases/lucene-solr/8.11.2/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java#L250]

This can be problematic if IllegalArgumentException (of the following format) 
is thrown during processing of docs (in my case it was via Filters to 
URL-Decode a string)

 
{code:java}
 java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in 
escape (%) pattern - Error at index 0 in: "sy"{code}
The _iae.getMessage()_ in this case contains "{*}%){*}" which conflicts with 
String.format which would further throw
{code:java}
java.util.UnknownFormatConversionException: Conversion = ')'
        at java.util.Formatter.checkText(Unknown Source) ~[?:?]
        at java.util.Formatter.parse(Unknown Source) ~[?:?]
        at java.util.Formatter.format(Unknown Source) ~[?:?]
        at java.util.Formatter.format(Unknown Source) ~[?:?]
        at java.lang.String.format(Unknown Source) ~[?:?]
        at 
org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:249){code}
This particular exception is not caught and as a result the BAD_REQUEST was 
never returned to the client along with failure point in the chain.

The ticket is a proposal to make this more robust i.e., in this particular 
situation either getMessage() could replaceAll "%" or perhaps another try?

 

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to