[ http://mc4j.org/jira/browse/STS-330?page=all ]
Tim Fennell resolved STS-330.
-----------------------------
Resolution: Fixed
Fixed in the trunk using the method of navigating around the interfaces/classes
to find an appropriate method.
> Property binding code doesn't like Map.Entry
> --------------------------------------------
>
> Key: STS-330
> URL: http://mc4j.org/jira/browse/STS-330
> Project: Stripes
> Issue Type: Bug
> Components: Validation
> Affects Versions: Release 1.4.2
> Reporter: Tim Fennell
> Assigned To: Tim Fennell
> Fix For: Release 1.5
>
>
> The summary is merely an example. The actual case is that the code does not
> deal well with the following scenario:
> 1. Stripes gets handed an instance of Foo
> 2. Foo implements a public interface, AnInterface which specifies public
> getter/setter methods
> 3. Foo is actually a protected or private (inner) class
> 4. Stripes tries to get or set the property value of one of the properties
> specified in the public interface AnInterface
> The primary example is with Map.Entry, which is public and specifies
> accessors for 'key' and 'value'. However, in the JDK all the implementations
> of Map.Entry are non-accessible classes (usually private inner classes of
> their respective Map implementations). The PropertyDescriptors handed back
> by the JDK Introspector provide as accessor/mutator methods, the public
> methods of these private classes which cannot be executed via reflection
> without an IllegalAccessException!
> I think there are two possible solutions:
> 1) if Introspector provides public methods that are not accessible, call
> setAccessible(true) on them
> 2) Use the method names and parameter types and search up the hierarchy for a
> public interface that specifies the method. Take the method from the public
> interface and call invoke() on that.
> I've verified that they both work. #2 is probably more correct, but is also
> a lot more work (to code, and at runtime).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://mc4j.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development