Skip to content
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

SQLException: Operation not allowed after ResultSet closed #38

Open
freddybeta opened this issue Dec 23, 2018 · 0 comments
Open

SQLException: Operation not allowed after ResultSet closed #38

freddybeta opened this issue Dec 23, 2018 · 0 comments

Comments

@freddybeta
Copy link

===> hi, every one, hi david, does anyone encounter these problem? i am desperate!
===> i want to iterate my db records from serveral tables.

===> i have the version:

rxjava2-jdbc:0.2.1
mysql-connector-java:8.0.13

===> and some of my code looks like this:

<userService.java>:
`userRepository.findAll().flatMap(new Function<User, Publisher<Tuple4<User, Shop, Company, Flux>>>() {

@OverRide
public Publisher<Tuple4<User, Shop, Company, Flux>> apply(User user) {
return Mono.zip(Mono.just(user), shopRepository.findByUserId(user.id()), companyRepository.findByUserId(user.id()), Mono.just(productRepository.findByUserId(user.id())));
}

}).subscribe(new Subscriber<Tuple4<User, Shop, Company, Flux>>() {
private Subscription subscription;
private int onNextAmount;

@OverRide
public void onSubscribe(Subscription subscription) {
this.subscription = subscription;
this.subscription.request(5);
}

@OverRide
public void onNext(Tuple4<User, Shop, Company, Flux> objects) {
// do something...
onNextAmount++;
if (onNextAmount % 5 == 0) {
this.subscription.request(5);
}
}

@OverRide
public void onError(Throwable throwable) {
}

@OverRide
public void onComplete() {
}
});`

<userRepository.java>:
public Flux findAll(Integer num) {
String sql = SELECT + "where isdelete = 0 order by id";
return Flux.from(database.select(sql).autoMap(User.class));
}

<shopRepository.java>:
public Mono findByUserId(Long userId) {
String sql = SELECT + "where user_id = ? and isdelete = 0";
return Mono.from(database.select(sql).parameter(userId).autoMap(Shop.class));
}

===> database config:
database = Database.nonBlocking()
.url(url)
.user(user)
.password(password)
.healthCheck(DatabaseType.MYSQL)
.maxPoolSize(maxPoolSize)
.build();

===> but i got these errors, sometimes is "ResultSet is from UPDATE. No Data", sometimes is "Operation not allowed after ResultSet closed", the error will occur occasionally, but rarely.

Caused by: java.sql.SQLException: ResultSet is from UPDATE. No Data.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.result.ResultSetImpl.next(ResultSetImpl.java:1813)
at org.davidmoten.rx.jdbc.Select.lambda$create$6(Select.java:77)
at io.reactivex.internal.operators.flowable.FlowableInternalHelper$SimpleBiGenerator.apply(FlowableInternalHelper.java:62)
at io.reactivex.internal.operators.flowable.FlowableInternalHelper$SimpleBiGenerator.apply(FlowableInternalHelper.java:53)
at io.reactivex.internal.operators.flowable.FlowableGenerate$GeneratorSubscription.request(FlowableGenerate.java:109)

===> following is another error.

Caused by: java.sql.SQLException: Operation not allowed after ResultSet closed
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.result.ResultSetImpl.checkClosed(ResultSetImpl.java:470)
at com.mysql.cj.jdbc.result.ResultSetImpl.next(ResultSetImpl.java:1808)
at org.davidmoten.rx.jdbc.Select.lambda$create$6(Select.java:77)
at io.reactivex.internal.operators.flowable.FlowableInternalHelper$SimpleBiGenerator.apply(FlowableInternalHelper.java:62)
at io.reactivex.internal.operators.flowable.FlowableInternalHelper$SimpleBiGenerator.apply(FlowableInternalHelper.java:53)
at io.reactivex.internal.operators.flowable.FlowableGenerate$GeneratorSubscription.request(FlowableGenerate.java:109)
... 44 more

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant