From 2103306fa1020a6368a7b445f7518e636eb749e8 Mon Sep 17 00:00:00 2001 From: lasanthaDLPDS Date: Tue, 22 Oct 2019 19:45:25 +0530 Subject: [PATCH] Improve APPM source Fix formatting issues, add java doc comments, improve transaction handling --- .../GenericApplicationReleaseDAOImpl.java | 12 +- .../mgt/core/impl/ApplicationManagerImpl.java | 233 ++++++++++++------ ...ApplicationManagementPublisherAPIImpl.java | 25 +- .../DeviceManagementProviderServiceImpl.java | 8 +- 4 files changed, 185 insertions(+), 93 deletions(-) diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/application/release/GenericApplicationReleaseDAOImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/application/release/GenericApplicationReleaseDAOImpl.java index 3eefed7caa..ffe45ba3d3 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/application/release/GenericApplicationReleaseDAOImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/dao/impl/application/release/GenericApplicationReleaseDAOImpl.java @@ -585,20 +585,20 @@ public class GenericApplicationReleaseDAOImpl extends AbstractDAOImpl implements + "AR.CURRENT_STATE AS RELEASE_CURRENT_STATE, " + "AR.RATED_USERS AS RATED_USER_COUNT " + "FROM AP_APP_RELEASE AS AR " - + "WHERE AR.TENANT_ID = ? AND AR.PACKAGE_NAME IN ("; + + "WHERE AR.PACKAGE_NAME IN ("; - StringJoiner joiner = new StringJoiner(",", sql, ")"); + StringJoiner joiner = new StringJoiner(",", sql, ") AND AR.TENANT_ID = ? "); packages.stream().map(ignored -> "?").forEach(joiner::add); sql = joiner.toString(); try { Connection connection = this.getDBConnection(); try (PreparedStatement statement = connection.prepareStatement(sql)) { - statement.setInt(1, tenantId); - for (int y = 0; y < packages.size(); y++) { - // y +2 because tenantId parameter is 1 and the counter is starting at o for y - statement.setString(y+2, packages.get(y)); + int index = 1; + for (String packageName : packages) { + statement.setObject(index++, packageName); } + statement.setInt(index, tenantId); try (ResultSet resultSet = statement.executeQuery()) { List releaseDTOs = new ArrayList<>(); while (resultSet.next()) { diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java index a4db52b032..b7f63a1f79 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.core/src/main/java/org/wso2/carbon/device/application/mgt/core/impl/ApplicationManagerImpl.java @@ -195,16 +195,21 @@ public class ApplicationManagerImpl implements ApplicationManager { ApplicationDTO applicationDTO = APIUtil.convertToAppDTO(publicAppWrapper); ApplicationReleaseDTO applicationReleaseDTO = applicationDTO.getApplicationReleaseDTOs().get(0); String appInstallerUrl = publicAppStorePath + applicationReleaseDTO.getPackageName(); - //todo check app package name exist or not, do it in validation method applicationReleaseDTO.setInstallerName(appInstallerUrl); applicationReleaseDTO.setUuid(UUID.randomUUID().toString()); applicationReleaseDTO.setAppHashValue(DigestUtils.md5Hex(appInstallerUrl)); - ConnectionManagerUtil.openDBConnection(); - List exitingRelease; try { - exitingRelease = applicationReleaseDAO.getReleaseByPackages(Arrays.asList(applicationReleaseDTO.getPackageName()) - , tenantId); + ConnectionManagerUtil.openDBConnection(); + List exitingPubAppReleases = applicationReleaseDAO + .getReleaseByPackages(Collections.singletonList(applicationReleaseDTO.getPackageName()), tenantId); + if (!exitingPubAppReleases.isEmpty()){ + String msg = "Public app release exists for package name " + applicationReleaseDTO.getPackageName() + + ". Hence you can't add new public app for package name " + + applicationReleaseDTO.getPackageName(); + log.error(msg); + throw new BadRequestException(msg); + } } catch (ApplicationManagementDAOException e) { String msg = "Error Occured when fetching release: " + publicAppWrapper.getName(); log.error(msg); @@ -213,45 +218,18 @@ public class ApplicationManagerImpl implements ApplicationManager { ConnectionManagerUtil.closeDBConnection(); } - if (exitingRelease != null && !exitingRelease.isEmpty()) { - applicationDTO.getApplicationReleaseDTOs().clear(); - applicationReleaseDTO.setUuid(exitingRelease.get(0).getUuid()); - applicationReleaseDTO.setCurrentState(exitingRelease.get(0).getCurrentState()); - - try { - applicationReleaseDTO = addImageArtifacts(applicationReleaseDTO, applicationArtifact, tenantId); - applicationDTO.getApplicationReleaseDTOs().add(applicationReleaseDTO); - ConnectionManagerUtil.beginDBTransaction(); - applicationReleaseDAO.updateRelease(applicationReleaseDTO, tenantId); - ConnectionManagerUtil.commitDBTransaction(); - return APIUtil.appDtoToAppResponse(applicationDTO); - } catch (ApplicationManagementDAOException e) { - ConnectionManagerUtil.rollbackDBTransaction(); - String msg = "Error occurred when updating public app: " + publicAppWrapper.getName(); - log.error(msg, e); - throw new ApplicationManagementException(msg, e); - } catch (ResourceManagementException e) { - String msg = "Error occurred when adding artifacts of release: " + publicAppWrapper.getName(); - log.error(msg, e); - throw new ApplicationManagementException(msg, e); - } finally { - ConnectionManagerUtil.closeDBConnection(); - } - } else { + try { //uploading application artifacts - try { - applicationReleaseDTO = addImageArtifacts(applicationReleaseDTO, applicationArtifact, tenantId); - applicationDTO.getApplicationReleaseDTOs().clear(); - applicationDTO.getApplicationReleaseDTOs().add(applicationReleaseDTO); - } catch (ResourceManagementException e) { - String msg = "Error Occured when uploading artifacts of the public app: " + publicAppWrapper.getName(); - log.error(msg, e); - throw new ApplicationManagementException(msg, e); - } - //insert application data into database - return addAppDataIntoDB(applicationDTO, tenantId); + applicationReleaseDTO = addImageArtifacts(applicationReleaseDTO, applicationArtifact, tenantId); + applicationDTO.getApplicationReleaseDTOs().clear(); + applicationDTO.getApplicationReleaseDTOs().add(applicationReleaseDTO); + } catch (ResourceManagementException e) { + String msg = "Error Occured when uploading artifacts of the public app: " + publicAppWrapper.getName(); + log.error(msg, e); + throw new ApplicationManagementException(msg, e); } - + //insert application data into database + return addAppDataIntoDB(applicationDTO, tenantId); } @Override @@ -316,6 +294,13 @@ public class ApplicationManagerImpl implements ApplicationManager { } } + /** + * Delete Application release artifacts + * + * @param directoryPaths Directory paths + * @param tenantId Tenant Id + * @throws ApplicationManagementException if error occurred while deleting application release artifacts. + */ private void deleteApplicationArtifacts(List directoryPaths, int tenantId) throws ApplicationManagementException { ApplicationStorageManager applicationStorageManager = DAOUtil.getApplicationStorageManager(); try { @@ -328,6 +313,17 @@ public class ApplicationManagerImpl implements ApplicationManager { } } + /** + * To add Application release artifacts + * + * @param deviceType Device Type + * @param applicationReleaseDTO Application Release + * @param applicationArtifact Application release artifacts + * @param isNewRelease Is new release or Not + * @return {@link ApplicationReleaseDTO} + * @throws ResourceManagementException if error occurred while handling application release artifacts. + * @throws ApplicationManagementException if error occurred while handling application release data. + */ private ApplicationReleaseDTO addApplicationReleaseArtifacts(String deviceType, ApplicationReleaseDTO applicationReleaseDTO, ApplicationArtifact applicationArtifact, boolean isNewRelease) throws ResourceManagementException, ApplicationManagementException { @@ -402,6 +398,16 @@ public class ApplicationManagerImpl implements ApplicationManager { return applicationReleaseDTO; } + /** + * This method could be used to update enterprise application release artifacts. + * + * @param deviceType Device Type + * @param applicationReleaseDTO Application Release + * @param applicationArtifact Application release artifacts + * @return {@link ApplicationReleaseDTO} + * @throws ResourceManagementException if error occurred while handling application release artifacts. + * @throws ApplicationManagementException if error occurred while handling application release data. + */ private ApplicationReleaseDTO updateEntAppReleaseArtifact(String deviceType, ApplicationReleaseDTO applicationReleaseDTO, ApplicationArtifact applicationArtifact) throws ResourceManagementException, ApplicationManagementException { @@ -489,6 +495,15 @@ public class ApplicationManagerImpl implements ApplicationManager { return applicationReleaseDTO; } + /** + * Add image artifacts into file system + * + * @param applicationReleaseDTO Application Release + * @param applicationArtifact Image artifacts + * @param tenantId Tenant Id + * @return {@link ApplicationReleaseDTO} + * @throws ResourceManagementException if error occurred while uploading image artifacts into file system. + */ private ApplicationReleaseDTO addImageArtifacts(ApplicationReleaseDTO applicationReleaseDTO, ApplicationArtifact applicationArtifact, int tenantId) throws ResourceManagementException { ApplicationStorageManager applicationStorageManager = DAOUtil.getApplicationStorageManager(); @@ -518,6 +533,14 @@ public class ApplicationManagerImpl implements ApplicationManager { return applicationReleaseDTO; } + /** + * Update Image artifacts of Application RApplication Release + * + * @param applicationArtifact Application release Artifacts + * @param tenantId Tenant Id + * @return {@link ApplicationReleaseDTO} + * @throws ResourceManagementException if error occurred while uploading application release artifacts into the file system. + */ private ApplicationReleaseDTO updateImageArtifacts(ApplicationReleaseDTO applicationReleaseDTO, ApplicationArtifact applicationArtifact, int tenantId) throws ResourceManagementException{ ApplicationStorageManager applicationStorageManager = DAOUtil.getApplicationStorageManager(); @@ -674,9 +697,19 @@ public class ApplicationManagerImpl implements ApplicationManager { } } + /** + * Check whether at least one filtering role is in app unrestricted roles. + * + * @param appUnrestrictedRoles Application unrestricted roles + * @param filteringUnrestrictedRoles Filtering roles + * @param userName Username + * @return True if one filtering unrestricted role is associated with application unrestricted roles. + * @throws BadRequestException if user doesn't have assigned at least one filtering role + * @throws UserStoreException if error occurred when checking whether user has assigned at least one filtering role. + */ private boolean hasAppUnrestrictedRole(List appUnrestrictedRoles, List filteringUnrestrictedRoles, String userName) throws BadRequestException, UserStoreException { - if (!haveAllUserRoles(filteringUnrestrictedRoles, userName)) { + if (!hasUserRole(filteringUnrestrictedRoles, userName)) { String msg = "At least one filtering role is not assigned for the user: " + userName + ". Hence user " + userName + " Can't filter applications by giving these unrestricted role list"; @@ -850,7 +883,7 @@ public class ApplicationManagerImpl implements ApplicationManager { throw new BadRequestException(msg); } DeviceType deviceType = APIUtil.getDeviceTypeData(applicationDTO.getDeviceTypeId()); - if (!isValidOsVersions(entAppReleaseWrapper.getSupportedOsVersions(), deviceType.getName())) { + if (isInvalidOsVersionRange(entAppReleaseWrapper.getSupportedOsVersions(), deviceType.getName())) { String msg = "You are trying to add application release which has invalid or unsupported OS versions in " + "the supportedOsVersions section. Hence, please re-evaluate the request payload."; log.error(msg); @@ -897,6 +930,13 @@ public class ApplicationManagerImpl implements ApplicationManager { } } + /** + * Get Application and all application releases associated to the application that has given application Id + * + * @param applicationId Application Id + * @return {@link ApplicationDTO} + * @throws ApplicationManagementException if error occurred application data from the databse. + */ private ApplicationDTO getApplication(int applicationId) throws ApplicationManagementException { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); try { @@ -909,8 +949,8 @@ public class ApplicationManagerImpl implements ApplicationManager { } return applicationDTO; } catch (DBConnectionException e) { - String msg = "Error occurred while obtaining the database connection for getting application for the " - + "application ID: " + applicationId; + String msg = "Error occurred while obtaining the database connection for getting application for the app ID" + + " " + applicationId; log.error(msg, e); throw new ApplicationManagementException(msg, e); } catch (ApplicationManagementDAOException e) { @@ -922,6 +962,17 @@ public class ApplicationManagerImpl implements ApplicationManager { } } + /** + * Upload enterprise application release artifact into file system. + * + * @param releaseDTO Apllication Release + * @param applicationArtifact Application Release artifacts + * @param deviceTypeName Device Type name + * @param tenantId Tenant Id + * @param isNewRelease New Release or Not + * @return {@link ApplicationReleaseDTO} + * @throws ApplicationManagementException if error occurred while uploading artifacts into file system. + */ private ApplicationReleaseDTO uploadEntAppReleaseArtifacts(ApplicationReleaseDTO releaseDTO, ApplicationArtifact applicationArtifact, String deviceTypeName, int tenantId, boolean isNewRelease) throws ApplicationManagementException { @@ -936,7 +987,16 @@ public class ApplicationManagerImpl implements ApplicationManager { } } - private boolean isValidOsVersions(String osRange, String deviceTypeName) + /** + * Check whether given OS range is valid or invalid + * + * @param osRange OS range + * @param deviceTypeName Device Type + * @return true if invalid OS range, Otherwise returns false + * @throws ApplicationManagementException if error occurred while getting device type version for lower OS version + * and higher OS version + */ + private boolean isInvalidOsVersionRange(String osRange, String deviceTypeName) throws ApplicationManagementException { String lowestSupportingOsVersion; String highestSupportingOsVersion = null; @@ -949,9 +1009,9 @@ public class ApplicationManagerImpl implements ApplicationManager { try { DeviceManagementProviderService deviceManagementProviderService = DAOUtil.getDeviceManagementService(); return deviceManagementProviderService.getDeviceTypeVersion(deviceTypeName, lowestSupportingOsVersion) - != null && (highestSupportingOsVersion == null - || deviceManagementProviderService.getDeviceTypeVersion(deviceTypeName, highestSupportingOsVersion) - != null); + == null || (highestSupportingOsVersion != null + && deviceManagementProviderService.getDeviceTypeVersion(deviceTypeName, highestSupportingOsVersion) + == null); } catch (DeviceManagementException e) { String msg = "Error occurred while getting supported device type versions for device type : " + deviceTypeName; @@ -1152,9 +1212,16 @@ public class ApplicationManagerImpl implements ApplicationManager { } } + /** + * Check whether at least one role is assigned to the given user. + * + * @param unrestrictedRoleList unrestricted role list + * @param userName Username + * @return true at least one unrestricted role has assigned to given user, otherwise returns false. + * @throws UserStoreException If it is unable to load {@link UserRealm} from {@link CarbonContext} + */ private boolean hasUserRole(Collection unrestrictedRoleList, String userName) throws UserStoreException { - String[] roleList; - roleList = getRolesOfUser(userName); + String[] roleList = getRolesOfUser(userName); for (String unrestrictedRole : unrestrictedRoleList) { for (String role : roleList) { if (unrestrictedRole.equals(role)) { @@ -1165,30 +1232,18 @@ public class ApplicationManagerImpl implements ApplicationManager { return false; } - private boolean haveAllUserRoles(Collection unrestrictedRoleList, String userName) - throws UserStoreException { - String[] roleList; - roleList = getRolesOfUser(userName); - for (String unrestrictedRole : unrestrictedRoleList) { - for (String role : roleList) { - if (!unrestrictedRole.equals(role)) { - return false; - } - } - } - return true; - } - + /** + * Check whether valid unrestricted role list or not + * + * @return true or false + * @throws UserStoreException If it is unable to load {@link UserRealm} from {@link CarbonContext} + */ private boolean isValidRestrictedRole(Collection unrestrictedRoleList) throws UserStoreException { - List roleList = new ArrayList<>(Arrays.asList(getRoleNames())); - return roleList.containsAll(unrestrictedRoleList); - } - - private String[] getRoleNames() throws UserStoreException { //todo check role by role UserRealm userRealm = CarbonContext.getThreadLocalCarbonContext().getUserRealm(); if (userRealm != null) { - return userRealm.getUserStoreManager().getRoleNames(); + List roleList = new ArrayList<>(Arrays.asList(userRealm.getUserStoreManager().getRoleNames())); + return roleList.containsAll(unrestrictedRoleList); } else { String msg = "User realm is not initiated."; log.error(msg); @@ -1196,6 +1251,13 @@ public class ApplicationManagerImpl implements ApplicationManager { } } + /** + * Get assigned role list of the given user. + * + * @param userName Username + * @return List of roles + * @throws UserStoreException If it is unable to load {@link UserRealm} from {@link CarbonContext} + */ private String[] getRolesOfUser(String userName) throws UserStoreException { UserRealm userRealm = CarbonContext.getThreadLocalCarbonContext().getUserRealm(); String[] roleList; @@ -2119,6 +2181,7 @@ public class ApplicationManagerImpl implements ApplicationManager { } } + @Override public List addApplicationTags(int appId, List tags) throws ApplicationManagementException { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); try { @@ -2171,6 +2234,7 @@ public class ApplicationManagerImpl implements ApplicationManager { } } + @Override public List addCategories(List categories) throws ApplicationManagementException { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); try { @@ -2291,7 +2355,12 @@ public class ApplicationManagerImpl implements ApplicationManager { return lifecycleStateManager.getInstallableState(); } - + /** + * This method can be used to validate {@link Filter} object. + * + * @param filter {@link Filter} + * @throws BadRequestException if filter object contains incompatible data. + */ private void validateFilter(Filter filter) throws BadRequestException { if (filter == null) { String msg = "Filter validation is failed, Filter shouldn't be null, hence please verify the request payload"; @@ -2340,9 +2409,16 @@ public class ApplicationManagerImpl implements ApplicationManager { log.error(msg); throw new BadRequestException(msg); } - } + /** + * This method can be used to get difference of two lists. + * + * @param list1 List of objects + * @param list2 List of object + * @param Object type + * @return return list of values which are not in the list2 but in the list1 + */ private List getDifference(List list1, Collection list2) { List list = new ArrayList<>(); for (T t : list1) { @@ -2353,7 +2429,7 @@ public class ApplicationManagerImpl implements ApplicationManager { return list; } - /*** + /** * By invoking the method, it returns Lifecycle State Instance. * @param currentState Current state of the lifecycle * @param previousState Previouse state of the Lifecycle @@ -2726,7 +2802,7 @@ public class ApplicationManagerImpl implements ApplicationManager { .equals(appType)) { DeviceType deviceTypeObj = APIUtil.getDeviceTypeData(applicationDTO.getDeviceTypeId()); String supportedOSVersions = applicationReleaseDTO.getSupportedOsVersions(); - if (!StringUtils.isEmpty(supportedOSVersions) && !isValidOsVersions(supportedOSVersions, + if (!StringUtils.isEmpty(supportedOSVersions) && isInvalidOsVersionRange(supportedOSVersions, deviceTypeObj.getName())) { String msg = "You are trying to update application release which has invalid or unsupported OS " + "versions in the supportedOsVersions section. Hence, please re-evaluate the request payload."; @@ -2736,7 +2812,6 @@ public class ApplicationManagerImpl implements ApplicationManager { } } - @Override public void validateAppCreatingRequest(T param) throws ApplicationManagementException { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(true); @@ -2988,7 +3063,7 @@ public class ApplicationManagerImpl implements ApplicationManager { log.error(msg); throw new BadRequestException(msg); } - if (!isValidOsVersions(entAppReleaseWrapper.get().getSupportedOsVersions(), deviceType)) { + if (isInvalidOsVersionRange(entAppReleaseWrapper.get().getSupportedOsVersions(), deviceType)) { String msg = "You are trying to create application which has an application release contains invalid or " + "unsupported OS versions in the supportedOsVersions section. Hence, please re-evaluate the " + "request payload."; @@ -3031,7 +3106,7 @@ public class ApplicationManagerImpl implements ApplicationManager { log.error(msg); throw new BadRequestException(msg); } - if (!isValidOsVersions(publicAppReleaseWrapper.getSupportedOsVersions(), deviceType)) { + if (isInvalidOsVersionRange(publicAppReleaseWrapper.getSupportedOsVersions(), deviceType)) { String msg = "You are trying to create application which has an application release contains invalid or " + "unsupported OS versions in the supportedOsVersions section. Hence, please re-evaluate the " + "request payload."; diff --git a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.api/src/main/java/org/wso2/carbon/device/application/mgt/publisher/api/services/impl/ApplicationManagementPublisherAPIImpl.java b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.api/src/main/java/org/wso2/carbon/device/application/mgt/publisher/api/services/impl/ApplicationManagementPublisherAPIImpl.java index 499b59815b..5e0e765239 100644 --- a/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.api/src/main/java/org/wso2/carbon/device/application/mgt/publisher/api/services/impl/ApplicationManagementPublisherAPIImpl.java +++ b/components/application-mgt/org.wso2.carbon.device.application.mgt.publisher.api/src/main/java/org/wso2/carbon/device/application/mgt/publisher/api/services/impl/ApplicationManagementPublisherAPIImpl.java @@ -198,12 +198,16 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem log.error(msg); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); } + } catch (BadRequestException e) { + String msg = "Found incompatible payload with ent. app creating request."; + log.error(msg, e); + return Response.status(Response.Status.BAD_REQUEST).entity(msg).build(); } catch (ApplicationManagementException e) { String msg = "Error occurred while creating the ent. application"; log.error(msg, e); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); } catch (RequestValidatingException e) { - String msg = "Error occurred while handling the ent. application creating request"; + String msg = "Couldn't find the required artifacts to create new ent. application with the request"; log.error(msg, e); return Response.status(Response.Status.BAD_REQUEST).entity(msg).build(); } @@ -237,12 +241,16 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem log.error(msg); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); } + } catch (BadRequestException e) { + String msg = "Found incompatible payload with web app creating request."; + log.error(msg, e); + return Response.status(Response.Status.BAD_REQUEST).entity(msg).build(); } catch (ApplicationManagementException e) { String msg = "Error occurred while creating the web application"; log.error(msg, e); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); } catch (RequestValidatingException e) { - String msg = "Error occurred while handling the web app creating request"; + String msg = "Couldn't find the required artifacts to create new web application with the request"; log.error(msg, e); return Response.status(Response.Status.BAD_REQUEST).entity(msg).build(); } @@ -276,12 +284,16 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem log.error(msg); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); } + } catch (BadRequestException e) { + String msg = "Found incompatible payload with pub app creating request."; + log.error(msg, e); + return Response.status(Response.Status.BAD_REQUEST).entity(msg).build(); } catch (ApplicationManagementException e) { String msg = "Error occurred while creating the public app."; log.error(msg, e); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); } catch (RequestValidatingException e) { - String msg = "Error occurred while handling the public app creating request"; + String msg = "Couldn't find the required artifacts to create new public application with the request"; log.error(msg, e); return Response.status(Response.Status.BAD_REQUEST).entity(msg).build(); } @@ -317,12 +329,16 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem log.error(msg); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); } + } catch (BadRequestException e) { + String msg = "Found incompatible payload with pub custom creating request."; + log.error(msg, e); + return Response.status(Response.Status.BAD_REQUEST).entity(msg).build(); } catch (ApplicationManagementException e) { String msg = "Error occurred while creating the application"; log.error(msg, e); return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(msg).build(); } catch (RequestValidatingException e) { - String msg = "Error occurred while handling the application creating request"; + String msg = "Couldn't find the required artifacts to create new custom application with the request"; log.error(msg, e); return Response.status(Response.Status.BAD_REQUEST).entity(msg).build(); } @@ -908,6 +924,7 @@ public class ApplicationManagementPublisherAPIImpl implements ApplicationManagem } /*** + * This method can be used to construct {@link ApplicationArtifact} * * @param binaryFile binary file of the application release * @param iconFile icon file of the application release diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java index 794d679652..613bb80167 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.core/src/main/java/org/wso2/carbon/device/mgt/core/service/DeviceManagementProviderServiceImpl.java @@ -3711,7 +3711,6 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv log.debug("Getting all devices details for device ids: " + devicesIds); } PaginationResult paginationResult = new PaginationResult(); - int count; List subscribedDeviceDetails; try { DeviceManagementDAOFactory.openConnection(); @@ -3721,12 +3720,11 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv paginationResult.setData(new ArrayList<>()); paginationResult.setRecordsFiltered(0); paginationResult.setRecordsTotal(0); + return paginationResult; } - count = deviceDAO.getSubscribedDeviceCount(devicesIds, tenantId, status); - paginationResult.setData(getAllDeviceInfo(subscribedDeviceDetails)); + int count = deviceDAO.getSubscribedDeviceCount(devicesIds, tenantId, status); paginationResult.setRecordsFiltered(count); paginationResult.setRecordsTotal(count); - return paginationResult; } catch (DeviceManagementDAOException e) { String msg = "Error occurred while retrieving device list for device ids " + devicesIds; log.error(msg, e); @@ -3738,6 +3736,8 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv } finally { DeviceManagementDAOFactory.closeConnection(); } + paginationResult.setData(getAllDeviceInfo(subscribedDeviceDetails)); + return paginationResult; } /**