[jboss-svn-commits] JBL Code SVN: r27843 - in labs/jbosstm/workspace/adinn/byteman/trunk: tests/dd/scripts/location and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jul 10 12:29:39 EDT 2009
Author: adinn
Date: 2009-07-10 12:29:36 -0400 (Fri, 10 Jul 2009)
New Revision: 27843
Modified:
labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/agent/adapter/AccessCheckAdapter.java
labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/agent/adapter/AccessTriggerAdapter.java
labs/jbosstm/workspace/adinn/byteman/trunk/tests/dd/scripts/location/TestCall.txt
labs/jbosstm/workspace/adinn/byteman/trunk/tests/dd/scripts/location/TestReadWrite.txt
Log:
ensured package and class names can be use to qualify the field provided in an AT READ/WRITE location specifier - fixes BYTEMAN-12
Modified: labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/agent/adapter/AccessCheckAdapter.java
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/agent/adapter/AccessCheckAdapter.java 2009-07-10 16:24:11 UTC (rev 27842)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/agent/adapter/AccessCheckAdapter.java 2009-07-10 16:29:36 UTC (rev 27843)
@@ -26,6 +26,7 @@
import org.objectweb.asm.*;
import org.jboss.byteman.agent.Location;
import org.jboss.byteman.rule.Rule;
+import org.jboss.byteman.rule.type.TypeHelper;
/**
* asm Adapter class used to check that the target method for a rule exists in a class
@@ -130,13 +131,25 @@
}
break;
}
+
if (ownerClass != null) {
- if (!ownerClass.equals(owner)) {
+ if (!ownerClass.equals(TypeHelper.internalizeClass(owner))) {
// TODO check for unqualified names
- return false;
+ // if the called class has no package qualification and the owner class does then we
+ // can still match if the unqualified owner name equals the called class
+
+ if (ownerClass.indexOf('.') >= 0) {
+ return false;
+ }
+
+ int ownerPackageIdx = owner.lastIndexOf('/');
+ if (ownerPackageIdx < 0) {
+ return false;
+ } else if (!owner.substring(ownerPackageIdx+1).equals(ownerClass)) {
+ return false;
+ }
}
}
- // TODO work out how to use desc???
return true;
}
}
Modified: labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/agent/adapter/AccessTriggerAdapter.java
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/agent/adapter/AccessTriggerAdapter.java 2009-07-10 16:24:11 UTC (rev 27842)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/src/org/jboss/byteman/agent/adapter/AccessTriggerAdapter.java 2009-07-10 16:29:36 UTC (rev 27843)
@@ -164,12 +164,23 @@
break;
}
if (ownerClass != null) {
- if (!ownerClass.equals(owner)) {
+ if (!ownerClass.equals(TypeHelper.internalizeClass(owner))) {
// TODO check for unqualified names
- return false;
+ // if the called class has no package qualification and the owner class does then we
+ // can still match if the unqualified owner name equals the called class
+
+ if (ownerClass.indexOf('.') >= 0) {
+ return false;
+ }
+
+ int ownerPackageIdx = owner.lastIndexOf('/');
+ if (ownerPackageIdx < 0) {
+ return false;
+ } else if (!owner.substring(ownerPackageIdx+1).equals(ownerClass)) {
+ return false;
+ }
}
}
- // TODO work out how to use desc???
return true;
}
}
Modified: labs/jbosstm/workspace/adinn/byteman/trunk/tests/dd/scripts/location/TestCall.txt
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/tests/dd/scripts/location/TestCall.txt 2009-07-10 16:24:11 UTC (rev 27842)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/tests/dd/scripts/location/TestCall.txt 2009-07-10 16:29:36 UTC (rev 27843)
@@ -46,7 +46,7 @@
CLASS TestCallThrowSynchAuxiliary
METHOD testMethod()
HELPER org.jboss.byteman.tests.helpers.Default
-AT CALL getCounter 3
+AT CALL TestCallThrowSynchAuxiliary.getCounter 3
BIND test : Test = $0.getTest()
IF TRUE
DO test.log("CALL getCounter 3 triggered in TestCallThrowSynchAuxiliary.testMethod")
@@ -56,7 +56,7 @@
CLASS TestCallThrowSynchAuxiliary
METHOD testMethod()
HELPER org.jboss.byteman.tests.helpers.Default
-AT CALL setCounter
+AT CALL TestCallThrowSynchAuxiliary.setCounter
BIND test : Test = $0.getTest()
IF TRUE
DO test.log("CALL setCounter triggered in TestCallThrowSynchAuxiliary.testMethod")
@@ -66,7 +66,7 @@
CLASS TestCallThrowSynchAuxiliary
METHOD testMethod()
HELPER org.jboss.byteman.tests.helpers.Default
-AT CALL setCounter 2
+AT CALL org.jboss.byteman.tests.auxiliary.TestCallThrowSynchAuxiliary.setCounter 2
BIND test : Test = $0.getTest()
IF TRUE
DO test.log("CALL setCounter 2 triggered in TestCallThrowSynchAuxiliary.testMethod")
@@ -76,7 +76,7 @@
CLASS TestCallThrowSynchAuxiliary
METHOD testMethod()
HELPER org.jboss.byteman.tests.helpers.Default
-AT CALL setCounter 3
+AT CALL org.jboss.byteman.tests.auxiliary.TestCallThrowSynchAuxiliary.setCounter 3
BIND test : Test = $0.getTest()
IF TRUE
DO test.log("CALL setCounter 3 triggered in TestCallThrowSynchAuxiliary.testMethod"),
Modified: labs/jbosstm/workspace/adinn/byteman/trunk/tests/dd/scripts/location/TestReadWrite.txt
===================================================================
--- labs/jbosstm/workspace/adinn/byteman/trunk/tests/dd/scripts/location/TestReadWrite.txt 2009-07-10 16:24:11 UTC (rev 27842)
+++ labs/jbosstm/workspace/adinn/byteman/trunk/tests/dd/scripts/location/TestReadWrite.txt 2009-07-10 16:29:36 UTC (rev 27843)
@@ -36,7 +36,7 @@
CLASS TestReadWriteAuxiliary
METHOD testMethod()
HELPER org.jboss.byteman.tests.helpers.Default
-AFTER READ counter 2
+AFTER READ TestReadWriteAuxiliary.counter 2
BIND test : Test = $0.getTest()
IF TRUE
DO test.log("AFTER READ 2 triggered in TestReadWriteAuxiliary.testMethod : counter == " + $0.counter)
@@ -56,7 +56,7 @@
CLASS TestReadWriteAuxiliary
METHOD testMethod()
HELPER org.jboss.byteman.tests.helpers.Default
-AFTER WRITE counter 2
+AFTER WRITE org.jboss.byteman.tests.auxiliary.TestReadWriteAuxiliary.counter 2
BIND test : Test = $0.getTest()
IF TRUE
DO test.log("AFTER WRITE 2 triggered in TestReadWriteAuxiliary.testMethod : counter == " + $0.counter)
More information about the jboss-svn-commits
mailing list