You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Rick Curtis (JIRA)" <ji...@apache.org> on 2010/06/25 17:10:49 UTC

[jira] Created: (OPENJPA-1707) A warning message should be logged when a down level enhanced Entity is encountered.

A warning message should be logged when a down level enhanced Entity is encountered.
------------------------------------------------------------------------------------

                 Key: OPENJPA-1707
                 URL: https://issues.apache.org/jira/browse/OPENJPA-1707
             Project: OpenJPA
          Issue Type: Improvement
          Components: kernel
    Affects Versions: 2.0.0
            Reporter: Rick Curtis
            Assignee: Rick Curtis


Currently when PCEnhancer is called to enhance an Entity that was previous enhanced it will simply noop and move on. It could be smarter and use the PersistenceCapable.pcGetEnhancementContractVersion to detect and when an Entity has been enhanced with an older version of the enhancer and log a warning message. A similar change would also need to be made to PCClassFileTransformer.needsEnhance to perform the same sort of logic at runtime.

This would be particularly helpful in the case where an application was compiled/enhanced/packaged and a bug was fixed in the enhancer but the pre-packaged app still has the bad bytecode.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (OPENJPA-1707) A warning message should be logged when a down level enhanced Entity is encountered.

Posted by "Rick Curtis (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OPENJPA-1707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12885640#action_12885640 ] 

Rick Curtis commented on OPENJPA-1707:
--------------------------------------

The change that I committed to trunk utilizes the PCEnhancer.checkEnhancementLevel() method which was added in OPENJPA-151 but as far as I can tell was never used. I believe the intent of this field was to be used for changes to enhanced bytecode that may break serialization. Since this field was never utilized, I took the liberty to repurpose the method.

I added some magic to the build which now will write the revision of the PCEnhancer to META-INF/org.apache.openjpa.revision.properties. This value will be read into PCEnhancer in a static initializer which will be used for validation, and will be written to enhanced bytecode. This way we won't have to manually update the PCEnhancer.ENHANCER_VERSION every time a change is made to that file.

Currently I have it so that when trace IS NOT enabled, we will only log one message when a down level Entity is encountered. If trace is enabled we will log a message for each down level Entity that is encountered. 

I flipped back and forth on whether or not this should be an INFO or WARN message. I ended up going with an INFO message because for the time being any Entity that was enhanced prior to this commit will result in a message being logged. 

> A warning message should be logged when a down level enhanced Entity is encountered.
> ------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-1707
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1707
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: kernel
>    Affects Versions: 2.0.0, 2.1.0
>            Reporter: Rick Curtis
>            Assignee: Rick Curtis
>             Fix For: 2.1.0
>
>
> Currently when PCEnhancer is called to enhance an Entity that was previous enhanced it will simply noop and move on. It could be smarter and use the PersistenceCapable.pcGetEnhancementContractVersion to detect and when an Entity has been enhanced with an older version of the enhancer and log a warning message. A similar change would also need to be made to PCClassFileTransformer.needsEnhance to perform the same sort of logic at runtime.
> This would be particularly helpful in the case where an application was compiled/enhanced/packaged and a bug was fixed in the enhancer but the pre-packaged app still has the bad bytecode.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (OPENJPA-1707) A warning message should be logged when a down level enhanced Entity is encountered.

Posted by "Rick Curtis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OPENJPA-1707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rick Curtis resolved OPENJPA-1707.
----------------------------------

    Resolution: Fixed

> A warning message should be logged when a down level enhanced Entity is encountered.
> ------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-1707
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1707
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: kernel
>    Affects Versions: 2.0.0, 2.1.0
>            Reporter: Rick Curtis
>            Assignee: Rick Curtis
>             Fix For: 2.1.0
>
>
> Currently when PCEnhancer is called to enhance an Entity that was previous enhanced it will simply noop and move on. It could be smarter and use the PersistenceCapable.pcGetEnhancementContractVersion to detect and when an Entity has been enhanced with an older version of the enhancer and log a warning message. A similar change would also need to be made to PCClassFileTransformer.needsEnhance to perform the same sort of logic at runtime.
> This would be particularly helpful in the case where an application was compiled/enhanced/packaged and a bug was fixed in the enhancer but the pre-packaged app still has the bad bytecode.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (OPENJPA-1707) A warning message should be logged when a down level enhanced Entity is encountered.

Posted by "Rick Curtis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OPENJPA-1707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rick Curtis updated OPENJPA-1707:
---------------------------------

        Fix Version/s: 2.1.0
    Affects Version/s: 2.1.0

> A warning message should be logged when a down level enhanced Entity is encountered.
> ------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-1707
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1707
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: kernel
>    Affects Versions: 2.0.0, 2.1.0
>            Reporter: Rick Curtis
>            Assignee: Rick Curtis
>             Fix For: 2.1.0
>
>
> Currently when PCEnhancer is called to enhance an Entity that was previous enhanced it will simply noop and move on. It could be smarter and use the PersistenceCapable.pcGetEnhancementContractVersion to detect and when an Entity has been enhanced with an older version of the enhancer and log a warning message. A similar change would also need to be made to PCClassFileTransformer.needsEnhance to perform the same sort of logic at runtime.
> This would be particularly helpful in the case where an application was compiled/enhanced/packaged and a bug was fixed in the enhancer but the pre-packaged app still has the bad bytecode.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.