[ https://issues.apache.org/jira/browse/JAMES-3828?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Benoit Tellier closed JAMES-3828. --------------------------------- Resolution: Fixed > ava.lang.ClassCastException: class [B cannot be cast to class > org.apache.mailet.AttributeValue ([B is in module java.base of loader > 'bootstrap'; org.apache.mailet.AttributeValue is in unnamed module of loader > 'app') > ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: JAMES-3828 > URL: https://issues.apache.org/jira/browse/JAMES-3828 > Project: James Server > Issue Type: Bug > Components: Mailet Contributions > Affects Versions: master > Reporter: Benoit Tellier > Priority: Major > Fix For: 3.8.0 > > Time Spent: 40m > Remaining Estimate: 0h > > Got the following error today > {code:java} > exception java.lang.ClassCastException: class [B cannot be cast to class > org.apache.mailet.AttributeValue ([B is in module java.base of loader > 'bootstrap'; org.apache.mailet.AttributeValue is in unnamed module of loader > 'app') > at > org.apache.mailet.Serializer$MapSerializer.lambda$serialize$0(Serializer.java:507) > at > com.google.common.collect.CollectCollectors.lambda$toImmutableMap$6(CollectCollectors.java:185) > at java.base/java.util.stream.ReduceOps$3ReducingSink.accept(Unknown > Source) > at > java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown > Source) > at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) > at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown > Source) > at > java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown > Source) > at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown > Source) > at java.base/java.util.stream.ReferencePipeline.collect(Unknown > Source) > at > org.apache.mailet.Serializer$MapSerializer.serialize(Serializer.java:507) > at > org.apache.mailet.Serializer$MapSerializer.serialize(Serializer.java:503) > at > org.apache.mailet.AttributeValue.toJson(AttributeValue.java:256) > at > org.apache.mailet.AttributeValue.duplicate(AttributeValue.java:250) > at org.apache.mailet.Attribute.duplicate(Attribute.java:62) > at > java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) > at > java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(Unknown Source) > at > java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) > at > java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) > at > java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown > Source) > at > java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) > at > java.base/java.util.stream.ReferencePipeline.collect(Unknown Source) > at > org.apache.james.server.core.MailImpl.duplicateAttributes(MailImpl.java:117) > at > org.apache.james.server.core.MailImpl.duplicateWithoutMessage(MailImpl.java:111) > at > org.apache.james.server.core.MailImpl.duplicate(MailImpl.java:97) > at > org.apache.james.mailetcontainer.impl.MatcherSplitter.split(MatcherSplitter.java:149) > at > org.apache.james.mailetcontainer.impl.MailetProcessorImpl.lambda$executeProcessingStep$3(MailetProcessorImpl.java:158) > {code} > The postmortem is that for XYZ reason, we ingested a Map that do not have the > good actual types thus we fail serializing the associate attribute. This > prevent us from duplicating the attributes and causes the mail not to be > split, thus aborting mail processing. > We do not know where invalid data was first generated. > That's weaknesses of the Java parameter type systems. > We shall: > - Avoid serializing / deserializing attributes to duplicate them and instead > do something smarter > - Reject invalid collections/bad type parameters as early as possible. > This is potentially due to a custom extension. -- 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