01: /*
02: * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved.
03: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
04: *
05: * This code is free software; you can redistribute it and/or modify it
06: * under the terms of the GNU General Public License version 2 only, as
07: * published by the Free Software Foundation. Sun designates this
08: * particular file as subject to the "Classpath" exception as provided
09: * by Sun in the LICENSE file that accompanied this code.
10: *
11: * This code is distributed in the hope that it will be useful, but WITHOUT
12: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14: * version 2 for more details (a copy is included in the LICENSE file that
15: * accompanied this code).
16: *
17: * You should have received a copy of the GNU General Public License version
18: * 2 along with this work; if not, write to the Free Software Foundation,
19: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20: *
21: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22: * CA 95054 USA or visit www.sun.com if you need additional information or
23: * have any questions.
24: */
25:
26: package com.sun.tools.attach;
27:
28: /**
29: * The exception thrown when an agent fails to initialize in the target
30: * Java virtual machine.
31: *
32: * <p> This exception is thrown by {@link
33: * com.sun.tools.attach.VirtualMachine#loadAgent VirtualMachine.loadAgent},
34: * {@link com.sun.tools.attach.VirtualMachine#loadAgentLibrary
35: * VirtualMachine.loadAgentLibrary}, {@link
36: * com.sun.tools.attach.VirtualMachine#loadAgentPath VirtualMachine.loadAgentPath}
37: * methods if an agent, or agent library, cannot be initialized.
38: * When thrown by <tt>VirtualMachine.loadAgentLibrary</tt>, or
39: * <tt>VirtualMachine.loadAgentPath</tt> then the exception encapsulates
40: * the error returned by the agent's <code>Agent_OnAttach</code> function.
41: * This error code can be obtained by invoking the {@link #returnValue() returnValue} method.
42: */
43: public class AgentInitializationException extends Exception {
44:
45: /** use serialVersionUID for interoperability */
46: static final long serialVersionUID = -1508756333332806353L;
47:
48: private int returnValue;
49:
50: /**
51: * Constructs an <code>AgentInitializationException</code> with
52: * no detail message.
53: */
54: public AgentInitializationException() {
55: super ();
56: this .returnValue = 0;
57: }
58:
59: /**
60: * Constructs an <code>AgentInitializationException</code> with
61: * the specified detail message.
62: *
63: * @param s the detail message.
64: */
65: public AgentInitializationException(String s) {
66: super (s);
67: this .returnValue = 0;
68: }
69:
70: /**
71: * Constructs an <code>AgentInitializationException</code> with
72: * the specified detail message and the return value from the
73: * execution of the agent's <code>Agent_OnAttach</code> function.
74: *
75: * @param s the detail message.
76: * @param returnValue the return value
77: */
78: public AgentInitializationException(String s, int returnValue) {
79: super (s);
80: this .returnValue = returnValue;
81: }
82:
83: /**
84: * If the exception was created with the return value from the agent
85: * <code>Agent_OnAttach</code> function then this returns that value,
86: * otherwise returns <code>0</code>. </p>
87: *
88: * @return the return value
89: */
90: public int returnValue() {
91: return returnValue;
92: }
93:
94: }
|