openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Curtis (JIRA)" <>
Subject [jira] Commented: (OPENJPA-1707) A warning message should be logged when a down level enhanced Entity is encountered.
Date Tue, 06 Jul 2010 18:59:49 GMT


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/
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:
>             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.

View raw message