[ 
https://issues.apache.org/jira/browse/YARN-10772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17346543#comment-17346543
 ] 

Akira Ajisaka commented on YARN-10772:
--------------------------------------

Hi [~weichiu], thank you for your report. LongRange comes from commons-lang 
2.x, so we need to add back commons-lang 2.x dependency to fix the 
compatibility.

BTW, in YARN-8363, we upgraded the signature to use commons-lang 3.x, which is 
still not good. If we upgrade commons-lang 4.x in the future, we break 
compatibility again. Instead, I want to create a public API to avoid the use of 
external library.

> Stable API GetApplicationsRequest#newInstance compatibility broken by 
> YARN-8363
> -------------------------------------------------------------------------------
>
>                 Key: YARN-10772
>                 URL: https://issues.apache.org/jira/browse/YARN-10772
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: api
>    Affects Versions: 3.2.0
>            Reporter: Wei-Chiu Chuang
>            Priority: Major
>
> YARN-8363 migrated our usage of commons-lang to commons-lang3 in 3.2.0.
>  
> Unfortunately, it changed the API signature of 
> {code:java}
> /**
>  * <p>
>  * The request from clients to get a report of Applications matching the
>  * giving application types in the cluster from the
>  * <code>ResourceManager</code>.
>  * </p>
>  *
>  * @see ApplicationClientProtocol#getApplications(GetApplicationsRequest)
>  *
>  * <p>Setting any of the parameters to null, would just disable that
>  * filter</p>
>  *
>  * @param scope {@link ApplicationsRequestScope} to filter by
>  * @param users list of users to filter by
>  * @param queues list of scheduler queues to filter by
>  * @param applicationTypes types of applications
>  * @param applicationTags application tags to filter by
>  * @param applicationStates application states to filter by
>  * @param startRange range of application start times to filter by
>  * @param finishRange range of application finish times to filter by
>  * @param limit number of applications to limit to
>  * @return {@link GetApplicationsRequest} to be used with
>  * {@link ApplicationClientProtocol#getApplications(GetApplicationsRequest)}
>  */
> @Public
> @Stable
> public static GetApplicationsRequest newInstance(
>     ApplicationsRequestScope scope,
>     Set<String> users,
>     Set<String> queues,
>     Set<String> applicationTypes,
>     Set<String> applicationTags,
>     EnumSet<YarnApplicationState> applicationStates,
>     Range<Long> startRange,
>     Range<Long> finishRange,
>     Long limit) { {code}
> The startRange and finishRange changed type from LongRange to Range<Long>.
> It could cause problems when migrating applications, for example, from Hadoop 
> 3.1 to 3.3.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to