diff --git a/adapter/ohos/JsonUtil.java b/adapter/ohos/JsonUtil.java index a11d44f7f5732fca5c30b1c84107f2923df54d8e..82be70a08b510d2648631c7e2db55cb75fa2a463 100644 --- a/adapter/ohos/JsonUtil.java +++ b/adapter/ohos/JsonUtil.java @@ -1168,10 +1168,8 @@ public class JsonUtil { * * @param moduleMetadataInfos metedata in moduleInfo * @return the parse result - * @throws BundleException Throws this exception if the json is not standard. */ - static DistroFilter parseModuleDistrofilterFromMetadata( - List moduleMetadataInfos) throws BundleException { + static DistroFilter parseModuleDistrofilterFromMetadata(List moduleMetadataInfos) { for (ModuleMetadataInfo moduleMetadataInfo : moduleMetadataInfos) { String resource = moduleMetadataInfo.resource; if (resource.isEmpty()) { diff --git a/adapter/ohos/ModuleJsonUtil.java b/adapter/ohos/ModuleJsonUtil.java index 66c6561bff792968e4375139a1ebf2ab71b8a719..faeaf2b4f69bd8d8a0d3a8a3ef1556fc08ff2ef3 100644 --- a/adapter/ohos/ModuleJsonUtil.java +++ b/adapter/ohos/ModuleJsonUtil.java @@ -66,6 +66,7 @@ class ModuleJsonUtil { private static final String VALUE = "value"; private static final String JSON_PERFIX = ".json"; private static final String DISTRO_FILTER = "distroFilter"; + private static final String DISTRIBUTION_FILTER = "distributionFilter"; private static final String DEPENDENCIES = "dependencies"; private static final String EXTENSION_ABILITIES = "extensionAbilities"; private static final String INSTALLATION_FREE = "installationFree"; @@ -1011,26 +1012,22 @@ class ModuleJsonUtil { * @param moduleMetadataInfos all metadata of module * @return DistroFilter is the result of parsed distroFilter */ - public static DistroFilter parseStageDistroFilter( - List moduleMetadataInfos) throws BundleException { - DistroFilter distroFilter = new DistroFilter(); + public static DistroFilter parseStageDistroFilter(List moduleMetadataInfos) { + DistroFilter distro = new DistroFilter(); for (ModuleMetadataInfo moduleMetadataInfo : moduleMetadataInfos) { - if (moduleMetadataInfo.resource.isEmpty()) { + String resource = moduleMetadataInfo.resource; + if (resource.isEmpty()) { continue; } - try { - JSONObject distroFilterObj = JSON.parseObject(moduleMetadataInfo.resource); - if (distroFilterObj.containsKey(DISTRO_FILTER)) { - distroFilter = JSONObject.parseObject(getJsonString(distroFilterObj, - DISTRO_FILTER), DistroFilter.class); - } - } catch (JSONException exception) { - String errMsg = "parse JSONobject failed."; - LOG.error(errMsg); - throw new BundleException(errMsg); + JSONObject distroFilter = JSONObject.parseObject(resource); + if (distroFilter.containsKey(DISTRIBUTION_FILTER)) { + return JSONObject.parseObject(getJsonString(distroFilter, DISTRIBUTION_FILTER), DistroFilter.class); + } + if (distroFilter.containsKey(DISTRO_FILTER)) { + return JSONObject.parseObject(getJsonString(distroFilter, DISTRO_FILTER), DistroFilter.class); } } - return distroFilter; + return distro; } /** diff --git a/adapter/ohos/ResourcesParser.java b/adapter/ohos/ResourcesParser.java index a2181983c48efeb023d1d7e6841fe3fbade80808..61eda90edb2096a2b40030e7c6ea7d39f8cd569a 100644 --- a/adapter/ohos/ResourcesParser.java +++ b/adapter/ohos/ResourcesParser.java @@ -416,7 +416,7 @@ public class ResourcesParser { item.size = buf.getInt(); item.type = buf.getInt(); item.id = buf.getInt(); - int len = buf.getShort(); + int len = buf.getShort() & 0xFFFF; byte[] value = new byte[len]; buf.get(value); item.value = new String(value, StandardCharsets.UTF_8);