ComplianceOnline

Quality Agreements: Contract Manufacturing Arrangements for Drugs

  • By: Staff Editor
  • Date: December 04, 2016
  • Source: http://www.fda.gov/
Access Regulatory Compliance Training sessions led by expert panelists below.

Compliance Webinars | Virtual Seminars for Professionals

Quality Agreements: Contract Manufacturing Arrangements for Drugs

Drug manufacturers who use contract facilities now have final guidance from the FDA on quality agreements. Consequently, the drug makers and contractors need to review their existing agreements to ensure compliance with the final requirements.

Drug manufacturing comprises many distinct processes and operations. The manufacturer may perform all operations or may engage an outside party to perform some of the processes under contract. Contract facilities perform a variety of manufacturing operations including:

  • Formulation
  • Fill and finish
  • Chemical synthesis
  • Cell culture and fermentation, including for biological products
  • Analytical testing and other laboratory services
  • Packaging and labeling
  • Sterilization or terminal sterilization

Quality Agreements

A Quality Agreement is a comprehensive written contract between a pharmaceutical firm and a GMP contract manufacturer detailing the responsibilities of each party in assuring the quality, safety and efficacy of the manufactured drug. Quality agreements should not include general business terms and conditions such as confidentiality, pricing or cost issues, delivery terms, or limits on liability or damages.

FDA endorses that quality agreements should be separate documents from commercial contracts such as master services agreements or supply agreements. FDA may review the quality agreements during inspections and audits.

Elements of a Quality Agreement

  • Purpose/Scope: to cover the nature of the contract manufacturing services to be provided
  • Definitions: to ensure that the owner and contract facility agree on precise meaning of terms in the quality agreement
  • Resolution of disagreements: to explain how the parties will resolve disagreements about product quality issues or other problems
  • Manufacturing activities: to document quality unit and other operations associated with manufacturing processes as well as control of changes to manufacturing processes
  • Lifecycle of, and revisions to, the quality agreement

Related Training:

CMO Supplier Quality Agreements - How to Comply with New FDA and EU Guidelines for Contract Drug Manufacturers

FDA’s Expectations from Supplier Management for GMP: Quality Agreements and More

Supplier Quality Agreements - Essential for Suppliers of Many Outsourced Processes

Click here to download the file
Method public java.lang.String org.ofbiz.widget.screen.ScreenRenderer.render(java.lang.String) throws org.ofbiz.base.util.GeneralException,java.io.IOException,org.xml.sax.SAXException,javax.xml.parsers.ParserConfigurationException threw an exception when invoked on org.ofbiz.widget.screen.ScreenRenderer@4ec55830 with arguments of types [java.lang.String,] The problematic instruction: ---------- ==> ${screens.render("component://ecommerce/widget/CONew2016/BestPracticesPageScreens.xml#trainings-article-detail")} [on line 9, column 17 in component://ecommerce/webapp/ecommerce/CONew2016/bestpractices/article_detail/contentDetailMain.ftl] ---------- Java backtrace for programmers: ---------- freemarker.template.TemplateModelException: Method public java.lang.String org.ofbiz.widget.screen.ScreenRenderer.render(java.lang.String) throws org.ofbiz.base.util.GeneralException,java.io.IOException,org.xml.sax.SAXException,javax.xml.parsers.ParserConfigurationException threw an exception when invoked on org.ofbiz.widget.screen.ScreenRenderer@4ec55830 with arguments of types [java.lang.String,] at freemarker.ext.beans.OverloadedMethodModel.exec(OverloadedMethodModel.java:134) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.Environment.process(Environment.java:199) at org.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:257) at org.ofbiz.widget.screen.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:225) at org.ofbiz.widget.screen.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:270) at org.ofbiz.widget.screen.HtmlWidget.renderWidgetString(HtmlWidget.java:130) at org.ofbiz.widget.screen.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:920) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:104) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:191) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:396) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:135) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:97) at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:866) at freemarker.ext.beans.OverloadedMethodModel.exec(OverloadedMethodModel.java:104) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.Environment.process(Environment.java:199) at org.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:257) at org.ofbiz.widget.screen.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:225) at org.ofbiz.widget.screen.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:270) at org.ofbiz.widget.screen.HtmlWidget.renderWidgetString(HtmlWidget.java:130) at org.ofbiz.widget.screen.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:920) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:104) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:191) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:396) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:135) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:97) at org.ofbiz.widget.screen.MacroScreenViewHandler.render(MacroScreenViewHandler.java:104) at org.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:865) at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:582) at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:547) at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:547) at org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:224) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) at com.metricstream.SEOServlet.dispatchEcommerceRequest(SEOServlet.java:287) at com.metricstream.SEOServlet.findPattern(SEOServlet.java:236) at com.metricstream.SEOServlet.doGet(SEOServlet.java:49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.ofbiz.widget.screen.ScreenRenderException: Error rendering screen [component://ecommerce/widget/CONew2016/BestPracticesPageScreens.xml#trainings-article-detail]: java.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object (Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:409) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:135) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:97) at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:866) at freemarker.ext.beans.OverloadedMethodModel.exec(OverloadedMethodModel.java:104) ... 76 more Caused by: java.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object at org.ofbiz.base.util.ScriptUtil.executeScript(ScriptUtil.java:348) at org.ofbiz.base.util.ScriptUtil.executeScript(ScriptUtil.java:324) at org.ofbiz.widget.ModelWidgetAction$Script.runAction(ModelWidgetAction.java:416) at org.ofbiz.widget.ModelWidgetAction.runSubActions(ModelWidgetAction.java:116) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:184) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:396) ... 83 more
Best Sellers
Method public java.lang.String org.ofbiz.widget.screen.ScreenRenderer.render(java.lang.String) throws org.ofbiz.base.util.GeneralException,java.io.IOException,org.xml.sax.SAXException,javax.xml.parsers.ParserConfigurationException threw an exception when invoked on org.ofbiz.widget.screen.ScreenRenderer@4ec55830 with arguments of types [java.lang.String,] The problematic instruction: ---------- ==> ${screens.render("component://ecommerce/widget/CONew2016/BaseScreens.xml#recently-viewed")} [on line 28, column 1 in component://ecommerce/webapp/ecommerce/CONew2016/bestpractices/article_detail/contentDetailMain.ftl] ---------- Java backtrace for programmers: ---------- freemarker.template.TemplateModelException: Method public java.lang.String org.ofbiz.widget.screen.ScreenRenderer.render(java.lang.String) throws org.ofbiz.base.util.GeneralException,java.io.IOException,org.xml.sax.SAXException,javax.xml.parsers.ParserConfigurationException threw an exception when invoked on org.ofbiz.widget.screen.ScreenRenderer@4ec55830 with arguments of types [java.lang.String,] at freemarker.ext.beans.OverloadedMethodModel.exec(OverloadedMethodModel.java:134) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.Environment.process(Environment.java:199) at org.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:257) at org.ofbiz.widget.screen.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:225) at org.ofbiz.widget.screen.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:270) at org.ofbiz.widget.screen.HtmlWidget.renderWidgetString(HtmlWidget.java:130) at org.ofbiz.widget.screen.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:920) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:104) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:191) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:396) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:135) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:97) at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:866) at freemarker.ext.beans.OverloadedMethodModel.exec(OverloadedMethodModel.java:104) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.Environment.process(Environment.java:199) at org.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:257) at org.ofbiz.widget.screen.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:225) at org.ofbiz.widget.screen.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:270) at org.ofbiz.widget.screen.HtmlWidget.renderWidgetString(HtmlWidget.java:130) at org.ofbiz.widget.screen.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:920) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:104) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:191) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:396) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:135) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:97) at org.ofbiz.widget.screen.MacroScreenViewHandler.render(MacroScreenViewHandler.java:104) at org.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:865) at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:582) at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:547) at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:547) at org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:224) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) at com.metricstream.SEOServlet.dispatchEcommerceRequest(SEOServlet.java:287) at com.metricstream.SEOServlet.findPattern(SEOServlet.java:236) at com.metricstream.SEOServlet.doGet(SEOServlet.java:49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.ofbiz.widget.screen.ScreenRenderException: Error rendering screen [component://ecommerce/widget/CONew2016/BaseScreens.xml#recently-viewed]: org.ofbiz.entity.transaction.GenericTransactionException: The current transaction is marked for rollback, not beginning a new transaction and aborting current operation; the rollbackOnly was caused by: Error rendering screen [component://ecommerce/widget/CONew2016/BestPracticesPageScreens.xml#trainings-article-detail]: java.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null objectjava.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object (Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object) (The current transaction is marked for rollback, not beginning a new transaction and aborting current operation; the rollbackOnly was caused by: Error rendering screen [component://ecommerce/widget/CONew2016/BestPracticesPageScreens.xml#trainings-article-detail]: java.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null objectjava.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object (Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object)) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:423) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:135) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:97) at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:866) at freemarker.ext.beans.OverloadedMethodModel.exec(OverloadedMethodModel.java:104) ... 76 more Caused by: org.ofbiz.entity.transaction.GenericTransactionException: The current transaction is marked for rollback, not beginning a new transaction and aborting current operation; the rollbackOnly was caused by: Error rendering screen [component://ecommerce/widget/CONew2016/BestPracticesPageScreens.xml#trainings-article-detail]: java.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null objectjava.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object (Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object) at org.ofbiz.entity.transaction.TransactionUtil.begin(TransactionUtil.java:159) at org.ofbiz.entity.transaction.TransactionUtil.begin(TransactionUtil.java:127) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:388) ... 83 more Caused by: java.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object at org.ofbiz.base.util.ScriptUtil.executeScript(ScriptUtil.java:348) at org.ofbiz.base.util.ScriptUtil.executeScript(ScriptUtil.java:324) at org.ofbiz.widget.ModelWidgetAction$Script.runAction(ModelWidgetAction.java:416) at org.ofbiz.widget.ModelWidgetAction.runSubActions(ModelWidgetAction.java:116) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:184) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:396) ... 83 more
Method public java.lang.String org.ofbiz.widget.screen.ScreenRenderer.render(java.lang.String) throws org.ofbiz.base.util.GeneralException,java.io.IOException,org.xml.sax.SAXException,javax.xml.parsers.ParserConfigurationException threw an exception when invoked on org.ofbiz.widget.screen.ScreenRenderer@4ec55830 with arguments of types [java.lang.String,] The problematic instruction: ---------- ==> ${screens.render("component://ecommerce/widget/CONew2016/BaseScreens.xml#main-footer")} [on line 11, column 1 in component://ecommerce/webapp/ecommerce/CONew2016/templates/articleDetail.ftl] ---------- Java backtrace for programmers: ---------- freemarker.template.TemplateModelException: Method public java.lang.String org.ofbiz.widget.screen.ScreenRenderer.render(java.lang.String) throws org.ofbiz.base.util.GeneralException,java.io.IOException,org.xml.sax.SAXException,javax.xml.parsers.ParserConfigurationException threw an exception when invoked on org.ofbiz.widget.screen.ScreenRenderer@4ec55830 with arguments of types [java.lang.String,] at freemarker.ext.beans.OverloadedMethodModel.exec(OverloadedMethodModel.java:134) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.Environment.process(Environment.java:199) at org.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:257) at org.ofbiz.widget.screen.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:225) at org.ofbiz.widget.screen.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:270) at org.ofbiz.widget.screen.HtmlWidget.renderWidgetString(HtmlWidget.java:130) at org.ofbiz.widget.screen.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:920) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:104) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:191) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:396) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:135) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:97) at org.ofbiz.widget.screen.MacroScreenViewHandler.render(MacroScreenViewHandler.java:104) at org.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:865) at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:582) at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:547) at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:547) at org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:224) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) at com.metricstream.SEOServlet.dispatchEcommerceRequest(SEOServlet.java:287) at com.metricstream.SEOServlet.findPattern(SEOServlet.java:236) at com.metricstream.SEOServlet.doGet(SEOServlet.java:49) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.ofbiz.widget.screen.ScreenRenderException: Error rendering screen [component://ecommerce/widget/CONew2016/BaseScreens.xml#main-footer]: org.ofbiz.entity.transaction.GenericTransactionException: The current transaction is marked for rollback, not beginning a new transaction and aborting current operation; the rollbackOnly was caused by: Error rendering screen [component://ecommerce/widget/CONew2016/BestPracticesPageScreens.xml#trainings-article-detail]: java.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null objectjava.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object (Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object) (The current transaction is marked for rollback, not beginning a new transaction and aborting current operation; the rollbackOnly was caused by: Error rendering screen [component://ecommerce/widget/CONew2016/BestPracticesPageScreens.xml#trainings-article-detail]: java.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null objectjava.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object (Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object)) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:423) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:135) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:97) at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:866) at freemarker.ext.beans.OverloadedMethodModel.exec(OverloadedMethodModel.java:104) ... 53 more Caused by: org.ofbiz.entity.transaction.GenericTransactionException: The current transaction is marked for rollback, not beginning a new transaction and aborting current operation; the rollbackOnly was caused by: Error rendering screen [component://ecommerce/widget/CONew2016/BestPracticesPageScreens.xml#trainings-article-detail]: java.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null objectjava.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object (Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object) at org.ofbiz.entity.transaction.TransactionUtil.begin(TransactionUtil.java:159) at org.ofbiz.entity.transaction.TransactionUtil.begin(TransactionUtil.java:127) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:388) ... 60 more Caused by: java.lang.IllegalArgumentException: Error running script at location [component://ecommerce/webapp/ecommerce/WEB-INF/actions/CONew2016/bestpractices/article_detail/trainings_articleDetail.groovy]: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method getString() on null object at org.ofbiz.base.util.ScriptUtil.executeScript(ScriptUtil.java:348) at org.ofbiz.base.util.ScriptUtil.executeScript(ScriptUtil.java:324) at org.ofbiz.widget.ModelWidgetAction$Script.runAction(ModelWidgetAction.java:416) at org.ofbiz.widget.ModelWidgetAction.runSubActions(ModelWidgetAction.java:116) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:184) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:396) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:135) at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:97) at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:866) at freemarker.ext.beans.OverloadedMethodModel.exec(OverloadedMethodModel.java:104) at freemarker.core.MethodCall._getAsTemplateModel(MethodCall.java:93) at freemarker.core.Expression.getAsTemplateModel(Expression.java:89) at freemarker.core.Expression.getStringValue(Expression.java:93) at freemarker.core.DollarVariable.accept(DollarVariable.java:76) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.MixedContent.accept(MixedContent.java:92) at freemarker.core.Environment.visit(Environment.java:221) at freemarker.core.Environment.process(Environment.java:199) at org.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:257) at org.ofbiz.widget.screen.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:225) at org.ofbiz.widget.screen.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:270) at org.ofbiz.widget.screen.HtmlWidget.renderWidgetString(HtmlWidget.java:130) at org.ofbiz.widget.screen.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:920) at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:104) at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:191) at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:396) ... 60 more