swagger-codegen icon indicating copy to clipboard operation
swagger-codegen copied to clipboard

Syntax error in generated code for retrofit2 class auth.OAuth since v3.0.52

Open luiscubal opened this issue 1 year ago • 0 comments

Description

Swagger is generating a file with syntax errors when retrofit2 is used since v3.0.52. This seems to be caused by a duplicated if statement:

            // 401/403 most likely indicates that access token has expired. Unless it happens two times in a row.
            if ( response != null && (response.code() == HTTP_UNAUTHORIZED || response.code() == HTTP_FORBIDDEN) && updateTokenAndRetryOnAuthorizationFailure ) {
                if ( response != null && (response.code() == HTTP_UNAUTHORIZED || response.code() == HTTP_FORBIDDEN) && updateTokenAndRetryOnAuthorizationFailure ) {
                try {

The second if should not have been inserted, so the { has no matching }.

Attempting to compile this file will print this error:

test\auth\OAuth.java:136: error: illegal start of expression
    public synchronized boolean updateAccessToken(String requestAccessToken) throws IOException {
    ^
1 error

Because of this error, I am unable to use the generated code. Mitigation: staying in v3.0.51

Swagger-codegen version

Works in v3.0.51, fails in both v3.0.52 and in v3.0.62-20240826.194328-3 (latest snapshot, I think).

Swagger declaration file content or url

Issue can be replicated with:

openapi: 3.0.1
info:
  title: OpenAPI definition
paths:
  '/foo':
    get:
      description: 'Foo'
      operationId: foo
Command line used for generation
java -jar <swagger-codegen-cli-jar-path> generate --model-package=test.models --api-package=test.api --library=retrofit2 -l java -o dist/ -i schema.yaml
Steps to reproduce

Run the command above.

Inspect generated dist/src/main/java/test/auth/OAuth.java

Expected: file has no syntax errors

Actual: an if statement appears twice, leading to a syntax error.

Related issues/PRs

I couldn't find anything.

Suggest a fix/enhancement

Remove the duplicated if. I have no idea what puts it there.

luiscubal avatar Aug 29 '24 13:08 luiscubal