Details

      Description

      I am having a problem that's been bugging me in different variations since Liferay 6.1.0 CE came out. When I create my own theme (CSS is valid, checked that, templates are valid, checked that also) and deploy it to Liferay I get

      {{13:34:47,199 ERROR [DynamicCSSFilter:181] Unable to parse SASS on CSS /opt/liferay/tomcat-7.0.26/webapps/company-theme/css/custom.css
      org.jruby.embed.EvalFailedException: (LoadError) no such file to load – file:/opt/portal/tomcat-7.0.26/webapps/ROOT/WEB-INF/lib/ruby-gems.jar!/gems/sass-3.1.7/lib/sass/../sass
      at org.jruby.embed.internal.EmbedEvalUnitImpl.run(EmbedEvalUnitImpl.java:127)
      at org.jruby.embed.ScriptingContainer.runUnit(ScriptingContainer.java:1231)
      at org.jruby.embed.ScriptingContainer.runScriptlet(ScriptingContainer.java:1224)
      at com.liferay.portal.scripting.ruby.RubyExecutor.eval(RubyExecutor.java:148)
      at com.liferay.portal.scripting.ruby.RubyExecutor.eval(RubyExecutor.java:105)
      at com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSUtil._parseSass(DynamicCSSUtil.java:299)
      at com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSUtil.parseSass(DynamicCSSUtil.java:138)
      at com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSFilter.getDynamicContent(DynamicCSSFilter.java:144)
      at com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSFilter.processFilter(DynamicCSSFilter.java:208)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:55)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:69)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at sun.reflect.GeneratedMethodAccessor369.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:54)
      at $Proxy378.doFilter(Unknown Source)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:158)
      at com.liferay.portal.servlet.filters.minifier.MinifierFilter.processFilter(MinifierFilter.java:467)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:55)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:69)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at sun.reflect.GeneratedMethodAccessor369.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:54)
      at $Proxy378.doFilter(Unknown Source)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:158)
      at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:123)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:55)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:69)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at sun.reflect.GeneratedMethodAccessor369.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:54)
      at $Proxy378.doFilter(Unknown Source)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:158)
      at com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:424)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:55)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:69)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at sun.reflect.GeneratedMethodAccessor369.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:54)
      at $Proxy378.doFilter(Unknown Source)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:158)
      at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:55)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:55)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:69)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at sun.reflect.GeneratedMethodAccessor369.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:54)
      at $Proxy378.doFilter(Unknown Source)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
      at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:158)
      at com.liferay.portal.servlet.filters.header.HeaderFilter.processFilter(HeaderFilter.java:150)
      at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:55)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:69)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:206)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:108)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
      at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:71)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
      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:98)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
      at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:197)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
      at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:722)
      Caused by: org.jruby.exceptions.RaiseException: (LoadError) no such file to load – file:/opt/liferay/tomcat-7.0.26/webapps/ROOT/WEB-INF/lib/ruby-gems.jar!/gems/sass-3.1.7/lib/sass/../sass}}

      Now there are funny (or not) variations to this problem, sometimes it will first print the entire CSS in the logs, sometimes it doesn't. The result is the same: The look of the page is severely broken.

      I can't even exactly point to the direction when this happens. I don't get errors when I deploy the theme, and weird enough, sometimes it actually works without error message and the same exact theme (for example on my local developer machine I never get that error).

      My guess is it's environmental or perhaps I don't get it because I am running with portal-developer.properties on my dev-machine. One clue I had was that if we put a prepared portal-ext.properties on the server with a number of settings it ALWAYS fails, if, however, I just put a bare minimum portal-ext.properties on the server, then it may work (little bit hit and miss).

      I dislike to report difficult to reproduce bugs, but perhaps you guys understand from the stack trace what's wrong and can fix it.

      Oh, last word. I also removed numerous complex CSS-styles just to make sure and in the end I removed almost all of the CSS just to see if it's the stylesheet, but once this error pops up, it doesn't matter how often i deploy the theme, it stays there.

        Attachments

          Activity

            People

            • Votes:
              14 Vote for this issue
              Watchers:
              13 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Days since last comment:
                4 years, 14 weeks, 4 days ago