Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/classes/java/sql/SQLClientInfoException.java
38829 views
1
/*
2
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation. Oracle designates this
8
* particular file as subject to the "Classpath" exception as provided
9
* by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22
* or visit www.oracle.com if you need additional information or have any
23
* questions.
24
*/
25
package java.sql;
26
27
import java.util.Map;
28
29
/**
30
* The subclass of {@link SQLException} is thrown when one or more client info properties
31
* could not be set on a <code>Connection</code>. In addition to the information provided
32
* by <code>SQLException</code>, a <code>SQLClientInfoException</code> provides a list of client info
33
* properties that were not set.
34
*
35
* Some databases do not allow multiple client info properties to be set
36
* atomically. For those databases, it is possible that some of the client
37
* info properties had been set even though the <code>Connection.setClientInfo</code>
38
* method threw an exception. An application can use the <code>getFailedProperties </code>
39
* method to retrieve a list of client info properties that were not set. The
40
* properties are identified by passing a
41
* <code>Map&lt;String,ClientInfoStatus&gt;</code> to
42
* the appropriate <code>SQLClientInfoException</code> constructor.
43
* <p>
44
* @see ClientInfoStatus
45
* @see Connection#setClientInfo
46
* @since 1.6
47
*/
48
public class SQLClientInfoException extends SQLException {
49
50
51
52
53
private Map<String, ClientInfoStatus> failedProperties;
54
55
/**
56
* Constructs a <code>SQLClientInfoException</code> Object.
57
* The <code>reason</code>,
58
* <code>SQLState</code>, and failedProperties list are initialized to
59
* <code> null</code> and the vendor code is initialized to 0.
60
* The <code>cause</code> is not initialized, and may subsequently be
61
* initialized by a call to the
62
* {@link Throwable#initCause(java.lang.Throwable)} method.
63
* <p>
64
*
65
* @since 1.6
66
*/
67
public SQLClientInfoException() {
68
69
this.failedProperties = null;
70
}
71
72
/**
73
* Constructs a <code>SQLClientInfoException</code> object initialized with a
74
* given <code>failedProperties</code>.
75
* The <code>reason</code> and <code>SQLState</code> are initialized
76
* to <code>null</code> and the vendor code is initialized to 0.
77
*
78
* The <code>cause</code> is not initialized, and may subsequently be
79
* initialized by a call to the
80
* {@link Throwable#initCause(java.lang.Throwable)} method.
81
* <p>
82
*
83
* @param failedProperties A Map containing the property values that could not
84
* be set. The keys in the Map
85
* contain the names of the client info
86
* properties that could not be set and
87
* the values contain one of the reason codes
88
* defined in <code>ClientInfoStatus</code>
89
* <p>
90
* @since 1.6
91
*/
92
public SQLClientInfoException(Map<String, ClientInfoStatus> failedProperties) {
93
94
this.failedProperties = failedProperties;
95
}
96
97
/**
98
* Constructs a <code>SQLClientInfoException</code> object initialized with
99
* a given <code>cause</code> and <code>failedProperties</code>.
100
*
101
* The <code>reason</code> is initialized to <code>null</code> if
102
* <code>cause==null</code> or to <code>cause.toString()</code> if
103
* <code>cause!=null</code> and the vendor code is initialized to 0.
104
*
105
* <p>
106
*
107
* @param failedProperties A Map containing the property values that could not
108
* be set. The keys in the Map
109
* contain the names of the client info
110
* properties that could not be set and
111
* the values contain one of the reason codes
112
* defined in <code>ClientInfoStatus</code>
113
* @param cause the (which is saved for later retrieval by the <code>getCause()</code> method); may be null indicating
114
* the cause is non-existent or unknown.
115
* <p>
116
* @since 1.6
117
*/
118
public SQLClientInfoException(Map<String, ClientInfoStatus> failedProperties,
119
Throwable cause) {
120
121
super(cause != null?cause.toString():null);
122
initCause(cause);
123
this.failedProperties = failedProperties;
124
}
125
126
/**
127
* Constructs a <code>SQLClientInfoException</code> object initialized with a
128
* given <code>reason</code> and <code>failedProperties</code>.
129
* The <code>SQLState</code> is initialized
130
* to <code>null</code> and the vendor code is initialized to 0.
131
*
132
* The <code>cause</code> is not initialized, and may subsequently be
133
* initialized by a call to the
134
* {@link Throwable#initCause(java.lang.Throwable)} method.
135
* <p>
136
*
137
* @param reason a description of the exception
138
* @param failedProperties A Map containing the property values that could not
139
* be set. The keys in the Map
140
* contain the names of the client info
141
* properties that could not be set and
142
* the values contain one of the reason codes
143
* defined in <code>ClientInfoStatus</code>
144
* <p>
145
* @since 1.6
146
*/
147
public SQLClientInfoException(String reason,
148
Map<String, ClientInfoStatus> failedProperties) {
149
150
super(reason);
151
this.failedProperties = failedProperties;
152
}
153
154
/**
155
* Constructs a <code>SQLClientInfoException</code> object initialized with a
156
* given <code>reason</code>, <code>cause</code> and
157
* <code>failedProperties</code>.
158
* The <code>SQLState</code> is initialized
159
* to <code>null</code> and the vendor code is initialized to 0.
160
* <p>
161
*
162
* @param reason a description of the exception
163
* @param failedProperties A Map containing the property values that could not
164
* be set. The keys in the Map
165
* contain the names of the client info
166
* properties that could not be set and
167
* the values contain one of the reason codes
168
* defined in <code>ClientInfoStatus</code>
169
* @param cause the underlying reason for this <code>SQLException</code> (which is saved for later retrieval by the <code>getCause()</code> method); may be null indicating
170
* the cause is non-existent or unknown.
171
* <p>
172
* @since 1.6
173
*/
174
public SQLClientInfoException(String reason,
175
Map<String, ClientInfoStatus> failedProperties,
176
Throwable cause) {
177
178
super(reason);
179
initCause(cause);
180
this.failedProperties = failedProperties;
181
}
182
183
/**
184
* Constructs a <code>SQLClientInfoException</code> object initialized with a
185
* given <code>reason</code>, <code>SQLState</code> and
186
* <code>failedProperties</code>.
187
* The <code>cause</code> is not initialized, and may subsequently be
188
* initialized by a call to the
189
* {@link Throwable#initCause(java.lang.Throwable)} method. The vendor code
190
* is initialized to 0.
191
* <p>
192
*
193
* @param reason a description of the exception
194
* @param SQLState an XOPEN or SQL:2003 code identifying the exception
195
* @param failedProperties A Map containing the property values that could not
196
* be set. The keys in the Map
197
* contain the names of the client info
198
* properties that could not be set and
199
* the values contain one of the reason codes
200
* defined in <code>ClientInfoStatus</code>
201
* <p>
202
* @since 1.6
203
*/
204
public SQLClientInfoException(String reason,
205
String SQLState,
206
Map<String, ClientInfoStatus> failedProperties) {
207
208
super(reason, SQLState);
209
this.failedProperties = failedProperties;
210
}
211
212
/**
213
* Constructs a <code>SQLClientInfoException</code> object initialized with a
214
* given <code>reason</code>, <code>SQLState</code>, <code>cause</code>
215
* and <code>failedProperties</code>. The vendor code is initialized to 0.
216
* <p>
217
*
218
* @param reason a description of the exception
219
* @param SQLState an XOPEN or SQL:2003 code identifying the exception
220
* @param failedProperties A Map containing the property values that could not
221
* be set. The keys in the Map
222
* contain the names of the client info
223
* properties that could not be set and
224
* the values contain one of the reason codes
225
* defined in <code>ClientInfoStatus</code>
226
* @param cause the underlying reason for this <code>SQLException</code> (which is saved for later retrieval by the <code>getCause()</code> method); may be null indicating
227
* the cause is non-existent or unknown.
228
* <p>
229
* @since 1.6
230
*/
231
public SQLClientInfoException(String reason,
232
String SQLState,
233
Map<String, ClientInfoStatus> failedProperties,
234
Throwable cause) {
235
236
super(reason, SQLState);
237
initCause(cause);
238
this.failedProperties = failedProperties;
239
}
240
241
/**
242
* Constructs a <code>SQLClientInfoException</code> object initialized with a
243
* given <code>reason</code>, <code>SQLState</code>,
244
* <code>vendorCode</code> and <code>failedProperties</code>.
245
* The <code>cause</code> is not initialized, and may subsequently be
246
* initialized by a call to the
247
* {@link Throwable#initCause(java.lang.Throwable)} method.
248
* <p>
249
*
250
* @param reason a description of the exception
251
* @param SQLState an XOPEN or SQL:2003 code identifying the exception
252
* @param vendorCode a database vendor-specific exception code
253
* @param failedProperties A Map containing the property values that could not
254
* be set. The keys in the Map
255
* contain the names of the client info
256
* properties that could not be set and
257
* the values contain one of the reason codes
258
* defined in <code>ClientInfoStatus</code>
259
* <p>
260
* @since 1.6
261
*/
262
public SQLClientInfoException(String reason,
263
String SQLState,
264
int vendorCode,
265
Map<String, ClientInfoStatus> failedProperties) {
266
267
super(reason, SQLState, vendorCode);
268
this.failedProperties = failedProperties;
269
}
270
271
/**
272
* Constructs a <code>SQLClientInfoException</code> object initialized with a
273
* given <code>reason</code>, <code>SQLState</code>,
274
* <code>cause</code>, <code>vendorCode</code> and
275
* <code>failedProperties</code>.
276
* <p>
277
*
278
* @param reason a description of the exception
279
* @param SQLState an XOPEN or SQL:2003 code identifying the exception
280
* @param vendorCode a database vendor-specific exception code
281
* @param failedProperties A Map containing the property values that could not
282
* be set. The keys in the Map
283
* contain the names of the client info
284
* properties that could not be set and
285
* the values contain one of the reason codes
286
* defined in <code>ClientInfoStatus</code>
287
* @param cause the underlying reason for this <code>SQLException</code> (which is saved for later retrieval by the <code>getCause()</code> method); may be null indicating
288
* the cause is non-existent or unknown.
289
* <p>
290
* @since 1.6
291
*/
292
public SQLClientInfoException(String reason,
293
String SQLState,
294
int vendorCode,
295
Map<String, ClientInfoStatus> failedProperties,
296
Throwable cause) {
297
298
super(reason, SQLState, vendorCode);
299
initCause(cause);
300
this.failedProperties = failedProperties;
301
}
302
303
/**
304
* Returns the list of client info properties that could not be set. The
305
* keys in the Map contain the names of the client info
306
* properties that could not be set and the values contain one of the
307
* reason codes defined in <code>ClientInfoStatus</code>
308
* <p>
309
*
310
* @return Map list containing the client info properties that could
311
* not be set
312
* <p>
313
* @since 1.6
314
*/
315
public Map<String, ClientInfoStatus> getFailedProperties() {
316
317
return this.failedProperties;
318
}
319
320
private static final long serialVersionUID = -4319604256824655880L;
321
}
322
323