xwikisas / application-cookie-consent

GNU General Public License v2.0
0 stars 1 forks source link

LESSCompilerException Error when accessing GDPR Cookie Consent Setup from Administration #30

Closed ilieandriuta closed 3 years ago

ilieandriuta commented 3 years ago

STEPS TO REPRODUCE

Environment: Windows 10 Pro 64bit, Chrome 89, using an instance of XWiki 13.1 on Oracle 19c, Tomcat 9.0.43, GDPR Cookie Consent 1.2.5

  1. Install GDPR Cookie Consent application
  2. Go to Administer Wiki > Other > GDPR Cookie Consent Setup
  3. Observe the console

EXPECTED RESULTS

The page is loaded right away. No errors are displayed in console.

ACTUAL RESULTS

The page is not loaded on the first click. In console there is the following stacktrace:

2021-03-10 15:50:53,946 [http-nio-1115-exec-8 - http://localhost:1115/xwiki/bin/ssx/CookieConsent/WebHome?language=en&docVersion=1.1] ERROR o.x.l.i.c.DefaultLESSCompiler  - Error during the compilation of the resource [org.xwiki.lesscss.internal.resources.LESSObjectPropertyResourceReference@f177eeba].
org.xwiki.lesscss.compiler.LESSCompilerException: Failed to compile the resource [org.xwiki.lesscss.internal.resources.LESSObjectPropertyResourceReference@f177eeba] with LESS.
        at org.xwiki.lesscss.internal.compiler.CachedLESSCompiler.compute(CachedLESSCompiler.java:114)
        at org.xwiki.lesscss.internal.compiler.CachedLESSCompiler.compute(CachedLESSCompiler.java:50)
        at org.xwiki.lesscss.internal.cache.AbstractCachedCompiler.getResult(AbstractCachedCompiler.java:137)
        at org.xwiki.lesscss.internal.cache.AbstractCachedCompiler.getResult(AbstractCachedCompiler.java:85)
        at org.xwiki.lesscss.internal.compiler.DefaultLESSCompiler.compile(DefaultLESSCompiler.java:66)
        at com.xpn.xwiki.web.sx.SxDocumentSource.getContent(SxDocumentSource.java:141)
        at com.xpn.xwiki.web.sx.AbstractSxAction.renderExtension(AbstractSxAction.java:86)
        at com.xpn.xwiki.web.sx.AbstractSxAction.render(AbstractSxAction.java:142)
        at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:561)
        at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:258)
        at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:104)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:122)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:109)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:887)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1684)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: com.github.sommeri.less4j.Less4jException: Could not compile less. 2 error(s) occurred:
ERROR 7:7 no viable alternative at input '$' in ruleset (which started at 5:1)
 6:   position: fixed;
 7:       ${settings.getProperty('position').value}: 10px;
 8:     left: 50%;

ERROR 7:7 missing EOF at '$' in stylesheet (which started at 1:1)
 6:   position: fixed;
 7:       ${settings.getProperty('position').value}: 10px;
 8:     left: 50%;

        at com.github.sommeri.less4j.core.ThreadUnsafeLessCompiler.toAntlrTree(ThreadUnsafeLessCompiler.java:136)
        at com.github.sommeri.less4j.core.ThreadUnsafeLessCompiler.doCompile(ThreadUnsafeLessCompiler.java:101)
        at com.github.sommeri.less4j.core.ThreadUnsafeLessCompiler.compile(ThreadUnsafeLessCompiler.java:85)
        at com.github.sommeri.less4j.core.DefaultLessCompiler.compile(DefaultLessCompiler.java:56)
        at org.xwiki.lesscss.internal.compiler.less4j.Less4jCompiler.compile(Less4jCompiler.java:67)
        at org.xwiki.lesscss.internal.compiler.CachedLESSCompiler.compute(CachedLESSCompiler.java:108)
        ... 48 common frames omitted
2021-03-10 15:51:03,318 [http-nio-1115-exec-1 - http://localhost:1115/xwiki/bin/admin/XWiki/XWikiPreferences?editor=globaladmin&section=GDPR%20Cookie%20Consent%20Setup] WARN  .o.i.DefaultObservationManager - The [org.xwiki.localization.wiki.internal.OnDemandDocumentTranslationBundle] listener is overwriting a previously registered listener [org.xwiki.localization.wiki.internal.ComponentDocumentTranslationBundle] since they both are registered under the same id [localization.bundle.document:xwiki:CookieConsent.Translation]. In the future consider removing a Listener first if you really want to register it again.

However, the page loads if it's clicked again.

Tested on both XWiki 13.1 and 12.10.4.

acotiuga commented 3 years ago

The errors are caused by the {} from ${settings.getProperty('position').value} which are not needed at all.