[BUG] [Java] [java-inflector] Crash happen when generating java-inflector code on Windows
Created by: chenqping
Description
when generating java server stub code with java-inflector on Windows platform, both NPM package and the jar crashed with the following exception:
at org.openapitools.codegen.DefaultGenerator.generateApis(DefaultGenerator.java:715)
at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:1008)
at org.openapitools.codegen.cmd.Generate.execute(Generate.java:428)
at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:61)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1967)
at org.openapitools.codegen.languages.JavaInflectorServerCodegen.apiFilename(JavaInflectorServerCodegen.java:214)
at org.openapitools.codegen.DefaultGenerator.generateApis(DefaultGenerator.java:635)
... 4 more
Process finished with exit code 1
openapi-generator version
4.3.1 and master branch
OpenAPI declaration file content or url
openapi: "3.0.0"
info:
version: 1.0.0
title: Swagger Petstore
license:
name: MIT
servers:
- url: http://petstore.swagger.io/v1
paths:
/pets:
get:
summary: List all pets
operationId: listPets
tags:
- pets
parameters:
- name: limit
in: query
description: How many items to return at one time (max 100)
required: false
schema:
type: integer
format: int32
responses:
'200':
description: A paged array of pets
headers:
x-next:
description: A link to the next page of responses
schema:
type: string
content:
application/json:
schema:
$ref: "#/components/schemas/Pets"
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
post:
summary: Create a pet
operationId: createPets
tags:
- pets
responses:
'201':
description: Null response
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/pets/{petId}:
get:
summary: Info for a specific pet
operationId: showPetById
tags:
- pets
parameters:
- name: petId
in: path
required: true
description: The id of the pet to retrieve
schema:
type: string
responses:
'200':
description: Expected response to a valid request
content:
application/json:
schema:
$ref: "#/components/schemas/Pets"
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
components:
schemas:
Pet:
required:
- id
- name
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
Pets:
type: array
items:
$ref: "#/components/schemas/Pet"
Error:
required:
- code
- message
properties:
code:
type: integer
format: int32
message:
type: string
Command line used for generation
java -jar openapi-generator-cli.jar generate -g java-inflector -i petstore-v3.0.yaml -o java-inflector
Steps to reproduce
Related issues/PRs
Suggest a fix/enhancement
After investigating the code, I found this was a problem of the file separator differece between Linux and Windows, so I substituted File.separator for "/" in some files.