Resolve the "Sass::SyntaxError: Invalid CSS" error in Liferay 6.1

Issue:

Liferay 6.1 uses the dynamic CSS filter to parse Sass CSS. The dynamic CSS filter will validate the SASS/CSS and compile the SASS into regular CSS and put them into .sass-cache folder.

But in Liferay 6.1, The dynamic CSS filter always give "Sass::SyntaxError: Invalid CSS" exception on many VAILD CSS files.  For example, If you want to use the twitter bootstrap CSS in to your custom theme, you will get the following ERROR:

ERROR [MinifierFilter:421] Unable to parse SASS on CSS /opt/liferay/liferay-portal-6.1.0-ce-ga1/tomcat-7.0.23/${YOUR_CUSTOM_THEME}/css/bootstrap.css
org.jruby.embed.EvalFailedException: (SyntaxError) Expected a color. Got: transparent

Cause:

The issue is caused by the old campass library (compass-0.11.5) which has an issue in handling the transparent keyword: https://github.com/chriseppstein/compass/pull/715#issuecomment-4186662

It got fixed in the latest campass library.

Solution:

We need to upgrade the campass library to the newer version. You can find the newer version of ruby-gems.jar (which contains the campass library) in Liferay 6.2 M4 under liferay-portal-6.2.0-ce-m4/tomcat-7.0.34/webapps/ROOT/WEB-INF/lib folder.

Copy the ruby-gems.jar from Liferay 6.2 M4 then put it to webapps/ROOT/WEB-INF/lib of your Liferay 6.1 server.

 Add the following to your portal-ext.properties (Note: Don't miss the backslash in the end of the first line):

scripting.jruby.load.paths=\
classpath:/META-INF/jruby.home/lib/ruby/site_ruby/1.8,\
classpath:/META-INF/jruby.home/lib/ruby/site_ruby/shared,\
classpath:/gems/chunky_png-1.2.6/lib,\
classpath:/gems/compass-0.12.2/lib,\
classpath:/gems/fssm-0.2.9/lib,\
classpath:/gems/sass-3.2.1/lib,\
${java.io.tmpdir}/liferay/ruby/gems/chunky_png-1.2.6/lib,\
${java.io.tmpdir}/liferay/ruby/gems/compass-0.12.2/lib,\
${java.io.tmpdir}/liferay/ruby/gems/fssm-0.2.9/lib,\
${java.io.tmpdir}/liferay/ruby/gems/sass-3.2.1/lib

Delete the "ruby" folder under your {java.io.tmpdir}/liferay folder to ensure Liferay to use the newest campass library.

Note:

You may wondering why we are using ${java.io.tmpdir} here. This is because JRuby has some problem loading the files inside a jar file. To overcome the problem, Liferay implemented a workaround: extract the ruby-gems.jar to ${java.io.tmpdir}/liferay/ruby/ folder and tell the JRuby to load the files there as a backup plan. You can find the logic in com.liferay.portal.scripting.ruby.RubyExecutor.initRubyGems().

 

Blogs
hello, where can i get the liferay-portal-6.2.0-ce-m4 all i can find is liferay-portal-6.1-ce-ga2, i have the same problem of yours, can u help me and send the ruby-gems.jar (which contains the campass library) in Liferay 6.2 M4 under liferay-portal-6.2.0-ce-m4/tomcat-7.0.34/webapps/ROOT/WEB-INF/lib ? here is my email zishuang-369@163.com, thank u very much!
Hi Jack,

You can download from sourceforge:
http://sourceforge.net/projects/lportal/files/Liferay%20Portal/

Or you can download the ruby-gems.jar from my google drive:
https://docs.google.com/file/d/0B7stjZahI-VjZVZtMUNXanA1WnM/edit?usp=sharing
Hello Kan,

I am having issue while building theme with bootstrap as described by you.
I followed your step to upgrade compass, but I am getting error while building theme
Below is the error,
org.jruby.embed.EvalFailedException: (LoadError) no such file to load -- compass
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:177)
at com.liferay.portal.scripting.ruby.RubyExecutor.eval(RubyExecutor.java:121)
at com.liferay.portal.tools.SassToCssBuilder._parseSassFile(SassToCssBuilder.java:232)
at com.liferay.portal.tools.SassToCssBuilder._parseSassDirectory(SassToCssBuilder.java:194)
at com.liferay.portal.tools.SassToCssBuilder.<init>(SassToCssBuilder.java:132)
at com.liferay.portal.tools.SassToCssBuilder.main(SassToCssBuilder.java:88)
Caused by: org.jruby.exceptions.RaiseException: (LoadError) no such file to load -- compass

Please help me in resolving this issue.
Thanks in advance
Hi Pritesh,

Please check your ${java.io.tmpdir}/liferay folder and delete the "ruby" folder if there is any.
On windows system, the default ${java.io.tmpdir} is C:\Users\${YOUR.USER.NAME}\AppData\Local\Temp.
Hello Kan,

Thanks for the quick reply. I did the same but still I am getting error in console whereas I am able to get updated style in theme deployed to server.

Do you know why this error in console, or how to resolve it?

Thanks in advance
Hi Pritesh,
I never seen that error in console before.

Normally it should give the full file path like "file:/some/path/compass" instead of just "compass" in the error log:
org.jruby.embed.EvalFailedException: (LoadError) no such file to load -- file:/some/path/compass

Looks like it cannot find the correct path of the compass library.

If you check the source code of the com.liferay.portal.scripting.ruby.RubyExecutor, at line 159, it loads scripting.jruby.load.paths to the ruby context. I will recommend to debug the RubyExecutor to find out what is missing there.

Also if you are using OpenJDK instead of official JDK, it may cause problem too.
Hi Pritesh,

After some thought, I think you may missed one backward slash "\" in your "scripting.jruby.load.paths" property.

The property should look like this:
scripting.jruby.load.paths=\
classpath:/META-INF/jruby.home/lib/ruby/site_ruby/1.8,\
classpath:/META-INF/jruby.home/lib/ruby/site_ruby/shared,\
classpath:/gems/chunky_png-1.2.6/lib,\
classpath:/gems/compass-0.12.2/lib,\
classpath:/gems/fssm-0.2.9/lib,\
classpath:/gems/sass-3.2.1/lib,\
${java.io.tmpdir}/liferay/ruby/gems/chunky_png-1.2.6/lib,\
${java.io.tmpdir}/liferay/ruby/gems/compass-0.12.2/lib,\
${java.io.tmpdir}/liferay/ruby/gems/fssm-0.2.9/lib,\
${java.io.tmpdir}/liferay/ruby/gems/sass-3.2.1/lib

Note the backward slash "\" right after the "=", it is used to escape the new line character. If you missed that, the value of "scripting.jruby.load.paths" property will be empty -- which will cause that exception.
Ki Kan,

Thanks for this information.

I ran to same issue also. While checking, I noticed that the versions in my liferay temp folder are different from the defaults recommended in the portal-ext.propoerties file. I changed the version to this:

classpath:/META-INF/jruby.home/lib/ruby/1.8,\
classpath:/gems/chunky_png-1.2.9/lib,\
classpath:/gems/compass-0.12.2/lib,\
classpath:/gems/fssm-0.2.10/lib,\
classpath:/gems/sass-3.2.12/lib,\
file:${liferay.lib.portal.dir}ruby-gems.jar!/gems/chunky_png-1.2.9/lib,\
file:${liferay.lib.portal.dir}ruby-gems.jar!/gems/compass-0.12.2/lib,\
file:${liferay.lib.portal.dir}ruby-gems.jar!/gems/fssm-0.2.10/lib,\
file:${liferay.lib.portal.dir}ruby-gems.jar!/gems/sass-3.2.12/lib

from this:

classpath:/gem­s/chunky_png-1.2.6/lib,\
classpath:/gems/compass-0.12.2/lib,\
classpath:/gems/fssm­-0.2.9/lib,\
classpath:/gems/sass-3.2.1/lib,\
${java.io.tmpdir}/liferay/ruby/gems/­chunky_png-1.2.6/lib,\
${java.io.tmpdir}/liferay/ruby/gems/compass-0.12.2/lib,\
${­java.io.tmpdir}/liferay/ruby/gems/fssm-0.2.9/lib,\
${java.io.tmpdir}/liferay/ruby­/gems/sass-3.2.1/lib

-- and I was able to build the the theme and deploy them.

Regards,
Hello Wolex!

Also had this issue while playing around with a new theme for one of our projects based on an older version of LR.

It should be noted that this error only came up when running the portal (theme) in IE10, my default browser (Chrome) doesn't throw this error though.

Applied all the fixes as recommended by Kan, using the same version of ruby-gems.jar you also used, with the configuration on portal-ext.properties file as yours. However, this didn't completely fix mine. Had to clear all temp folders and set this portal-ext.properties file entry

com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSFilter=false

..and after cleaning server and restarting.. all seem to work well now!
[...] As of the responsive design, usually we will pick a responsive framework like Twitter Bootstrap as the start point and build our own on top of it. But Liferay 6.1 does not play well with Twitter... [...] Read More
Hi Kan Zhang,

I had do these changes...it works except control panel.
The control panel of Liferay Portal 6.1 CE GA2 Left Menu is displaying but when i select any of the left menu, the content is not displaying.. or the aui-icon-lightbulb icon is repeated.

Help me out...

Ramkumar
I never seen this issue. Could you please check if you set
com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSFilter=false
in your portal-ext.properties? It should be set to true.
Also could you please clear your browser cache, the temp and work folder of tomcat and test it again? Is there any error in your log?
Sorry I forgot to take error log, i reinstalled the server it works fine with this blog code ... If i face that same error again i will post the log.

Thank u
Yeah it worked
com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSFilter=false
com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSFilter=false
with guest is OK, but with user login portal, CSS will be broken.
Hi everybody,
it's more simple to override new jar path:

gems/chunky_png-1.2.6/lib,\
gems/compass-0.12.2/lib,\
gems/fssm-0.2.9/lib,\
gems/sass-3.2.1/lib

with the old ones:

gems/chunky_png-1.2.1/lib,\
gems/compass-0.11.5/lib,\
gems/fssm-0.2.7/lib,\
gems/sass-3.2.7/lib

and no portal-ext.properties modifications are needed, no temp folder to delete... only numbers replacement.

Alberto
Hi, alberto rigenti.

How do you override the new jar path like you are?
simply opening the jar with 7zip and renaming folders ... if you need help ask .. I can also give you the j modified ar ..
simply opening the jar with 7zip and renaming folders ... if you need help ask .. I can also give you the j modified ar ..
Hi, alberto rigenti.

Ah, I finally got it to work; however I had to get on windows. I don't know how to access those files without 7zip on a mac.
Did this works for anybody ?????
I think there's something wrong with this method
Yes it works,
U may have missed something.
Thanks for your response
i am still getting this error

org.jruby.embed.EvalFailedException: (LoadError) no such file to load -- compass
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:177)
at com.liferay.portal.scripting.ruby.RubyExecutor.eval(RubyExecutor.java:121)
at com.liferay.portal.tools.SassToCssBuilder._parseSassFile(SassToCssBuilder.java:2­32)
at com.liferay.portal.tools.SassToCssBuilder._parseSassDirectory(SassToCssBuilder.j­ava:194)
at com.liferay.portal.tools.SassToCssBuilder.<init>(SassToCssBuilder.java:132)
at com.liferay.portal.tools.SassToCssBuilder.main(SassToCssBuilder.java:88)
Caused by: org.jruby.exceptions.RaiseException: (LoadError) no such file to load -- compass
Can anybody help?
Check the following
1. stop the server and Clear tmp files both in liferay server and computer as mentioned above
2. Check the jar file is correctly placed
3. check the lines copied into portal-ext.properties are correct
Thanks again
i followed you instructions but still the same problem
The problem was that the plugins sdk while building the theme css read the portal properties form
liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties
and not from portal-ext.properties so it didn't see the new configuration
scripting.jruby.load.paths=\
classpath:/META-INF/jruby.home/lib/ruby/site_ru­by/1.8,\
classpath:/META-INF/jruby.home/lib/ruby/site_ruby/shared,\
classpath:/gem­s/chunky_png-1.2.6/lib,\
classpath:/gems/compass-0.12.2/lib,\
classpath:/gems/fssm­-0.2.9/lib,\
classpath:/gems/sass-3.2.1/lib,\
${java.io.tmpdir}/liferay/ruby/gems/­chunky_png-1.2.6/lib,\
${java.io.tmpdir}/liferay/ruby/gems/compass-0.12.2/lib,\
${­java.io.tmpdir}/liferay/ruby/gems/fssm-0.2.9/lib,\
${java.io.tmpdir}/liferay/ruby­/gems/sass-3.2.1/lib
and will use the old one stored under liferay-portal-6.1.1-ce-ga2/tomcat-7.0.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties
so what solved my problem is that i modified scripting.jruby.load.paths directly on portal-impl.jar . i don't if there's anybody else who got this problem?
Issue

Sass::SyntaxError: Invalid CSS after "... not be edited)": expected ";", was ". "
expected at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1147
expected at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1084
tok! at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1079
declaration_or_ruleset at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:585
call at org/jruby/RubyProc.java:270
call at org/jruby/RubyProc.java:220
rethrow at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1122
declaration_or_ruleset at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:591
block_child at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:553
block_contents at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:542
block at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:534
ruleset at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:528
block_child at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:552
block_contents at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:545
stylesheet at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:82
parse at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:27
_to_tree at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:342
_render at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:315
render at /srv/mii-portal/tomcat/temp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:262
(root) at <script>:48
Exception in thread "http-bio-8080-exec-31" java.lang.StackOverflowError
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)
at java.util.regex.Pattern$Loop.match(Pattern.java:4683)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4615)
at java.util.regex.Pattern$BranchConn.match(Pattern.java:4466)
I am using Eclipse Kepler-4.3 and Liferay 6.2 CE GA5.
I tried to deploy a theme but I got this error:
Sass::SyntaxError: Invalid CSS after "...ow-x: hidden\0/": expected expression (e.g. 1px, bold), was ";". I tried your solution but it did not work for me.
I am getting the same error as Marwen and Anindya. Any help will be greatly appreciated!

23:34:33,691 ERROR [[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'][DynamicCSSFilter:185] Unable to parse SASS on CSS /u01/app/oracle/domains/liferay-deploy/liferay-packaged/abc-def-theme/css/custom.css
org.jruby.embed.EvalFailedException: (SyntaxError) Invalid CSS after "...***************": expected "{", was "<!-- "
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:177)
at com.liferay.portal.scripting.ruby.RubyExecutor.eval(RubyExecutor.java:121)
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:148)
at com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSFilter.processFilter(DynamicCSSFilter.java:212)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
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:70)
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.GeneratedMethodAccessor765.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy749.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:163)
at com.liferay.portal.servlet.filters.minifier.MinifierFilter.processFilter(MinifierFilter.java:481)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
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:70)
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 sun.reflect.GeneratedMethodAccessor765.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy749.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:163)
at com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:445)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
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:70)
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.GeneratedMethodAccessor765.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy749.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:163)
at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:56)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
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:70)
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.GeneratedMethodAccessor765.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy749.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:163)
at com.liferay.portal.servlet.filters.header.HeaderFilter.processFilter(HeaderFilter.java:150)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
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:70)
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 sun.reflect.GeneratedMethodAccessor765.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy749.doFilter(Unknown Source)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:167)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:70)
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.InvokerFilter.doFilter(InvokerFilter.java:73)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1499)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: org.jruby.exceptions.RaiseException: (SyntaxError) Invalid CSS after "...***************": expected "{", was "<!-- "
at rubyjit.expected_712D19E4664EE613D852B9C1CEF919F8EB1A8371.expected(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1147)
at rubyjit.expected_0D93B7AA24DC70237E5CDCFD1022C4B57DEA05DB.expected(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1084)
at rubyjit.tok!_8782EE2B20EC8B9DAE90A93C36CDD92B21E01C6D.tok!(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1079)
at rubyjit.block_A648A8A3A5E6F52044C7FC864154EC34F9C5C29F.block(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:533)
at rubyjit.ruleset_A094B4DA7D4854573B8A462BB70794B53E9D8A5E.ruleset(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:528)
at rubyjit.block_child_4CB53BEDF5DCF9F4EB95346FAAEA26EE0E489EAE.block_child(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:552)
at rubyjit.block_contents_F59E4C54F8A986A86942E4699F76225A23496BBA.block_contents(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:545)
at rubyjit.stylesheet_03074712F944DF1296260467BF7F4079E967E59D.stylesheet(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:82)
at rubyjit.parse_257EA9E815AA9E346BA2D5A1A0F1F0E6577FEC04.parse(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:27)
at rubyjit._to_tree_076CBDC07F2E310904CD0DEDAFBF4BBFF8D86DAB._to_tree(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:342)
at rubyjit._render_B7E18C751F1EC548DEC68A086E480004BED3CAE3._render(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:315)
at rubyjit.render_F5F16A2D28F00D780CFCAF0EC3A17F9BECAD03D4.render(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:262)
at #<Class:0x165741815>.(root)(<script>:38)























Sass::SyntaxError: Invalid CSS after "...***************": expected "{", was "<!-- "
expected at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1147
expected at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1084
tok! at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1079
block at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:533
ruleset at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:528
block_child at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:552
block_contents at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:545
stylesheet at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:82
parse at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:27
_to_tree at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:342
_render at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:315
render at /tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:262
(root) at <script>:38
23:34:33,691 ERROR [[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'][DynamicCSSFilter:185] Unable to parse SASS on CSS /u01/app/oracle/domains/liferay-deploy/liferay-packaged/ssd-cws-theme/css/custom.css
org.jruby.embed.EvalFailedException: (SyntaxError) Invalid CSS after "...***************": expected "{", was "<!-- "
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:177)
at com.liferay.portal.scripting.ruby.RubyExecutor.eval(RubyExecutor.java:121)
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:148)
at com.liferay.portal.servlet.filters.dynamiccss.DynamicCSSFilter.processFilter(DynamicCSSFilter.java:212)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
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:70)
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.GeneratedMethodAccessor765.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy749.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:163)
at com.liferay.portal.servlet.filters.minifier.MinifierFilter.processFilter(MinifierFilter.java:481)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
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:70)
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 sun.reflect.GeneratedMethodAccessor765.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy749.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:163)
at com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:445)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
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:70)
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.GeneratedMethodAccessor765.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy749.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:163)
at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:56)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
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:70)
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.GeneratedMethodAccessor765.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy749.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:163)
at com.liferay.portal.servlet.filters.header.HeaderFilter.processFilter(HeaderFilter.java:150)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:57)
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:70)
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 sun.reflect.GeneratedMethodAccessor765.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.liferay.portal.kernel.bean.ClassLoaderBeanHandler.invoke(ClassLoaderBeanHandler.java:67)
at com.sun.proxy.$Proxy749.doFilter(Unknown Source)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:167)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:95)
at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:70)
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.InvokerFilter.doFilter(InvokerFilter.java:73)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1499)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: org.jruby.exceptions.RaiseException: (SyntaxError) Invalid CSS after "...***************": expected "{", was "<!-- "
at rubyjit.expected_712D19E4664EE613D852B9C1CEF919F8EB1A8371.expected(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1147)
at rubyjit.expected_0D93B7AA24DC70237E5CDCFD1022C4B57DEA05DB.expected(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1084)
at rubyjit.tok!_8782EE2B20EC8B9DAE90A93C36CDD92B21E01C6D.tok!(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:1079)
at rubyjit.block_A648A8A3A5E6F52044C7FC864154EC34F9C5C29F.block(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:533)
at rubyjit.ruleset_A094B4DA7D4854573B8A462BB70794B53E9D8A5E.ruleset(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:528)
at rubyjit.block_child_4CB53BEDF5DCF9F4EB95346FAAEA26EE0E489EAE.block_child(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:552)
at rubyjit.block_contents_F59E4C54F8A986A86942E4699F76225A23496BBA.block_contents(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:545)
at rubyjit.stylesheet_03074712F944DF1296260467BF7F4079E967E59D.stylesheet(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:82)
at rubyjit.parse_257EA9E815AA9E346BA2D5A1A0F1F0E6577FEC04.parse(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/scss/parser.rb:27)
at rubyjit._to_tree_076CBDC07F2E310904CD0DEDAFBF4BBFF8D86DAB._to_tree(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:342)
at rubyjit._render_B7E18C751F1EC548DEC68A086E480004BED3CAE3._render(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:315)
at rubyjit.render_F5F16A2D28F00D780CFCAF0EC3A17F9BECAD03D4.render(/tmp/liferay/ruby/gems/sass-3.2.12/lib/sass/engine.rb:262)
at #<Class:0x165741815>.(root)(<script>:38)