Uploaded image for project: 'James Mailbox'
  1. James Mailbox
  2. MAILBOX-165

Saving mail to sent folder fails when sent box is not yet available in the user's account

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 0.3
    • None
    • jpa
    • JAMES 3.0 beta3.
      PostgreSQL driver. JPA configured.

    Description

      INFO 17:32:19,244 | james.smtpserver | ID=460713906 Connection established from 127.0.0.1 (127.0.0.1)
      INFO 17:32:19,360 | james.smtpserver | ID=460713906 Successfully spooled mail Mail1329323539340-5edf1199-7656-4f6f-81d7-41023a033585 from me@domain.tld on 127.0.0.1 for [me@domain.tld, him@domain.tld]
      INFO 17:32:19,384 | james.smtpserver | ID=460713906 Connection closed for 127.0.0.1 (127.0.0.1)
      INFO 17:32:19,423 | james.mailetcontext | Error while storing mail.
      javax.mail.MessagingException: Unable to access RecipientRewriteTable;
      nested exception is:
      org.apache.james.rrt.api.RecipientRewriteTableException: Error while retrieve mappings
      at org.apache.james.transport.mailets.RecipientRewriteTable.processMail(RecipientRewriteTable.java:66)
      at org.apache.james.transport.mailets.AbstractRecipientRewriteTableMailet.service(AbstractRecipientRewriteTableMailet.java:73)
      at org.apache.james.mailetcontainer.impl.camel.CamelProcessor.process(CamelProcessor.java:65)
      at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
      at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
      at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299)
      at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)
      at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
      at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:80)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
      at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
      at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
      at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
      at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299)
      at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)
      at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.Pipeline.process(Pipeline.java:143)
      at org.apache.camel.processor.Pipeline.process(Pipeline.java:78)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299)
      at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)
      at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:99)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:91)
      at org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:515)
      at org.apache.camel.processor.MulticastProcessor.access$100(MulticastProcessor.java:73)
      at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:239)
      at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:231)
      at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Caused by: org.apache.james.rrt.api.RecipientRewriteTableException: Error while retrieve mappings
      at org.apache.james.rrt.jpa.JPARecipientRewriteTable.mapAddressInternal(JPARecipientRewriteTable.java:98)
      at org.apache.james.rrt.lib.AbstractRecipientRewriteTable.mapAddress(AbstractRecipientRewriteTable.java:451)
      at org.apache.james.rrt.lib.AbstractRecipientRewriteTable.getMappings(AbstractRecipientRewriteTable.java:125)
      at org.apache.james.rrt.lib.AbstractRecipientRewriteTable.getMappings(AbstractRecipientRewriteTable.java:115)
      at org.apache.james.transport.mailets.RecipientRewriteTable.processMail(RecipientRewriteTable.java:57)
      ... 43 more
      Caused by: <openjpa-2.1.0-r422266:1071316 fatal general error> org.apache.openjpa.persistence.PersistenceException: ERROR: invalid escape string
      Hint: Escape string must be empty or one character.

      {prepstmnt 1446038943 SELECT t0.domain_name, t0.user_name, t0.target_address FROM public.JAMES_RECIPIENT_REWRITE t0 WHERE ((t0.user_name LIKE ? ESCAPE '\\' OR t0.user_name = ?) AND (t0.domain_name LIKE ? ESCAPE '\\' OR t0.domain_name = ?)) ORDER BY t0.domain_name DESC [params=?, ?, ?, ?]} [code=0, state=22025]
      FailedObject: SELECT rrt FROM JamesRecipientRewrite rrt WHERE (rrt.user LIKE :user OR rrt.user='') and (rrt.domain like :domain or rrt.domain='') ORDER BY rrt.domain DESC [java.lang.String]
      at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4869)
      at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4829)
      at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
      at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:118)
      at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:70)
      at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.handleCheckedException(SelectResultObjectProvider.java:155)
      at org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:40)
      at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1251)
      at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1007)
      at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:863)
      at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:794)
      at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542)
      at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:305)
      at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:319)
      at org.apache.james.rrt.jpa.JPARecipientRewriteTable.mapAddressInternal(JPARecipientRewriteTable.java:88)
      ... 47 more
      Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ERROR: invalid escape string
      Hint: Escape string must be empty or one character. {prepstmnt 1446038943 SELECT t0.domain_name, t0.user_name, t0.target_address FROM public.JAMES_RECIPIENT_REWRITE t0 WHERE ((t0.user_name LIKE ? ESCAPE '\' OR t0.user_name = ?) AND (t0.domain_name LIKE ? ESCAPE '\' OR t0.domain_name = ?)) ORDER BY t0.domain_name DESC [params=?, ?, ?, ?]}

      [code=0, state=22025]
      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:281)
      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:265)
      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:72)
      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeQuery(LoggingConnectionDecorator.java:1183)
      at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:284)
      at org.apache.openjpa.jdbc.sql.PostgresDictionary$PostgresPreparedStatement.executeQuery(PostgresDictionary.java:1004)
      at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:284)
      at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeQuery(JDBCStoreManager.java:1785)
      at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:274)
      at org.apache.openjpa.jdbc.sql.SelectImpl.executeQuery(SelectImpl.java:499)
      at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:424)
      at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:391)
      at org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect.execute(LogicalUnion.java:427)
      at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:230)
      at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:220)
      at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.open(SelectResultObjectProvider.java:94)
      at org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:34)
      ... 55 more
      INFO 17:32:19,572 | james.mailetcontext | Error while storing mail.
      javax.mail.MessagingException: Unable to access RecipientRewriteTable;
      nested exception is:
      org.apache.james.rrt.api.RecipientRewriteTableException: Error while retrieve mappings
      at org.apache.james.transport.mailets.RecipientRewriteTable.processMail(RecipientRewriteTable.java:66)
      at org.apache.james.transport.mailets.AbstractRecipientRewriteTableMailet.service(AbstractRecipientRewriteTableMailet.java:73)
      at org.apache.james.mailetcontainer.impl.camel.CamelProcessor.process(CamelProcessor.java:65)
      at org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
      at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
      at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299)
      at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)
      at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
      at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:80)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
      at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
      at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:68)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
      at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
      at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:99)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299)
      at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)
      at org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:256)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.Pipeline.process(Pipeline.java:143)
      at org.apache.camel.processor.Pipeline.process(Pipeline.java:78)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:70)
      at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:299)
      at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:208)
      at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:99)
      at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:91)
      at org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:515)
      at org.apache.camel.processor.MulticastProcessor.access$100(MulticastProcessor.java:73)
      at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:239)
      at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:231)
      at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Caused by: org.apache.james.rrt.api.RecipientRewriteTableException: Error while retrieve mappings
      at org.apache.james.rrt.jpa.JPARecipientRewriteTable.mapAddressInternal(JPARecipientRewriteTable.java:98)
      at org.apache.james.rrt.lib.AbstractRecipientRewriteTable.mapAddress(AbstractRecipientRewriteTable.java:451)
      at org.apache.james.rrt.lib.AbstractRecipientRewriteTable.getMappings(AbstractRecipientRewriteTable.java:125)
      at org.apache.james.rrt.lib.AbstractRecipientRewriteTable.getMappings(AbstractRecipientRewriteTable.java:115)
      at org.apache.james.transport.mailets.RecipientRewriteTable.processMail(RecipientRewriteTable.java:57)
      ... 43 more
      Caused by: <openjpa-2.1.0-r422266:1071316 fatal general error> org.apache.openjpa.persistence.PersistenceException: ERROR: invalid escape string
      Hint: Escape string must be empty or one character.

      {prepstmnt 32952671 SELECT t0.domain_name, t0.user_name, t0.target_address FROM public.JAMES_RECIPIENT_REWRITE t0 WHERE ((t0.user_name LIKE ? ESCAPE '\\' OR t0.user_name = ?) AND (t0.domain_name LIKE ? ESCAPE '\\' OR t0.domain_name = ?)) ORDER BY t0.domain_name DESC [params=?, ?, ?, ?]} [code=0, state=22025]
      FailedObject: SELECT rrt FROM JamesRecipientRewrite rrt WHERE (rrt.user LIKE :user OR rrt.user='') and (rrt.domain like :domain or rrt.domain='') ORDER BY rrt.domain DESC [java.lang.String]
      at org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4869)
      at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4829)
      at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
      at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:118)
      at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:70)
      at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.handleCheckedException(SelectResultObjectProvider.java:155)
      at org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:40)
      at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1251)
      at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1007)
      at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:863)
      at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:794)
      at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:542)
      at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:305)
      at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:319)
      at org.apache.james.rrt.jpa.JPARecipientRewriteTable.mapAddressInternal(JPARecipientRewriteTable.java:88)
      ... 47 more
      Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ERROR: invalid escape string
      Hint: Escape string must be empty or one character. {prepstmnt 32952671 SELECT t0.domain_name, t0.user_name, t0.target_address FROM public.JAMES_RECIPIENT_REWRITE t0 WHERE ((t0.user_name LIKE ? ESCAPE '\' OR t0.user_name = ?) AND (t0.domain_name LIKE ? ESCAPE '\' OR t0.domain_name = ?)) ORDER BY t0.domain_name DESC [params=?, ?, ?, ?]}

      [code=0, state=22025]
      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:281)
      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:265)
      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:72)
      at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeQuery(LoggingConnectionDecorator.java:1183)
      at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:284)
      at org.apache.openjpa.jdbc.sql.PostgresDictionary$PostgresPreparedStatement.executeQuery(PostgresDictionary.java:1004)
      at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:284)
      at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeQuery(JDBCStoreManager.java:1785)
      at org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:274)
      at org.apache.openjpa.jdbc.sql.SelectImpl.executeQuery(SelectImpl.java:499)
      at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:424)
      at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:391)
      at org.apache.openjpa.jdbc.sql.LogicalUnion$UnionSelect.execute(LogicalUnion.java:427)
      at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:230)
      at org.apache.openjpa.jdbc.sql.LogicalUnion.execute(LogicalUnion.java:220)
      at org.apache.openjpa.jdbc.kernel.SelectResultObjectProvider.open(SelectResultObjectProvider.java:94)
      at org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:34)
      ... 55 more
      INFO 17:32:19,727 | james.mailetcontext | Storing mail Mail1329323539721-4d87e0c9-7379-43b6-b4a6-7a79a1eb11f8 in file://var/mail/error/
      INFO 17:32:19,839 | james.mailetcontext | Local delivered mail Mail1329323539340-5edf1199-7656-4f6f-81d7-41023a033585 sucessfully from me@domain.tld to me@domain.tld
      INFO 17:32:19,872 | james.mailetcontext | Local delivered mail Mail1329323539340-5edf1199-7656-4f6f-81d7-41023a033585 sucessfully from me@domain.tld to him@domain.tld

      Attachments

        Activity

          People

            norman Norman Maurer
            lclhst lcl hst
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - 168h
                168h
                Remaining:
                Remaining Estimate - 168h
                168h
                Logged:
                Time Spent - Not Specified
                Not Specified