aboutsummaryrefslogtreecommitdiffstats
path: root/tutorial
diff options
context:
space:
mode:
Diffstat (limited to 'tutorial')
-rw-r--r--tutorial/tutorial.html20
-rw-r--r--tutorial/tutorial2.html17
2 files changed, 26 insertions, 11 deletions
diff --git a/tutorial/tutorial.html b/tutorial/tutorial.html
index 6dc7ad14..064f8da8 100644
--- a/tutorial/tutorial.html
+++ b/tutorial/tutorial.html
@@ -434,10 +434,10 @@ and calls <code>say()</code> on that instance.
<p>Note that the program above depends on the fact that the
<code>Hello</code> class is never loaded before <code>toClass()</code>
is invoked. If not, the JVM would load the original
-<code>Hello</code> class before <code>toClass()</code> request to load
-the modified <code>Hello</code> class. Hence loading the modified
-<code>Hello</code> class would be failed.
-For example, if
+<code>Hello</code> class before <code>toClass()</code> requests to
+load the modified <code>Hello</code> class. Hence loading the
+modified <code>Hello</code> class would be failed
+(<code>LinkageError</code> is thrown). For example, if
<code>main()</code> in <code>Test</code> is something like this:
<ul><pre>
@@ -455,12 +455,12 @@ throws an exception since the class loader cannot load two different
versions of the <code>Hello</code> class at the same time.
<p><em>If the program is running on some application server such as
-JBoss,</em> the context class loader used by <code>toClass()</code>
-might be inappropriate. In this case, you would see an unexpected
-<code>ClassCastException</code>. To avoid this exception, you must
-explicitly give an appropriate class loader to <code>toClass()</code>.
-For example, if <code>bean</code> is your session bean object, then the
-following code:
+JBoss and Tomcat,</em> the context class loader used by
+<code>toClass()</code> might be inappropriate. In this case, you
+would see an unexpected <code>ClassCastException</code>. To avoid
+this exception, you must explicitly give an appropriate class loader
+to <code>toClass()</code>. For example, if <code>bean</code> is your
+session bean object, then the following code:
<ul><pre>CtClass cc = ...;
Class c = cc.toClass(bean.getClass().getClassLoader());
diff --git a/tutorial/tutorial2.html b/tutorial/tutorial2.html
index 8dc5f867..937c4427 100644
--- a/tutorial/tutorial2.html
+++ b/tutorial/tutorial2.html
@@ -18,6 +18,7 @@
<li><a href="#before">Inserting source text at the beginning/end of a method body</a>
<br><li><a href="#alter">Altering a method body</a>
<br><li><a href="#add">Adding a new method or field</a>
+<br><li><a href="#runtime">Runtime support classes</a>
<br><li><a href="#limit">Limitations</a>
</ul>
@@ -1269,8 +1270,22 @@ does not end with a semi colon (<code>;</code>).
<p><br>
+<a name="runtime">
+<h3>5.4 Runtime support classes</h3>
+
+<p>In most cases, a class modified by Javassist does not require
+Javassist to run. However, some kinds of bytecode generated by the
+Javassist compiler need runtime support classes, which are in the
+<code>javassist.runtime</code> package (for details, please read
+the API reference of that package). Note that the
+<code>javassist.runtime</code> package is the only package that
+classes modified by Javassist may need for running. The other
+Javassist classes are never used at runtime of the modified classes.
+
+<p><br>
+
<a name="limit">
-<h3>5.4 Limitations</h3>
+<h3>5.5 Limitations</h3>
<p>In the current implementation, the Java compiler included in Javassist
has several limitations with respect to the language that the compiler can