-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
StringIndexOutOfBoundsException when using RXReactiveVertxGenerator #104
Comments
I was able to figure it out. My custom code generator extended java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1967)
at io.github.jklingsporn.vertx.jooq.generate.builder.VertxGeneratorBuilder$ExecutionStepImpl.lambda$withPostgresReactiveDriver$30(VertxGeneratorBuilder.java:411)
at io.github.jklingsporn.vertx.jooq.generate.builder.ComponentBasedVertxGenerator.writeDAOConstructor(ComponentBasedVertxGenerator.java:83)
at io.github.jklingsporn.vertx.jooq.generate.builder.DelegatingVertxGenerator.writeDAOConstructor(DelegatingVertxGenerator.java:64)
at io.github.jklingsporn.vertx.jooq.generate.VertxGenerator.generateDAO(VertxGenerator.java:564)
at io.github.jklingsporn.vertx.jooq.generate.VertxGenerator.generateDao(VertxGenerator.java:501)
at org.jooq.codegen.JavaGenerator.generateDao(JavaGenerator.java:2867)
at org.jooq.codegen.JavaGenerator.generateDaos(JavaGenerator.java:2854)
at io.github.jklingsporn.vertx.jooq.generate.VertxGenerator.generateDaos(VertxGenerator.java:234)
at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:512)
at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:458)
at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:380)
at org.jooq.codegen.GenerationTool.run(GenerationTool.java:752)
at org.jooq.codegen.GenerationTool.generate(GenerationTool.java:222) Upon debugging, it appears that the code in VertxGeneratorBuilder is making assumptions about the path / package name space that is incorrect. |
And here's a simple way to reproduce the problem. Use a custom code generator strategy, shown below, along with public class TestGeneratorStrategy extends VertxGeneratorStrategy {
@Override
public String getJavaClassName(Definition definition, Mode mode) {
String s = super.getJavaClassName(definition, mode);
if (mode == Mode.DEFAULT && definition instanceof TableDefinition) {
s = s + "Table";
}
return s;
}
} The issue has something to do with |
Upon further experimenting, it appears that the generation code is expecting the class names for the public class TestGeneratorStrategy extends VertxGeneratorStrategy {
@Override
public String getJavaClassName(Definition definition, Mode mode) {
String s = super.getJavaClassName(definition, mode);
if (mode == Mode.DEFAULT && definition instanceof TableDefinition) {
s = s + "Table";
} else if (mode == Mode.POJO) {
s = s + "Table";
}
return s;
}
} |
jOOQ version: 3.11.9
vert-jooq version: 4.1.0
I'm looking at the generated DAOs and notice that the constructor, as shown below, refers to the
JDBCRXQueryExecutor
However, I want to specify that the
ReactiveRXGenericQueryExecutor
be used instead as the run time code relies on it. I looked through the documentation and did not find any jOOQ code generation settings to enable this scenario. How can I do it?The text was updated successfully, but these errors were encountered: