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

David Peterson commented on CAMEL-1028:
---------------------------------------

Yes, I'm speaking about the new error #2. Sorry, it's a bit buried down in the 
Forum thread, but here is a snippet of it along with Janstey's comment that it 
will be fixed in the next snapshot.

2.  New Exception in trying to process Excel files.  This works in 1.4.0 so 
something got broken in 1.5-SNAPSHOT.

[org.apache.camel.NoTypeConversionAvailableException] thrown by target class 
[com.contextweb.mail.MailReader] and method [public abstract void 
org.apache.camel.Processor.process(org.apache.camel.Exchange) throws 
java.lang.Exception]org.apache.camel.NoTypeConversionAvailableException: No 
type converter available to convert from type: class 
com.sun.mail.util.BASE64DecoderStream to the required type: 
org.apache.commons.logging.Log with value [EMAIL PROTECTED] 
        at 
org.apache.camel.impl.converter.DefaultTypeConverter.convertTo(DefaultTypeConverter.java:117)
 

Janstey response:

#2 should be fixed in the next SNAPSHOT deploy. 





> Don't require username on send mail routes (relays don't require login)
> -----------------------------------------------------------------------
>
>                 Key: CAMEL-1028
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1028
>             Project: Apache Camel
>          Issue Type: Bug
>          Components: camel-mail
>    Affects Versions: 1.4.0
>            Reporter: David Peterson
>
> Don't require a login in the send mail URI because internal relay mail 
> servers don't require them.  If you do include one, the mail server gets 
> confused and thinks that you are looping and it will bounce the email so this 
> is a bit inconvenient bug.
> Thread [Thread: 1 [EMAIL PROTECTED] (Suspended (exception 
> NullPointerException))      
>       Properties(Hashtable<K,V>).put(K, V) line: 394  
>       MailConfiguration.createJavaMailProperties() line: 146  
>       MailConfiguration.createJavaMailSender() line: 107      
>       MailEndpoint.createProducer() line: 53  
>       ProducerCache<E>.getProducer(Endpoint<E>) line: 50      
>       ProducerCache<E>.send(Endpoint<E>, Processor) line: 84  
>       DefaultProducerTemplate<E>.send(Endpoint<E>, Processor) line: 84        
>       DefaultProducerTemplate<E>.sendBodyAndHeaders(Endpoint, Object, 
> Map<String,Object>) line: 143   
>       DefaultProducerTemplate<E>.sendBodyAndHeaders(String, Object, 
> Map<String,Object>) line: 139     
>       LogEmailThrowsAdvice.sendEmail(String) line: 64 
>       LogEmailThrowsAdvice.afterThrowing(Method, Object[], Object, Exception) 
> line: 42        
>       NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not 
> available [native method]  
>       NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39      
>       DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25  
>       Method.invoke(Object, Object...) line: 597      
>       ThrowsAdviceInterceptor.invokeHandlerMethod(MethodInvocation, 
> Throwable, Method) line: 146      
>       ThrowsAdviceInterceptor.invoke(MethodInvocation) line: 131      
>       ReflectiveMethodInvocation.proceed() line: 171  
>       JdkDynamicAopProxy.invoke(Object, Method, Object[]) line: 204   
>       $Proxy24.process(Exchange) line: not available  
>       BeanProcessor.process(Exchange) line: 81        
>       BeanEndpoint(ProcessorEndpoint).onExchange(Exchange) line: 92   
>       ProcessorEndpoint$1.process(Exchange) line: 66  
>       
> AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(Exchange, 
> AsyncCallback) line: 43   
>       SendProcessor.process(Exchange, AsyncCallback) line: 75 
>       InstrumentationProcessor.process(Exchange, AsyncCallback) line: 57      
>       DeadLetterChannel.process(Exchange, AsyncCallback, 
> DeadLetterChannel$RedeliveryData) line: 155  
>       DeadLetterChannel.process(Exchange, AsyncCallback) line: 91     
>       InstrumentationProcessor.process(Exchange, AsyncCallback) line: 57      
>       UnitOfWorkProcessor.process(Exchange, AsyncCallback) line: 39   
>       AsyncProcessorHelper.process(AsyncProcessor, Exchange) line: 41 
>       UnitOfWorkProcessor(DelegateAsyncProcessor).process(Exchange) line: 66  
>       MailConsumer.processMessage(Message) line: 169  
>       MailConsumer.processMessages(Message[]) line: 151       
>       MailConsumer.poll() line: 105   
>       MailConsumer(ScheduledPollConsumer<E>).run() line: 65   
>       Executors$RunnableAdapter<T>.call() line: 441   
>       FutureTask$Sync.innerRunAndReset() line: 317    
>       
> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>(FutureTask<V>).runAndReset()
>  line: 150       
>       
> ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.access$101(ScheduledThreadPoolExecutor$ScheduledFutureTask)
>  line: 98 
>       ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.runPeriodic() line: 
> 181      
>       ScheduledThreadPoolExecutor$ScheduledFutureTask<V>.run() line: 205      
>       ThreadPoolExecutor$Worker.runTask(Runnable) line: 885   
>       ThreadPoolExecutor$Worker.run() line: 907       
>       Thread.run() line: 619  
> Code:
> AOPExceptionHandler:
>       private void sendEmail(String errors) {
>               template = camelContext.createProducerTemplate();
>               StringBuffer body = new StringBuffer("Hello Techops.\n");
>               body.append("Got an exception please handle.\n\nRegards 
> Reportdev.\n\n");
>               body.append(errors);
>               template.sendBodyAndHeaders(emailServerUri, body, 
> emailProperties);
>       }
> applicationContext.xml
> <bean id="logThrowsAdvice" class="com.contextweb.advice.LogEmailThrowsAdvice">
>               <property name="camelContext" ref="camel" />
>               <property name="sendMail" value="true" />
>               <!-- username=reportdev&amp;[EMAIL PROTECTED] -->
>               <property name="emailServerUri"
>                       value="smtp://mail.apache.corp" />
>               <property name="emailProperties">
>                       <map>
>                               <entry key="From">
>                                       <value>"[EMAIL PROTECTED]"</value>
>                               </entry>
>                               <entry key="Subject">
>                                       <value>"Exception in 3rd Party 
> Reporting Email
>                                               Processing"</value>
>                               </entry>
>                               <entry key="To">
>                                       <value>"[EMAIL PROTECTED]"</value>
>                               </entry>
>                       </map>
>               </property>
>               <property name="logFactory" ref="LogFactoryBean" />
>       </bean>
> Workaround is to use URI for "To" and put the username after the ? in the 
> URI.  This will fool the mail relay server into routing the email bypassing 
> it's loop detection logic:
>       <!-- Define the ThrowsAdvice bean -->
>       <bean id="logThrowsAdvice" 
> class="com.contextweb.advice.LogEmailThrowsAdvice">
>               <property name="camelContext" ref="camel" />
>               <property name="sendMail" value="true" />
>               <property name="emailServerUri"
>                       
> value="smtp://mail.contextweb.corp?username=reportdev&amp;[EMAIL PROTECTED]" 
> />
>               <property name="emailProperties">
>                       <map>
>                               <entry key="From">
>                                       <value>"[EMAIL PROTECTED]"</value>
>                               </entry>
>                               <entry key="Subject">
>                                       <value>"Exception in 3rd Party 
> Reporting Email
>                                               Processing"</value>
>                               </entry>
>                       </map>
>               </property>
>               <property name="logFactory" ref="LogFactoryBean" />
>       </bean>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to