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

Guillaume Nodet commented on CAMEL-24597:
-----------------------------------------

This issue is being investigated by a coding agent (on behalf of gnodet).

Root cause analysis:
The test sends a multipart mail (text body + 2 attachments) via SMTP and reads 
it back via POP3. When the test calls out.getIn().getBody(String.class), this 
triggers MailConverters.toString(Multipart). That method calls 
part.getContent() twice: once to fetch content (line 87), and again at line 98 
(part.getContent().toString()) to get the text representation. With POP3, the 
second fetch fails because the folder is already closed after the first read, 
causing either a MimeMultipart to be returned as-is (toString returns the 
object address) or a MessagingException (No inputstream from datasource / error 
fetching POP3 content).

The setResultWaitTime(30_000) fix in CAMEL-24043 addressed timing but not this 
underlying double-fetch issue.

_Note: This comment was generated by an AI coding agent and requires manual 
verification._

> Fix flaky test 
> MailAttachmentDuplicateNamesTest.testSendAndReceiveMailWithAttachmentsWithDuplicateNames
>  <Hello World> but was: <jakarta.mail.internet.MimeMultipart@XXXXX>
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-24597
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24597
>             Project: Camel
>          Issue Type: Test
>          Components: camel-mail
>    Affects Versions: 4.23.0
>            Reporter: Aurélien Pupier
>            Assignee: Guillaume Nodet
>            Priority: Minor
>
> it has failed 4 times 3 times in a row in 90 days (reported as test erro rin 
> jenkins build then)
> It was flaky 46 other times
> errors are either:
> {noformat}
> org.opentest4j.AssertionFailedError: expected: <Hello World> but was: 
> <jakarta.mail.internet.MimeMultipart@42383cb0>  
>       at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:1199)  
>       at 
> org.apache.camel.component.mail.MailAttachmentDuplicateNamesTest.testSendAndReceiveMailWithAttachmentsWithDuplicateNames(MailAttachmentDuplicateNamesTest.java:78)
>    
> {noformat}
> or 
> {noformat}
> org.apache.camel.TypeConversionException: Error during type conversion from 
> type: jakarta.mail.internet.MimeMultipart to the required type: 
> java.lang.String due to jakarta.mail.MessagingException: No inputstream from 
> datasource   
>       at 
> org.apache.camel.support.SimpleTypeConverter.convertTo(SimpleTypeConverter.java:105)
>  
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.tryCachedConverters(CoreTypeConverterRegistry.java:433)
>     
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertTo(CoreTypeConverterRegistry.java:390)
>     
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertToAndStat(CoreTypeConverterRegistry.java:285)
>      
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.convertTo(CoreTypeConverterRegistry.java:169)
>       
>       at 
> org.apache.camel.support.MessageSupport.getBody(MessageSupport.java:101)     
>       at 
> org.apache.camel.support.MessageSupport.getBody(MessageSupport.java:77)      
>       at 
> org.apache.camel.component.mail.MailAttachmentDuplicateNamesTest.testSendAndReceiveMailWithAttachmentsWithDuplicateNames(MailAttachmentDuplicateNamesTest.java:78)
>    
> Caused by: jakarta.mail.MessagingException: No inputstream from datasource    
>       at jakarta.mail.internet.MimeMultipart.parse(MimeMultipart.java:586)    
>               •••
>       at 
> org.apache.camel.component.mail.MailConverters.toString(MailConverters.java:84)
>       
>       at 
> org.apache.camel.component.mail.MailConvertersLoader.lambda$registerConverters$3(MailConvertersLoader.java:74)
>        
>       at 
> org.apache.camel.support.SimpleTypeConverter.convertTo(SimpleTypeConverter.java:101)
>  
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.tryCachedConverters(CoreTypeConverterRegistry.java:433)
>     
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertTo(CoreTypeConverterRegistry.java:390)
>     
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertToAndStat(CoreTypeConverterRegistry.java:285)
>      
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.convertTo(CoreTypeConverterRegistry.java:169)
>       
>       at 
> org.apache.camel.support.MessageSupport.getBody(MessageSupport.java:101)     
>       at 
> org.apache.camel.support.MessageSupport.getBody(MessageSupport.java:77)      
>       at 
> org.apache.camel.component.mail.MailAttachmentDuplicateNamesTest.testSendAndReceiveMailWithAttachmentsWithDuplicateNames(MailAttachmentDuplicateNamesTest.java:78)
>    
> Caused by: java.io.IOException: error fetching POP3 content   
>       at 
> jakarta.mail.internet.MimePartDataSource.getInputStream(MimePartDataSource.java:97)
>   
>               •••
>       at 
> org.apache.camel.component.mail.MailConverters.toString(MailConverters.java:84)
>       
>       at 
> org.apache.camel.component.mail.MailConvertersLoader.lambda$registerConverters$3(MailConvertersLoader.java:74)
>        
>       at 
> org.apache.camel.support.SimpleTypeConverter.convertTo(SimpleTypeConverter.java:101)
>  
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.tryCachedConverters(CoreTypeConverterRegistry.java:433)
>     
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertTo(CoreTypeConverterRegistry.java:390)
>     
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.doConvertToAndStat(CoreTypeConverterRegistry.java:285)
>      
>       at 
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.convertTo(CoreTypeConverterRegistry.java:169)
>       
>       at 
> org.apache.camel.support.MessageSupport.getBody(MessageSupport.java:101)     
>       at 
> org.apache.camel.support.MessageSupport.getBody(MessageSupport.java:77)      
>       at 
> org.apache.camel.component.mail.MailAttachmentDuplicateNamesTest.testSendAndReceiveMailWithAttachmentsWithDuplicateNames(MailAttachmentDuplicateNamesTest.java:78)
>    
> {noformat}



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

Reply via email to