Debugging test freeze on jenkins:
- directly go to otdt_tests
- debug output from transformer and ShyLoader
diff --git a/plugins/org.eclipse.objectteams.otredyn/src/org/eclipse/objectteams/otredyn/bytecode/asm/verify/OTCheckClassAdapter.java b/plugins/org.eclipse.objectteams.otredyn/src/org/eclipse/objectteams/otredyn/bytecode/asm/verify/OTCheckClassAdapter.java
index d8c267a..c99b108 100644
--- a/plugins/org.eclipse.objectteams.otredyn/src/org/eclipse/objectteams/otredyn/bytecode/asm/verify/OTCheckClassAdapter.java
+++ b/plugins/org.eclipse.objectteams.otredyn/src/org/eclipse/objectteams/otredyn/bytecode/asm/verify/OTCheckClassAdapter.java
@@ -86,17 +86,21 @@
}
Class<?> findLoadedFromParent(String name) throws Exception {
+System.out.println("Shy load "+name);
if (findLoadedClass == null) {
findLoadedClass = ClassLoader.class.getDeclaredMethod("findLoadedClass", String.class);
findLoadedClass.setAccessible(true);
}
+System.out.println("\tshy1");
ClassLoader parent = getParent();
while (parent != null) {
Class<?> c = (Class<?>) findLoadedClass.invoke(parent, name);
+System.out.println("\tshy2 "+c);
if (c != null)
return c;
parent = parent.getParent();
}
+System.out.println("\tshy3");
return null;
}
}
diff --git a/plugins/org.eclipse.objectteams.otredyn/src/org/eclipse/objectteams/otredyn/transformer/jplis/ObjectTeamsTransformer.java b/plugins/org.eclipse.objectteams.otredyn/src/org/eclipse/objectteams/otredyn/transformer/jplis/ObjectTeamsTransformer.java
index 2ea7e2b..fdb2659 100644
--- a/plugins/org.eclipse.objectteams.otredyn/src/org/eclipse/objectteams/otredyn/transformer/jplis/ObjectTeamsTransformer.java
+++ b/plugins/org.eclipse.objectteams.otredyn/src/org/eclipse/objectteams/otredyn/transformer/jplis/ObjectTeamsTransformer.java
@@ -102,14 +102,17 @@
return null;
}
+System.out.println("weaving "+className);
if (clazz == null)
clazz = classRepo.getBoundClass(sourceClassName, classId, loader);
synchronized(clazz) { // all modifications done in this critical section
if (classBeingRedefined == null && !clazz.isFirstTransformation()) {
+System.out.println("\tweave1");
return clazz.getBytecode();
}
if (clazz.isTransformationActive()) {
+System.out.println("\tweave2");
return null;
}
try {
@@ -124,6 +127,7 @@
classfileBuffer = clazz.getBytecode();
} catch (IllegalClassFormatException e) {
+System.out.println("\tweave"+e);
throw e; // expected, propagate to caller (OT/Equinox?)
} catch(Throwable t) {
t.printStackTrace();
@@ -131,6 +135,7 @@
clazz.commitTransaction(classBeingRedefined);
}
}
+System.out.println("\tweave3");
clazz.dump(classfileBuffer, "initial");
Collection<String> boundBaseClasses = clazz.getBoundBaseClasses();
diff --git a/releng/build-scripts/build/test.xml b/releng/build-scripts/build/test.xml
index ebf4083..5c6e9e4 100644
--- a/releng/build-scripts/build/test.xml
+++ b/releng/build-scripts/build/test.xml
@@ -198,9 +198,11 @@
<antcall target="otdt_debug_tests" />
<!--parallel threadCount="2"-->
<!-- "slow", ui tests come first -->
+<!--
<antcall target="otdt_ui_tests" />
<antcall target="otdt_ref_tests" />
<antcall target="otdt_dom_tests" />
+-->
<antcall target="otdt_tests" />
<antcall target="otequinox_tests" />
<antcall target="otdt_builder_tests" />
@@ -212,7 +214,7 @@
</target>
<target name="onlyone">
- <antcall target="otequinox_tests" />
+ <antcall target="otdt_tests" />
</target>
</project>