two issues trying current james which seem related to openjpa

Pablo Pita Leira <[email protected]>
Newsgroups gmane.comp.jakarta.james.user
Message-ID <[email protected]>
Hello,

I have compiled the current james-project from linagora's github 
repository. Then built the jpa docker server. I took the files that 
would get installed in the docker image to used them as installation in 
a debian server with PostgreSQL as database.

When testing this installation, I have encounter two issues which seem 
related to openjpa.

The first, is regarding the Sieve mailet, and a problem mapping a column 
of an entity:

9507  Global  INFO   [main] openjpa.Runtime - Starting OpenJPA 3.1.2
9744  Global  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class 
"org.apache.openjpa.jdbc.sql.PostgresDictionary".
18173  Global  INFO   [main] openjpa.jdbc.JDBC - Connected to PostgreSQL 
version 11.9 using JDBC driver PostgreSQL JDBC Driver version 42.2.18.
24017  Global  WARN   [main] openjpa.jdbc.Schema - Existing column 
"activation_date_time" on table "public.JAMES_SIEVE_SCRIPT" is 
incompatible with the same column in the given schema definition. 
Existing column:
Full Name: JAMES_SIEVE_SCRIPT.activation_date_time
Type: timestamp
Size: 35
Default: null
Not Null: false
Given column:
Full Name: JAMES_SIEVE_SCRIPT.ACTIVATION_DATE_TIME
Type: unknown(2014)
Size: 0
Default: null
Not Null: false


The second, is that the imap server throws a persistence exception. It 
seems that the sql to find the mailbox has a ESCAPE '\' part that is not OK.

Wrapped by: org.apache.openjpa.persistence.PersistenceException: 
Unterminated string literal started at position 213 in SQL SELECT 
t0.mailbox_id, t0.mailbox_highest_modseq, t0.mailbox_last_uid, 
t0.mailbox_name, t0.mailbox_namespace, t0.mailbox_uid_validity, 
t0.user_name FROM public.JAMES_MAILBOX t0 WHERE (t0.mailbox_name LIKE ? 
ESCAPE '\' AND t0.user_name = ? AND t0.mailbox_namespace = ?). Expected  
char {SELECT t0.mailbox_id, t0.mailbox_highest_modseq, 
t0.mailbox_last_uid, t0.mailbox_name, t0.mailbox_namespace, 
t0.mailbox_uid_validity, t0.user_name FROM public.JAMES_MAILBOX t0 WHERE 
(t0.mailbox_name LIKE ? ESCAPE '\' AND t0.user_name = ? AND 
t0.mailbox_namespace = ?)} [code=0, state=42601]
     at 
org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:5278)
     at 
org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:5238)
     at 
org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:134)
     at 
org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:115)
     at 
org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:67)
     at 
org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.handleCheckedException(SelectResultObjectProvider.java:162)
     at 
org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:42)
     at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1311)
     at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1062)
     at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:912)
     at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:843)
     at 
org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:601)
     at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:297)
     at 
org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:314)
     at 
reactor.core.publisher.MonoFlattenIterable.subscribeOrReturn(MonoFlattenIterable.java:87)
     ... 45 common frames omitted
Wrapped by: org.apache.james.mailbox.exception.MailboxException: Search 
of mailbox UserBound{namespace=Optional[#private], 
user=Optional[Username{localPart=pablo.pita, domainPart=Optional[Domain 
: pitagoral.com]}], 
mailboxNameExpression=org.apache.james.mailbox.model.search.PrefixedRegex@9365af5b} 
failed
     at 
org.apache.james.mailbox.jpa.mail.JPAMailboxMapper.lambda$findMailboxWithPathLike$13(JPAMailboxMapper.java:175)
     at reactor.core.publisher.Flux.lambda$onErrorMap$29(Flux.java:6479)


Anyway, the emails somehow arrived at the destination, and I could also 
read emails from thunderbird.

The upgrade to OpenJPA 3.1.2 from version 3.1.0, particularly because 
OpenJPA 3.1.1 claims to solve some issues related to date/time mappings 
(http://openjpa.apache.org/openjpa-3.1.x.html#changes-in-openjpa-311), 
did not solve the issues.

Any feedback for the problems here ?

Pablo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.