You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by am...@apache.org on 2021/02/04 21:16:33 UTC
[atlas] 01/02: ATLAS-4136: Export Service: NPE if Options
Explicitly set to NULL
This is an automated email from the ASF dual-hosted git repository.
amestry pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git
commit 15cd0378ef54720349f28ef3f2624f93b4f5b30e
Author: Ashutosh Mestry <am...@cloudera.com>
AuthorDate: Thu Feb 4 09:58:57 2021 -0800
ATLAS-4136: Export Service: NPE if Options Explicitly set to NULL
---
.../apache/atlas/web/resources/AdminResource.java | 25 +++++++++++++---------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java b/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
index b20b404..e8fc111 100755
--- a/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
+++ b/webapp/src/main/java/org/apache/atlas/web/resources/AdminResource.java
@@ -390,7 +390,7 @@ public class AdminResource {
AtlasAuthorizationUtils.verifyAccess(new AtlasAdminAccessRequest(AtlasPrivilege.ADMIN_EXPORT), "export");
- boolean preventMultipleRequests = request != null
+ boolean preventMultipleRequests = request != null && request.getOptions() != null
&& !(request.getOptions().containsKey(AtlasExportRequest.OPTION_SKIP_LINEAGE)
|| request.getOptions().containsKey(AtlasExportRequest.OPTION_KEY_REPLICATED_TO));
if (preventMultipleRequests) {
@@ -455,7 +455,8 @@ public class AdminResource {
try {
AtlasImportRequest request = AtlasType.fromJson(jsonData, AtlasImportRequest.class);
- preventMultipleRequests = request != null && !request.getOptions().containsKey(AtlasImportRequest.OPTION_KEY_REPLICATED_FROM);
+ preventMultipleRequests = request != null && request.getOptions() != null
+ && !request.getOptions().containsKey(AtlasImportRequest.OPTION_KEY_REPLICATED_FROM);
if (preventMultipleRequests) {
acquireExportImportLock("import");
}
@@ -537,7 +538,8 @@ public class AdminResource {
try {
AtlasImportRequest request = AtlasType.fromJson(jsonData, AtlasImportRequest.class);
- preventMultipleRequests = request != null && request.getOptions().containsKey(AtlasImportRequest.OPTION_KEY_REPLICATED_FROM);
+ preventMultipleRequests = request != null && request.getOptions() != null
+ && request.getOptions().containsKey(AtlasImportRequest.OPTION_KEY_REPLICATED_FROM);
if (preventMultipleRequests) {
acquireExportImportLock("importFile");
@@ -783,16 +785,19 @@ public class AdminResource {
}
private void addToExportOperationAudits(boolean isSuccessful, AtlasExportResult result) throws AtlasBaseException {
- if (isSuccessful && CollectionUtils.isNotEmpty(result.getRequest().getItemsToExport())) {
+ if (!isSuccessful
+ || CollectionUtils.isEmpty(result.getRequest().getItemsToExport())
+ || result.getRequest().getOptions() == null) {
+ return;
+ }
- Map<String, Object> optionMap = result.getRequest().getOptions();
- optionMap.put(OPERATION_STATUS, result.getOperationStatus().name());
- String params = AtlasJson.toJson(optionMap);
+ Map<String, Object> optionMap = result.getRequest().getOptions();
+ optionMap.put(OPERATION_STATUS, result.getOperationStatus().name());
+ String params = AtlasJson.toJson(optionMap);
- List<AtlasObjectId> objectIds = result.getRequest().getItemsToExport();
+ List<AtlasObjectId> objectIds = result.getRequest().getItemsToExport();
- auditImportExportOperations(objectIds, AuditOperation.EXPORT, params);
- }
+ auditImportExportOperations(objectIds, AuditOperation.EXPORT, params);
}
private void auditImportExportOperations(List<AtlasObjectId> objectIds, AuditOperation auditOperation, String params) throws AtlasBaseException {