Product NOTFOUND causes java.lang.NullPointerException, ugly screen, and excessive logging ------------------------------------------------------------------------------------------
Key: OFBIZ-4599 URL: https://issues.apache.org/jira/browse/OFBIZ-4599 Project: OFBiz Issue Type: Bug Components: specialpurpose/ecommerce Affects Versions: Release Branch 11.04, SVN trunk Environment: Any Reporter: mz4wheeler Priority: Minor If you manually enter a URL (or via search engine) for a non-existing product, the following (annoying) long java exception is logged. 2011-11-30 20:56:35,431 (TP-Processor3) [ ModelScreen.java:401:ERROR] Error rendering screen [component://ecommerce/widget/CatalogScreens.xml#product]: java.lang.NullPointerException: Cannot get property 'isVirtual' on null object. Rolling back transaction. 2011-11-30 20:56:35,436 (TP-Processor3) [ TransactionUtil.java:349:INFO ] [TransactionUtil.rollback] transaction rolled back 2011-11-30 20:56:35,437 (TP-Processor3) [ TransactionUtil.java:274:WARN ] [TransactionUtil.commit] Not committing transaction, status is No Transaction (6) 2011-11-30 20:56:35,446 (TP-Processor3) [ ControlServlet.java:227:ERROR] ---- exception report ---------------------------------------------------------- Error in request handler: Exception: org.ofbiz.widget.screen.ScreenRenderException Message: Error rendering screen [component://ecommerce/widget/CatalogScreens.xml#product]: java.lang.NullPointerException: Cannot get property 'isVirtual' on null object (Cannot get property 'isVirtual' on null object) ---- cause --------------------------------------------------------------------- Exception: java.lang.NullPointerException Message: Cannot get property 'isVirtual' on null object ---- stack trace --------------------------------------------------------------- java.lang.NullPointerException: Cannot get property 'isVirtual' on null object org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:56) org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:156) org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:44) org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:235) Product.run(Product.groovy:48) .... etc ... etc ... etc ... org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690) java.lang.Thread.run(Thread.java:662) -------------------------------------------------------------------------------- 2011-11-30 20:56:35,449 (TP-Processor3) [ ControlServlet.java:243:ERROR] An error occurred, going to the errorPage: /error/error.jsp 2011-11-30 20:56:35,450 (TP-Processor3) [ ControlServlet.java:250:ERROR] Including errorPage: /error/error.jsp 2011-11-30 20:56:37,437 (TP-Processor3) [ ControlServlet.java:324:INFO ] [[[product] Request Done- total:6.14,since last([product] Request...):6.14]] On top of this, the following (BIG RED) error screen is shown to the user: :ERROR MESSAGE: org.ofbiz.widget.screen.ScreenRenderException: Error rendering screen [component://ecommerce/widget/CatalogScreens.xml#product]: java.lang.NullPointerException: Cannot get property 'isVirtual' on null object (Cannot get property 'isVirtual' on null object) This is caused by Product.groovy performing a search for a product (which fails) and then trying to reference "product.isVariant", which doesn't exist. After the simple patch, the store now shows the default ecommerce screen, with the following message in the main ecommerce area: RESULT: "Product not found for Product ID 1001JAPANCROS!" Much better. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira