Resources: fix NPE when trying to get non-existing resource (#1098)

* Resources: fix NPE when trying to get non-existing resource

* Resources: support api version when listing generic resources
This commit is contained in:
Chuang 2020-03-19 13:16:46 +08:00 коммит произвёл GitHub
Родитель 340c432145
Коммит 30dbcda9bc
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
4 изменённых файлов: 948 добавлений и 775 удалений

Просмотреть файл

@ -63,6 +63,9 @@ final class GenericResourceImpl
@Override
public String apiVersion() {
if (apiVersion == null) {
apiVersion = ResourceUtils.defaultApiVersion(id(), manager().providers().getByName(ResourceUtils.resourceProviderFromResourceId(id())));
}
return apiVersion;
}

Просмотреть файл

@ -90,7 +90,8 @@ final class GenericResourcesImpl
public GenericResource getById(String id) {
Provider provider = this.manager().providers().getByName(ResourceUtils.resourceProviderFromResourceId(id));
String apiVersion = ResourceUtils.defaultApiVersion(id, provider);
return wrapModel(this.inner().getById(id, apiVersion)).withApiVersion(apiVersion);
GenericResourceImpl genericResource = wrapModel(this.inner().getById(id, apiVersion));
return genericResource == null ? null : genericResource.withApiVersion(apiVersion);
}
@Override
@ -132,6 +133,11 @@ final class GenericResourcesImpl
resourceType,
resourceName,
apiVersion);
if (inner == null) {
return null;
}
GenericResourceImpl resource = new GenericResourceImpl(
resourceName,
inner,

Просмотреть файл

@ -66,6 +66,7 @@ public class GenericResourcesTests extends ResourceManagerTestBase {
boolean found = false;
for (GenericResource gr: resourceList) {
if (gr.name().equals(resource.name())) {
Assert.assertNotNull(gr.apiVersion());
found = true;
break;
}

Различия файлов скрыты, потому что одна или несколько строк слишком длинны