cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nikita Timofeev (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CAY-2411) Wrong resolution of ExtendedType with ValueObjectType for inherited class
Date Tue, 27 Feb 2018 12:12:00 GMT
Nikita Timofeev created CAY-2411:
------------------------------------

             Summary: Wrong resolution of ExtendedType with ValueObjectType for inherited
class
                 Key: CAY-2411
                 URL: https://issues.apache.org/jira/browse/CAY-2411
             Project: Cayenne
          Issue Type: Bug
          Components: Core Library
    Affects Versions: 4.1.M1, 4.0.B2
            Reporter: Nikita Timofeev
            Assignee: Nikita Timofeev
             Fix For: 4.0.B3, 4.1.M2


Real world problem: we have class {{Money}} that extends {{BigDecimal}} and {{ValueObjectType}}
that maps {{Money.class}} to {{BigDecimal.class}}.
 But still {{BigDecimalType}} is used for attributes of type {{Money}}.

The reason for this is that every registration of {{ExtendedType}} also creates factory that
maps all subclasses to that type. I.e. in our case this factory returns {{BigDecimalType}}
before we can get registered {{ValueObjectType}}.

After some thoughts this subclass usage is a faulty behavior, as we can't assume anything
about compatibility of this two classes. E.g. in our case there is no chance that we can
interchange {{Money}} and {{BigDecimal}}. Moreover since *4.1* this behavior leads to immediate
{{ClassCastException}} when trying to write such property into an object.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message