Author: jleroux
Date: Sat Oct 10 10:38:49 2015 New Revision: 1707857 URL: http://svn.apache.org/viewvc?rev=1707857&view=rev Log: Fixes "ecommerce screen exception" https://issues.apache.org/jira/browse/OFBIZ-6665 reported by Wai I missed this hidden ProductConfigItemContentWrapper class while working on r1705329 and sequels. I checked there are no other *ContentWrapper classes left now. Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/configproductdetail.ftl Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java?rev=1707857&r1=1707856&r2=1707857&view=diff ============================================================================== --- ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java (original) +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigItemContentWrapper.java Sat Oct 10 10:38:49 2015 @@ -22,7 +22,6 @@ import java.io.IOException; import java.io.StringWriter; import java.io.Writer; import java.util.HashMap; -import java.util.List; import java.util.Locale; import java.util.Map; @@ -30,9 +29,13 @@ import javax.servlet.http.HttpServletReq import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.GeneralException; +import org.ofbiz.base.util.StringUtil; +import org.ofbiz.base.util.StringUtil.StringWrapper; +import org.ofbiz.base.util.UtilCodec; import org.ofbiz.base.util.UtilHttp; import org.ofbiz.base.util.UtilValidate; import org.ofbiz.content.content.ContentWorker; +import org.ofbiz.content.content.ContentWrapper; import org.ofbiz.entity.Delegator; import org.ofbiz.entity.DelegatorFactory; import org.ofbiz.entity.GenericValue; @@ -46,7 +49,7 @@ import org.ofbiz.service.ServiceContaine * Product Config Item Content Worker: gets product content to display */ @SuppressWarnings("serial") -public class ProductConfigItemContentWrapper implements java.io.Serializable { +public class ProductConfigItemContentWrapper implements ContentWrapper { public static final String module = ProductConfigItemContentWrapper.class.getName(); @@ -83,8 +86,8 @@ public class ProductConfigItemContentWra this.mimeTypeId = "text/html"; } - public String get(String confItemContentTypeId) { - return getProductConfigItemContentAsText(productConfigItem, confItemContentTypeId, locale, mimeTypeId, getDelegator(), getDispatcher()); + public StringWrapper get(String confItemContentTypeId, String encoderType) { + return StringUtil.makeStringWrapper(getProductConfigItemContentAsText(productConfigItem, confItemContentTypeId, locale, mimeTypeId, getDelegator(), getDispatcher(), encoderType)); } public Delegator getDelegator() { @@ -101,32 +104,36 @@ public class ProductConfigItemContentWra return dispatcher; } - public static String getProductConfigItemContentAsText(GenericValue productConfigItem, String confItemContentTypeId, HttpServletRequest request) { + public static String getProductConfigItemContentAsText(GenericValue productConfigItem, String confItemContentTypeId, HttpServletRequest request, String encoderType) { LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher"); - return getProductConfigItemContentAsText(productConfigItem, confItemContentTypeId, UtilHttp.getLocale(request), "text/html", productConfigItem.getDelegator(), dispatcher); + return getProductConfigItemContentAsText(productConfigItem, confItemContentTypeId, UtilHttp.getLocale(request), "text/html", productConfigItem.getDelegator(), dispatcher, encoderType); } - public static String getProductConfigItemContentAsText(GenericValue productConfigItem, String confItemContentTypeId, Locale locale, LocalDispatcher dispatcher) { - return getProductConfigItemContentAsText(productConfigItem, confItemContentTypeId, locale, null, null, dispatcher); + public static String getProductConfigItemContentAsText(GenericValue productConfigItem, String confItemContentTypeId, Locale locale, LocalDispatcher dispatcher, String encoderType) { + return getProductConfigItemContentAsText(productConfigItem, confItemContentTypeId, locale, null, null, dispatcher, encoderType); } - public static String getProductConfigItemContentAsText(GenericValue productConfigItem, String confItemContentTypeId, Locale locale, String mimeTypeId, Delegator delegator, LocalDispatcher dispatcher) { + public static String getProductConfigItemContentAsText(GenericValue productConfigItem, String confItemContentTypeId, Locale locale, String mimeTypeId, Delegator delegator, LocalDispatcher dispatcher, String encoderType) { + UtilCodec.SimpleEncoder encoder = UtilCodec.getEncoder(encoderType); String candidateFieldName = ModelUtil.dbNameToVarName(confItemContentTypeId); try { Writer outWriter = new StringWriter(); getProductConfigItemContentAsText(null, productConfigItem, confItemContentTypeId, locale, mimeTypeId, delegator, dispatcher, outWriter); String outString = outWriter.toString(); if (outString.length() > 0) { - return outString; + return encoder.encode(outString); } else { - return null; + String candidateOut = productConfigItem.getModelEntity().isField(candidateFieldName) ? productConfigItem.getString(candidateFieldName): ""; + return candidateOut == null? "" : encoder.encode(candidateOut); } } catch (GeneralException e) { Debug.logError(e, "Error rendering ProdConfItemContent, inserting empty String", module); - return productConfigItem.getString(candidateFieldName); + String candidateOut = productConfigItem.getModelEntity().isField(candidateFieldName) ? productConfigItem.getString(candidateFieldName): ""; + return candidateOut == null? "" : encoder.encode(candidateOut); } catch (IOException e) { Debug.logError(e, "Error rendering ProdConfItemContent, inserting empty String", module); - return productConfigItem.getString(candidateFieldName); + String candidateOut = productConfigItem.getModelEntity().isField(candidateFieldName) ? productConfigItem.getString(candidateFieldName): ""; + return candidateOut == null? "" : encoder.encode(candidateOut); } } Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java?rev=1707857&r1=1707856&r2=1707857&view=diff ============================================================================== --- ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java (original) +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java Sat Oct 10 10:38:49 2015 @@ -458,7 +458,7 @@ public class ProductConfigWrapper implem question = configItemAssoc.getString("description"); } else { if (content != null) { - question = content.get("DESCRIPTION"); + question = content.get("DESCRIPTION", "html").toString(); } else { question = (configItem.getString("description") != null? configItem.getString("description"): ""); } @@ -472,7 +472,7 @@ public class ProductConfigWrapper implem description = configItemAssoc.getString("longDescription"); } else { if (content != null) { - description = content.get("LONG_DESCRIPTION"); + description = content.get("LONG_DESCRIPTION", "html").toString(); } else { description = (configItem.getString("longDescription") != null? configItem.getString("longDescription"): ""); } @@ -665,7 +665,7 @@ public class ProductConfigWrapper implem } public String getOptionName(Locale locale) { - + return (configOption.getString("configOptionName") != null? (String) configOption.get("configOptionName", locale): "no option name"); } Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/configproductdetail.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/configproductdetail.ftl?rev=1707857&r1=1707856&r2=1707857&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/configproductdetail.ftl (original) +++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/configproductdetail.ftl Sat Oct 10 10:38:49 2015 @@ -456,8 +456,8 @@ function getConfigDetails(event) { <div>${question.question}</div> <#if question.isFirst()> <a name='#${question.getConfigItem().getString("configItemId")}'></a> - <div>${question.description!}</div> - <#assign instructions = question.content.get("INSTRUCTIONS")!> + <div>${StringUtil.wrapString(question.description!)}</div> + <#assign instructions = question.content.get("INSTRUCTIONS", "html")!> <#if instructions?has_content> <a href="javascript:showErrorAlert("${uiLabelMap.CommonErrorMessage2}","${instructions}");" class="buttontext">Instructions</a> </#if> |
Free forum by Nabble | Edit this page |