We are using AEM 6.4 and recently installed Service pack 6.4.7. Since after that, product UI(/var/commerce/products/) scroll in column view is not working if you have a huge list of products(1400+)
The only error I am seeing is as below:
*ERROR* [165.225.209.46 [1594219579524] GET /var/commerce/products/test/report/webAsset.thumbnailAsset.319.png/1592540110195.png HTTP/1.1] org.apache.sling.engine.impl.SlingMainServlet service: Uncaught Problem handling the request
javax.imageio.IIOException: No decoder available to load the image
at com.day.image.Layer.<init>(Layer.java:788) [day-commons-gfx:2.1.48]
at com.day.image.Layer.<init>(Layer.java:588) [day-commons-gfx:2.1.48]
at com.day.image.Layer.<init>(Layer.java:511) [day-commons-gfx:2.1.48]
at com.day.cq.commons.ImageHelper.createLayer(ImageHelper.java:173) [com.day.cq.cq-commons:5.11.18]
at com.day.cq.commons.ImageResource.getLayer(ImageResource.java:638) [com.day.cq.cq-commons:5.11.18]
at servlet.TestImageServlet.writeLayer(TestImageServlet.java:191)
at servlet.TestImageServlet.doGet(TestImageServlet.java:91)
Code Reference:
******************************************************************
public class ProductImageServlet extends AbstractImageServlet {
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)
throws ServletException, IOException {
//Instead of using req to get the resource, we will use resource resolver using system user.
ResourceResolver resourceResolver = ResourceResolverUtil.getResourceResolver(resourceResolverFactory);
try {
String type = getImageType(request.getRequestPathInfo().getExtension());
if (type == null) {
response.sendError(404, "Image type not supported");
return;
}
ImageContext context = ImageContext(resourceResolver, type, request.getResource().getPath());
Layer layer = createLayer(request.getResource(), resourceResolver);
writeLayer(request, response, context, layer); //failing in Line 91
}
}
*****************************************************************
protected void writeLayer(SlingHttpServletRequest req, SlingHttpServletResponse resp, ImageContext context, Layer layer)
throws IOException, RepositoryException {
Image image = new Image(context.resource);
if ((image == null) || (!image.hasContent())) {
LOG.debug("The imagecontext has Content boolean : {}" , image.hasContent());
resp.sendError(HttpServletResponse.SC_NOT_FOUND);
return;
}
LOG.debug("The imageContext is {}" , context.toString());
// get pure layer
layer = image.getLayer(false, false, false); // Failing in this line - Line 191
}
This same app code is working fine when we uninstall SP 6.4.7 and point to SP 6.4.3.
Can anyone help what is wrong here? and why product ui scroll is not working? When we scroll, it will load products and after two scrolls rest of the products are not getting loaded, that is the issue.