servicemix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ramon Buckland (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (SM-1700) unable to set connection URI on sender
Date Mon, 01 Dec 2008 01:44:05 GMT

    [ https://issues.apache.org/activemq/browse/SM-1700?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=47719#action_47719
] 

rbuckland edited comment on SM-1700 at 11/30/08 5:43 PM:
--------------------------------------------------------------

Lars, 

Your fix did not fix the problem. 

The issue is when you are using an SMTP host that does not require login detauls (this is
for the sender).

The component configured as below will cause the NullPointerException

            <mail:sender service="myns:mailSender" 
                         endpoint="mailEndpoint"
                         sender="sender-email@foobar.internal.com"
                         receiver="to-email@foobar.internal.com"
                         connection="smtp://smtp.intranethost" />

Inside the MailSenderEndpoint, the connection is parsed using the Mailutils class.

      MailUtils.configure(this.connection)

So, the connection is smtp://smtp.intranethost

This then gets passed to a URI object .. 
    
     URI uri = URI.create(uriString);

On the URI object is the "query" field, but this is NULL under the above example, which is
not checked.

See below for the patch.


      was (Author: rbuckland):
    Lars, 

Your fix did not fix the problem. 

The issue is when you are using an SMTP host that does not require login detauls (this is
for the sender).

The component configured as below will cause the NullPointerException

            <mail:sender service="myns:mailSender" 
                         endpoint="mailEndpoint"
                         sender="sender-email@foobar.internal.com"
                         receiver="to-email@foobar.internal.com"
                         connection="smtp://smtp.intranethost" />

Inside the MailSenderEndpoint, the connection is parsed using the Mailutils class.

      MailUtils.configure(this.connection)

So, the connection is smtp://smtp.intranethost

This then gets passed to a URI object .. 
    
     URI uri = URI.create(uriString);

On the URI object is the "query" field, but this is NULL under the above example, which is
not checked.

See below for the patch.

rbucklan@workstation ~/projects/042_project-sm/external-sources/servicemix-mail/trunk
$ svn diff 
Index: src/main/java/org/apache/servicemix/mail/utils/MailUtils.java
===================================================================
--- src/main/java/org/apache/servicemix/mail/utils/MailUtils.java       (revision 721938)
+++ src/main/java/org/apache/servicemix/mail/utils/MailUtils.java       (working copy)
@@ -139,7 +139,7 @@
             config.setFolderName("INBOX");
         }
 
 -        if (uri.getQuery().indexOf("password=") != -1) {
 +        if (uri.getQuery() != null && uri.getQuery().indexOf("password=") != -1)
{
             // extract the password from query
             int beginIndex = uri.getQuery().indexOf("password=") + "password=".length();
             int endIndex = uri.getQuery().indexOf(';', beginIndex + 1) != -1 ? uri.getQuery()
@@ -152,7 +152,7 @@
 
         if (userInfo == null) {
             // alternative way of specifying the user name
 -            if (uri.getQuery().indexOf("user=") != -1) {
 +            if (uri.getQuery() != null && uri.getQuery().indexOf("user=") != -1)
{
                 // extract the password from query
                 int beginIndex = uri.getQuery().indexOf("user=") + "user=".length();
                 int endIndex = uri.getQuery().indexOf(';', beginIndex + 1) != -1 ? uri.getQuery()


  
> unable to set connection URI on sender
> --------------------------------------
>
>                 Key: SM-1700
>                 URL: https://issues.apache.org/activemq/browse/SM-1700
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: servicemix-mail
>    Affects Versions: 3.3
>         Environment: Linux 2.6.27 / JDK 6
>            Reporter: Darren Davison
>            Assignee: Lars Heinemann
>             Fix For: servicemix-mail-2008.02
>
>         Attachments: servicemix-mail-diff.txt
>
>
> Not sure whether the component is officially released yet, but I obtained it from the
snapshot repo today to test it.  I created the skeleton project from the archetype using:
> mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-mail-service-unit
-DarchetypeVersion=2008.01-SNAPSHOT -DartifactId=tutorial-mail-su -DremoteRepositories=http://people.apache.org/repo/m2-snapshot-repository
> I edited xbean.xml to look as follows for the sender endpoint (SMTP server needs no authorisation):
>     <mail:sender service="tut:mail" 
>                  endpoint="sender"
>                  sender="servicemix@example.com"
>                  receiver="me@somewhere.else"
>                  debugMode="false" 
>                  connection="smtp://mail.example.com" />                 
> When I try to deploy, I get the following within the error output:
> <loc-message>Error creating bean with name 'org.apache.servicemix.mail.MailSenderEndpoint#0'
defined in file [/opt/apache-servicemix-3.3/data/smx/service-assemblies/tutorial-sa/version_2/sus/servicemix-mail/tutorial-mail-su/xbean.xml]:
Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException;
nested PropertyAccessExceptions (1) are:
> PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property
'connection' threw exception; nested exception is java.lang.NullPointerException</loc-message>

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


Mime
View raw message