[
https://issues.apache.org/jira/browse/YARN-10772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Wei-Chiu Chuang updated YARN-10772:
---
Description:
YARN-8363 migrated our usage of commons-lang to commons-lang3 in 3.2.0.
Unfortunately, it changed the API signature of
{code:java}
/**
*
* The request from clients to get a report of Applications matching the
* giving application types in the cluster from the
* ResourceManager.
*
*
* @see ApplicationClientProtocol#getApplications(GetApplicationsRequest)
*
* Setting any of the parameters to null, would just disable that
* filter
*
* @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 users,
Set queues,
Set applicationTypes,
Set applicationTags,
EnumSet applicationStates,
Range startRange,
Range finishRange,
Long limit) { {code}
The startRange and finishRange changed type from LongRange to Range.
It could cause problems when migrating applications, for example, from Hadoop
3.1 to 3.3.
was:
YARN-8363 migrated our usage of commons-lang to commons-lang3 in 3.2.0.
Unfortunately, it changed the API signature of
{code:java}
/**
*
* The request from clients to get a report of Applications matching the
* giving application types in the cluster from the
* ResourceManager.
*
*
* @see ApplicationClientProtocol#getApplications(GetApplicationsRequest)
*
* Setting any of the parameters to null, would just disable that
* filter
*
* @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 users,
Set queues,
Set applicationTypes,
Set applicationTags,
EnumSet applicationStates,
Range startRange,
Range finishRange,
Long limit) { {code}
It could cause problems when migrating applications, for example, from Hadoop
3.1 to 3.3.
> 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}
> /**
> *
> * The request from clients to get a report of Applications matching the
> * giving application types in the cluster from the
> * ResourceManager.
> *
> *
> * @see ApplicationClientProtocol#getApplications(GetApplicationsRequest)
> *
> * Setting any of the parameters to null, would just disable that
> * filter
> *
> * @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 u