CDV ❯ DSO field injection doesn't work on hydrated instances
-
Bug
-
Status: Closed
-
1 Critical
-
Resolution: Fixed
-
-
-
gbevin
-
Reporter: gbevin
-
March 04, 2009
-
0
-
Watchers: 1
-
April 10, 2009
-
March 05, 2009
Description
DSO field injection currently works by instrumenting the constructors of the classes in which the injection has to happen.
However, since we don’t use regular constructors during hydration, instances aren’t injected into the fields of those classes.
See TCClassImpl.findConstructor line 248 and ultimately ReflectionUtil.newConstructor line 42
Comments
Alex Miller 2009-03-04
Geert Bevin 2009-03-04
Talked this through with Tim and this functionality is very similar to current on-load behavior. However, users still need to be able to specify their own on-load behavior. So, I suggest adding something like on-hydrate that’s only accessible internally and that would call into a generated method that’s both used for on-hydrate behavior and regular construction of instances.
Alex Miller 2009-03-04
Seems like a user shouldn’t have to do this for dso injection though. Seems like we should just make it work automatically. That may be what you’re proposing, just want to make sure.
Geert Bevin 2009-03-04
Yeah, automatically through an on-hydrate facility that’s available for us internally.
Fiona OShea 2009-03-04
I don’ t think this is critical for stable0 But your call
Fiona OShea 2009-03-06
branch 3.0: rev 11999
nadeem ghani 2009-03-17
tests running on monkeys so closing
To be a little clearer, this means that hydrating a clustered class into a new node where that class has an injected dso instance will be missing the instance. This is definitely a must-fix for Quintara, but not sure which release.