MailBinding creating invalid content type
-----------------------------------------

                 Key: CAMEL-4083
                 URL: https://issues.apache.org/jira/browse/CAMEL-4083
             Project: Camel
          Issue Type: Bug
          Components: camel-mail
    Affects Versions: 2.7.0
         Environment: JSE 1.6
            Reporter: Greg Meyer
            Priority: Minor
             Fix For: 2.7.2


The method "determineContentType" in the MailBinding class may drop characters 
from the end of the Content-Type header (specifically ending quotes).  

Example:

Take the following SMINE enveloped data content type:

   Content-Type: application/pkcs7-mime; smime-type=enveloped-data; 
name="smime.p7m"

When an incoming Exchange is processed by the mail Component with the above 
content type header, the resulting content type after the determineContentType 
is application/pkcs7-mime; smime-type=enveloped-data; name="smime.p7m   (note 
the ending quote).  This results in a parsing error later on the processing 
chain.  The following simple unit test demonstrates the issue as it fails on 
the assertEquals call.

-----------------------------------------------------------------------------------------------------
package org.apache.camel.component.mail;

import org.apache.camel.CamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class ContentTypeTest
{
    @Test
    public void testDetermineContentType_endingWithQuotes_assertContentMatches()
    {
        final String contentType = "application/pkcs7-mime; 
smime-type=enveloped-data; name=\"smime.p7m\""; 
        
        final MailConfiguration configuration = new MailConfiguration();
        final MailBinding binding = new MailBinding();
        
        final DefaultExchange exchange = new 
DefaultExchange((CamelContext)null);
        exchange.getIn().setHeader("Content-Type", contentType);
        
        
        String determinedType = binding.determineContentType(configuration, 
exchange);
        
        assertEquals(contentType, determinedType);
    }
}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to