The ByteCode Engineering Library (BCEL) uses a dual license strategy for the source code. These licenses are the GNU Lesser General Public License (LGPL) and the Apache License. I strongly encourage users to use the LGPL license and participate fully in the free software community.
Dual licensing of the BCEL source code provides open and free access to the technology both for the GPL community and for other developers or companies that cannot use the GPL. Dual license is common practice in open source projects like OpenOffice, Perl and Mozilla. Through the combined use of LGPL and Apache license, developers will have a high degree of freedom yet compatibility and interoperability will be preserved.
You can freely modify, extend, and improve the BCEL source code. The only question is whether or not you must provide the source code and contribute modifications to the community. The GNU and Apache licenses allow different ranges of flexibility in this regard, but in the end, regardless of the license used, any and all incompatible changes must be published openly.
Note that there is the FindPattern class distributed together with the BCEL that uses the gnu.regexp package, which itself is protected by the GPL. Thus this part of the distribution can not be redistributed using a different license.