<ul>
<li>The source code repository has been moved to <a href="https://github.com/jboss-javassist/javassist">GitHub</a></li>.
-<li>JIRA JASSIST-181, 183, 184, 189, 162, 185, 186, 190, 199.
+<li>JIRA JASSIST-181, 183, 184, 189, 162, 185, 186, 188, 190, 195, 199, 201.
</ul>
<p>-version 3.17.1 on December 3, 2012
/**
* Detatches the <code>ClassPath</code> object from the search path.
* The detached <code>ClassPath</code> object cannot be added
- * to the pathagain.
+ * to the path again.
*/
public void removeClassPath(ClassPath cp) {
source.removeClassPath(cp);
if (found == INVALID)
throw new CompileError("no such class: " + name);
else if (found != null)
- return (CtClass)found;
+ try {
+ return classPool.get((String)found);
+ }
+ catch (NotFoundException e) {}
CtClass cc = null;
try {
cc = searchImports(name);
}
- cache.put(name, cc);
+ cache.put(name, cc.getName());
return cc;
}
Object obj = make(cc.getName());
assertEquals(4, invoke(obj, "run"));
}
+
+ public void testJIRA188() throws Exception {
+ CtClass cc = sloader.makeClass("test4.JIRA188");
+ CtField f = new CtField(CtClass.intType, "f", cc);
+ f.setModifiers(Modifier.PRIVATE);
+ cc.addField(f);
+ cc.addMethod(CtNewMethod.make(
+ "public int getf(test4.JIRA188 p){ return p.f; }", cc));
+ cc.detach();
+ // System.gc();
+ try {
+ cc = sloader.get("test4.JIRA188");
+ fail("test4.JIRA188 found");
+ }
+ catch (NotFoundException e) {}
+ cc = sloader.makeClass("test4.JIRA188");
+ cc.addField(new CtField(CtClass.intType, "g", cc));
+ cc.addMethod(CtNewMethod.make(
+ "public int getf(test4.JIRA188 p){ return p.g; }", cc));
+ }
}