[ 
https://issues.apache.org/jira/browse/JAMES-3922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17738391#comment-17738391
 ] 

Benoit Tellier commented on JAMES-3922:
---------------------------------------

IMO we can filter out properties with null field prior persisting them.

If you agree with such a fix, would you agree proposing a pull request for this?

> InvalidStateException due to JPAProperty with value=null
> --------------------------------------------------------
>
>                 Key: JAMES-3922
>                 URL: https://issues.apache.org/jira/browse/JAMES-3922
>             Project: James Server
>          Issue Type: Bug
>    Affects Versions: 3.9.0
>            Reporter: Wojtek
>            Priority: Minor
>
> While running imapsync I got following exception. I know why it was thrown 
> (field in JPAProperty requireing not being null) but I'm not sure of the root 
> cause:
> {{09:24:56.789 [ERROR] o.a.j.i.p.AbstractMailboxProcessor - Unexpected error 
> during IMAP processing}}
> {{org.apache.openjpa.persistence.InvalidStateException: The field "value" of 
> instance "JPAProperty ( id = 144343 localName =  namespace = 
> http://james.apache.org/rfc2045/Content-Type/params value = null )" contained 
> a null value; the metadata for this field specifies that nulls are illegal.}}
> {{        at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:577)}}
> {{        at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:520)}}
> {{        at 
> org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:3188)}}
> {{        at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlushPC(SingleFieldManager.java:821)}}
> {{        at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlushPCs(SingleFieldManager.java:774)}}
> {{        at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:674)}}
> {{        at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:599)}}
> {{        at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:520)}}
> {{        at 
> org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:3188)}}
> {{        at 
> org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:44)}}
> {{        at 
> org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:1110)}}
> {{        at 
> org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2241)}}
> {{        at 
> org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2201)}}
> {{        at 
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:2118)}}
> {{        at 
> org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:84)}}
> {{        at 
> org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1603)}}
> {{        at 
> org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:1035)}}
> {{        at 
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:690)}}
> {{        at 
> org.apache.james.mailbox.jpa.JPATransactionalMapper.commit(JPATransactionalMapper.java:71)}}
> {{        at 
> org.apache.james.mailbox.store.transaction.TransactionalMapper.lambda$executeReactive$0(TransactionalMapper.java:51)}}
> {{        at 
> com.github.fge.lambdas.consumers.ConsumerChainer.lambda$sneakyThrow$9(ConsumerChainer.java:73)}}
> {{        at 
> reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:171)}}
> {{        at 
> reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292)}}
> {{        at 
> reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187)}}
> {{        at 
> reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129)}}
> {{        at 
> reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:251)}}
> {{        at 
> reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)}}
> {{        at 
> reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)}}
> {{        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)}}
> {{        at 
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
>  Source)}}
> {{        at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)}}
> {{        at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)}}
> {{        at java.base/java.lang.Thread.run(Unknown Source)}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to