Hello,
I was seeing a couple exceptions in different calls:
- Getting the list of emails via imap
- Reading the emails via imap
- Sending emails
- Resolving the rewrite table
- even in my personal mailet
The only thing in common was the "cause" of the exception:
Caused by: java.sql.SQLNonTransientConnectionException: (conn=17)
unexpected end of stream, read 0 bytes from 4 (socket was closed by server)
So I thought that there must be an issue with the configuration of the
BasicDataSource and I saw these properties are not set and cannot be set:
basicDataSource.setTestOnBorrow(true);
basicDataSource.setValidationQuery("select 1"); // Is different by
database. See list here:
https://stackoverflow.com/questions/10684244/dbcp-validationquery-for-different-databases
basicDataSource.setValidationQueryTimeout(2);
Are you interested in a fix and is my approach good:
- Let user set 3 parameters in james-database.properties with the
"database." prefix
- update these files which creates the BasicDataSource with these
properties:
- mailbox-jpa.xml
- jdbc.xml
- spring-server.xml
If that is fine, I will create a Jira and a fix.
thanks