[jboss-jira] [JBoss JIRA] Updated: (JBAS-7883) @Resource mail session injection, injects incorrect mail session

Mark Lowe (JIRA) jira-events at lists.jboss.org
Fri Apr 2 10:20:44 EDT 2010


     [ https://jira.jboss.org/jira/browse/JBAS-7883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Lowe updated JBAS-7883:
----------------------------

    Attachment: JBAS-7883.patch


Patch stores mail session configuration in hashmap using bindName for key. Patch "works for me", if there is an existing testcase i'd be happy to look at that as well. 

Note: Although I still store the shareSessionInstance variable. In theory the a reference to the actual mail session could be stored in the map rather than the configuration object. 



> @Resource mail session injection, injects incorrect mail session
> ----------------------------------------------------------------
>
>                 Key: JBAS-7883
>                 URL: https://jira.jboss.org/jira/browse/JBAS-7883
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: JBossAS-5.0.1.GA, JBossAS-5.1.0.GA
>         Environment: Linux 64 bit , sun JDK 1.6.0.14
>            Reporter: Mark Lowe
>         Attachments: JBAS-7883.patch, jboss-testcase-JBAS-7883.tar.gz
>
>
> Please forgive me if I've posted this to the incorrect component or failed to find an existing bug, I did look. 
> I'm porting our applications from Jboss 4.2.3 and found the following problem injecting mail sessions in EJBs and Servlet components. 
> I have several mails sessions configured. For example
> 	<mbean code="org.jboss.mail.MailService" name="jboss:service=MyMailServer1">
> 		<attribute name="JNDIName">foo/MyMailServer1</attribute>
> 		<attribute name="User">myuser</attribute>
> 		<attribute name="Password">myuserpw</attribute>
> 		<attribute name="Configuration">
> 			<configuration>
>                         ..
> 			</configuration>
> 		</attribute>
> 		<depends>jboss:service=Naming</depends>
> 	</mbean>
> The jndi tree is created and all is present and correct. 
> @Resource(name="MyMailServer1",mappedName="foo/MyMailServer1")
> private Session session;
> Returns the default mail session (java:/Mail). When I removed the java:/Mail session jboss find the last session from the configuration and arbitrarily injects it. I also tested this placing another configuration after the java:/Mail config, and the result was that the session configured below (i.e. last) was referenced. 
> In short to recreate the bug. 
> Create 2 additional mail sessions in a *-service.xml file. Deploy a servlet, ejb or other component that supports @Resource. Attempt to inject one of the custom sessions (not java:/Mail using @Resource(mappedName="[jndi name]". 
> I also attempted to force the issue using a resource-ref in jboss.xml matching the resource-ref-name with the @Resource(name=".") and using the jndi-name (in case the usage of mappedname as been changed since 4.2.3. ) With no result. 
> Assuming this is a real bug, workarounds?

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list