[ https://issues.apache.org/jira/browse/OFBIZ-5312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14229153#comment-14229153 ]
Josip Almasi commented on OFBIZ-5312: ------------------------------------- :) That would surelly be already spotted. Obviously something is wrong with my data. Is there a way to migrate 13.07 data to SEO branch? In the meantime, here's stacktrace of the thread eating up CPU: [java] "http-bio-8080-exec-1" daemon prio=10 tid=0x00007fbd1c033800 nid=0x2fe8 runnable [0x00007fbd6f2a4000] [java] java.lang.Thread.State: RUNNABLE [java] at org.ofbiz.entity.GenericEntity.get(GenericEntity.java:372) [java] at org.ofbiz.entity.GenericEntity.getString(GenericEntity.java:679) [java] at org.ofbiz.content.webapp.ftl.LimitedSubContentCacheTransform$1.getRandomEntity(LimitedSubContentCacheTransform.java:308) [java] at org.ofbiz.content.webapp.ftl.LimitedSubContentCacheTransform$1.getNextMatchingEntity(LimitedSubContentCacheTransform.java:321) [java] at org.ofbiz.content.webapp.ftl.LimitedSubContentCacheTransform$1.afterBody(LimitedSubContentCacheTransform.java:213) [java] at freemarker.core.Environment.visitAndTransform(Environment.java:371) [java] at freemarker.core.UnifiedCall.accept(UnifiedCall.java:104) [java] at freemarker.core.Environment.visit(Environment.java:257) [java] at freemarker.core.MixedContent.accept(MixedContent.java:57) [java] at freemarker.core.Environment.visit(Environment.java:257) [java] at freemarker.core.Environment.process(Environment.java:235) [java] at org.ofbiz.base.util.template.FreeMarkerWorker.renderTemplate(FreeMarkerWorker.java:256) [java] at org.ofbiz.widget.screen.HtmlWidget.renderHtmlTemplate(HtmlWidget.java:157) [java] at org.ofbiz.widget.screen.HtmlWidget$HtmlTemplate.renderWidgetString(HtmlWidget.java:202) [java] at org.ofbiz.widget.screen.HtmlWidget.renderWidgetString(HtmlWidget.java:130) [java] at org.ofbiz.widget.screen.ModelScreenWidget$PlatformSpecific.renderWidgetString(ModelScreenWidget.java:1100) [java] at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [java] at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:270) [java] at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:164) [java] at org.ofbiz.widget.screen.ScreenFactory.renderReferencedScreen(ScreenFactory.java:210) [java] at org.ofbiz.widget.screen.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:695) [java] at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [java] at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:270) [java] at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:164) [java] at org.ofbiz.widget.screen.ScreenFactory.renderReferencedScreen(ScreenFactory.java:210) [java] at org.ofbiz.widget.screen.ModelScreenWidget$IncludeScreen.renderWidgetString(ModelScreenWidget.java:695) [java] at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [java] at org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:423) [java] at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [java] at org.ofbiz.widget.screen.ModelScreenWidget$Container.renderWidgetString(ModelScreenWidget.java:423) [java] at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [java] at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:270) [java] at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [java] at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:270) [java] at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:164) [java] at org.ofbiz.widget.screen.ScreenFactory.renderReferencedScreen(ScreenFactory.java:210) [java] at org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:763) [java] at org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:103) [java] at org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:270) [java] at org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:164) [java] at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:133) [java] at org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:95) [java] at org.ofbiz.widget.screen.MacroScreenViewHandler.render(MacroScreenViewHandler.java:97) [java] at org.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:987) [java] at org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:674) [java] at org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:210) [java] at org.ofbiz.product.category.SeoControlServlet.doGet(SeoControlServlet.java:85) [java] at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) [java] at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [java] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) [java] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [java] at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) [java] at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) [java] at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411) [java] at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) [java] at org.ofbiz.product.category.SeoContextFilter.doFilter(SeoContextFilter.java:255) [java] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [java] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [java] at org.ofbiz.product.category.SeoContentUrlFilter.doFilter(SeoContentUrlFilter.java:107) [java] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [java] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [java] at org.ofbiz.product.category.CatalogUrlFilter.doFilter(CatalogUrlFilter.java:336) [java] at org.ofbiz.product.category.CatalogUrlSeoFilter.doFilter(CatalogUrlSeoFilter.java:68) [java] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [java] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [java] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) [java] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [java] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503) [java] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) [java] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) [java] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [java] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) [java] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) [java] at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) [java] at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) [java] at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) [java] - locked <0x00000000e6054538> (a org.apache.tomcat.util.net.SocketWrapper) [java] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [java] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [java] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [java] at java.lang.Thread.run(Thread.java:744) > Proposal: URL-Generation Changes (mostly for SEO reasons but not only) > ---------------------------------------------------------------------- > > Key: OFBIZ-5312 > URL: https://issues.apache.org/jira/browse/OFBIZ-5312 > Project: OFBiz > Issue Type: New Feature > Components: specialpurpose/ecommerce > Affects Versions: Trunk > Reporter: Jacques Le Roux > Assignee: Jacques Le Roux > Priority: Minor > Labels: changes, ecommerce, friendly, seo, url > Attachments: OFBIZ-5312 - ofbiz-ecommerce-seo.patch, OFBIZ-5312 - > ofbiz-ecommerce-seo.patch, OFBIZ-5312 - ofbiz-ecommerce-seo.patch, OFBIZ-5312 > - ofbiz-ecommerce-seo.patch, OFBIZ-5312 - ofbiz-ecommerce-seo.patch, > OFBIZ-5312 - ofbiz-ecommerce-seo.patch, OFBIZ-5312 - > ofbiz-ecommerce-seo.patch, OFBIZ-5312 - ofbiz-ecommerce-seo.patch, OFBIZ-5312 > - ofbiz-ecommerce-seo.patch, OFBIZ-5312 - ofbiz-ecommerce-seo.patch, > OFBIZ-5312 - ofbiz-ecommerce-seo.patch, OFBIZ-5312 - > ofbiz-ecommerce-seo.patch, > OFBiz-5312-allowpaths-email-jsp-patch-20140625.patch, > OFBiz-5312-product-ecommerce-seo-20131031.patch, > OFBiz-5312-product-ecommerce-seo-for-seo-branch.patch, > OFBiz-5312-product-ecommerce-seo.patch, SeoContextFilter.java.patch, > classloaderpatch.txt > > > [This was proposed by Paul Piper in Nabble 7 months > ago|http://ofbiz.135035.n4.nabble.com/Proposal-URL-Generation-Changes-td4639289.html]. > Here is quoted Paul's proposal > {quote} > Hey Everyone, > over at ilscipio (www.ilscipio.com) we developed a set of functional OFBiz > changes that we believe the entire community could benefit from. The changes > have been implemented in parts in Syracus (www.syracus.net) for a while now, > but we figured that some of which are too crucial for ofbiz' success in the > long run, so we are considering the contribution (as we did with the SOLR > component). > As you are probably aware, OFBiz has a pretty uncommon way of generating > URLs. Most of this has to do with the fact that OFBiz uses a servlet > (ControlServlet) to handle all requests. The servlet is mounted at /control, > so that it won't interfere with other servlets. Though functionally valid, > this has the sideeffect that all urls are actually created on /control, which > is neither pretty, nor good by any measures of SEO. It also means that a few > 302 redirects are necessary to forward the user from / to /control/main. It > also makes requests more complicated, since many forwards are necessary > whenever somebody wants to move away from this implementation. > Since this is hurtful to many of the implementers, I wanted to discuss > whether or not you guys would be interested in the changes we have made. The > functional changes contain: > * Removal of /control out of all the urls > * SEO-friendly URLS > * Configurable product/category and other URLs > * Frontpage mapping from /main to / > It was tested on our end and contains all necessary improvements (Transforms, > Sample Configuration, Servlets & Filters) for it to be applicable. > If interested, I would create a new JIRA ticket for this and after a few > minor internal discussions, we will gladly provide the rest of you with it. > Regards, > Paul > {quote} > There is even a patch, mostly done by Jinghai Shi, that I attach here. Even > if it has been already used in [Syracus|http://syracus.net/] since early this > year, some help would be needed to test it thoroughly in OFBiz. > Then we should discuss if it's the way to go. I believe it is. Who needs a > /control/ or /main by default in ecommerce urls? Would you not prefer > http://localhost:8080/ecommerce/ over > http://localhost:8080/ecommerce/control/main ? -- This message was sent by Atlassian JIRA (v6.3.4#6332)