[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wink-dev
Subject:    [jira] Commented: (WINK-243) Unable to inject fields once
From:       "Hudson (JIRA)" <jira () apache ! org>
Date:       2010-01-28 12:51:35
Message-ID: 728525582.104361264683095005.JavaMail.jira () brutus ! apache ! org
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/WINK-243?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12805903#action_12805903 \
] 

Hudson commented on WINK-243:
-----------------------------

Integrated in Wink-Trunk-JDK1.5-itests #93 (See \
[http://hudson.zones.apache.org/hudson/job/Wink-Trunk-JDK1.5-itests/93/])  Inject \
proxies for context objects if object not available

Thanks to bharath chinnadurai for reporting the
issue.

See []


> Unable to inject fields once ResourceInstance is initialized
> ------------------------------------------------------------
> 
> Key: WINK-243
> URL: https://issues.apache.org/jira/browse/WINK-243
> Project: Wink
> Issue Type: Bug
> Components: Server
> Affects Versions: 1.0
> Environment: Wink 1.0 / JRE 1.6
> Reporter: bharath chinnadurai
> Assignee: Bryant Luk
> Fix For: 1.1
> 
> Attachments: WINK-243.patch
> 
> 
> Unable to inject fields once ResourceInstance is initialized. 
> I get a handle to the the resource instance which is about to be invoked using \
> UriInfo.getMatchedResources,  which will initialize a new ResourceInstance using \
> ObjectFactory which would in-turn inject all fields/methods to the resource \
> instance and the resource instance is returned back. After this process any sort of \
> field injection to the context is not getting reflected in the resource instance. \
> This is because in ResourceInstance.getInstanceMethod, \
>                 {code:title=ResourceInstance.java|borderStyle=solid}
> ...
> public Object getInstance(RuntimeContext context) {
> if (instance != null) {
> return instance;
> }
> instance = record.getObjectFactory().getInstance(context);
> return instance;
> }
> ...
> {code} 
> As we see if the instance is not null the instance is returned as it is.
> A probable fix could be to call wink common's CreationUtils.injectFields() to \
> re-inject the fields which would inject any field that was set to the context after \
> the resource class was initialized. The code above would look like, \
>                 {code:title=ResourceInstance.java|borderStyle=solid}
> ...
> public Object getInstance(RuntimeContext context) {
> if (instance != null) {
> 	try {
> 			CreationUtils.injectFields(instance, record.getMetadata(), context);
> 		}  catch (Exception e) {
> 			throw new ObjectCreationException(e);
> 		}
> return instance;
> }
> instance = record.getObjectFactory().getInstance(context);
> return instance;
> }
> ...
> {code} 
> However this would re-inject fields that was already injected to the instance \
> before while creation of the instance. If that can be lived with, this could \
> possibly be a patch for this bug.

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic