[code.view]

[top] / java / bcel / src / site / xdoc / faq.xml

     <?xml version="1.0"?>
     <!--
         * Licensed to the Apache Software Foundation (ASF) under one
         * or more contributor license agreements.  See the NOTICE file
         * distributed with this work for additional information
         * regarding copyright ownership.  The ASF licenses this file
         * to you under the Apache License, Version 2.0 (the
         * "License"); you may not use this file except in compliance
         * with the License.  You may obtain a copy of the License at
         * 
         *   http://www.apache.org/licenses/LICENSE-2.0
         * 
         * Unless required by applicable law or agreed to in writing,
         * software distributed under the License is distributed on an
         * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
         * KIND, either express or implied.  See the License for the
         * specific language governing permissions and limitations
         * under the License.    
     -->
     
     <document>
     
       <properties>
         <title>BCEL FAQ</title>
       </properties> 
     
       <body>
     
       <section name="FAQ">
         <p>
           <b>Q: </b>How can I ... with BCEL?
           <br/>
           <b>A: </b>Take a look at
           <tt>org.apache.bcel.util.BCELifier</tt>, it takes a given class
           and converts it to a BCEL program (in Java, of course). It will
           show you how certain code is generated using BCEL.
         </p>
     
         <p>
           <b>Q: </b> Is the BCEL thread-safe?
           <br/>
           <b>A: </b>BCEL was (deliberately) not designed for thread
           safety. See <a href="http://java.sun.com/docs/books/cp/">
           "Concurrent Programming in Java"</a>, by Doug Lea,
           for an excellent reference on how to build thread-safe wrappers.
         </p>
     
         <p>
           <b>Q: </b> Can I use BCEL in a commercial product?
           <br/>
           <b>A: </b> Yes, this is covered by the <a
           href="http://www.apache.org/licenses/">Apache License</a>, if you add a note about the original
           author and where to find the sources, i.e., 
           <a href="http://commons.apache.org/bcel/">http://commons.apache.org/bcel/</a>
         </p>
     
         <p>
           <b>Q: </b> (Typically for users of Xalan (XSLTC)) I'm getting
           <pre>
           ClassGenException: Branch target offset too large for short
           </pre>
           when compiling large files.
           <br/>
     
           <b>A: </b> 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.<br/>
           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 wouldn't help in the other cases).
         </p>
     
         <p>
           <b>Q:</b> Can I create or modify classes dynamically with BCEL?
           <br/>
           <b>A:</b> BCEL contains useful classes in the
           <tt>util</tt> package, namely <tt>ClassLoader</tt> and
            <tt>JavaWrapper</tt>. Take a look at the <tt> ProxyCreator</tt> example.
         </p>
     
         <p>
           <b>Q:</b> I get a verification error, what can I do?
           <br/>
           <b>A:</b> Use the JustIce verifier that comes together with BCEL
           to get more detailed information:
            <pre>
            java org.apache.bcel.verifier.Verifier <your class></pre>
         </p>
         
         </section>
     <!--
         <p>
           <b>Q: </b>
           <br/>
           <b>A: </b>
         </p>
     -->
     </body>
     </document>
     

[top] / java / bcel / src / site / xdoc / faq.xml

contact | logmethods.com