!759 lib 1004055 import org.apache.bcel.classfile.ClassParser; import org.apache.bcel.classfile.JavaClass; import org.apache.bcel.classfile.Attribute; import org.apache.bcel.classfile.SourceFile; import org.apache.bcel.generic.*; p { JavaClass c = new ClassParser ( main.class.getResourceAsStream("/main.class"), "main.class").parse(); print(c.getSourceFileName()); ClassGen g = new ClassGen(c); S newName = parseSnippetID(programID()) + ".javax"; int nameIndex = g.getConstantPool().addUtf8(newName); for (Attribute attr : g.getAttributes()) if (attr instanceof SourceFile) { g.removeAttribute(attr); break; } g.addAttribute(new SourceFile( g.getConstantPool().addUtf8("SourceFile"), 2, nameIndex, g.getConstantPool().getConstantPool())); c = g.getJavaClass(); File f; c.dump(f = prepareProgramFile("main.class")); c = new ClassParser (f.getPath()).parse(); print(c.getSourceFileName()); }