[
https://issues.apache.org/jira/browse/JDO-540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12536374
]
Craig Russell commented on JDO-540:
-----------------------------------
Meantime, here is some text from the specification making it clear that certain
modifiers are not required to be supported.
6.2 All class and field modifiers supported by the Java language including
A6.2-1 [private], A6.2-2 [public], A6.2-3 [protected], A6.2-4 [static], A6.2-5
[transient], A6.2-6 [abstract], A6.2-7 [final], A6.2-8 [synchronized], and
A6.2-9 [volatile], should be supported by JDO instances. There are some known
issues with final and static field, therefore implementations are not required
to support making final or static fields persistent.
6.4.4 Static and final fields
Static fields pose a challenge for implementations. Since they are singletons
typically initialized when the class is loaded, there is no convenient time to
load the values from the database. Therefore, static fields are not persistent.
Final fields pose a challenge for implementations. While it is possible to
modify the values of static fields, it can only be done via reflection and
there are synchronization issues. Therefore, final fields are not persistent.
6.4.5 Complex enum types
Complex enum types are enums that contain fields that might change during
execution instead of being initialized at class initialization. While it is
possible to manage these singleton instances persistent state, there are issues
with the transaction isolation of the instances and with the ownership of the
instances by a persistence manager. Therefore, dynamically changing fields of
enum types are not persistent.
> Support for final modifier on fields of Persistence-Capable classes
> -------------------------------------------------------------------
>
> Key: JDO-540
> URL: https://issues.apache.org/jira/browse/JDO-540
> Project: JDO
> Issue Type: New Feature
> Components: api2
> Reporter: Chris Beams
> Assignee: Chris Beams
> Fix For: JDO 2 maintenance release 1
>
>
> Per changes introduced in Java5 as part of JSR-133, post-construction
> modification of final fields is now possible when calling setAccessible(true)
> on a field via reflection.
> Heinz Kabutz gives a good discussion of the feature:
> http://www.javaspecialists.eu/archive/Issue096.html
> Supporting final on fields would make JDO even less intrusive than it already
> is, and would allow users to create richer class definitions.
> Let's discuss...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.