Facing issue while implementing Dynamic Dropdown
I'm getting null pointer exception for the belwo code:
ResourceResolver resourceResolver;
Resource pathResource;
ValueMap valueMap;
List<Resource> resourceList = new ArrayList<Resource>();
public void doGet(SlingHttpServletRequest req, SlingHttpServletResponse res){
pathResource = req.getResource();
log.error("---42--servlet");
String path = pathResource.getChild("datasource").getValueMap().get("tagsPath").toString();
Resource tagsPath = req.getResourceResolver().getResource(path);
for(Resource resource : tagsPath.getChildren()){
valueMap = new ValueMapDecorator(new HashMap<>());
Tag tag = resource.adaptTo(Tag.class);
String tagFullName = tag.getTagID();
String tagName = tagFullName.substring(tagFullName.lastIndexOf("/")+1);
String tagTitle = tag.getTitle();
log.error("tagName:{}", tagName);
log.error("tagTitle:{}", tagTitle);
valueMap.put("value", tagName);
valueMap.put("text", tagTitle);
try{
resourceList.add(new ValueMapResource(resourceResolver, new ResourceMetadata(), "nt:unstructured", valueMap));
}
catch(Exception ex){
log.error("--exception--:{}", ex.getMessage());
}
}
DataSource ds = new SimpleDataSource(resourceList.iterator());
req.setAttribute(DataSource.class.getName(), ds);
}
=========================================
Exception:
java.lang.NullPointerException: null
at org.apache.sling.api.resource.AbstractResource.getChild(AbstractResource.java:78) [org.apache.sling.api:2.22.0]
at com.adobe.granite.ui.components.ds.ValueMapResource.getChild(ValueMapResource.java:159) [com.adobe.granite.ui.commons:5.10.15.CQ650-B0008]
at org.apache.sling.api.resource.AbstractResource.getChild(AbstractResource.java:78) [org.apache.sling.api:2.22.0]
at com.adobe.granite.ui.components.ds.ValueMapResource.getChild(ValueMapResource.java:159) [com.adobe.granite.ui.commons:5.10.15.CQ650-B0008]