swagger-api / swagger-codegen

swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.
http://swagger.io
Apache License 2.0
16.91k stars 6.03k forks source link

[RETROFIT2] Problem: com.github.jknack.handlebars.HandlebarsException #9053

Open MichalDanielDobrzanski opened 5 years ago

MichalDanielDobrzanski commented 5 years ago
Description

Cannot generate gradle module because of runtime exception with retrofit2. Using RxJava2 also.

Swagger-codegen version

3.0.1

Swagger declaration file content or url

I cannot post API, cause it is internal in the company.

Exception in thread "Thread-0" java.lang.RuntimeException: Could not generate api file for 'Department'
    at io.swagger.codegen.v3.DefaultGenerator.generateApis(DefaultGenerator.java:523)
    at io.swagger.codegen.v3.DefaultGenerator.generate(DefaultGenerator.java:722)
    at io.swagger.codegen.v3.cli.cmd.Generate.run(Generate.java:342)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: com.github.jknack.handlebars.HandlebarsException: /handlebars/Java/libraries/retrofit2/api_test.mustache:31:8: found: 'ƒ'
    {{#@ƒirst}}
        ^

    at com.github.jknack.handlebars.internal.HbsErrorReporter.syntaxError(HbsErrorReporter.java:93)
    at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:65)
    at com.github.jknack.handlebars.internal.HbsParserFactory$2.notifyListeners(HbsParserFactory.java:148)
Command line used for generation

swagger-codegen generate -i openapi.json -l java -c config.json -o /Users/mmdo/apis/test/

Steps to reproduce

Just run the script

Related issues/PRs
Suggest a fix/enhancement

Probably an injection into the script occured

zkdzegede commented 5 years ago

Running into the same problem for 3.0.4

stawil15 commented 5 years ago

I'm also getting this error on 3.0.4

Exception in thread "Thread-1" java.lang.RuntimeException: Could not generate api file for 'FILENAME'
    at io.swagger.codegen.v3.DefaultGenerator.generateApis(DefaultGenerator.java:523)
    at io.swagger.codegen.v3.DefaultGenerator.generate(DefaultGenerator.java:722)
    at io.swagger.codegen.v3.cli.cmd.Generate.run(Generate.java:342)
    at java.lang.Thread.run(Thread.java:748)
Caused by: com.github.jknack.handlebars.HandlebarsException: /handlebars/Java/libraries/retrofit2/api_test.mustache:31:8: found: 'ƒ'
    {{#@ƒirst}}
        ^

    at com.github.jknack.handlebars.internal.HbsErrorReporter.syntaxError(HbsErrorReporter.java:93)
    at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:65)
    at com.github.jknack.handlebars.internal.HbsParserFactory$2.notifyListeners(HbsParserFactory.java:148)
    at org.antlr.v4.runtime.Lexer.nextToken(Lexer.java:168)
    at org.antlr.v4.runtime.BufferedTokenStream.fetch(BufferedTokenStream.java:185)
    at org.antlr.v4.runtime.BufferedTokenStream.sync(BufferedTokenStream.java:168)
    at org.antlr.v4.runtime.BufferedTokenStream.consume(BufferedTokenStream.java:152)
    at org.antlr.v4.runtime.Parser.consume(Parser.java:593)
    at org.antlr.v4.runtime.Parser.match(Parser.java:226)
    at com.github.jknack.handlebars.internal.HbsParser.sexpr(HbsParser.java:884)
    at com.github.jknack.handlebars.internal.HbsParser.block(HbsParser.java:657)
    at com.github.jknack.handlebars.internal.HbsParser.statement(HbsParser.java:336)
    at com.github.jknack.handlebars.internal.HbsParser.body(HbsParser.java:222)
    at com.github.jknack.handlebars.internal.HbsParser.block(HbsParser.java:670)
    at com.github.jknack.handlebars.internal.HbsParser.statement(HbsParser.java:336)
    at com.github.jknack.handlebars.internal.HbsParser.body(HbsParser.java:222)
    at com.github.jknack.handlebars.internal.HbsParser.block(HbsParser.java:670)
    at com.github.jknack.handlebars.internal.HbsParser.statement(HbsParser.java:336)
    at com.github.jknack.handlebars.internal.HbsParser.body(HbsParser.java:222)
    at com.github.jknack.handlebars.internal.HbsParser.block(HbsParser.java:670)
    at com.github.jknack.handlebars.internal.HbsParser.statement(HbsParser.java:336)
    at com.github.jknack.handlebars.internal.HbsParser.body(HbsParser.java:222)
    at com.github.jknack.handlebars.internal.HbsParser.template(HbsParser.java:165)
    at com.github.jknack.handlebars.internal.HbsParserFactory$1.parse(HbsParserFactory.java:84)
    at com.github.jknack.handlebars.cache.NullTemplateCache.get(NullTemplateCache.java:54)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:414)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:357)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:343)
    at io.swagger.codegen.v3.templates.HandlebarTemplateEngine.getHandlebars(HandlebarTemplateEngine.java:48)
    at io.swagger.codegen.v3.templates.HandlebarTemplateEngine.getRendered(HandlebarTemplateEngine.java:24)
    at io.swagger.codegen.v3.DefaultGenerator.processTemplateToFile(DefaultGenerator.java:735)
    at io.swagger.codegen.v3.DefaultGenerator.generateApis(DefaultGenerator.java:498)
    ... 3 more
kmhughes commented 5 years ago

Same here: 3.0.5-SNAPSHOT

DevYoungHulk commented 5 years ago

Same issue with version 3.0.5. Config:

{
  "library": "retrofit2",
  "useRxJava2": "true",
  "developerName": "name",
  "developerEmail": "",
  "developerOrganization": "",
  "invokerPackage": "cn",
  "modelPackage": "cn",
  "apiPackage": "cn.api",
  "artifactId": "swagger-petstore-retrofit2"
}

Error log:

15:40:30.621 [Thread-1] DEBUG com.github.jknack.handlebars.internal.HbsParserFactory - About to parse: /handlebars/Java/libraries/retrofit2/api_test.mustache
15:40:30.621 [Thread-1] DEBUG com.github.jknack.handlebars.internal.HbsParserFactory - Building AST
Exception in thread "Thread-1" java.lang.RuntimeException: Could not generate api file for 'AppConfigurationController'
    at io.swagger.codegen.v3.DefaultGenerator.generateApis(DefaultGenerator.java:523)
    at io.swagger.codegen.v3.DefaultGenerator.generate(DefaultGenerator.java:722)
    at io.swagger.codegen.v3.cli.cmd.Generate.run(Generate.java:342)
    at java.lang.Thread.run(Thread.java:748)
Caused by: com.github.jknack.handlebars.HandlebarsException: /handlebars/Java/libraries/retrofit2/api_test.mustache:31:8: found: 'ƒ'
    {{#@ƒirst}}
        ^

    at com.github.jknack.handlebars.internal.HbsErrorReporter.syntaxError(HbsErrorReporter.java:93)
    at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:65)
    at com.github.jknack.handlebars.internal.HbsParserFactory$2.notifyListeners(HbsParserFactory.java:148)
    at org.antlr.v4.runtime.Lexer.nextToken(Lexer.java:168)
    at org.antlr.v4.runtime.BufferedTokenStream.fetch(BufferedTokenStream.java:185)
    at org.antlr.v4.runtime.BufferedTokenStream.sync(BufferedTokenStream.java:168)
    at org.antlr.v4.runtime.BufferedTokenStream.consume(BufferedTokenStream.java:152)
    at org.antlr.v4.runtime.Parser.consume(Parser.java:593)
    at org.antlr.v4.runtime.Parser.match(Parser.java:226)
    at com.github.jknack.handlebars.internal.HbsParser.sexpr(HbsParser.java:884)
    at com.github.jknack.handlebars.internal.HbsParser.block(HbsParser.java:657)
    at com.github.jknack.handlebars.internal.HbsParser.statement(HbsParser.java:336)
    at com.github.jknack.handlebars.internal.HbsParser.body(HbsParser.java:222)
    at com.github.jknack.handlebars.internal.HbsParser.block(HbsParser.java:670)
    at com.github.jknack.handlebars.internal.HbsParser.statement(HbsParser.java:336)
    at com.github.jknack.handlebars.internal.HbsParser.body(HbsParser.java:222)
    at com.github.jknack.handlebars.internal.HbsParser.block(HbsParser.java:670)
    at com.github.jknack.handlebars.internal.HbsParser.statement(HbsParser.java:336)
    at com.github.jknack.handlebars.internal.HbsParser.body(HbsParser.java:222)
    at com.github.jknack.handlebars.internal.HbsParser.block(HbsParser.java:670)
    at com.github.jknack.handlebars.internal.HbsParser.statement(HbsParser.java:336)
    at com.github.jknack.handlebars.internal.HbsParser.body(HbsParser.java:222)
    at com.github.jknack.handlebars.internal.HbsParser.template(HbsParser.java:165)
    at com.github.jknack.handlebars.internal.HbsParserFactory$1.parse(HbsParserFactory.java:84)
    at com.github.jknack.handlebars.cache.NullTemplateCache.get(NullTemplateCache.java:54)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:414)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:357)
    at com.github.jknack.handlebars.Handlebars.compile(Handlebars.java:343)
    at io.swagger.codegen.v3.templates.HandlebarTemplateEngine.getHandlebars(HandlebarTemplateEngine.java:48)
    at io.swagger.codegen.v3.templates.HandlebarTemplateEngine.getRendered(HandlebarTemplateEngine.java:24)
    at io.swagger.codegen.v3.DefaultGenerator.processTemplateToFile(DefaultGenerator.java:735)
    at io.swagger.codegen.v3.DefaultGenerator.generateApis(DefaultGenerator.java:498)
    ... 3 more
kmhughes commented 5 years ago

Does anyone know where these handlebar templates exist? I have built the code generator myself and just don't see where the templates are.

HugoMario commented 5 years ago

@kmhughes , templates are here https://github.com/swagger-api/swagger-codegen-generators/tree/master/src/main/resources/handlebars

kmhughes commented 5 years ago

Cool, thanks. I went looking and never found them, but apparently didn't look hard enough. Sigh.

mercuriete commented 5 years ago

same problem

bobpf commented 5 years ago

Same issue here

simon-maling commented 5 years ago

I experienced the same issues, after some research I found that the issue has already been fixed in swagger generator v1.0.7. See https://github.com/swagger-api/swagger-codegen-generators/pull/318

thanhdt251099 commented 3 years ago

i have same issue here :(( help meee

iskanred commented 1 year ago

Same