You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by "Archana Rai (JIRA)" <ji...@apache.org> on 2018/04/19 11:15:00 UTC

[jira] [Resolved] (OLINGO-1127) SAP 1q and 2q language are not supported in Apache Olingo 2.0.6 and 2.0.7

     [ https://issues.apache.org/jira/browse/OLINGO-1127?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Archana Rai resolved OLINGO-1127.
---------------------------------
    Resolution: Fixed

> SAP 1q and 2q language are not supported in Apache Olingo 2.0.6 and 2.0.7
> -------------------------------------------------------------------------
>
>                 Key: OLINGO-1127
>                 URL: https://issues.apache.org/jira/browse/OLINGO-1127
>             Project: Olingo
>          Issue Type: Bug
>          Components: odata2-core
>    Affects Versions: V2 2.0.6, V2 2.0.7
>         Environment: OS- Windows 10, Java J2EE, Eclipse
>            Reporter: Vinod Kannur
>            Priority: Major
>              Labels: easyfix
>
> The accept language for 1q and 2q is not supported in Olingo.
> Please refer SAP documentation
> https://help.sap.com/saphelp_nw74/helpdata/en/91/f21f176f4d1014b6dd926db0e91070/content.htm 
> The batch request contains Accept Language <b> en-US-x-sappsd </b>
> Content-Type: application/http
> Content-Transfer-Encoding: binary
> GET UserSettingsSet HTTP/1.1
> sap-contextid-accept: header
> Accept: application/json
> Accept-Language: en-US-x-sappsd
> DataServiceVersion: 2.0
> MaxDataServiceVersion: 2.0
> sap-cancel-on-close: true
> I debugged and found that AcceptParser class would  check the language against the REGEX which fails and throws an exception.
>   public List<String> parseAcceptableLanguages() throws BatchException {
>     return parseQualifiedHeader(acceptLanguageHeaderValues,
>         REG_EX_ACCEPT_LANGUAGES_WITH_Q_FACTOR,
>         BatchException.INVALID_ACCEPT_LANGUAGE_HEADER);
>   }
> We use pom version 2.0.6 for Olingo in our productive code and I also tried in 2.0.7 version, which gives the same error.
> package org.apache.olingo.odata2.core.batch;
> import java.util.ArrayList;
> import java.util.List;
> import java.util.TreeSet;
> import java.util.regex.Matcher;
> import java.util.regex.Pattern;
> import org.apache.olingo.odata2.api.batch.BatchException;
> import org.apache.olingo.odata2.api.exception.MessageReference;
> /**
> *
> */
> public class AcceptParser
> private static final Pattern REG_EX_ACCEPT_LANGUAGES = Pattern
>       .compile("((?:(?:[a-z]{1,8})|(?:\\*))\\-?(?:[a-zA-Z]{1,8})?)");
> Since 1q and 2q are valid intermediate SAP languages which is used for translation, batch request should accept those languages. 
> Thanks,
> Vinod.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)