Q: Is the BCEL thread-safe?
A: BCEL was (deliberately) not designed for thread
safety. See
"Concurrent Programming in Java", by Doug Lea,
for an excellent reference on how to build thread-safe wrappers.
Q: Can I use BCEL in a commercial product?
A: Yes, this is covered by the Apache License, if you add a note about the original
author and where to find the sources, i.e., this URL.
Q: (Typically for users of Xalan (XSLTC)) I'm getting
...
ClassGenException: Branch target offset too large for short
when compiling large files.
A: The answer lies in internal limitations of the JVM,
branch instruction like goto can not address offsets larger than
a short integer, i.e. offsets >= 32767.
The solution is to split the branch into in intermediate hops,
which the XSLTC obviously doesn't take care off.
(In fact you could replace gotos with the goto_w instruction,
but this would help in the other cases).
Q: Can I create or modify classes dynamically with BCEL?
A: BCEL contains useful classes in the
util package, namely ClassLoader and
JavaWrapper. Take a look at the ProxyCreator example.