Skip to content

Conversation

@akuhtz
Copy link
Contributor

@akuhtz akuhtz commented May 19, 2025

Fix broken build on Windows OS if the schema contains references to other schema files. The same project configuration works under Linux without issues.
This is because the ${project.basedir} maven variable contains \ in the string representation and this causes the resolve of referenced schema files.

[INFO] --- openapi-generator:7.13.0:generate (default) @ ****-****-**** ---
[ERROR] Error resolving schema ./bidibnode.json#/$defs/node
java.net.URISyntaxException: Illegal character in opaque part at index 2: D:\sample\demo/src/main/resources/json-api/bidib.json
    at java.net.URI$Parser.fail (URI.java:2995)
    at java.net.URI$Parser.checkChars (URI.java:3166)
    at java.net.URI$Parser.parse (URI.java:3202)
    at java.net.URI.<init> (URI.java:645)
    at io.swagger.v3.parser.reference.ReferenceUtils.resolve (ReferenceUtils.java:29)
    at io.swagger.v3.parser.reference.ReferenceVisitor.resolveSchemaRef (ReferenceVisitor.java:227)
    at io.swagger.v3.parser.reference.ReferenceVisitor.visitSchema (ReferenceVisitor.java:141)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverseSchema (OpenAPI31Traverser.java:790)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverseMediaType (OpenAPI31Traverser.java:603)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverseMap (OpenAPI31Traverser.java:933)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverseResponse (OpenAPI31Traverser.java:299)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverseMap (OpenAPI31Traverser.java:933)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverseResponses (OpenAPI31Traverser.java:270)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverseOperation (OpenAPI31Traverser.java:237)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traversePathItem (OpenAPI31Traverser.java:394)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverseMap (OpenAPI31Traverser.java:933)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traversePaths (OpenAPI31Traverser.java:197)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverseOpenApi (OpenAPI31Traverser.java:124)
    at io.swagger.v3.parser.reference.OpenAPI31Traverser.traverse (OpenAPI31Traverser.java:65)
    at io.swagger.v3.parser.reference.OpenAPIDereferencer31.dereference (OpenAPIDereferencer31.java:74)
    at io.swagger.v3.parser.OpenAPIV3Parser.resolve (OpenAPIV3Parser.java:227)
    at io.swagger.v3.parser.OpenAPIV3Parser.readContents (OpenAPIV3Parser.java:183)
    at io.swagger.v3.parser.OpenAPIV3Parser.readLocation (OpenAPIV3Parser.java:97)
    at io.swagger.parser.OpenAPIParser.readLocation (OpenAPIParser.java:16)
    at org.openapitools.codegen.config.CodegenConfigurator.toContext (CodegenConfigurator.java:686)
    at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput (CodegenConfigurator.java:744)
    at org.openapitools.codegen.plugin.CodeGenMojo.execute (CodeGenMojo.java:966)

@wing328
Copy link
Member

wing328 commented May 19, 2025

@akuhtz akuhtz force-pushed the fix-windows-build branch from 3eba5f4 to ee7c4bf Compare May 19, 2025 13:03
@akuhtz
Copy link
Contributor Author

akuhtz commented May 19, 2025

@wing328 Thanks, I removed the tabs.

@wing328
Copy link
Member

wing328 commented May 19, 2025

did you test this fix locally to confirm it's working for your use cases on Windows?

@akuhtz
Copy link
Contributor Author

akuhtz commented May 19, 2025

Yes, I built it locally and tested it with my project before I created the PR.

@wing328
Copy link
Member

wing328 commented May 20, 2025

ok. let's give it a try

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants