You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pc...@apache.org on 2007/08/31 23:36:20 UTC
svn commit: r571599 - in
/openjpa/trunk/openjpa-kernel-5/src/main/java/org/apache/openjpa/enhance:
ClassRedefiner.java ManagedClassSubclasser.java
Author: pcl
Date: Fri Aug 31 14:36:19 2007
New Revision: 571599
URL: http://svn.apache.org/viewvc?rev=571599&view=rev
Log:
Minor logging corrections; flow control correction when types are already enhanced.
Modified:
openjpa/trunk/openjpa-kernel-5/src/main/java/org/apache/openjpa/enhance/ClassRedefiner.java
openjpa/trunk/openjpa-kernel-5/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java
Modified: openjpa/trunk/openjpa-kernel-5/src/main/java/org/apache/openjpa/enhance/ClassRedefiner.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel-5/src/main/java/org/apache/openjpa/enhance/ClassRedefiner.java?rev=571599&r1=571598&r2=571599&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel-5/src/main/java/org/apache/openjpa/enhance/ClassRedefiner.java (original)
+++ openjpa/trunk/openjpa-kernel-5/src/main/java/org/apache/openjpa/enhance/ClassRedefiner.java Fri Aug 31 14:36:19 2007
@@ -55,14 +55,15 @@
/**
* For each element in <code>classes</code>, this method will redefine
* all the element's methods such that field accesses are intercepted
- * in-line.
+ * in-line. If {@link #canRedefineClasses()} returns <code>false</code>,
+ * this method is a no-op.
*/
public static void redefineClasses(OpenJPAConfiguration conf,
final Map<Class,byte[]> classes) {
- Log log = conf.getLog(OpenJPAConfiguration.LOG_ENHANCE);
- if (classes == null || classes.size() == 0)
+ if (classes == null || classes.size() == 0 || !canRedefineClasses())
return;
+ Log log = conf.getLog(OpenJPAConfiguration.LOG_ENHANCE);
Instrumentation inst = null;
ClassFileTransformer t = null;
try {
Modified: openjpa/trunk/openjpa-kernel-5/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-kernel-5/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java?rev=571599&r1=571598&r2=571599&view=diff
==============================================================================
--- openjpa/trunk/openjpa-kernel-5/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java (original)
+++ openjpa/trunk/openjpa-kernel-5/src/main/java/org/apache/openjpa/enhance/ManagedClassSubclasser.java Fri Aug 31 14:36:19 2007
@@ -104,10 +104,10 @@
boolean redefine = ClassRedefiner.canRedefineClasses();
if (redefine)
- log.info(_loc.get("enhance-and-subclass-no-redef-start",
+ log.info(_loc.get("enhance-and-subclass-and-redef-start",
classes));
else
- log.info(_loc.get("enhance-and-subclass-and-redef-start",
+ log.info(_loc.get("enhance-and-subclass-no-redef-start",
classes));
final Map<Class, byte[]> map = new HashMap<Class, byte[]>();
@@ -139,12 +139,14 @@
unspecified = collectRelatedUnspecifiedTypes(enhancer.getMetaData(),
classes, unspecified);
- enhancer.run();
- try {
- enhancer.record();
- } catch (IOException e) {
- // our impl of BytecodeWriter doesn't throw IOException
- throw new InternalException(e);
+ int runResult = enhancer.run();
+ if (runResult == PCEnhancer.ENHANCE_PC) {
+ try {
+ enhancer.record();
+ } catch (IOException e) {
+ // our impl of BytecodeWriter doesn't throw IOException
+ throw new InternalException(e);
+ }
}
}