How to resolve Sass compiler/parser errors after Vaadin project upgrade

This seems to be more difficult than I would like.

Using the Eclipse plugin, ANT task or just a command line compile command all gives the same error.

I’m certain it is in my scss file but the error messages are very cryptic. How can the parser be at a line of -1 and column of -1? Below is the stack trace.

compile-theme:
     [java]
 May 19, 2015 11:03:18 AM com.vaadin.sass.internal.tree.MixinNode traverse
     [java]
 SEVERE: null
     [java]
 com.vaadin.sass.internal.parser.ParseException: Argument substitution error: there is no value for the argument offsetV. Formal arguments: FormalArgumentList[$offsetH: null, $offsetV: null, $blurRadius: null, $spread: null, $color: null]
, actual arguments: Actual argument list [ArgumentList [1px 0 2px rgba(0, 0, 0, 0.1)]
] at line -1, column -1
     [java]
     at com.vaadin.sass.internal.parser.FormalArgumentList.replaceUnnamedAndDefaultArguments(FormalArgumentList.java:250)
     [java]
     at com.vaadin.sass.internal.parser.FormalArgumentList.replaceFormalArguments(FormalArgumentList.java:129)
     [java]
     at com.vaadin.sass.internal.tree.DefNode.replacePossibleArguments(DefNode.java:73)
     [java]
     at com.vaadin.sass.internal.visitor.MixinNodeHandler.replaceMixinNode(MixinNodeHandler.java:55)
     [java]
     at com.vaadin.sass.internal.visitor.MixinNodeHandler.replaceMixins(MixinNodeHandler.java:45)

Here is the code block in the parser that is failing from the FormalArgumentList.java class on GitHub: // Replace default values given in the definition node while (formalIndex < maxFormalIndex) { if (arglist.get(formalIndex).getExpr() == null && checkForUnsetParameters) { throw new ParseException( "Argument substitution error: there is no value for the argument " [code]

  • formalArguments.get(formalIndex).getName()
    [/code][code]
  • ". Formal arguments: " + this
    [/code][code]
  • ", actual arguments: " + actualArguments,
    [/code] actualArguments); }

I’ve fixed this now. So this is the path I took fix my issue. Hopefully it will help someone else as well.

I was originally on the Vaadin release of 7.1.11 and had migrated to 7.4.6 to start moving to the new Grid component.

My Maven and Ivy dependencies were not working for me using the defaults in Eclipse Luna or IntelliJ 14.

My old projects were working and I noticed this legacy jar file in my class path: vaadin-shared-deps-1.0.2.jar

When I started digging inside of this jar file I noticed it was leveraging the org.w3c.flute.parser classes.
When I downloaded the entire zip for 7.4.6 and then started searching in the lib folder I could NOT find a jar file with this name but I DID find a jar file named: flute-1.3.0.gg2.jar

When I added this to my class path in Eclipse the Compile Theme plugin started working.

So in short if you WERE using the vaadin-shared-deps-1.0.2.jar it has now been split into two sperate jars.
I only needed the flute jar but there is another one called guava-16.0.1.vaadin1.jar which might need in your classpath if you are having build issues.

Hope this helps someone.

Cheers!

vaadin-client-compiler-7.x.x.jar
vaadin-client-compiler-deps-1.x.x.jar
vaadin-shared-deps-1.x.x.jar
Are all gwt compile related. While the info above may help someone it doesn’t resovle my SASS compiler issue.

This is fixed now.

The sass compiler in 7.4.6 needs the following jars:

flute-1.3.0.gg2.jar
guava-16.0.1.vaadin1.jar
cssparser-0.9.11.jar

With these three in my classpath the Eclipse “Compile Theme” plugin works as expected.

Cheers

cssparser-0.9.11.jar is not found on 7.5 How do I fix this?
See ​https://vaadin.com/forum#!/thread/10514542