Skip to content

Commit 1aec046

Browse files
committed
fix: Update HierarchyManager and ObjectCategoryDefinitionActor for Scala 2.13 compatibility and improve error handling
1 parent 95a5fa1 commit 1aec046

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

content-api/hierarchy-manager/src/main/scala/org/sunbird/managers/HierarchyManager.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -371,8 +371,8 @@ object HierarchyManager {
371371
oec.graphService.saveExternalProps(req)
372372
}).flatMap(f => f).recoverWith {
373373
case clientException: ClientException => if(clientException.getMessage.equalsIgnoreCase("Validation Errors")) {
374-
Future(ResponseHandler.ERROR(ResponseCode.CLIENT_ERROR, ResponseCode.CLIENT_ERROR.name(), clientException.getMessages.asScala.mkString(",")))
375-
} else throw clientException
374+
Future(ResponseHandler.ERROR(ResponseCode.CLIENT_ERROR, ResponseCode.CLIENT_ERROR.name(), clientException.getMessages.asScala.mkString(",")))
375+
} else throw clientException
376376
case e: Exception =>
377377
Future(ResponseHandler.ERROR(ResponseCode.SERVER_ERROR, ResponseCode.SERVER_ERROR.name(), e.getMessage))
378378
}
@@ -391,9 +391,9 @@ object HierarchyManager {
391391
existingLeafNodes.map(en => {
392392
leafNodeMap.get(en._1).put("index", en._2.get("index").asInstanceOf[Integer])
393393
})
394-
filteredLeafNodes = childList.asScala.filter(existingLeafNode => {
394+
filteredLeafNodes = new util.ArrayList[java.util.Map[String, AnyRef]](childList.asScala.filter(existingLeafNode => {
395395
!leafNodeIds.asScala.contains(existingLeafNode.get("identifier").asInstanceOf[String])
396-
}).toList.asJava
396+
}).toList.asJava)
397397
maxIndex = childMap.values.toList.map(child => child.get("index").asInstanceOf[Integer]).max
398398
}
399399
leafNodeIds.asScala.foreach(id => {
@@ -454,7 +454,7 @@ object HierarchyManager {
454454
if (StringUtils.isNotEmpty(relationalMetadataString) && !relationalMetadataString.trim.isBlank) {
455455
val relMetadataJavaMap = JsonUtils.deserialize(relationalMetadataString, classOf[java.util.Map[String, AnyRef]])
456456
if(relMetadataJavaMap != null && relMetadataJavaMap.size()>0) Future(relMetadataJavaMap.asScala.toMap) else Future(Map[String, AnyRef]())
457-
} else
457+
} else
458458
Future(Map[String, AnyRef]())
459459
} else {
460460
val req = new Request(request)

taxonomy-api/taxonomy-actors/src/main/scala/org/sunbird/actors/ObjectCategoryDefinitionActor.scala

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,15 @@ class ObjectCategoryDefinitionActor @Inject()(implicit oec: OntologyEngineContex
8484
} else
8585
throw e
8686
}
87+
case e: CompletionException if e.getCause.isInstanceOf[ResourceNotFoundException] => {
88+
val id = request.get(Constants.IDENTIFIER).asInstanceOf[String]
89+
println("ObjectCategoryDefinitionActor ::: read ::: node not found with id :" + id + " | Fetching node with _all")
90+
if (StringUtils.equalsAnyIgnoreCase("POST", requestMethod) && !StringUtils.endsWithIgnoreCase(id, "_all")) {
91+
request.put(Constants.IDENTIFIER, id.replace(id.substring(id.lastIndexOf("_") + 1), "all"))
92+
DataNode.read(request)
93+
} else
94+
throw e.getCause
95+
}
8796
case ex: Throwable => throw ex
8897
} map (node => {
8998
val metadata: util.Map[String, AnyRef] = NodeUtil.serialize(node, fields, request.getContext.get(Constants.SCHEMA_NAME).asInstanceOf[String], request.getContext.get(Constants.VERSION).asInstanceOf[String])

0 commit comments

Comments
 (0)