[
https://issues.apache.org/jira/browse/OPENJPA-1928?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Albert Lee closed OPENJPA-1928.
-------------------------------
Close issue in preparation for 2.2.0 release.
> Resolving factory method does not allow method overriding
> ---------------------------------------------------------
>
> Key: OPENJPA-1928
> URL: https://issues.apache.org/jira/browse/OPENJPA-1928
> Project: OpenJPA
> Issue Type: Bug
> Components: kernel
> Affects Versions: 1.2.1, 2.0.1
> Reporter: Edward Sargisson
> Assignee: Rick Curtis
> Priority: Minor
> Fix For: 2.2.0
>
> Attachments: OPENJPA-1928-1.2.1.patch, OPENJPA-1928-r1061099.patch
>
>
> If a get method is annotated with @Factory then the method cannot be
> overridden with a method which take different parameters. The system randomly
> selects one of the several methods with the same name which may or may not
> take the type which will be provided.
> For example:
> @Persistent(optional = false)
> @Column(name = "STATUS")
> @Externalizer("getName")
> @Factory("valueOf")
> public OrderStatus getStatus() {
> return this.status;
> }
> public class OrderStatus {
> public static OrderStatus valueOf(final int ordinal) {
> return valueOf(ordinal, OrderStatus.class);
> }
>
> public static OrderStatus valueOf(final String name) {
> return valueOf(name, OrderStatus.class);
> }
> }
> Actual results:
> valueOf(String) may or may not be selected.
> Expected results:
> valueOf(String) should always be selected.
> The provided patches fix this defect by applying the method invocation
> conversion rules from the Java Language Specification, 3rd Ed. This means
> that widening primitive, boxing and unboxing conversions are all respected.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira