--- a/jdk/THIRD_PARTY_README Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/THIRD_PARTY_README Thu Feb 20 16:27:08 2014 -0800
@@ -2,11 +2,12 @@
-----------------------------
%% This notice is provided with respect to ASM Bytecode Manipulation
-Framework v4.0, which is included with JRE 8, and JDK 8.
+Framework v5.0, which may be included with JRE 8, and JDK 8, and
+OpenJDK 8.
--- begin of LICENSE ---
-Copyright (c) 2000-2011 France Télécom
+Copyright (c) 2000-2011 France Télécom
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -40,8 +41,41 @@
--------------------------------------------------------------------------------
-%% This notice is provided with respect to CodeViewer 1.0, which is included
-with JDK 7.
+%% This notice is provided with respect to BSDiff v4.3, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright 2003-2005 Colin Percival
+All rights reserved
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted providing that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to CodeViewer 1.0, which may be
+included with JDK 8.
--- begin of LICENSE ---
@@ -81,8 +115,8 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to Cryptix AES 3.2.0, which is
-included with JRE 7, JDK 7, and OpenJDK 7.
+%% This notice is provided with respect to Cryptix AES 3.2.0, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -121,7 +155,7 @@
-------------------------------------------------------------------------------
%% This notice is provided with respect to CUP Parser Generator for
-Java 0.10k, which is included with JRE 7, JDK 7, and OpenJDK 7.
+Java 0.10k, which may be included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -148,7 +182,7 @@
-------------------------------------------------------------------------------
%% This notice is provided with respect to Document Object Model (DOM) Level 2
-& 3, which is included with JRE 7, JDK 7, and OpenJDK 7.
+& 3, which may be included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -212,19 +246,52 @@
-------------------------------------------------------------------------------
+%% This notice is provided with respect to Dynalink v0.5, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright (c) 2009-2013, Attila Szegedi
+
+All rights reserved.Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the following conditions are
+met:* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer. * Redistributions in
+binary form must reproduce the above copyright notice, this list of
+conditions and the following disclaimer in the documentation and/or other
+materials provided with the distribution. * Neither the name of Attila
+Szegedi nor the names of its contributors may be used to endorse or promote
+products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
%% This notice is provided with respect to Elliptic Curve Cryptography, which
-is included with JRE 7, JDK 7, and OpenJDK 7.
+may be included with JRE 8, JDK 8, and OpenJDK 8.
You are receiving a copy of the Elliptic Curve Cryptography library in source
-form with the JDK 7 source distribution and object code in the JRE 7 & JDK 7
-runtime.
-
-The terms of the Oracle license do NOT apply to the Elliptic Curve
-Cryptography library program; it is licensed under the following license,
-separately from the Oracle programs you receive. If you do not wish to install
-this program, you may delete the library named libsunec.so (on Solaris and
-Linux systems) or sunec.dll (on Windows systems) from the JRE bin directory
-reserved for native libraries.
+form with the JDK 8 and OpenJDK 8 source distributions, and as object code in
+the JRE 8 & JDK 8 runtimes.
+
+In the case of the JRE 8 & JDK 8 runtimes, the terms of the Oracle license do
+NOT apply to the Elliptic Curve Cryptography library; it is licensed under the
+following license, separately from Oracle's JDK & JRE. If you do not wish to
+install the Elliptic Curve Cryptography library, you may delete the library
+named libsunec.so (on Solaris and Linux systems) or sunec.dll (on Windows
+systems) from the JRE bin directory reserved for native libraries.
+
--- begin of LICENSE ---
@@ -735,13 +802,138 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to FontConfig 2.5, which is
-included with JRE 7, JDK 7, and OpenJDK 7 source distributions on
+%% This notice is provided with respect to ECMAScript Language
+Specification ECMA-262 Edition 5.1 which may be included with
+JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Copyright notice
+Copyright © 2011 Ecma International
+Ecma International
+Rue du Rhone 114
+CH-1204 Geneva
+Tel: +41 22 849 6000
+Fax: +41 22 849 6001
+Web: http://www.ecma-international.org
+
+This document and possible translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it or assist
+in its implementation may be prepared, copied, published, and distributed, in
+whole or in part, without restriction of any kind, provided that the above
+copyright notice and this section are included on all such copies and derivative
+works. However, this document itself may not be modified in any way, including
+by removing the copyright notice or references to Ecma International, except as
+needed for the purpose of developing any document or deliverable produced by
+Ecma International (in which case the rules applied to copyrights must be
+followed) or as required to translate it into languages other than English. The
+limited permissions granted above are perpetual and will not be revoked by Ecma
+International or its successors or assigns. This document and the information
+contained herein is provided on an "AS IS" basis and ECMA INTERNATIONAL
+DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
+WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP
+RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE." Software License
+
+All Software contained in this document ("Software)" is protected by copyright
+and is being made available under the "BSD License", included below. This
+Software may be subject to third party rights (rights from parties other than
+Ecma International), including patent rights, and no licenses under such third
+party rights are granted under this license even if the third party concerned is
+a member of Ecma International. SEE THE ECMA CODE OF CONDUCT IN PATENT MATTERS
+AVAILABLE AT http://www.ecma-international.org/memento/codeofconduct.htm FOR
+INFORMATION REGARDING THE LICENSING OF PATENT CLAIMS THAT ARE REQUIRED TO
+IMPLEMENT ECMA INTERNATIONAL STANDARDS*. Redistribution and use in source and
+binary forms, with or without modification, are permitted provided that the
+following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+3. Neither the name of the authors nor Ecma International may be used to endorse
+or promote products derived from this software without specific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL ECMA INTERNATIONAL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGE.
+--- end of LICENSE ---
+
+%% This notice is provided with respect to Dynalink library which is included
+with the Nashorn technology.
+
+--- begin of LICENSE ---
+Copyright (c) 2009-2013, Attila Szegedi
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+* Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+* Neither the name of the copyright holder nor the names of
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+--- end of LICENSE ---
+
+%% This notice is provided with respect to Joni library which is included
+with the Nashorn technology.
+
+--- begin of LICENSE ---
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to FontConfig 2.5, which may be
+included with JRE 8, JDK 8, and OpenJDK 8 source distributions on
Linux and Solaris.
--- begin of LICENSE ---
-Copyright © 2001,2003 Keith Packard
+Copyright © 2001,2003 Keith Packard
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that the
@@ -765,7 +957,7 @@
-------------------------------------------------------------------------------
%% This notice is provided with respect to IAIK PKCS#11 Wrapper,
-which is included with JRE 7, JDK 7, and OpenJDK 7.
+which may be included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -816,7 +1008,7 @@
-------------------------------------------------------------------------------
%% This notice is provided with respect to ICU4C 4.0.1 and ICU4J 4.4, which
-is included with JRE 7, JDK 7, and OpenJDK 7.
+may be included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -852,8 +1044,8 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to IJG JPEG 6b, which is
-included with JRE 7, JDK 7, and OpenJDK 7.
+%% This notice is provided with respect to IJG JPEG 6b, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -891,8 +1083,35 @@
--------------------------------------------------------------------------------
-%% This notice is provided with respect to JOpt-Simple v3.0, which is
-included with JRE 7, JDK 7, and OpenJDK 7.
+%% This notice is provided with respect to Joni v1.1.9, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
+%% This notice is provided with respect to JOpt-Simple v3.0, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -921,8 +1140,39 @@
--------------------------------------------------------------------------------
+%% This notice is provided with respect to JSON, which may be included
+with JRE 8 & JDK 8.
+
+--- begin of LICENSE ---
+
+Copyright (c) 2002 JSON.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+The Software shall be used for Good, not Evil.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
%% This notice is provided with respect to Kerberos functionality, which
-which is included with JRE 7, JDK 7, and OpenJDK 7.
+which may be included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -934,7 +1184,7 @@
-------------------------------------------------------------------------------
%% This notice is provided with respect to Kerberos functionality from
-FundsXpress, INC., which is included with JRE 7, JDK 7, and OpenJDK 7.
+FundsXpress, INC., which may be included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -967,8 +1217,8 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to Kronos OpenGL headers, which is
-included with JDK 7 and OpenJDK 7 source distributions.
+%% This notice is provided with respect to Kronos OpenGL headers, which may be
+included with JDK 8 and OpenJDK 8 source distributions.
--- begin of LICENSE ---
@@ -1000,8 +1250,8 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to libpng 1.2.18, which is
-included with JRE 7, JDK 7, and OpenJDK 7.
+%% This notice is provided with respect to libpng 1.5.4, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -1014,8 +1264,10 @@
If you modify libpng you may insert additional notices immediately following
this sentence.
-libpng versions 1.2.6, August 15, 2004, through 1.2.18, May 15, 2007, are
-Copyright (c) 2004, 2006-2007 Glenn Randers-Pehrson, and are
+This code is released under the libpng license.
+
+libpng versions 1.2.6, August 15, 2004, through 1.5.4, July 7, 2011, are
+Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@@ -1112,14 +1364,14 @@
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-May 15, 2007
+July 7, 2011
--- end of LICENSE ---
-------------------------------------------------------------------------------
-%% This notice is provided with respect to libungif 4.1.3, which is
-included with JRE 7, JDK 7, and OpenJDK 7.
+%% This notice is provided with respect to libungif 4.1.3, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -1147,8 +1399,8 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to Little CMS 2.0, which is
-included with OpenJDK 7.
+%% This notice is provided with respect to Little CMS 2.4, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -1183,7 +1435,7 @@
-------------------------------------------------------------------------------
%% This notice is provided with respect to Mesa 3D Graphics Library v4.1,
-which is included with JRE 7, JDK 7, and OpenJDK 7 source distributions.
+which may be included with JRE 8, JDK 8, and OpenJDK 8 source distributions.
--- begin of LICENSE ---
@@ -1213,8 +1465,402 @@
-------------------------------------------------------------------------------
+%% This notice is provided with respect to Mozilla Network Security
+Services (NSS), which is supplied with the JDK test suite in the OpenJDK
+source code repository. It is licensed under Mozilla Public License (MPL),
+version 2.0.
+
+The NSS libraries are supplied in executable form, built from unmodified
+NSS source code labeled with the "NSS_3.13.1_RTM" release tag.
+
+The NSS source code is available in the OpenJDK source code repository at:
+ jdk/test/sun/security/pkcs11/nss/src
+
+The NSS libraries are available in the OpenJDK source code repository at:
+ jdk/test/sun/security/pkcs11/nss/lib
+
+--- begin of LICENSE ---
+
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+ means each individual or legal entity that creates, contributes to
+ the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+ means the combination of the Contributions of others (if any) used
+ by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+ means Source Code Form to which the initial Contributor has attached
+ the notice in Exhibit A, the Executable Form of such Source Code
+ Form, and Modifications of such Source Code Form, in each case
+ including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ (a) that the initial Contributor has attached the notice described
+ in Exhibit B to the Covered Software; or
+
+ (b) that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the
+ terms of a Secondary License.
+
+1.6. "Executable Form"
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+ means a work that combines Covered Software with other material, in
+ a separate file or files, that is not Covered Software.
+
+1.8. "License"
+ means this document.
+
+1.9. "Licensable"
+ means having the right to grant, to the maximum extent possible,
+ whether at the time of the initial grant or subsequently, any and
+ all of the rights conveyed by this License.
+
+1.10. "Modifications"
+ means any of the following:
+
+ (a) any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered
+ Software; or
+
+ (b) any new file in Source Code Form that contains any Covered
+ Software.
+
+1.11. "Patent Claims" of a Contributor
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the
+ License, by the making, using, selling, offering for sale, having
+ made, import, or transfer of either its Contributions or its
+ Contributor Version.
+
+1.12. "Secondary License"
+ means either the GNU General Public License, Version 2.0, the GNU
+ Lesser General Public License, Version 2.1, the GNU Affero General
+ Public License, Version 3.0, or any later versions of those
+ licenses.
+
+1.13. "Source Code Form"
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that
+ controls, is controlled by, or is under common control with You. For
+ purposes of this definition, "control" means (a) the power, direct
+ or indirect, to cause the direction or management of such entity,
+ whether by contract or otherwise, or (b) ownership of more than
+ fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+ for sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+ or
+
+(b) for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+ Form, as described in Section 3.1, and You must inform recipients of
+ the Executable Form how they can obtain a copy of such Source Code
+ Form by reasonable means in a timely manner, at a charge no more
+ than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter
+ the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+* *
+* 6. Disclaimer of Warranty *
+* ------------------------- *
+* *
+* Covered Software is provided under this License on an "as is" *
+* basis, without warranty of any kind, either expressed, implied, or *
+* statutory, including, without limitation, warranties that the *
+* Covered Software is free of defects, merchantable, fit for a *
+* particular purpose or non-infringing. The entire risk as to the *
+* quality and performance of the Covered Software is with You. *
+* Should any Covered Software prove defective in any respect, You *
+* (not any Contributor) assume the cost of any necessary servicing, *
+* repair, or correction. This disclaimer of warranty constitutes an *
+* essential part of this License. No use of any Covered Software is *
+* authorized under this License except under this disclaimer. *
+* *
+************************************************************************
+
+************************************************************************
+* *
+* 7. Limitation of Liability *
+* -------------------------- *
+* *
+* Under no circumstances and under no legal theory, whether tort *
+* (including negligence), contract, or otherwise, shall any *
+* Contributor, or anyone who distributes Covered Software as *
+* permitted above, be liable to You for any direct, indirect, *
+* special, incidental, or consequential damages of any character *
+* including, without limitation, damages for lost profits, loss of *
+* goodwill, work stoppage, computer failure or malfunction, or any *
+* and all other commercial damages or losses, even if such party *
+* shall have been informed of the possibility of such damages. This *
+* limitation of liability shall not apply to liability for death or *
+* personal injury resulting from such party's negligence to the *
+* extent applicable law prohibits such limitation. Some *
+* jurisdictions do not allow the exclusion or limitation of *
+* incidental or consequential damages, so this exclusion and *
+* limitation may not apply to You. *
+* *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+ This Source Code Form is "Incompatible With Secondary Licenses", as
+ defined by the Mozilla Public License, v. 2.0.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
%% This notice is provided with respect to PC/SC Lite for Suse Linux v.1.1.1,
-which is included with JRE 7, JDK 7, and OpenJDK 7 on Linux and Solaris.
+which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris.
--- begin of LICENSE ---
@@ -1257,8 +1903,30 @@
-------------------------------------------------------------------------------
+%% This notice is provided with respect to PorterStemmer v4, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
+
+--- begin of LICENSE ---
+
+See: http://tartarus.org/~martin/PorterStemmer
+
+The software is completely free for any purpose, unless notes at the head of
+the program text indicates otherwise (which is rare). In any case, the notes
+about licensing are never more restrictive than the BSD License.
+
+In every case where the software is not written by me (Martin Porter), this
+licensing arrangement has been endorsed by the contributor, and it is
+therefore unnecessary to ask the contributor again to confirm it.
+
+I have not asked any contributors (or their employers, if they have them) for
+proofs that they have the right to distribute their software in this way.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
%% This notice is provided with respect to Relax NG Object/Parser v.20050510,
-which is included with JRE 7, JDK 7, and OpenJDK 7.
+which may be included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -1285,8 +1953,8 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to RelaxNGCC v1.12, which is
-included with JRE 7, JDK 7, and OpenJDK 7.
+%% This notice is provided with respect to RelaxNGCC v1.12, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -1335,487 +2003,8 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to Mozilla Rhino v1.7R3, which
-is included with JRE 7, JDK 7, and OpenJDK 7
-
---- begin of LICENSE ---
-
- MOZILLA PUBLIC LICENSE
- Version 1.1
-
- ---------------
-
-1. Definitions.
-
- 1.0.1. "Commercial Use" means distribution or otherwise making the
- Covered Code available to a third party.
-
- 1.1. "Contributor" means each entity that creates or contributes to
- the creation of Modifications.
-
- 1.2. "Contributor Version" means the combination of the Original
- Code, prior Modifications used by a Contributor, and the Modifications
- made by that particular Contributor.
-
- 1.3. "Covered Code" means the Original Code or Modifications or the
- combination of the Original Code and Modifications, in each case
- including portions thereof.
-
- 1.4. "Electronic Distribution Mechanism" means a mechanism generally
- accepted in the software development community for the electronic
- transfer of data.
-
- 1.5. "Executable" means Covered Code in any form other than Source
- Code.
-
- 1.6. "Initial Developer" means the individual or entity identified
- as the Initial Developer in the Source Code notice required by Exhibit
- A.
-
- 1.7. "Larger Work" means a work which combines Covered Code or
- portions thereof with code not governed by the terms of this License.
-
- 1.8. "License" means this document.
-
- 1.8.1. "Licensable" means having the right to grant, to the maximum
- extent possible, whether at the time of the initial grant or
- subsequently acquired, any and all of the rights conveyed herein.
-
- 1.9. "Modifications" means any addition to or deletion from the
- substance or structure of either the Original Code or any previous
- Modifications. When Covered Code is released as a series of files, a
- Modification is:
- A. Any addition to or deletion from the contents of a file
- containing Original Code or previous Modifications.
-
- B. Any new file that contains any part of the Original Code or
- previous Modifications.
-
- 1.10. "Original Code" means Source Code of computer software code
- which is described in the Source Code notice required by Exhibit A as
- Original Code, and which, at the time of its release under this
- License is not already Covered Code governed by this License.
-
- 1.10.1. "Patent Claims" means any patent claim(s), now owned or
- hereafter acquired, including without limitation, method, process,
- and apparatus claims, in any patent Licensable by grantor.
-
- 1.11. "Source Code" means the preferred form of the Covered Code for
- making modifications to it, including all modules it contains, plus
- any associated interface definition files, scripts used to control
- compilation and installation of an Executable, or source code
- differential comparisons against either the Original Code or another
- well known, available Covered Code of the Contributor's choice. The
- Source Code can be in a compressed or archival form, provided the
- appropriate decompression or de-archiving software is widely available
- for no charge.
-
- 1.12. "You" (or "Your") means an individual or a legal entity
- exercising rights under, and complying with all of the terms of, this
- License or a future version of this License issued under Section 6.1.
- For legal entities, "You" includes any entity which controls, is
- controlled by, or is under common control with You. For purposes of
- this definition, "control" means (a) the power, direct or indirect,
- to cause the direction or management of such entity, whether by
- contract or otherwise, or (b) ownership of more than fifty percent
- (50%) of the outstanding shares or beneficial ownership of such
- entity.
-
-2. Source Code License.
-
- 2.1. The Initial Developer Grant.
- The Initial Developer hereby grants You a world-wide, royalty-free,
- non-exclusive license, subject to third party intellectual property
- claims:
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Initial Developer to use, reproduce,
- modify, display, perform, sublicense and distribute the Original
- Code (or portions thereof) with or without Modifications, and/or
- as part of a Larger Work; and
-
- (b) under Patents Claims infringed by the making, using or
- selling of Original Code, to make, have made, use, practice,
- sell, and offer for sale, and/or otherwise dispose of the
- Original Code (or portions thereof).
-
- (c) the licenses granted in this Section 2.1(a) and (b) are
- effective on the date Initial Developer first distributes
- Original Code under the terms of this License.
-
- (d) Notwithstanding Section 2.1(b) above, no patent license is
- granted: 1) for code that You delete from the Original Code; 2)
- separate from the Original Code; or 3) for infringements caused
- by: i) the modification of the Original Code or ii) the
- combination of the Original Code with other software or devices.
-
- 2.2. Contributor Grant.
- Subject to third party intellectual property claims, each Contributor
- hereby grants You a world-wide, royalty-free, non-exclusive license
-
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Contributor, to use, reproduce, modify,
- display, perform, sublicense and distribute the Modifications
- created by such Contributor (or portions thereof) either on an
- unmodified basis, with other Modifications, as Covered Code
- and/or as part of a Larger Work; and
-
- (b) under Patent Claims infringed by the making, using, or
- selling of Modifications made by that Contributor either alone
- and/or in combination with its Contributor Version (or portions
- of such combination), to make, use, sell, offer for sale, have
- made, and/or otherwise dispose of: 1) Modifications made by that
- Contributor (or portions thereof); and 2) the combination of
- Modifications made by that Contributor with its Contributor
- Version (or portions of such combination).
-
- (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
- effective on the date Contributor first makes Commercial Use of
- the Covered Code.
-
- (d) Notwithstanding Section 2.2(b) above, no patent license is
- granted: 1) for any code that Contributor has deleted from the
- Contributor Version; 2) separate from the Contributor Version;
- 3) for infringements caused by: i) third party modifications of
- Contributor Version or ii) the combination of Modifications made
- by that Contributor with other software (except as part of the
- Contributor Version) or other devices; or 4) under Patent Claims
- infringed by Covered Code in the absence of Modifications made by
- that Contributor.
-
-3. Distribution Obligations.
-
- 3.1. Application of License.
- The Modifications which You create or to which You contribute are
- governed by the terms of this License, including without limitation
- Section 2.2. The Source Code version of Covered Code may be
- distributed only under the terms of this License or a future version
- of this License released under Section 6.1, and You must include a
- copy of this License with every copy of the Source Code You
- distribute. You may not offer or impose any terms on any Source Code
- version that alters or restricts the applicable version of this
- License or the recipients' rights hereunder. However, You may include
- an additional document offering the additional rights described in
- Section 3.5.
-
- 3.2. Availability of Source Code.
- Any Modification which You create or to which You contribute must be
- made available in Source Code form under the terms of this License
- either on the same media as an Executable version or via an accepted
- Electronic Distribution Mechanism to anyone to whom you made an
- Executable version available; and if made available via Electronic
- Distribution Mechanism, must remain available for at least twelve (12)
- months after the date it initially became available, or at least six
- (6) months after a subsequent version of that particular Modification
- has been made available to such recipients. You are responsible for
- ensuring that the Source Code version remains available even if the
- Electronic Distribution Mechanism is maintained by a third party.
-
- 3.3. Description of Modifications.
- You must cause all Covered Code to which You contribute to contain a
- file documenting the changes You made to create that Covered Code and
- the date of any change. You must include a prominent statement that
- the Modification is derived, directly or indirectly, from Original
- Code provided by the Initial Developer and including the name of the
- Initial Developer in (a) the Source Code, and (b) in any notice in an
- Executable version or related documentation in which You describe the
- origin or ownership of the Covered Code.
-
- 3.4. Intellectual Property Matters
- (a) Third Party Claims.
- If Contributor has knowledge that a license under a third party's
- intellectual property rights is required to exercise the rights
- granted by such Contributor under Sections 2.1 or 2.2,
- Contributor must include a text file with the Source Code
- distribution titled "LEGAL" which describes the claim and the
- party making the claim in sufficient detail that a recipient will
- know whom to contact. If Contributor obtains such knowledge after
- the Modification is made available as described in Section 3.2,
- Contributor shall promptly modify the LEGAL file in all copies
- Contributor makes available thereafter and shall take other steps
- (such as notifying appropriate mailing lists or newsgroups)
- reasonably calculated to inform those who received the Covered
- Code that new knowledge has been obtained.
-
- (b) Contributor APIs.
- If Contributor's Modifications include an application programming
- interface and Contributor has knowledge of patent licenses which
- are reasonably necessary to implement that API, Contributor must
- also include this information in the LEGAL file.
-
- (c) Representations.
- Contributor represents that, except as disclosed pursuant to
- Section 3.4(a) above, Contributor believes that Contributor's
- Modifications are Contributor's original creation(s) and/or
- Contributor has sufficient rights to grant the rights conveyed by
- this License.
-
- 3.5. Required Notices.
- You must duplicate the notice in Exhibit A in each file of the Source
- Code. If it is not possible to put such notice in a particular Source
- Code file due to its structure, then You must include such notice in a
- location (such as a relevant directory) where a user would be likely
- to look for such a notice. If You created one or more Modification(s)
- You may add your name as a Contributor to the notice described in
- Exhibit A. You must also duplicate this License in any documentation
- for the Source Code where You describe recipients' rights or ownership
- rights relating to Covered Code. You may choose to offer, and to
- charge a fee for, warranty, support, indemnity or liability
- obligations to one or more recipients of Covered Code. However, You
- may do so only on Your own behalf, and not on behalf of the Initial
- Developer or any Contributor. You must make it absolutely clear than
- any such warranty, support, indemnity or liability obligation is
- offered by You alone, and You hereby agree to indemnify the Initial
- Developer and every Contributor for any liability incurred by the
- Initial Developer or such Contributor as a result of warranty,
- support, indemnity or liability terms You offer.
-
- 3.6. Distribution of Executable Versions.
- You may distribute Covered Code in Executable form only if the
- requirements of Section 3.1-3.5 have been met for that Covered Code,
- and if You include a notice stating that the Source Code version of
- the Covered Code is available under the terms of this License,
- including a description of how and where You have fulfilled the
- obligations of Section 3.2. The notice must be conspicuously included
- in any notice in an Executable version, related documentation or
- collateral in which You describe recipients' rights relating to the
- Covered Code. You may distribute the Executable version of Covered
- Code or ownership rights under a license of Your choice, which may
- contain terms different from this License, provided that You are in
- compliance with the terms of this License and that the license for the
- Executable version does not attempt to limit or alter the recipient's
- rights in the Source Code version from the rights set forth in this
- License. If You distribute the Executable version under a different
- license You must make it absolutely clear that any terms which differ
- from this License are offered by You alone, not by the Initial
- Developer or any Contributor. You hereby agree to indemnify the
- Initial Developer and every Contributor for any liability incurred by
- the Initial Developer or such Contributor as a result of any such
- terms You offer.
-
- 3.7. Larger Works.
- You may create a Larger Work by combining Covered Code with other code
- not governed by the terms of this License and distribute the Larger
- Work as a single product. In such a case, You must make sure the
- requirements of this License are fulfilled for the Covered Code.
-
-4. Inability to Comply Due to Statute or Regulation.
-
- If it is impossible for You to comply with any of the terms of this
- License with respect to some or all of the Covered Code due to
- statute, judicial order, or regulation then You must: (a) comply with
- the terms of this License to the maximum extent possible; and (b)
- describe the limitations and the code they affect. Such description
- must be included in the LEGAL file described in Section 3.4 and must
- be included with all distributions of the Source Code. Except to the
- extent prohibited by statute or regulation, such description must be
- sufficiently detailed for a recipient of ordinary skill to be able to
- understand it.
-
-5. Application of this License.
-
- This License applies to code to which the Initial Developer has
- attached the notice in Exhibit A and to related Covered Code.
-
-6. Versions of the License.
-
- 6.1. New Versions.
- Netscape Communications Corporation ("Netscape") may publish revised
- and/or new versions of the License from time to time. Each version
- will be given a distinguishing version number.
-
- 6.2. Effect of New Versions.
- Once Covered Code has been published under a particular version of the
- License, You may always continue to use it under the terms of that
- version. You may also choose to use such Covered Code under the terms
- of any subsequent version of the License published by Netscape. No one
- other than Netscape has the right to modify the terms applicable to
- Covered Code created under this License.
-
- 6.3. Derivative Works.
- If You create or use a modified version of this License (which you may
- only do in order to apply it to code which is not already Covered Code
- governed by this License), You must (a) rename Your license so that
- the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
- "MPL", "NPL" or any confusingly similar phrase do not appear in your
- license (except to note that your license differs from this License)
- and (b) otherwise make it clear that Your version of the license
- contains terms which differ from the Mozilla Public License and
- Netscape Public License. (Filling in the name of the Initial
- Developer, Original Code or Contributor in the notice described in
- Exhibit A shall not of themselves be deemed to be modifications of
- this License.)
-
-7. DISCLAIMER OF WARRANTY.
-
- COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
- DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
- THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
- IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
- YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
- COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
- OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
- ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-8. TERMINATION.
-
- 8.1. This License and the rights granted hereunder will terminate
- automatically if You fail to comply with terms herein and fail to cure
- such breach within 30 days of becoming aware of the breach. All
- sublicenses to the Covered Code which are properly granted shall
- survive any termination of this License. Provisions which, by their
- nature, must remain in effect beyond the termination of this License
- shall survive.
-
- 8.2. If You initiate litigation by asserting a patent infringement
- claim (excluding declatory judgment actions) against Initial Developer
- or a Contributor (the Initial Developer or Contributor against whom
- You file such action is referred to as "Participant") alleging that:
-
- (a) such Participant's Contributor Version directly or indirectly
- infringes any patent, then any and all rights granted by such
- Participant to You under Sections 2.1 and/or 2.2 of this License
- shall, upon 60 days notice from Participant terminate prospectively,
- unless if within 60 days after receipt of notice You either: (i)
- agree in writing to pay Participant a mutually agreeable reasonable
- royalty for Your past and future use of Modifications made by such
- Participant, or (ii) withdraw Your litigation claim with respect to
- the Contributor Version against such Participant. If within 60 days
- of notice, a reasonable royalty and payment arrangement are not
- mutually agreed upon in writing by the parties or the litigation claim
- is not withdrawn, the rights granted by Participant to You under
- Sections 2.1 and/or 2.2 automatically terminate at the expiration of
- the 60 day notice period specified above.
-
- (b) any software, hardware, or device, other than such Participant's
- Contributor Version, directly or indirectly infringes any patent, then
- any rights granted to You by such Participant under Sections 2.1(b)
- and 2.2(b) are revoked effective as of the date You first made, used,
- sold, distributed, or had made, Modifications made by that
- Participant.
-
- 8.3. If You assert a patent infringement claim against Participant
- alleging that such Participant's Contributor Version directly or
- indirectly infringes any patent where such claim is resolved (such as
- by license or settlement) prior to the initiation of patent
- infringement litigation, then the reasonable value of the licenses
- granted by such Participant under Sections 2.1 or 2.2 shall be taken
- into account in determining the amount or value of any payment or
- license.
-
- 8.4. In the event of termination under Sections 8.1 or 8.2 above,
- all end user license agreements (excluding distributors and resellers)
- which have been validly granted by You or any distributor hereunder
- prior to termination shall survive termination.
-
-9. LIMITATION OF LIABILITY.
-
- UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
- (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
- DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
- OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
- ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
- WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
- COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
- INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
- LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
- RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
- PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
- EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
- THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-10. U.S. GOVERNMENT END USERS.
-
- The Covered Code is a "commercial item," as that term is defined in
- 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
- software" and "commercial computer software documentation," as such
- terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
- C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
- all U.S. Government End Users acquire Covered Code with only those
- rights set forth herein.
-
-11. MISCELLANEOUS.
-
- This License represents the complete agreement concerning subject
- matter hereof. If any provision of this License is held to be
- unenforceable, such provision shall be reformed only to the extent
- necessary to make it enforceable. This License shall be governed by
- California law provisions (except to the extent applicable law, if
- any, provides otherwise), excluding its conflict-of-law provisions.
- With respect to disputes in which at least one party is a citizen of,
- or an entity chartered or registered to do business in the United
- States of America, any litigation relating to this License shall be
- subject to the jurisdiction of the Federal Courts of the Northern
- District of California, with venue lying in Santa Clara County,
- California, with the losing party responsible for costs, including
- without limitation, court costs and reasonable attorneys' fees and
- expenses. The application of the United Nations Convention on
- Contracts for the International Sale of Goods is expressly excluded.
- Any law or regulation which provides that the language of a contract
- shall be construed against the drafter shall not apply to this
- License.
-
-12. RESPONSIBILITY FOR CLAIMS.
-
- As between Initial Developer and the Contributors, each party is
- responsible for claims and damages arising, directly or indirectly,
- out of its utilization of rights under this License and You agree to
- work with Initial Developer and Contributors to distribute such
- responsibility on an equitable basis. Nothing herein is intended or
- shall be deemed to constitute any admission of liability.
-
-13. MULTIPLE-LICENSED CODE.
-
- Initial Developer may designate portions of the Covered Code as
- "Multiple-Licensed". "Multiple-Licensed" means that the Initial
- Developer permits you to utilize portions of the Covered Code under
- Your choice of the NPL or the alternative licenses, if any, specified
- by the Initial Developer in the file described in Exhibit A.
-
-EXHIBIT A - Mozilla Public License.
-
- ``The contents of this file are subject to the Mozilla Public License
- Version 1.1 (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.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
- The Original Code is ______________________________________.
-
- The Initial Developer of the Original Code is ________________________.
- Portions created by ______________________ are Copyright (C) ______
- _______________________. All Rights Reserved.
-
- Contributor(s): ______________________________________.
-
- Alternatively, the contents of this file may be used under the terms
- of the _____ license (the "[___] License"), in which case the
- provisions of [______] License are applicable instead of those
- above. If you wish to allow use of your version of this file only
- under the terms of the [____] License and not to allow others to use
- your version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice and
- other provisions required by the [___] License. If you do not delete
- the provisions above, a recipient may use your version of this file
- under either the MPL or the [___] License."
-
- [NOTE: The text of this Exhibit A may differ slightly from the text of
- the notices in the Source Code files of the Original Code. You should
- use the text of this Exhibit A rather than the text found in the
- Original Code Source Code for Your Modifications.]
-
---- end of LICENSE ---
-
--------------------------------------------------------------------------------
-
-%% This notice is provided with respect to SAX 2.0.1, which is included
-with JRE 7, JDK 7, and OpenJDK 7.
+%% This notice is provided with respect to SAX 2.0.1, which may be included
+with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -1876,8 +2065,8 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to SoftFloat version 2b, which is
-included with JRE 7, JDK 7, and OpenJDK 7 on Linux/ARM.
+%% This notice is provided with respect to SoftFloat version 2b, which may be
+included with JRE 8, JDK 8, and OpenJDK 8 on Linux/ARM.
--- begin of LICENSE ---
@@ -1909,12 +2098,41 @@
-------------------------------------------------------------------------------
+%% This notice is provided with respect to Sparkle 1.5,
+which may be included with JRE 8 on Mac OS X.
+
+--- begin of LICENSE ---
+
+Copyright (c) 2012 Sparkle.org and Andy Matuschak
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+--- end of LICENSE ---
+
+-------------------------------------------------------------------------------
+
%% Portions licensed from Taligent, Inc.
-------------------------------------------------------------------------------
-%% This notice is provided with respect to Thai Dictionary, which is
-included with JRE 7, JDK 7, and OpenJDK 7.
+%% This notice is provided with respect to Thai Dictionary, which may be
+included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -1947,8 +2165,8 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to Unicode 6.0.0, CLDR v1.4.1, & CLDR
-v1.9, which is included with JRE 7, JDK 7, and OpenJDK 7.
+%% This notice is provided with respect to Unicode 6.2.0 & CLDR 21.0.1
+which may be included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -1959,7 +2177,7 @@
Trademark Usage Policy.
A. Unicode Copyright.
- 1. Copyright © 1991-2011 Unicode, Inc. All rights reserved.
+ 1. Copyright © 1991-2013 Unicode, Inc. All rights reserved.
2. Certain documents and files on this website contain a legend indicating
that "Modification is permitted." Any person is hereby authorized,
@@ -2094,7 +2312,7 @@
COPYRIGHT AND PERMISSION NOTICE
-Copyright © 1991-2011 Unicode, Inc. All rights reserved. Distributed under the
+Copyright © 1991-2012 Unicode, Inc. All rights reserved. Distributed under the
Terms of Use in http://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -2134,8 +2352,8 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to UPX v3.01, which is included
-with JRE 7 on Windows.
+%% This notice is provided with respect to UPX v3.01, which may be included
+with JRE 8 on Windows.
--- begin of LICENSE ---
@@ -2274,7 +2492,7 @@
-------------------------------------------------------------------------------
%% This notice is provided with respect to Xfree86-VidMode Extension 1.0,
-which is included with JRE 7, JDK 7, and OpenJDK 7 on Linux and Solaris.
+which may be included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris.
--- begin of LICENSE ---
@@ -2326,8 +2544,8 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to X Window System 6.8.2, which is
-included with JRE 7, JDK 7, and OpenJDK 7 on Linux and Solaris.
+%% This notice is provided with respect to X Window System 6.8.2, which may be
+included with JRE 8, JDK 8, and OpenJDK 8 on Linux and Solaris.
--- begin of LICENSE ---
@@ -3131,12 +3349,12 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to zlib v1.2.3, which is included
-with JRE 7, JDK 7, and OpenJDK 7
+%% This notice is provided with respect to zlib v1.2.5, which may be included
+with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
- version 1.2.3, July 18th, 2005
+ version 1.2.5, July 18th, 2005
Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
@@ -3163,16 +3381,18 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to the following which is
-included with JRE 7, JDK 7, and OpenJDK 7, except where noted:
-
- Apache Derby 10.8.1.2 [included with JDK 7 only]
+%% This notice is provided with respect to the following which may be
+included with JRE 8, JDK 8, and OpenJDK 8, except where noted:
+
+ Apache Commons Math 2.2
+ Apache Derby 10.10.1.2 [included with JDK 8]
Apache Jakarta BCEL 5.2
Apache Jakarta Regexp 1.4
- Apache Santuario XMLSec-Java 1.4.2
+ Apache Santuario XML Security for Java 1.5.4
Apache Xalan-Java 2.7.1
- Apache Xerces2 Java 2.10.0
+ Apache Xerces Java 2.10.0
Apache XML Resolver 1.1
+ Dynalink 0.5
--- begin of LICENSE ---
@@ -3383,397 +3603,3 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to Mozilla Network Security
-Services (NSS), which is supplied with the JDK test suite in the OpenJDK
-source code repository. It is licensed under Mozilla Public License (MPL),
-version 2.0.
-
-The NSS libraries are supplied in executable form, built from unmodified
-NSS source code labeled with the "NSS_3.13.1_RTM" release tag.
-
-The NSS source code is available in the OpenJDK source code repository at:
- jdk/test/sun/security/pkcs11/nss/src
-
-The NSS libraries are available in the OpenJDK source code repository at:
- jdk/test/sun/security/pkcs11/nss/lib
-
---- begin of LICENSE ---
-
-Mozilla Public License Version 2.0
-==================================
-
-1. Definitions
---------------
-
-1.1. "Contributor"
- means each individual or legal entity that creates, contributes to
- the creation of, or owns Covered Software.
-
-1.2. "Contributor Version"
- means the combination of the Contributions of others (if any) used
- by a Contributor and that particular Contributor's Contribution.
-
-1.3. "Contribution"
- means Covered Software of a particular Contributor.
-
-1.4. "Covered Software"
- means Source Code Form to which the initial Contributor has attached
- the notice in Exhibit A, the Executable Form of such Source Code
- Form, and Modifications of such Source Code Form, in each case
- including portions thereof.
-
-1.5. "Incompatible With Secondary Licenses"
- means
-
- (a) that the initial Contributor has attached the notice described
- in Exhibit B to the Covered Software; or
-
- (b) that the Covered Software was made available under the terms of
- version 1.1 or earlier of the License, but not also under the
- terms of a Secondary License.
-
-1.6. "Executable Form"
- means any form of the work other than Source Code Form.
-
-1.7. "Larger Work"
- means a work that combines Covered Software with other material, in
- a separate file or files, that is not Covered Software.
-
-1.8. "License"
- means this document.
-
-1.9. "Licensable"
- means having the right to grant, to the maximum extent possible,
- whether at the time of the initial grant or subsequently, any and
- all of the rights conveyed by this License.
-
-1.10. "Modifications"
- means any of the following:
-
- (a) any file in Source Code Form that results from an addition to,
- deletion from, or modification of the contents of Covered
- Software; or
-
- (b) any new file in Source Code Form that contains any Covered
- Software.
-
-1.11. "Patent Claims" of a Contributor
- means any patent claim(s), including without limitation, method,
- process, and apparatus claims, in any patent Licensable by such
- Contributor that would be infringed, but for the grant of the
- License, by the making, using, selling, offering for sale, having
- made, import, or transfer of either its Contributions or its
- Contributor Version.
-
-1.12. "Secondary License"
- means either the GNU General Public License, Version 2.0, the GNU
- Lesser General Public License, Version 2.1, the GNU Affero General
- Public License, Version 3.0, or any later versions of those
- licenses.
-
-1.13. "Source Code Form"
- means the form of the work preferred for making modifications.
-
-1.14. "You" (or "Your")
- means an individual or a legal entity exercising rights under this
- License. For legal entities, "You" includes any entity that
- controls, is controlled by, or is under common control with You. For
- purposes of this definition, "control" means (a) the power, direct
- or indirect, to cause the direction or management of such entity,
- whether by contract or otherwise, or (b) ownership of more than
- fifty percent (50%) of the outstanding shares or beneficial
- ownership of such entity.
-
-2. License Grants and Conditions
---------------------------------
-
-2.1. Grants
-
-Each Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than patent or trademark)
- Licensable by such Contributor to use, reproduce, make available,
- modify, display, perform, distribute, and otherwise exploit its
- Contributions, either on an unmodified basis, with Modifications, or
- as part of a Larger Work; and
-
-(b) under Patent Claims of such Contributor to make, use, sell, offer
- for sale, have made, import, and otherwise transfer either its
- Contributions or its Contributor Version.
-
-2.2. Effective Date
-
-The licenses granted in Section 2.1 with respect to any Contribution
-become effective for each Contribution on the date the Contributor first
-distributes such Contribution.
-
-2.3. Limitations on Grant Scope
-
-The licenses granted in this Section 2 are the only rights granted under
-this License. No additional rights or licenses will be implied from the
-distribution or licensing of Covered Software under this License.
-Notwithstanding Section 2.1(b) above, no patent license is granted by a
-Contributor:
-
-(a) for any code that a Contributor has removed from Covered Software;
- or
-
-(b) for infringements caused by: (i) Your and any other third party's
- modifications of Covered Software, or (ii) the combination of its
- Contributions with other software (except as part of its Contributor
- Version); or
-
-(c) under Patent Claims infringed by Covered Software in the absence of
- its Contributions.
-
-This License does not grant any rights in the trademarks, service marks,
-or logos of any Contributor (except as may be necessary to comply with
-the notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
-No Contributor makes additional grants as a result of Your choice to
-distribute the Covered Software under a subsequent version of this
-License (see Section 10.2) or under the terms of a Secondary License (if
-permitted under the terms of Section 3.3).
-
-2.5. Representation
-
-Each Contributor represents that the Contributor believes its
-Contributions are its original creation(s) or it has sufficient rights
-to grant the rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
-This License is not intended to limit any rights You have under
-applicable copyright doctrines of fair use, fair dealing, or other
-equivalents.
-
-2.7. Conditions
-
-Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
-in Section 2.1.
-
-3. Responsibilities
--------------------
-
-3.1. Distribution of Source Form
-
-All distribution of Covered Software in Source Code Form, including any
-Modifications that You create or to which You contribute, must be under
-the terms of this License. You must inform recipients that the Source
-Code Form of the Covered Software is governed by the terms of this
-License, and how they can obtain a copy of this License. You may not
-attempt to alter or restrict the recipients' rights in the Source Code
-Form.
-
-3.2. Distribution of Executable Form
-
-If You distribute Covered Software in Executable Form then:
-
-(a) such Covered Software must also be made available in Source Code
- Form, as described in Section 3.1, and You must inform recipients of
- the Executable Form how they can obtain a copy of such Source Code
- Form by reasonable means in a timely manner, at a charge no more
- than the cost of distribution to the recipient; and
-
-(b) You may distribute such Executable Form under the terms of this
- License, or sublicense it under different terms, provided that the
- license for the Executable Form does not attempt to limit or alter
- the recipients' rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
-You may create and distribute a Larger Work under terms of Your choice,
-provided that You also comply with the requirements of this License for
-the Covered Software. If the Larger Work is a combination of Covered
-Software with a work governed by one or more Secondary Licenses, and the
-Covered Software is not Incompatible With Secondary Licenses, this
-License permits You to additionally distribute such Covered Software
-under the terms of such Secondary License(s), so that the recipient of
-the Larger Work may, at their option, further distribute the Covered
-Software under the terms of either this License or such Secondary
-License(s).
-
-3.4. Notices
-
-You may not remove or alter the substance of any license notices
-(including copyright notices, patent notices, disclaimers of warranty,
-or limitations of liability) contained within the Source Code Form of
-the Covered Software, except that You may alter any license notices to
-the extent required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
-You may choose to offer, and to charge a fee for, warranty, support,
-indemnity or liability obligations to one or more recipients of Covered
-Software. However, You may do so only on Your own behalf, and not on
-behalf of any Contributor. You must make it absolutely clear that any
-such warranty, support, indemnity, or liability obligation is offered by
-You alone, and You hereby agree to indemnify every Contributor for any
-liability incurred by such Contributor as a result of warranty, support,
-indemnity or liability terms You offer. You may include additional
-disclaimers of warranty and limitations of liability specific to any
-jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
----------------------------------------------------
-
-If it is impossible for You to comply with any of the terms of this
-License with respect to some or all of the Covered Software due to
-statute, judicial order, or regulation then You must: (a) comply with
-the terms of this License to the maximum extent possible; and (b)
-describe the limitations and the code they affect. Such description must
-be placed in a text file included with all distributions of the Covered
-Software under this License. Except to the extent prohibited by statute
-or regulation, such description must be sufficiently detailed for a
-recipient of ordinary skill to be able to understand it.
-
-5. Termination
---------------
-
-5.1. The rights granted under this License will terminate automatically
-if You fail to comply with any of its terms. However, if You become
-compliant, then the rights granted under this License from a particular
-Contributor are reinstated (a) provisionally, unless and until such
-Contributor explicitly and finally terminates Your grants, and (b) on an
-ongoing basis, if such Contributor fails to notify You of the
-non-compliance by some reasonable means prior to 60 days after You have
-come back into compliance. Moreover, Your grants from a particular
-Contributor are reinstated on an ongoing basis if such Contributor
-notifies You of the non-compliance by some reasonable means, this is the
-first time You have received notice of non-compliance with this License
-from such Contributor, and You become compliant prior to 30 days after
-Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
-infringement claim (excluding declaratory judgment actions,
-counter-claims, and cross-claims) alleging that a Contributor Version
-directly or indirectly infringes any patent, then the rights granted to
-You by any and all Contributors for the Covered Software under Section
-2.1 of this License shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all
-end user license agreements (excluding distributors and resellers) which
-have been validly granted by You or Your distributors under this License
-prior to termination shall survive termination.
-
-************************************************************************
-* *
-* 6. Disclaimer of Warranty *
-* ------------------------- *
-* *
-* Covered Software is provided under this License on an "as is" *
-* basis, without warranty of any kind, either expressed, implied, or *
-* statutory, including, without limitation, warranties that the *
-* Covered Software is free of defects, merchantable, fit for a *
-* particular purpose or non-infringing. The entire risk as to the *
-* quality and performance of the Covered Software is with You. *
-* Should any Covered Software prove defective in any respect, You *
-* (not any Contributor) assume the cost of any necessary servicing, *
-* repair, or correction. This disclaimer of warranty constitutes an *
-* essential part of this License. No use of any Covered Software is *
-* authorized under this License except under this disclaimer. *
-* *
-************************************************************************
-
-************************************************************************
-* *
-* 7. Limitation of Liability *
-* -------------------------- *
-* *
-* Under no circumstances and under no legal theory, whether tort *
-* (including negligence), contract, or otherwise, shall any *
-* Contributor, or anyone who distributes Covered Software as *
-* permitted above, be liable to You for any direct, indirect, *
-* special, incidental, or consequential damages of any character *
-* including, without limitation, damages for lost profits, loss of *
-* goodwill, work stoppage, computer failure or malfunction, or any *
-* and all other commercial damages or losses, even if such party *
-* shall have been informed of the possibility of such damages. This *
-* limitation of liability shall not apply to liability for death or *
-* personal injury resulting from such party's negligence to the *
-* extent applicable law prohibits such limitation. Some *
-* jurisdictions do not allow the exclusion or limitation of *
-* incidental or consequential damages, so this exclusion and *
-* limitation may not apply to You. *
-* *
-************************************************************************
-
-8. Litigation
--------------
-
-Any litigation relating to this License may be brought only in the
-courts of a jurisdiction where the defendant maintains its principal
-place of business and such litigation shall be governed by laws of that
-jurisdiction, without reference to its conflict-of-law provisions.
-Nothing in this Section shall prevent a party's ability to bring
-cross-claims or counter-claims.
-
-9. Miscellaneous
-----------------
-
-This License represents the complete agreement concerning the subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the extent
-necessary to make it enforceable. Any law or regulation which provides
-that the language of a contract shall be construed against the drafter
-shall not be used to construe this License against a Contributor.
-
-10. Versions of the License
----------------------------
-
-10.1. New Versions
-
-Mozilla Foundation is the license steward. Except as provided in Section
-10.3, no one other than the license steward has the right to modify or
-publish new versions of this License. Each version will be given a
-distinguishing version number.
-
-10.2. Effect of New Versions
-
-You may distribute the Covered Software under the terms of the version
-of the License under which You originally received the Covered Software,
-or under the terms of any subsequent version published by the license
-steward.
-
-10.3. Modified Versions
-
-If you create software not governed by this License, and you want to
-create a new license for such software, you may create and use a
-modified version of this License if you rename the license and remove
-any references to the name of the license steward (except to note that
-such modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary
-Licenses
-
-If You choose to distribute Source Code Form that is Incompatible With
-Secondary Licenses under the terms of this version of the License, the
-notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
--------------------------------------------
-
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular
-file, then You may include the notice in a location (such as a LICENSE
-file in a relevant directory) where a recipient would be likely to look
-for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - "Incompatible With Secondary Licenses" Notice
----------------------------------------------------------
-
- This Source Code Form is "Incompatible With Secondary Licenses", as
- defined by the Mozilla Public License, v. 2.0.
-
---- end of LICENSE ---
-
--------------------------------------------------------------------------------
-
--- a/jdk/make/BuildJdk.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/BuildJdk.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -42,8 +42,8 @@
# Include Profile information
include ProfileNames.gmk
-# Include the corresponding custom file, if present.
--include $(CUSTOM_MAKE_DIR)/BuildJdk.gmk
+# Hook to include the corresponding custom file, if present.
+$(eval $(call IncludeCustomExtension, jdk, BuildJdk.gmk))
import: import-only
import-only:
--- a/jdk/make/CompileJavaClasses.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/CompileJavaClasses.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -100,8 +100,6 @@
EXCLUDES += com/oracle/security
endif
-EXFILES += WrapperGenerator.java
-
ifneq ($(OPENJDK_TARGET_OS), windows)
# Exclude Window security related files in src/share/classes
EXFILES += NTLoginModule.java \
@@ -239,11 +237,6 @@
EXFILES += sun/nio/fs/PollingWatchService.java
endif
-# TODO: Fix when converting NIO
-# Exclude *-linux-arm.java and *-linux-ppc.java from closed.
-EXFILES += -linux-arm.java \
- -linux-ppc.java
-
ifeq ($(OPENJDK_TARGET_OS), windows)
EXFILES += sun/nio/ch/AbstractPollSelectorImpl.java \
sun/nio/ch/PollSelectorProvider.java \
--- a/jdk/make/CompileLaunchers.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/CompileLaunchers.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -159,7 +159,6 @@
-DFULL_VERSION='"$(FULL_VERSION)"' \
-DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \
-DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \
- -DLIBARCHNAME='"$(OPENJDK_TARGET_CPU_LEGACY)"' \
-DLAUNCHER_NAME='"$(LAUNCHER_NAME)"' \
-DPROGNAME='"$1"' $(DPACKAGEPATH) \
$2, \
--- a/jdk/make/CopyFiles.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/CopyFiles.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -570,4 +570,5 @@
##########################################################################################
--include $(CUSTOM_MAKE_DIR)/CopyFiles.gmk
+# Hook to include the corresponding custom file, if present.
+$(eval $(call IncludeCustomExtension, jdk, CopyFiles.gmk))
--- a/jdk/make/CreateJars.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/CreateJars.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -745,7 +745,8 @@
##########################################################################################
--include $(CUSTOM_MAKE_DIR)/CreateJars.gmk
+# Hook to include the corresponding custom file, if present.
+$(eval $(call IncludeCustomExtension, jdk, CreateJars.gmk))
##########################################################################################
--- a/jdk/make/GenerateData.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/GenerateData.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -64,7 +64,7 @@
GENDATA_CURDATA := $(JDK_OUTPUTDIR)/lib/currency.data
-$(GENDATA_CURDATA): $(JDK_TOPDIR)/src/share/classes/java/util/CurrencyData.properties $(BUILD_TOOLS)
+$(GENDATA_CURDATA): $(JDK_TOPDIR)/make/data/currency/CurrencyData.properties $(BUILD_TOOLS)
$(MKDIR) -p $(@D)
$(RM) $@
$(TOOL_GENERATECURRENCYDATA) -o $@.tmp < $<
--- a/jdk/make/Images.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/Images.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -783,4 +783,5 @@
.PHONY: default images jre-image jdk-image
--include $(CUSTOM_MAKE_DIR)/Images.gmk
+# Hook to include the corresponding custom file, if present.
+$(eval $(call IncludeCustomExtension, jdk, Images.gmk))
--- a/jdk/make/Tools.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/Tools.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -26,17 +26,11 @@
# Cache all finds needed for this file. Only used on windows.
$(eval $(call FillCacheFind, $(JDK_TOPDIR)/make/src/classes))
-TOOLS_SRC := $(JDK_TOPDIR)/make/src/classes
-
-ifeq ($(findstring $(OPENJDK_TARGET_OS),windows macosx),)
- TOOLS_SRC += $(JDK_TOPDIR)/src/solaris/classes/sun/awt/X11/generator
-endif
-
# The exception handling of swing beaninfo which have the own tool directory
ifeq (, $(BUILD_TOOLS))
$(eval $(call SetupJavaCompilation,BUILD_TOOLS, \
SETUP := GENERATE_OLDBYTECODE, \
- SRC := $(TOOLS_SRC), \
+ SRC := $(JDK_TOPDIR)/make/src/classes, \
BIN := $(JDK_OUTPUTDIR)/btclasses))
endif
@@ -111,7 +105,7 @@
build.tools.generatenimbus.Generator
TOOL_WRAPPERGENERATOR = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
- WrapperGenerator
+ build.tools.x11wrappergen.WrapperGenerator
TOOL_AWT_TOBIN = $(JAVA) -Djava.awt.headless=true -cp $(JDK_OUTPUTDIR)/btclasses \
build.tools.icondata.awt.ToBin
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/data/currency/CurrencyData.properties Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,594 @@
+#
+# Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+formatVersion=1
+
+# Version of the currency code information in this class.
+# It is a serial number that accompanies with each amendment.
+
+dataVersion=156
+
+# List of all valid ISO 4217 currency codes.
+# To ensure compatibility, do not remove codes.
+
+all=ADP020-AED784-AFA004-AFN971-ALL008-AMD051-ANG532-AOA973-ARS032-ATS040-AUD036-\
+ AWG533-AYM945-AZM031-AZN944-BAM977-BBD052-BDT050-BEF056-BGL100-BGN975-BHD048-BIF108-\
+ BMD060-BND096-BOB068-BOV984-BRL986-BSD044-BTN064-BWP072-BYB112-BYR974-\
+ BZD084-CAD124-CDF976-CHF756-CLF990-CLP152-CNY156-COP170-CRC188-CSD891-CUP192-CUC931-\
+ CVE132-CYP196-CZK203-DEM276-DJF262-DKK208-DOP214-DZD012-EEK233-EGP818-\
+ ERN232-ESP724-ETB230-EUR978-FIM246-FJD242-FKP238-FRF250-GBP826-GEL981-\
+ GHC288-GHS936-GIP292-GMD270-GNF324-GRD300-GTQ320-GWP624-GYD328-HKD344-HNL340-\
+ HRK191-HTG332-HUF348-IDR360-IEP372-ILS376-INR356-IQD368-IRR364-ISK352-\
+ ITL380-JMD388-JOD400-JPY392-KES404-KGS417-KHR116-KMF174-KPW408-KRW410-\
+ KWD414-KYD136-KZT398-LAK418-LBP422-LKR144-LRD430-LSL426-LTL440-LUF442-\
+ LVL428-LYD434-MAD504-MDL498-MGA969-MGF450-MKD807-MMK104-MNT496-MOP446-MRO478-\
+ MTL470-MUR480-MVR462-MWK454-MXN484-MXV979-MYR458-MZM508-MZN943-NAD516-NGN566-\
+ NIO558-NLG528-NOK578-NPR524-NZD554-OMR512-PAB590-PEN604-PGK598-PHP608-\
+ PKR586-PLN985-PTE620-PYG600-QAR634-ROL946-RON946-RSD941-RUB643-RUR810-RWF646-SAR682-\
+ SBD090-SCR690-SDD736-SDG938-SEK752-SGD702-SHP654-SIT705-SKK703-SLL694-SOS706-\
+ SRD968-SRG740-SSP728-STD678-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TMT934-TND788-TOP776-\
+ TPE626-TRL792-TRY949-TTD780-TWD901-TZS834-UAH980-UGX800-USD840-USN997-USS998-\
+ UYU858-UZS860-VEB862-VEF937-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\
+ XBB956-XBC957-XBD958-XCD951-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\
+ XPT962-XSU994-XTS963-XUA965-XXX999-YER886-YUM891-ZAR710-ZMK894-ZMW967-ZWD716-ZWL932-\
+ ZWN942-ZWR935
+
+
+# Mappings from ISO 3166 country codes to ISO 4217 currency codes.
+#
+# Three forms are used:
+# Form 1: <country code>=<currency code>
+# Form 2: <country code>=<currency code 1>;<time stamp>;<currency code 2>
+# Form 3: <country code>=
+# Form 1 is used if no future change in currency is known.
+# Form 2 indicates that before the specified time currency 1 is used, from
+# the specified time currency 2. The time is given in SimpleDateFormat's
+# yyyy-MM-dd-HH-mm-ss format in the GMT time zone.
+# Form 3 indicates the country doesn't have a currency (the entry is still
+# needed to verify that the country code is valid).
+#
+# The table is based on the following web sites:
+# http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/db_en.html
+# http://www.currency-iso.org/iso_index/iso_tables.htm
+# http://www.cia.gov/cia/publications/factbook/indexgeo.html
+
+# AFGHANISTAN
+AF=AFN
+# \u00c5LAND ISLANDS
+AX=EUR
+# ALBANIA
+AL=ALL
+# ALGERIA
+DZ=DZD
+# AMERICAN SAMOA
+AS=USD
+# ANDORRA
+AD=EUR
+# ANGOLA
+AO=AOA
+# ANGUILLA
+AI=XCD
+# ANTARCTICA
+AQ=
+# ANTIGUA AND BARBUDA
+AG=XCD
+# ARGENTINA
+AR=ARS
+# ARMENIA
+AM=AMD
+# ARUBA
+AW=AWG
+# AUSTRALIA
+AU=AUD
+# AUSTRIA
+AT=EUR
+# AZERBAIJAN
+AZ=AZN
+# BAHAMAS
+BS=BSD
+# BAHRAIN
+BH=BHD
+# BANGLADESH
+BD=BDT
+# BARBADOS
+BB=BBD
+# BELARUS
+BY=BYR
+# BELGIUM
+BE=EUR
+# BELIZE
+BZ=BZD
+# BENIN
+BJ=XOF
+# BERMUDA
+BM=BMD
+# Bonaire, Sint Eustatius and Saba
+BQ=USD
+# BHUTAN
+BT=BTN
+# BOLIVIA
+BO=BOB
+# BOSNIA AND HERZEGOVINA
+BA=BAM
+# BOTSWANA
+BW=BWP
+# BOUVET ISLAND
+BV=NOK
+# BRAZIL
+BR=BRL
+# BRITISH INDIAN OCEAN TERRITORY
+IO=USD
+# BRUNEI DARUSSALAM
+BN=BND
+# BULGARIA
+BG=BGN
+# BURKINA FASO
+BF=XOF
+# BURUNDI
+BI=BIF
+# CAMBODIA
+KH=KHR
+# CAMEROON
+CM=XAF
+# CANADA
+CA=CAD
+# CAPE VERDE
+CV=CVE
+# CAYMAN ISLANDS
+KY=KYD
+# CENTRAL AFRICAN REPUBLIC
+CF=XAF
+# CHAD
+TD=XAF
+# CHILE
+CL=CLP
+# CHINA
+CN=CNY
+# CHRISTMAS ISLAND
+CX=AUD
+# COCOS (KEELING) ISLANDS
+CC=AUD
+# COLOMBIA
+CO=COP
+# COMOROS
+KM=KMF
+# CONGO
+CG=XAF
+# CONGO, THE DEMOCRATIC REPUBLIC OF THE
+CD=CDF
+# COOK ISLANDS
+CK=NZD
+# COSTA RICA
+CR=CRC
+# COTE D'IVOIRE
+CI=XOF
+# CROATIA
+HR=HRK
+# CUBA
+CU=CUP
+# Cura\u00e7ao
+CW=ANG
+# CYPRUS
+CY=EUR
+# CZECH REPUBLIC
+CZ=CZK
+# DENMARK
+DK=DKK
+# DJIBOUTI
+DJ=DJF
+# DOMINICA
+DM=XCD
+# DOMINICAN REPUBLIC
+DO=DOP
+# ECUADOR
+EC=USD
+# EGYPT
+EG=EGP
+# EL SALVADOR
+# USD is also legal currency as of 2001/01/01
+SV=SVC
+# EQUATORIAL GUINEA
+GQ=XAF
+# ERITREA
+ER=ERN
+# ESTONIA
+EE=EUR
+# ETHIOPIA
+ET=ETB
+# FALKLAND ISLANDS (MALVINAS)
+FK=FKP
+# FAROE ISLANDS
+FO=DKK
+# FIJI
+FJ=FJD
+# FINLAND
+FI=EUR
+# FRANCE
+FR=EUR
+# FRENCH GUIANA
+GF=EUR
+# FRENCH POLYNESIA
+PF=XPF
+# FRENCH SOUTHERN TERRITORIES
+TF=EUR
+# GABON
+GA=XAF
+# GAMBIA
+GM=GMD
+# GEORGIA
+GE=GEL
+# GERMANY
+DE=EUR
+# GHANA
+GH=GHS
+# GIBRALTAR
+GI=GIP
+# GREECE
+GR=EUR
+# GREENLAND
+GL=DKK
+# GRENADA
+GD=XCD
+# GUADELOUPE
+GP=EUR
+# GUAM
+GU=USD
+# GUATEMALA
+GT=GTQ
+# GUERNSEY
+GG=GBP
+# GUINEA
+GN=GNF
+# GUINEA-BISSAU
+GW=XOF
+# GUYANA
+GY=GYD
+# HAITI
+HT=HTG
+# HEARD ISLAND AND MCDONALD ISLANDS
+HM=AUD
+# HOLY SEE (VATICAN CITY STATE)
+VA=EUR
+# HONDURAS
+HN=HNL
+# HONG KONG
+HK=HKD
+# HUNGARY
+HU=HUF
+# ICELAND
+IS=ISK
+# INDIA
+IN=INR
+# INDONESIA
+ID=IDR
+# IRAN, ISLAMIC REPUBLIC OF
+IR=IRR
+# IRAQ
+IQ=IQD
+# IRELAND
+IE=EUR
+# ISLE OF MAN
+IM=GBP
+# ISRAEL
+IL=ILS
+# ITALY
+IT=EUR
+# JAMAICA
+JM=JMD
+# JAPAN
+JP=JPY
+# JERSEY
+JE=GBP
+# JORDAN
+JO=JOD
+# KAZAKSTAN
+KZ=KZT
+# KENYA
+KE=KES
+# KIRIBATI
+KI=AUD
+# KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF
+KP=KPW
+# KOREA, REPUBLIC OF
+KR=KRW
+# KUWAIT
+KW=KWD
+# KYRGYZSTAN
+KG=KGS
+# LAO PEOPLE'S DEMOCRATIC REPUBLIC
+LA=LAK
+# LATVIA
+LV=LVL;2013-12-31-22-00-00;EUR
+# LEBANON
+LB=LBP
+# LESOTHO
+LS=LSL
+# LIBERIA
+LR=LRD
+# LIBYAN ARAB JAMAHIRIYA
+LY=LYD
+# LIECHTENSTEIN
+LI=CHF
+# LITHUANIA
+LT=LTL
+# LUXEMBOURG
+LU=EUR
+# MACAU
+MO=MOP
+# MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF
+MK=MKD
+# MADAGASCAR
+MG=MGA
+# MALAWI
+MW=MWK
+# MALAYSIA
+MY=MYR
+# MALDIVES
+MV=MVR
+# MALI
+ML=XOF
+# MALTA
+MT=EUR
+# MARSHALL ISLANDS
+MH=USD
+# MARTINIQUE
+MQ=EUR
+# MAURITANIA
+MR=MRO
+# MAURITIUS
+MU=MUR
+# MAYOTTE
+YT=EUR
+# MEXICO
+MX=MXN
+# MICRONESIA, FEDERATED STATES OF
+FM=USD
+# MOLDOVA, REPUBLIC OF
+MD=MDL
+# MONACO
+MC=EUR
+# MONGOLIA
+MN=MNT
+# MONTENEGRO
+ME=EUR
+# MONTSERRAT
+MS=XCD
+# MOROCCO
+MA=MAD
+# MOZAMBIQUE
+MZ=MZN
+# MYANMAR
+MM=MMK
+# NAMIBIA
+NA=NAD
+# NAURU
+NR=AUD
+# NEPAL
+NP=NPR
+# NETHERLANDS
+NL=EUR
+# NETHERLANDS ANTILLES
+AN=ANG
+# NEW CALEDONIA
+NC=XPF
+# NEW ZEALAND
+NZ=NZD
+# NICARAGUA
+NI=NIO
+# NIGER
+NE=XOF
+# NIGERIA
+NG=NGN
+# NIUE
+NU=NZD
+# NORFOLK ISLAND
+NF=AUD
+# NORTHERN MARIANA ISLANDS
+MP=USD
+# NORWAY
+NO=NOK
+# OMAN
+OM=OMR
+# PAKISTAN
+PK=PKR
+# PALAU
+PW=USD
+# PALESTINIAN TERRITORY, OCCUPIED
+PS=ILS
+# PANAMA
+PA=PAB
+# PAPUA NEW GUINEA
+PG=PGK
+# PARAGUAY
+PY=PYG
+# PERU
+PE=PEN
+# PHILIPPINES
+PH=PHP
+# PITCAIRN
+PN=NZD
+# POLAND
+PL=PLN
+# PORTUGAL
+PT=EUR
+# PUERTO RICO
+PR=USD
+# QATAR
+QA=QAR
+# REUNION
+RE=EUR
+# ROMANIA
+RO=RON
+# RUSSIAN FEDERATION
+RU=RUB
+# RWANDA
+RW=RWF
+# SAINT BARTHELEMY
+BL=EUR
+# SAINT HELENA
+SH=SHP
+# SAINT KITTS AND NEVIS
+KN=XCD
+# SAINT LUCIA
+LC=XCD
+# SAINT MARTIN
+MF=EUR
+# SAINT PIERRE AND MIQUELON
+PM=EUR
+# SAINT VINCENT AND THE GRENADINES
+VC=XCD
+# SAMOA
+WS=WST
+# SAN MARINO
+SM=EUR
+# SOUTH SUDAN
+SS=SSP
+# SAO TOME AND PRINCIPE
+ST=STD
+# SAUDI ARABIA
+SA=SAR
+# SENEGAL
+SN=XOF
+# SERBIA
+RS=RSD
+# SERBIA AND MONTENEGRO
+CS=CSD
+# SEYCHELLES
+SC=SCR
+# SIERRA LEONE
+SL=SLL
+# SINGAPORE
+SG=SGD
+# SLOVAKIA
+SK=EUR
+# SLOVENIA
+SI=EUR
+# SOLOMON ISLANDS
+SB=SBD
+# SOMALIA
+SO=SOS
+# SOUTH AFRICA
+ZA=ZAR
+# SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS
+GS=GBP
+# SPAIN
+ES=EUR
+# SRI LANKA
+LK=LKR
+# SUDAN
+SD=SDG
+# SURINAME
+SR=SRD
+# SVALBARD AND JAN MAYEN
+SJ=NOK
+# Sint Maarten (Dutch part)
+SX=ANG
+# SWAZILAND
+SZ=SZL
+# SWEDEN
+SE=SEK
+# SWITZERLAND
+CH=CHF
+# SYRIAN ARAB REPUBLIC
+SY=SYP
+# TAIWAN
+TW=TWD
+# TAJIKISTAN
+TJ=TJS
+# TANZANIA, UNITED REPUBLIC OF
+TZ=TZS
+# THAILAND
+TH=THB
+# TIMOR-LESTE
+TL=USD
+# TOGO
+TG=XOF
+# TOKELAU
+TK=NZD
+# TONGA
+TO=TOP
+# TRINIDAD AND TOBAGO
+TT=TTD
+# TUNISIA
+TN=TND
+# TURKEY
+TR=TRY
+# TURKMENISTAN
+TM=TMT
+# TURKS AND CAICOS ISLANDS
+TC=USD
+# TUVALU
+TV=AUD
+# UGANDA
+UG=UGX
+# UKRAINE
+UA=UAH
+# UNITED ARAB EMIRATES
+AE=AED
+# UNITED KINGDOM
+GB=GBP
+# UNITED STATES
+US=USD
+# UNITED STATES MINOR OUTLYING ISLANDS
+UM=USD
+# URUGUAY
+UY=UYU
+# UZBEKISTAN
+UZ=UZS
+# VANUATU
+VU=VUV
+# VENEZUELA
+VE=VEF
+# VIET NAM
+VN=VND
+# VIRGIN ISLANDS, BRITISH
+VG=USD
+# VIRGIN ISLANDS, U.S.
+VI=USD
+# WALLIS AND FUTUNA
+WF=XPF
+# WESTERN SAHARA
+EH=MAD
+# YEMEN
+YE=YER
+# ZAMBIA
+ZM=ZMW
+# ZIMBABWE
+ZW=ZWL
+
+
+# List of currencies with 0, 1, OR 3 decimals for minor units, or where there
+# are no minor units defined. All others use 2 decimals.
+
+minor0=\
+ ADP-BEF-BIF-BYB-BYR-CLF-CLP-DJF-ESP-GNF-\
+ GRD-ISK-ITL-JPY-KMF-KRW-LUF-MGF-PYG-PTE-RWF-\
+ TPE-TRL-UGX-VND-VUV-XAF-XOF-XPF
+minor1=
+minor3=\
+ BHD-IQD-JOD-KWD-LYD-OMR-TND
+minorUndefined=\
+ XAG-XAU-XBA-XBB-XBC-XBD-XDR-XFO-XFU-XPD-\
+ XPT-XSU-XTS-XUA-XXX
Binary file jdk/make/data/macosxicons/JavaApp.icns has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/data/x11wrappergen/functions.txt Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,26 @@
+!XGetWindowProperty|int
+ w long
+ property Atom
+ long_offset long
+ long_length long
+ delete Bool
+ req_type Atom
+ actual_type Atom out
+ actual_format int out
+ number_of_items long out
+ bytes_after long out
+ data pointer out free
+!XQueryTree|int
+ w long
+ root long out
+ parent long out
+ children pointer out free
+ nchildren int out
+!XTranslateCoordinates|int
+ scr_w long
+ dest_w long
+ src_x int
+ src_y int
+ dest_x int out
+ dest_y int out
+ child long out
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/data/x11wrappergen/sizes.32 Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,1016 @@
+long 4
+int 4
+short 2
+ptr 4
+Bool 4
+Atom 4
+Window 4
+XExtData.number 0
+XExtData.next 4
+XExtData.free_private 8
+XExtData.private_data 12
+XExtData 16
+XIMStringConversionCallbackStruct.position 0
+XIMStringConversionCallbackStruct.direction 4
+XIMStringConversionCallbackStruct.operation 8
+XIMStringConversionCallbackStruct.factor 10
+XIMStringConversionCallbackStruct.text 12
+XIMStringConversionCallbackStruct 16
+XkbNewKeyboardNotifyEvent.type 0
+XkbNewKeyboardNotifyEvent.serial 4
+XkbNewKeyboardNotifyEvent.send_event 8
+XkbNewKeyboardNotifyEvent.display 12
+XkbNewKeyboardNotifyEvent.time 16
+XkbNewKeyboardNotifyEvent.xkb_type 20
+XkbNewKeyboardNotifyEvent.device 24
+XkbNewKeyboardNotifyEvent.old_device 28
+XkbNewKeyboardNotifyEvent.min_key_code 32
+XkbNewKeyboardNotifyEvent.max_key_code 36
+XkbNewKeyboardNotifyEvent.old_min_key_code 40
+XkbNewKeyboardNotifyEvent.old_max_key_code 44
+XkbNewKeyboardNotifyEvent.changed 48
+XkbNewKeyboardNotifyEvent.req_major 52
+XkbNewKeyboardNotifyEvent.req_minor 53
+XkbNewKeyboardNotifyEvent 56
+XTimeCoord.time 0
+XTimeCoord.x 4
+XTimeCoord.y 6
+XTimeCoord 8
+XkbCompatMapNotifyEvent.type 0
+XkbCompatMapNotifyEvent.serial 4
+XkbCompatMapNotifyEvent.send_event 8
+XkbCompatMapNotifyEvent.display 12
+XkbCompatMapNotifyEvent.time 16
+XkbCompatMapNotifyEvent.xkb_type 20
+XkbCompatMapNotifyEvent.device 24
+XkbCompatMapNotifyEvent.changed_groups 28
+XkbCompatMapNotifyEvent.first_si 32
+XkbCompatMapNotifyEvent.num_si 36
+XkbCompatMapNotifyEvent.num_total_si 40
+XkbCompatMapNotifyEvent 44
+XIMStatusDrawCallbackStruct.type 0
+XIMStatusDrawCallbackStruct.data 4
+XIMStatusDrawCallbackStruct 8
+XKeyboardControl.key_click_percent 0
+XKeyboardControl.bell_percent 4
+XKeyboardControl.bell_pitch 8
+XKeyboardControl.bell_duration 12
+XKeyboardControl.led 16
+XKeyboardControl.led_mode 20
+XKeyboardControl.key 24
+XKeyboardControl.auto_repeat_mode 28
+XKeyboardControl 32
+XSelectionClearEvent.type 0
+XSelectionClearEvent.serial 4
+XSelectionClearEvent.send_event 8
+XSelectionClearEvent.display 12
+XSelectionClearEvent.window 16
+XSelectionClearEvent.selection 20
+XSelectionClearEvent.time 24
+XSelectionClearEvent 28
+XWindowChanges.x 0
+XWindowChanges.y 4
+XWindowChanges.width 8
+XWindowChanges.height 12
+XWindowChanges.border_width 16
+XWindowChanges.sibling 20
+XWindowChanges.stack_mode 24
+XWindowChanges 28
+XIMPreeditCaretCallbackStruct.position 0
+XIMPreeditCaretCallbackStruct.direction 4
+XIMPreeditCaretCallbackStruct.style 8
+XIMPreeditCaretCallbackStruct 12
+XOMCharSetList.charset_count 0
+XOMCharSetList.charset_list 4
+XOMCharSetList 8
+XOMFontInfo.num_font 0
+XOMFontInfo.font_struct_list 4
+XOMFontInfo.font_name_list 8
+XOMFontInfo 12
+AwtScreenData.numConfigs 0
+AwtScreenData.root 4
+AwtScreenData.whitepixel 8
+AwtScreenData.blackpixel 12
+AwtScreenData.defaultConfig 16
+AwtScreenData.configs 20
+AwtScreenData 24
+XIMHotKeyTrigger.keysym 0
+XIMHotKeyTrigger.modifier 4
+XIMHotKeyTrigger.modifier_mask 8
+XIMHotKeyTrigger 12
+XCirculateEvent.type 0
+XCirculateEvent.serial 4
+XCirculateEvent.send_event 8
+XCirculateEvent.display 12
+XCirculateEvent.event 16
+XCirculateEvent.window 20
+XCirculateEvent.place 24
+XCirculateEvent 28
+Screen.ext_data 0
+Screen.display 4
+Screen.root 8
+Screen.width 12
+Screen.height 16
+Screen.mwidth 20
+Screen.mheight 24
+Screen.ndepths 28
+Screen.depths 32
+Screen.root_depth 36
+Screen.root_visual 40
+Screen.default_gc 44
+Screen.cmap 48
+Screen.white_pixel 52
+Screen.black_pixel 56
+Screen.max_maps 60
+Screen.min_maps 64
+Screen.backing_store 68
+Screen.save_unders 72
+Screen.root_input_mask 76
+Screen 80
+XMapRequestEvent.type 0
+XMapRequestEvent.serial 4
+XMapRequestEvent.send_event 8
+XMapRequestEvent.display 12
+XMapRequestEvent.parent 16
+XMapRequestEvent.window 20
+XMapRequestEvent 24
+XIMText.length 0
+XIMText.feedback 4
+XIMText.encoding_is_wchar 8
+XIMText.string 12
+XIMText 16
+XGraphicsExposeEvent.type 0
+XGraphicsExposeEvent.serial 4
+XGraphicsExposeEvent.send_event 8
+XGraphicsExposeEvent.display 12
+XGraphicsExposeEvent.drawable 16
+XGraphicsExposeEvent.x 20
+XGraphicsExposeEvent.y 24
+XGraphicsExposeEvent.width 28
+XGraphicsExposeEvent.height 32
+XGraphicsExposeEvent.count 36
+XGraphicsExposeEvent.major_code 40
+XGraphicsExposeEvent.minor_code 44
+XGraphicsExposeEvent 48
+XEvent.type 0
+XEvent.xany 0
+XEvent.xkey 0
+XEvent.xbutton 0
+XEvent.xmotion 0
+XEvent.xcrossing 0
+XEvent.xfocus 0
+XEvent.xexpose 0
+XEvent.xgraphicsexpose 0
+XEvent.xnoexpose 0
+XEvent.xvisibility 0
+XEvent.xcreatewindow 0
+XEvent.xdestroywindow 0
+XEvent.xunmap 0
+XEvent.xmap 0
+XEvent.xmaprequest 0
+XEvent.xreparent 0
+XEvent.xconfigure 0
+XEvent.xgravity 0
+XEvent.xresizerequest 0
+XEvent.xconfigurerequest 0
+XEvent.xcirculate 0
+XEvent.xcirculaterequest 0
+XEvent.xproperty 0
+XEvent.xselectionclear 0
+XEvent.xselectionrequest 0
+XEvent.xselection 0
+XEvent.xcolormap 0
+XEvent.xclient 0
+XEvent.xmapping 0
+XEvent.xerror 0
+XEvent.xkeymap 0
+XEvent.pad 0
+XEvent 96
+XRenderDirectFormat.red 0
+XRenderDirectFormat.redMask 2
+XRenderDirectFormat.green 4
+XRenderDirectFormat.greenMask 6
+XRenderDirectFormat.blue 8
+XRenderDirectFormat.blueMask 10
+XRenderDirectFormat.alpha 12
+XRenderDirectFormat.alphaMask 14
+XRenderDirectFormat 16
+ColorData.awt_Colors 0
+ColorData.awt_numICMcolors 4
+ColorData.awt_icmLUT 8
+ColorData.awt_icmLUT2Colors 12
+ColorData.img_grays 16
+ColorData.img_clr_tbl 20
+ColorData.img_oda_red 24
+ColorData.img_oda_green 28
+ColorData.img_oda_blue 32
+ColorData.pGrayInverseLutData 36
+ColorData.screendata 40
+ColorData 44
+XFontStruct.ext_data 0
+XFontStruct.fid 4
+XFontStruct.direction 8
+XFontStruct.min_char_or_byte2 12
+XFontStruct.max_char_or_byte2 16
+XFontStruct.min_byte1 20
+XFontStruct.max_byte1 24
+XFontStruct.all_chars_exist 28
+XFontStruct.n_properties 36
+XFontStruct.properties 40
+XFontStruct.min_bounds 44
+XFontStruct.max_bounds 56
+XFontStruct.per_char 68
+XFontStruct.ascent 72
+XFontStruct.descent 76
+XFontStruct 80
+XExtCodes.extension 0
+XExtCodes.major_opcode 4
+XExtCodes.first_event 8
+XExtCodes.first_error 12
+XExtCodes 16
+XFontSetExtents.max_ink_extent 0
+XFontSetExtents.max_logical_extent 8
+XFontSetExtents 16
+XSelectionEvent.type 0
+XSelectionEvent.serial 4
+XSelectionEvent.send_event 8
+XSelectionEvent.display 12
+XSelectionEvent.requestor 16
+XSelectionEvent.selection 20
+XSelectionEvent.target 24
+XSelectionEvent.property 28
+XSelectionEvent.time 32
+XSelectionEvent 36
+XArc.x 0
+XArc.y 2
+XArc.width 4
+XArc.height 6
+XArc.angle1 8
+XArc.angle2 10
+XArc 12
+XErrorEvent.type 0
+XErrorEvent.display 4
+XErrorEvent.resourceid 8
+XErrorEvent.serial 12
+XErrorEvent.error_code 16
+XErrorEvent.request_code 17
+XErrorEvent.minor_code 18
+XErrorEvent 20
+XConfigureRequestEvent.type 0
+XConfigureRequestEvent.serial 4
+XConfigureRequestEvent.send_event 8
+XConfigureRequestEvent.display 12
+XConfigureRequestEvent.parent 16
+XConfigureRequestEvent.window 20
+XConfigureRequestEvent.x 24
+XConfigureRequestEvent.y 28
+XConfigureRequestEvent.width 32
+XConfigureRequestEvent.height 36
+XConfigureRequestEvent.border_width 40
+XConfigureRequestEvent.above 44
+XConfigureRequestEvent.detail 48
+XConfigureRequestEvent.value_mask 52
+XConfigureRequestEvent 56
+ScreenFormat.ext_data 0
+ScreenFormat.depth 4
+ScreenFormat.bits_per_pixel 8
+ScreenFormat.scanline_pad 12
+ScreenFormat 16
+XButtonEvent.type 0
+XButtonEvent.serial 4
+XButtonEvent.send_event 8
+XButtonEvent.display 12
+XButtonEvent.window 16
+XButtonEvent.root 20
+XButtonEvent.subwindow 24
+XButtonEvent.time 28
+XButtonEvent.x 32
+XButtonEvent.y 36
+XButtonEvent.x_root 40
+XButtonEvent.y_root 44
+XButtonEvent.state 48
+XButtonEvent.button 52
+XButtonEvent.same_screen 56
+XButtonEvent 60
+XFontProp.name 0
+XFontProp.card32 4
+XFontProp 8
+XIMValuesList.count_values 0
+XIMValuesList.supported_values 4
+XIMValuesList 8
+XKeymapEvent.type 0
+XKeymapEvent.serial 4
+XKeymapEvent.send_event 8
+XKeymapEvent.display 12
+XKeymapEvent.window 16
+XKeymapEvent.key_vector 20
+XKeymapEvent 52
+XTextItem16.chars 0
+XTextItem16.nchars 4
+XTextItem16.delta 8
+XTextItem16.font 12
+XTextItem16 16
+XIMPreeditDrawCallbackStruct.caret 0
+XIMPreeditDrawCallbackStruct.chg_first 4
+XIMPreeditDrawCallbackStruct.chg_length 8
+XIMPreeditDrawCallbackStruct.text 12
+XIMPreeditDrawCallbackStruct 16
+XVisualInfo.visual 0
+XVisualInfo.visualid 4
+XVisualInfo.screen 8
+XVisualInfo.depth 12
+XVisualInfo.class 16
+XVisualInfo.red_mask 20
+XVisualInfo.green_mask 24
+XVisualInfo.blue_mask 28
+XVisualInfo.colormap_size 32
+XVisualInfo.bits_per_rgb 36
+XVisualInfo 40
+XkbControlsNotifyEvent.type 0
+XkbControlsNotifyEvent.serial 4
+XkbControlsNotifyEvent.send_event 8
+XkbControlsNotifyEvent.display 12
+XkbControlsNotifyEvent.time 16
+XkbControlsNotifyEvent.xkb_type 20
+XkbControlsNotifyEvent.device 24
+XkbControlsNotifyEvent.changed_ctrls 28
+XkbControlsNotifyEvent.enabled_ctrls 32
+XkbControlsNotifyEvent.enabled_ctrl_changes 36
+XkbControlsNotifyEvent.num_groups 40
+XkbControlsNotifyEvent.keycode 44
+XkbControlsNotifyEvent.event_type 45
+XkbControlsNotifyEvent.req_major 46
+XkbControlsNotifyEvent.req_minor 47
+XkbControlsNotifyEvent 48
+PropMwmHints.flags 0
+PropMwmHints.functions 4
+PropMwmHints.decorations 8
+PropMwmHints.inputMode 12
+PropMwmHints.status 16
+PropMwmHints 20
+XClientMessageEvent.type 0
+XClientMessageEvent.serial 4
+XClientMessageEvent.send_event 8
+XClientMessageEvent.display 12
+XClientMessageEvent.window 16
+XClientMessageEvent.message_type 20
+XClientMessageEvent.format 24
+XClientMessageEvent.data 28
+XClientMessageEvent 48
+XAnyEvent.type 0
+XAnyEvent.serial 4
+XAnyEvent.send_event 8
+XAnyEvent.display 12
+XAnyEvent.window 16
+XAnyEvent 20
+XkbIndicatorNotifyEvent.type 0
+XkbIndicatorNotifyEvent.serial 4
+XkbIndicatorNotifyEvent.send_event 8
+XkbIndicatorNotifyEvent.display 12
+XkbIndicatorNotifyEvent.time 16
+XkbIndicatorNotifyEvent.xkb_type 20
+XkbIndicatorNotifyEvent.device 24
+XkbIndicatorNotifyEvent.changed 28
+XkbIndicatorNotifyEvent.state 32
+XkbIndicatorNotifyEvent 36
+XIMPreeditStateNotifyCallbackStruct.state 0
+XIMPreeditStateNotifyCallbackStruct 4
+XkbAnyEvent.type 0
+XkbAnyEvent.serial 4
+XkbAnyEvent.send_event 8
+XkbAnyEvent.display 12
+XkbAnyEvent.time 16
+XkbAnyEvent.xkb_type 20
+XkbAnyEvent.device 24
+XkbAnyEvent 28
+XMotionEvent.type 0
+XMotionEvent.serial 4
+XMotionEvent.send_event 8
+XMotionEvent.display 12
+XMotionEvent.window 16
+XMotionEvent.root 20
+XMotionEvent.subwindow 24
+XMotionEvent.time 28
+XMotionEvent.x 32
+XMotionEvent.y 36
+XMotionEvent.x_root 40
+XMotionEvent.y_root 44
+XMotionEvent.state 48
+XMotionEvent.is_hint 52
+XMotionEvent.same_screen 56
+XMotionEvent 60
+XIMHotKeyTriggers.num_hot_key 0
+XIMHotKeyTriggers.key 4
+XIMHotKeyTriggers 8
+XIMStyles.count_styles 0
+XIMStyles.supported_styles 4
+XIMStyles 8
+XkbExtensionDeviceNotifyEvent.type 0
+XkbExtensionDeviceNotifyEvent.serial 4
+XkbExtensionDeviceNotifyEvent.send_event 8
+XkbExtensionDeviceNotifyEvent.display 12
+XkbExtensionDeviceNotifyEvent.time 16
+XkbExtensionDeviceNotifyEvent.xkb_type 20
+XkbExtensionDeviceNotifyEvent.device 24
+XkbExtensionDeviceNotifyEvent.reason 28
+XkbExtensionDeviceNotifyEvent.supported 32
+XkbExtensionDeviceNotifyEvent.unsupported 36
+XkbExtensionDeviceNotifyEvent.first_btn 40
+XkbExtensionDeviceNotifyEvent.num_btns 44
+XkbExtensionDeviceNotifyEvent.leds_defined 48
+XkbExtensionDeviceNotifyEvent.led_state 52
+XkbExtensionDeviceNotifyEvent.led_class 56
+XkbExtensionDeviceNotifyEvent.led_id 60
+XkbExtensionDeviceNotifyEvent 64
+XwcTextItem.chars 0
+XwcTextItem.nchars 4
+XwcTextItem.delta 8
+XwcTextItem.font_set 12
+XwcTextItem 16
+XClassHint.res_name 0
+XClassHint.res_class 4
+XClassHint 8
+XChar2b.byte1 0
+XChar2b.byte2 1
+XChar2b 2
+XSetWindowAttributes.background_pixmap 0
+XSetWindowAttributes.background_pixel 4
+XSetWindowAttributes.border_pixmap 8
+XSetWindowAttributes.border_pixel 12
+XSetWindowAttributes.bit_gravity 16
+XSetWindowAttributes.win_gravity 20
+XSetWindowAttributes.backing_store 24
+XSetWindowAttributes.backing_planes 28
+XSetWindowAttributes.backing_pixel 32
+XSetWindowAttributes.save_under 36
+XSetWindowAttributes.event_mask 40
+XSetWindowAttributes.do_not_propagate_mask 44
+XSetWindowAttributes.override_redirect 48
+XSetWindowAttributes.colormap 52
+XSetWindowAttributes.cursor 56
+XSetWindowAttributes 60
+XRenderPictFormat.id 0
+XRenderPictFormat.type 4
+XRenderPictFormat.depth 8
+XRenderPictFormat.direct 12
+XRenderPictFormat.colormap 28
+XRenderPictFormat 32
+XReparentEvent.type 0
+XReparentEvent.serial 4
+XReparentEvent.send_event 8
+XReparentEvent.display 12
+XReparentEvent.event 16
+XReparentEvent.window 20
+XReparentEvent.parent 24
+XReparentEvent.x 28
+XReparentEvent.y 32
+XReparentEvent.override_redirect 36
+XReparentEvent 40
+XCirculateRequestEvent.type 0
+XCirculateRequestEvent.serial 4
+XCirculateRequestEvent.send_event 8
+XCirculateRequestEvent.display 12
+XCirculateRequestEvent.parent 16
+XCirculateRequestEvent.window 20
+XCirculateRequestEvent.place 24
+XCirculateRequestEvent 28
+XImage.width 0
+XImage.height 4
+XImage.xoffset 8
+XImage.format 12
+XImage.data 16
+XImage.byte_order 20
+XImage.bitmap_unit 24
+XImage.bitmap_bit_order 28
+XImage.bitmap_pad 32
+XImage.depth 36
+XImage.bytes_per_line 40
+XImage.bits_per_pixel 44
+XImage.red_mask 48
+XImage.green_mask 52
+XImage.blue_mask 56
+XImage.obdata 60
+XImage.f.create_image 64
+XImage.f.destroy_image 68
+XImage.f.get_pixel 72
+XImage.f.put_pixel 76
+XImage.f.sub_image 80
+XImage.f.add_pixel 84
+XImage 88
+XKeyEvent.type 0
+XKeyEvent.serial 4
+XKeyEvent.send_event 8
+XKeyEvent.display 12
+XKeyEvent.window 16
+XKeyEvent.root 20
+XKeyEvent.subwindow 24
+XKeyEvent.time 28
+XKeyEvent.x 32
+XKeyEvent.y 36
+XKeyEvent.x_root 40
+XKeyEvent.y_root 44
+XKeyEvent.state 48
+XKeyEvent.keycode 52
+XKeyEvent.same_screen 56
+XKeyEvent 60
+XkbActionMessageEvent.type 0
+XkbActionMessageEvent.serial 4
+XkbActionMessageEvent.send_event 8
+XkbActionMessageEvent.display 12
+XkbActionMessageEvent.time 16
+XkbActionMessageEvent.xkb_type 20
+XkbActionMessageEvent.device 24
+XkbActionMessageEvent.keycode 28
+XkbActionMessageEvent.press 32
+XkbActionMessageEvent.key_event_follows 36
+XkbActionMessageEvent.group 40
+XkbActionMessageEvent.mods 44
+XkbActionMessageEvent.message 48
+XkbActionMessageEvent 56
+XdbeSwapInfo.swap_window 0
+XdbeSwapInfo.swap_action 4
+XdbeSwapInfo 8
+XTextItem.chars 0
+XTextItem.nchars 4
+XTextItem.delta 8
+XTextItem.font 12
+XTextItem 16
+XModifierKeymap.max_keypermod 0
+XModifierKeymap.modifiermap 4
+XModifierKeymap 8
+XCharStruct.lbearing 0
+XCharStruct.rbearing 2
+XCharStruct.width 4
+XCharStruct.ascent 6
+XCharStruct.descent 8
+XCharStruct.attributes 10
+XCharStruct 12
+XGravityEvent.type 0
+XGravityEvent.serial 4
+XGravityEvent.send_event 8
+XGravityEvent.display 12
+XGravityEvent.event 16
+XGravityEvent.window 20
+XGravityEvent.x 24
+XGravityEvent.y 28
+XGravityEvent 32
+Visual.ext_data 0
+Visual.visualid 4
+Visual.class 8
+Visual.red_mask 12
+Visual.green_mask 16
+Visual.blue_mask 20
+Visual.bits_per_rgb 24
+Visual.map_entries 28
+Visual 32
+XOMOrientation.num_orientation 0
+XOMOrientation.orientation 4
+XOMOrientation 8
+XkbAccessXNotifyEvent.type 0
+XkbAccessXNotifyEvent.serial 4
+XkbAccessXNotifyEvent.send_event 8
+XkbAccessXNotifyEvent.display 12
+XkbAccessXNotifyEvent.time 16
+XkbAccessXNotifyEvent.xkb_type 20
+XkbAccessXNotifyEvent.device 24
+XkbAccessXNotifyEvent.detail 28
+XkbAccessXNotifyEvent.keycode 32
+XkbAccessXNotifyEvent.sk_delay 36
+XkbAccessXNotifyEvent.debounce_delay 40
+XkbAccessXNotifyEvent 44
+XWindowAttributes.x 0
+XWindowAttributes.y 4
+XWindowAttributes.width 8
+XWindowAttributes.height 12
+XWindowAttributes.border_width 16
+XWindowAttributes.depth 20
+XWindowAttributes.visual 24
+XWindowAttributes.root 28
+XWindowAttributes.class 32
+XWindowAttributes.bit_gravity 36
+XWindowAttributes.win_gravity 40
+XWindowAttributes.backing_store 44
+XWindowAttributes.backing_planes 48
+XWindowAttributes.backing_pixel 52
+XWindowAttributes.save_under 56
+XWindowAttributes.colormap 60
+XWindowAttributes.map_installed 64
+XWindowAttributes.map_state 68
+XWindowAttributes.all_event_masks 72
+XWindowAttributes.your_event_mask 76
+XWindowAttributes.do_not_propagate_mask 80
+XWindowAttributes.override_redirect 84
+XWindowAttributes.screen 88
+XWindowAttributes 92
+XmbTextItem.chars 0
+XmbTextItem.nchars 4
+XmbTextItem.delta 8
+XmbTextItem.font_set 12
+XmbTextItem 16
+XMappingEvent.type 0
+XMappingEvent.serial 4
+XMappingEvent.send_event 8
+XMappingEvent.display 12
+XMappingEvent.window 16
+XMappingEvent.request 20
+XMappingEvent.first_keycode 24
+XMappingEvent.count 28
+XMappingEvent 32
+XSizeHints.flags 0
+XSizeHints.x 4
+XSizeHints.y 8
+XSizeHints.width 12
+XSizeHints.height 16
+XSizeHints.min_width 20
+XSizeHints.min_height 24
+XSizeHints.max_width 28
+XSizeHints.max_height 32
+XSizeHints.width_inc 36
+XSizeHints.height_inc 40
+XSizeHints.min_aspect.x 44
+XSizeHints.min_aspect.y 48
+XSizeHints.max_aspect.x 52
+XSizeHints.max_aspect.y 56
+XSizeHints.base_width 60
+XSizeHints.base_height 64
+XSizeHints.win_gravity 68
+XSizeHints 72
+XUnmapEvent.type 0
+XUnmapEvent.serial 4
+XUnmapEvent.send_event 8
+XUnmapEvent.display 12
+XUnmapEvent.event 16
+XUnmapEvent.window 20
+XUnmapEvent.from_configure 24
+XUnmapEvent 28
+awtImageData.Depth 0
+awtImageData.wsImageFormat 4
+awtImageData.clrdata 16
+awtImageData.convert 48
+awtImageData 304
+XkbStateNotifyEvent.type 0
+XkbStateNotifyEvent.serial 4
+XkbStateNotifyEvent.send_event 8
+XkbStateNotifyEvent.display 12
+XkbStateNotifyEvent.time 16
+XkbStateNotifyEvent.xkb_type 20
+XkbStateNotifyEvent.device 24
+XkbStateNotifyEvent.changed 28
+XkbStateNotifyEvent.group 32
+XkbStateNotifyEvent.base_group 36
+XkbStateNotifyEvent.latched_group 40
+XkbStateNotifyEvent.locked_group 44
+XkbStateNotifyEvent.mods 48
+XkbStateNotifyEvent.base_mods 52
+XkbStateNotifyEvent.latched_mods 56
+XkbStateNotifyEvent.locked_mods 60
+XkbStateNotifyEvent.compat_state 64
+XkbStateNotifyEvent.grab_mods 68
+XkbStateNotifyEvent.compat_grab_mods 69
+XkbStateNotifyEvent.lookup_mods 70
+XkbStateNotifyEvent.compat_lookup_mods 71
+XkbStateNotifyEvent.ptr_buttons 72
+XkbStateNotifyEvent.keycode 76
+XkbStateNotifyEvent.event_type 77
+XkbStateNotifyEvent.req_major 78
+XkbStateNotifyEvent.req_minor 79
+XkbStateNotifyEvent 80
+XExposeEvent.type 0
+XExposeEvent.serial 4
+XExposeEvent.send_event 8
+XExposeEvent.display 12
+XExposeEvent.window 16
+XExposeEvent.x 20
+XExposeEvent.y 24
+XExposeEvent.width 28
+XExposeEvent.height 32
+XExposeEvent.count 36
+XExposeEvent 40
+XkbMapNotifyEvent.type 0
+XkbMapNotifyEvent.serial 4
+XkbMapNotifyEvent.send_event 8
+XkbMapNotifyEvent.display 12
+XkbMapNotifyEvent.time 16
+XkbMapNotifyEvent.xkb_type 20
+XkbMapNotifyEvent.device 24
+XkbMapNotifyEvent.changed 28
+XkbMapNotifyEvent.flags 32
+XkbMapNotifyEvent.first_type 36
+XkbMapNotifyEvent.num_types 40
+XkbMapNotifyEvent.min_key_code 44
+XkbMapNotifyEvent.max_key_code 45
+XkbMapNotifyEvent.first_key_sym 46
+XkbMapNotifyEvent.first_key_act 47
+XkbMapNotifyEvent.first_key_behavior 48
+XkbMapNotifyEvent.first_key_explicit 49
+XkbMapNotifyEvent.first_modmap_key 50
+XkbMapNotifyEvent.first_vmodmap_key 51
+XkbMapNotifyEvent.num_key_syms 52
+XkbMapNotifyEvent.num_key_acts 56
+XkbMapNotifyEvent.num_key_behaviors 60
+XkbMapNotifyEvent.num_key_explicit 64
+XkbMapNotifyEvent.num_modmap_keys 68
+XkbMapNotifyEvent.num_vmodmap_keys 72
+XkbMapNotifyEvent.vmods 76
+XkbMapNotifyEvent 80
+XGCValues.function 0
+XGCValues.plane_mask 4
+XGCValues.foreground 8
+XGCValues.background 12
+XGCValues.line_width 16
+XGCValues.line_style 20
+XGCValues.cap_style 24
+XGCValues.join_style 28
+XGCValues.fill_style 32
+XGCValues.fill_rule 36
+XGCValues.arc_mode 40
+XGCValues.tile 44
+XGCValues.stipple 48
+XGCValues.ts_x_origin 52
+XGCValues.ts_y_origin 56
+XGCValues.font 60
+XGCValues.subwindow_mode 64
+XGCValues.graphics_exposures 68
+XGCValues.clip_x_origin 72
+XGCValues.clip_y_origin 76
+XGCValues.clip_mask 80
+XGCValues.dash_offset 84
+XGCValues.dashes 88
+XGCValues 92
+XFocusChangeEvent.type 0
+XFocusChangeEvent.serial 4
+XFocusChangeEvent.send_event 8
+XFocusChangeEvent.display 12
+XFocusChangeEvent.window 16
+XFocusChangeEvent.mode 20
+XFocusChangeEvent.detail 24
+XFocusChangeEvent 28
+XPixmapFormatValues.depth 0
+XPixmapFormatValues.bits_per_pixel 4
+XPixmapFormatValues.scanline_pad 8
+XPixmapFormatValues 12
+XMapEvent.type 0
+XMapEvent.serial 4
+XMapEvent.send_event 8
+XMapEvent.display 12
+XMapEvent.event 16
+XMapEvent.window 20
+XMapEvent.override_redirect 24
+XMapEvent 28
+XkbBellNotifyEvent.type 0
+XkbBellNotifyEvent.serial 4
+XkbBellNotifyEvent.send_event 8
+XkbBellNotifyEvent.display 12
+XkbBellNotifyEvent.time 16
+XkbBellNotifyEvent.xkb_type 20
+XkbBellNotifyEvent.device 24
+XkbBellNotifyEvent.percent 28
+XkbBellNotifyEvent.pitch 32
+XkbBellNotifyEvent.duration 36
+XkbBellNotifyEvent.bell_class 40
+XkbBellNotifyEvent.bell_id 44
+XkbBellNotifyEvent.name 48
+XkbBellNotifyEvent.window 52
+XkbBellNotifyEvent.event_only 56
+XkbBellNotifyEvent 60
+XIMStringConversionText.length 0
+XIMStringConversionText.feedback 4
+XIMStringConversionText.encoding_is_wchar 8
+XIMStringConversionText.string 12
+XIMStringConversionText 16
+XKeyboardState.key_click_percent 0
+XKeyboardState.bell_percent 4
+XKeyboardState.bell_pitch 8
+XKeyboardState.bell_duration 12
+XKeyboardState.led_mask 16
+XKeyboardState.global_auto_repeat 20
+XKeyboardState.auto_repeats 24
+XKeyboardState 56
+XkbEvent.type 0
+XkbEvent.any 0
+XkbEvent.new_kbd 0
+XkbEvent.map 0
+XkbEvent.state 0
+XkbEvent.ctrls 0
+XkbEvent.indicators 0
+XkbEvent.names 0
+XkbEvent.compat 0
+XkbEvent.bell 0
+XkbEvent.message 0
+XkbEvent.accessx 0
+XkbEvent.device 0
+XkbEvent.core 0
+XkbEvent 96
+XPoint.x 0
+XPoint.y 2
+XPoint 4
+XSegment.x1 0
+XSegment.y1 2
+XSegment.x2 4
+XSegment.y2 6
+XSegment 8
+XIconSize.min_width 0
+XIconSize.min_height 4
+XIconSize.max_width 8
+XIconSize.max_height 12
+XIconSize.width_inc 16
+XIconSize.height_inc 20
+XIconSize 24
+XIMCallback.client_data 0
+XIMCallback.callback 4
+XIMCallback 8
+XConfigureEvent.type 0
+XConfigureEvent.serial 4
+XConfigureEvent.send_event 8
+XConfigureEvent.display 12
+XConfigureEvent.event 16
+XConfigureEvent.window 20
+XConfigureEvent.x 24
+XConfigureEvent.y 28
+XConfigureEvent.width 32
+XConfigureEvent.height 36
+XConfigureEvent.border_width 40
+XConfigureEvent.above 44
+XConfigureEvent.override_redirect 48
+XConfigureEvent 52
+XRectangle.x 0
+XRectangle.y 2
+XRectangle.width 4
+XRectangle.height 6
+XRectangle 8
+XkbNamesNotifyEvent.type 0
+XkbNamesNotifyEvent.serial 4
+XkbNamesNotifyEvent.send_event 8
+XkbNamesNotifyEvent.display 12
+XkbNamesNotifyEvent.time 16
+XkbNamesNotifyEvent.xkb_type 20
+XkbNamesNotifyEvent.device 24
+XkbNamesNotifyEvent.changed 28
+XkbNamesNotifyEvent.first_type 32
+XkbNamesNotifyEvent.num_types 36
+XkbNamesNotifyEvent.first_lvl 40
+XkbNamesNotifyEvent.num_lvls 44
+XkbNamesNotifyEvent.num_aliases 48
+XkbNamesNotifyEvent.num_radio_groups 52
+XkbNamesNotifyEvent.changed_vmods 56
+XkbNamesNotifyEvent.changed_groups 60
+XkbNamesNotifyEvent.changed_indicators 64
+XkbNamesNotifyEvent.first_key 68
+XkbNamesNotifyEvent.num_keys 72
+XkbNamesNotifyEvent 76
+XCreateWindowEvent.type 0
+XCreateWindowEvent.serial 4
+XCreateWindowEvent.send_event 8
+XCreateWindowEvent.display 12
+XCreateWindowEvent.parent 16
+XCreateWindowEvent.window 20
+XCreateWindowEvent.x 24
+XCreateWindowEvent.y 28
+XCreateWindowEvent.width 32
+XCreateWindowEvent.height 36
+XCreateWindowEvent.border_width 40
+XCreateWindowEvent.override_redirect 44
+XCreateWindowEvent 48
+XVisibilityEvent.type 0
+XVisibilityEvent.serial 4
+XVisibilityEvent.send_event 8
+XVisibilityEvent.display 12
+XVisibilityEvent.window 16
+XVisibilityEvent.state 20
+XVisibilityEvent 24
+XWMHints.flags 0
+XWMHints.initial_state 8
+XWMHints.icon_pixmap 12
+XWMHints.icon_window 16
+XWMHints.icon_x 20
+XWMHints.icon_y 24
+XWMHints.icon_mask 28
+XWMHints.input 4
+XWMHints.window_group 32
+XWMHints 36
+XCrossingEvent.type 0
+XCrossingEvent.serial 4
+XCrossingEvent.send_event 8
+XCrossingEvent.display 12
+XCrossingEvent.window 16
+XCrossingEvent.root 20
+XCrossingEvent.subwindow 24
+XCrossingEvent.time 28
+XCrossingEvent.x 32
+XCrossingEvent.y 36
+XCrossingEvent.x_root 40
+XCrossingEvent.y_root 44
+XCrossingEvent.mode 48
+XCrossingEvent.detail 52
+XCrossingEvent.same_screen 56
+XCrossingEvent.focus 60
+XCrossingEvent.state 64
+XCrossingEvent 68
+XSelectionRequestEvent.type 0
+XSelectionRequestEvent.serial 4
+XSelectionRequestEvent.send_event 8
+XSelectionRequestEvent.display 12
+XSelectionRequestEvent.owner 16
+XSelectionRequestEvent.requestor 20
+XSelectionRequestEvent.selection 24
+XSelectionRequestEvent.target 28
+XSelectionRequestEvent.property 32
+XSelectionRequestEvent.time 36
+XSelectionRequestEvent 40
+XNoExposeEvent.type 0
+XNoExposeEvent.serial 4
+XNoExposeEvent.send_event 8
+XNoExposeEvent.display 12
+XNoExposeEvent.drawable 16
+XNoExposeEvent.major_code 20
+XNoExposeEvent.minor_code 24
+XNoExposeEvent 28
+XHostAddress.family 0
+XHostAddress.length 4
+XHostAddress.address 8
+XHostAddress 12
+XColormapEvent.type 0
+XColormapEvent.serial 4
+XColormapEvent.send_event 8
+XColormapEvent.display 12
+XColormapEvent.window 16
+XColormapEvent.colormap 20
+XColormapEvent.new 24
+XColormapEvent.state 28
+XColormapEvent 32
+ColorEntry.r 0
+ColorEntry.g 1
+ColorEntry.b 2
+ColorEntry.flags 3
+ColorEntry 4
+XResizeRequestEvent.type 0
+XResizeRequestEvent.serial 4
+XResizeRequestEvent.send_event 8
+XResizeRequestEvent.display 12
+XResizeRequestEvent.window 16
+XResizeRequestEvent.width 20
+XResizeRequestEvent.height 24
+XResizeRequestEvent 28
+Depth.depth 0
+Depth.nvisuals 4
+Depth.visuals 8
+Depth 12
+XPropertyEvent.type 0
+XPropertyEvent.serial 4
+XPropertyEvent.send_event 8
+XPropertyEvent.display 12
+XPropertyEvent.window 16
+XPropertyEvent.atom 20
+XPropertyEvent.time 24
+XPropertyEvent.state 28
+XPropertyEvent 32
+XDestroyWindowEvent.type 0
+XDestroyWindowEvent.serial 4
+XDestroyWindowEvent.send_event 8
+XDestroyWindowEvent.display 12
+XDestroyWindowEvent.event 16
+XDestroyWindowEvent.window 20
+XDestroyWindowEvent 24
+XStandardColormap.colormap 0
+XStandardColormap.red_max 4
+XStandardColormap.red_mult 8
+XStandardColormap.green_max 12
+XStandardColormap.green_mult 16
+XStandardColormap.blue_max 20
+XStandardColormap.blue_mult 24
+XStandardColormap.base_pixel 28
+XStandardColormap.visualid 32
+XStandardColormap.killid 36
+XStandardColormap 40
+XComposeStatus.compose_ptr 0
+XComposeStatus.chars_matched 4
+XComposeStatus 8
+AwtGraphicsConfigData.awt_depth 0
+AwtGraphicsConfigData.awt_cmap 4
+AwtGraphicsConfigData.awt_visInfo 8
+AwtGraphicsConfigData.awt_num_colors 48
+AwtGraphicsConfigData.awtImage 52
+AwtGraphicsConfigData.AwtColorMatch 56
+AwtGraphicsConfigData.monoImage 60
+AwtGraphicsConfigData.monoPixmap 64
+AwtGraphicsConfigData.monoPixmapWidth 68
+AwtGraphicsConfigData.monoPixmapHeight 72
+AwtGraphicsConfigData.monoPixmapGC 76
+AwtGraphicsConfigData.pixelStride 80
+AwtGraphicsConfigData.color_data 84
+AwtGraphicsConfigData.glxInfo 88
+AwtGraphicsConfigData.isTranslucencySupported 92
+AwtGraphicsConfigData.renderPictFormat 96
+AwtGraphicsConfigData 128
+XColor.pixel 0
+XColor.red 4
+XColor.green 6
+XColor.blue 8
+XColor.flags 10
+XColor.pad 11
+XColor 12
+XTextProperty.value 0
+XTextProperty.encoding 4
+XTextProperty.format 8
+XTextProperty.nitems 12
+XTextProperty 16
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/data/x11wrappergen/sizes.64 Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,1016 @@
+long 8
+int 4
+short 2
+ptr 8
+Bool 4
+Atom 8
+Window 8
+XExtData.number 0
+XExtData.next 8
+XExtData.free_private 16
+XExtData.private_data 24
+XExtData 32
+XIMStringConversionCallbackStruct.position 0
+XIMStringConversionCallbackStruct.direction 4
+XIMStringConversionCallbackStruct.operation 8
+XIMStringConversionCallbackStruct.factor 10
+XIMStringConversionCallbackStruct.text 16
+XIMStringConversionCallbackStruct 24
+XkbNewKeyboardNotifyEvent.type 0
+XkbNewKeyboardNotifyEvent.serial 8
+XkbNewKeyboardNotifyEvent.send_event 16
+XkbNewKeyboardNotifyEvent.display 24
+XkbNewKeyboardNotifyEvent.time 32
+XkbNewKeyboardNotifyEvent.xkb_type 40
+XkbNewKeyboardNotifyEvent.device 44
+XkbNewKeyboardNotifyEvent.old_device 48
+XkbNewKeyboardNotifyEvent.min_key_code 52
+XkbNewKeyboardNotifyEvent.max_key_code 56
+XkbNewKeyboardNotifyEvent.old_min_key_code 60
+XkbNewKeyboardNotifyEvent.old_max_key_code 64
+XkbNewKeyboardNotifyEvent.changed 68
+XkbNewKeyboardNotifyEvent.req_major 72
+XkbNewKeyboardNotifyEvent.req_minor 73
+XkbNewKeyboardNotifyEvent 80
+XTimeCoord.time 0
+XTimeCoord.x 8
+XTimeCoord.y 10
+XTimeCoord 16
+XkbCompatMapNotifyEvent.type 0
+XkbCompatMapNotifyEvent.serial 8
+XkbCompatMapNotifyEvent.send_event 16
+XkbCompatMapNotifyEvent.display 24
+XkbCompatMapNotifyEvent.time 32
+XkbCompatMapNotifyEvent.xkb_type 40
+XkbCompatMapNotifyEvent.device 44
+XkbCompatMapNotifyEvent.changed_groups 48
+XkbCompatMapNotifyEvent.first_si 52
+XkbCompatMapNotifyEvent.num_si 56
+XkbCompatMapNotifyEvent.num_total_si 60
+XkbCompatMapNotifyEvent 64
+XIMStatusDrawCallbackStruct.type 0
+XIMStatusDrawCallbackStruct.data 8
+XIMStatusDrawCallbackStruct 16
+XKeyboardControl.key_click_percent 0
+XKeyboardControl.bell_percent 4
+XKeyboardControl.bell_pitch 8
+XKeyboardControl.bell_duration 12
+XKeyboardControl.led 16
+XKeyboardControl.led_mode 20
+XKeyboardControl.key 24
+XKeyboardControl.auto_repeat_mode 28
+XKeyboardControl 32
+XSelectionClearEvent.type 0
+XSelectionClearEvent.serial 8
+XSelectionClearEvent.send_event 16
+XSelectionClearEvent.display 24
+XSelectionClearEvent.window 32
+XSelectionClearEvent.selection 40
+XSelectionClearEvent.time 48
+XSelectionClearEvent 56
+XWindowChanges.x 0
+XWindowChanges.y 4
+XWindowChanges.width 8
+XWindowChanges.height 12
+XWindowChanges.border_width 16
+XWindowChanges.sibling 24
+XWindowChanges.stack_mode 32
+XWindowChanges 40
+XIMPreeditCaretCallbackStruct.position 0
+XIMPreeditCaretCallbackStruct.direction 4
+XIMPreeditCaretCallbackStruct.style 8
+XIMPreeditCaretCallbackStruct 12
+XOMCharSetList.charset_count 0
+XOMCharSetList.charset_list 8
+XOMCharSetList 16
+XOMFontInfo.num_font 0
+XOMFontInfo.font_struct_list 8
+XOMFontInfo.font_name_list 16
+XOMFontInfo 24
+AwtScreenData.numConfigs 0
+AwtScreenData.root 8
+AwtScreenData.whitepixel 16
+AwtScreenData.blackpixel 24
+AwtScreenData.defaultConfig 32
+AwtScreenData.configs 40
+AwtScreenData 48
+XIMHotKeyTrigger.keysym 0
+XIMHotKeyTrigger.modifier 8
+XIMHotKeyTrigger.modifier_mask 12
+XIMHotKeyTrigger 16
+XCirculateEvent.type 0
+XCirculateEvent.serial 8
+XCirculateEvent.send_event 16
+XCirculateEvent.display 24
+XCirculateEvent.event 32
+XCirculateEvent.window 40
+XCirculateEvent.place 48
+XCirculateEvent 56
+Screen.ext_data 0
+Screen.display 8
+Screen.root 16
+Screen.width 24
+Screen.height 28
+Screen.mwidth 32
+Screen.mheight 36
+Screen.ndepths 40
+Screen.depths 48
+Screen.root_depth 56
+Screen.root_visual 64
+Screen.default_gc 72
+Screen.cmap 80
+Screen.white_pixel 88
+Screen.black_pixel 96
+Screen.max_maps 104
+Screen.min_maps 108
+Screen.backing_store 112
+Screen.save_unders 116
+Screen.root_input_mask 120
+Screen 128
+XMapRequestEvent.type 0
+XMapRequestEvent.serial 8
+XMapRequestEvent.send_event 16
+XMapRequestEvent.display 24
+XMapRequestEvent.parent 32
+XMapRequestEvent.window 40
+XMapRequestEvent 48
+XIMText.length 0
+XIMText.feedback 8
+XIMText.encoding_is_wchar 16
+XIMText.string 24
+XIMText 32
+XGraphicsExposeEvent.type 0
+XGraphicsExposeEvent.serial 8
+XGraphicsExposeEvent.send_event 16
+XGraphicsExposeEvent.display 24
+XGraphicsExposeEvent.drawable 32
+XGraphicsExposeEvent.x 40
+XGraphicsExposeEvent.y 44
+XGraphicsExposeEvent.width 48
+XGraphicsExposeEvent.height 52
+XGraphicsExposeEvent.count 56
+XGraphicsExposeEvent.major_code 60
+XGraphicsExposeEvent.minor_code 64
+XGraphicsExposeEvent 72
+XEvent.type 0
+XEvent.xany 0
+XEvent.xkey 0
+XEvent.xbutton 0
+XEvent.xmotion 0
+XEvent.xcrossing 0
+XEvent.xfocus 0
+XEvent.xexpose 0
+XEvent.xgraphicsexpose 0
+XEvent.xnoexpose 0
+XEvent.xvisibility 0
+XEvent.xcreatewindow 0
+XEvent.xdestroywindow 0
+XEvent.xunmap 0
+XEvent.xmap 0
+XEvent.xmaprequest 0
+XEvent.xreparent 0
+XEvent.xconfigure 0
+XEvent.xgravity 0
+XEvent.xresizerequest 0
+XEvent.xconfigurerequest 0
+XEvent.xcirculate 0
+XEvent.xcirculaterequest 0
+XEvent.xproperty 0
+XEvent.xselectionclear 0
+XEvent.xselectionrequest 0
+XEvent.xselection 0
+XEvent.xcolormap 0
+XEvent.xclient 0
+XEvent.xmapping 0
+XEvent.xerror 0
+XEvent.xkeymap 0
+XEvent.pad 0
+XEvent 192
+XRenderDirectFormat.red 0
+XRenderDirectFormat.redMask 2
+XRenderDirectFormat.green 4
+XRenderDirectFormat.greenMask 6
+XRenderDirectFormat.blue 8
+XRenderDirectFormat.blueMask 10
+XRenderDirectFormat.alpha 12
+XRenderDirectFormat.alphaMask 14
+XRenderDirectFormat 16
+ColorData.awt_Colors 0
+ColorData.awt_numICMcolors 8
+ColorData.awt_icmLUT 16
+ColorData.awt_icmLUT2Colors 24
+ColorData.img_grays 32
+ColorData.img_clr_tbl 40
+ColorData.img_oda_red 48
+ColorData.img_oda_green 56
+ColorData.img_oda_blue 64
+ColorData.pGrayInverseLutData 72
+ColorData.screendata 80
+ColorData 88
+XFontStruct.ext_data 0
+XFontStruct.fid 8
+XFontStruct.direction 16
+XFontStruct.min_char_or_byte2 20
+XFontStruct.max_char_or_byte2 24
+XFontStruct.min_byte1 28
+XFontStruct.max_byte1 32
+XFontStruct.all_chars_exist 36
+XFontStruct.n_properties 44
+XFontStruct.properties 48
+XFontStruct.min_bounds 56
+XFontStruct.max_bounds 68
+XFontStruct.per_char 80
+XFontStruct.ascent 88
+XFontStruct.descent 92
+XFontStruct 96
+XExtCodes.extension 0
+XExtCodes.major_opcode 4
+XExtCodes.first_event 8
+XExtCodes.first_error 12
+XExtCodes 16
+XFontSetExtents.max_ink_extent 0
+XFontSetExtents.max_logical_extent 8
+XFontSetExtents 16
+XSelectionEvent.type 0
+XSelectionEvent.serial 8
+XSelectionEvent.send_event 16
+XSelectionEvent.display 24
+XSelectionEvent.requestor 32
+XSelectionEvent.selection 40
+XSelectionEvent.target 48
+XSelectionEvent.property 56
+XSelectionEvent.time 64
+XSelectionEvent 72
+XArc.x 0
+XArc.y 2
+XArc.width 4
+XArc.height 6
+XArc.angle1 8
+XArc.angle2 10
+XArc 12
+XErrorEvent.type 0
+XErrorEvent.display 8
+XErrorEvent.resourceid 16
+XErrorEvent.serial 24
+XErrorEvent.error_code 32
+XErrorEvent.request_code 33
+XErrorEvent.minor_code 34
+XErrorEvent 40
+XConfigureRequestEvent.type 0
+XConfigureRequestEvent.serial 8
+XConfigureRequestEvent.send_event 16
+XConfigureRequestEvent.display 24
+XConfigureRequestEvent.parent 32
+XConfigureRequestEvent.window 40
+XConfigureRequestEvent.x 48
+XConfigureRequestEvent.y 52
+XConfigureRequestEvent.width 56
+XConfigureRequestEvent.height 60
+XConfigureRequestEvent.border_width 64
+XConfigureRequestEvent.above 72
+XConfigureRequestEvent.detail 80
+XConfigureRequestEvent.value_mask 88
+XConfigureRequestEvent 96
+ScreenFormat.ext_data 0
+ScreenFormat.depth 8
+ScreenFormat.bits_per_pixel 12
+ScreenFormat.scanline_pad 16
+ScreenFormat 24
+XButtonEvent.type 0
+XButtonEvent.serial 8
+XButtonEvent.send_event 16
+XButtonEvent.display 24
+XButtonEvent.window 32
+XButtonEvent.root 40
+XButtonEvent.subwindow 48
+XButtonEvent.time 56
+XButtonEvent.x 64
+XButtonEvent.y 68
+XButtonEvent.x_root 72
+XButtonEvent.y_root 76
+XButtonEvent.state 80
+XButtonEvent.button 84
+XButtonEvent.same_screen 88
+XButtonEvent 96
+XFontProp.name 0
+XFontProp.card32 8
+XFontProp 16
+XIMValuesList.count_values 0
+XIMValuesList.supported_values 8
+XIMValuesList 16
+XKeymapEvent.type 0
+XKeymapEvent.serial 8
+XKeymapEvent.send_event 16
+XKeymapEvent.display 24
+XKeymapEvent.window 32
+XKeymapEvent.key_vector 40
+XKeymapEvent 72
+XTextItem16.chars 0
+XTextItem16.nchars 8
+XTextItem16.delta 12
+XTextItem16.font 16
+XTextItem16 24
+XIMPreeditDrawCallbackStruct.caret 0
+XIMPreeditDrawCallbackStruct.chg_first 4
+XIMPreeditDrawCallbackStruct.chg_length 8
+XIMPreeditDrawCallbackStruct.text 16
+XIMPreeditDrawCallbackStruct 24
+XVisualInfo.visual 0
+XVisualInfo.visualid 8
+XVisualInfo.screen 16
+XVisualInfo.depth 20
+XVisualInfo.class 24
+XVisualInfo.red_mask 32
+XVisualInfo.green_mask 40
+XVisualInfo.blue_mask 48
+XVisualInfo.colormap_size 56
+XVisualInfo.bits_per_rgb 60
+XVisualInfo 64
+XkbControlsNotifyEvent.type 0
+XkbControlsNotifyEvent.serial 8
+XkbControlsNotifyEvent.send_event 16
+XkbControlsNotifyEvent.display 24
+XkbControlsNotifyEvent.time 32
+XkbControlsNotifyEvent.xkb_type 40
+XkbControlsNotifyEvent.device 44
+XkbControlsNotifyEvent.changed_ctrls 48
+XkbControlsNotifyEvent.enabled_ctrls 52
+XkbControlsNotifyEvent.enabled_ctrl_changes 56
+XkbControlsNotifyEvent.num_groups 60
+XkbControlsNotifyEvent.keycode 64
+XkbControlsNotifyEvent.event_type 65
+XkbControlsNotifyEvent.req_major 66
+XkbControlsNotifyEvent.req_minor 67
+XkbControlsNotifyEvent 72
+PropMwmHints.flags 0
+PropMwmHints.functions 8
+PropMwmHints.decorations 16
+PropMwmHints.inputMode 24
+PropMwmHints.status 32
+PropMwmHints 40
+XClientMessageEvent.type 0
+XClientMessageEvent.serial 8
+XClientMessageEvent.send_event 16
+XClientMessageEvent.display 24
+XClientMessageEvent.window 32
+XClientMessageEvent.message_type 40
+XClientMessageEvent.format 48
+XClientMessageEvent.data 56
+XClientMessageEvent 96
+XAnyEvent.type 0
+XAnyEvent.serial 8
+XAnyEvent.send_event 16
+XAnyEvent.display 24
+XAnyEvent.window 32
+XAnyEvent 40
+XkbIndicatorNotifyEvent.type 0
+XkbIndicatorNotifyEvent.serial 8
+XkbIndicatorNotifyEvent.send_event 16
+XkbIndicatorNotifyEvent.display 24
+XkbIndicatorNotifyEvent.time 32
+XkbIndicatorNotifyEvent.xkb_type 40
+XkbIndicatorNotifyEvent.device 44
+XkbIndicatorNotifyEvent.changed 48
+XkbIndicatorNotifyEvent.state 52
+XkbIndicatorNotifyEvent 56
+XIMPreeditStateNotifyCallbackStruct.state 0
+XIMPreeditStateNotifyCallbackStruct 8
+XkbAnyEvent.type 0
+XkbAnyEvent.serial 8
+XkbAnyEvent.send_event 16
+XkbAnyEvent.display 24
+XkbAnyEvent.time 32
+XkbAnyEvent.xkb_type 40
+XkbAnyEvent.device 44
+XkbAnyEvent 48
+XMotionEvent.type 0
+XMotionEvent.serial 8
+XMotionEvent.send_event 16
+XMotionEvent.display 24
+XMotionEvent.window 32
+XMotionEvent.root 40
+XMotionEvent.subwindow 48
+XMotionEvent.time 56
+XMotionEvent.x 64
+XMotionEvent.y 68
+XMotionEvent.x_root 72
+XMotionEvent.y_root 76
+XMotionEvent.state 80
+XMotionEvent.is_hint 84
+XMotionEvent.same_screen 88
+XMotionEvent 96
+XIMHotKeyTriggers.num_hot_key 0
+XIMHotKeyTriggers.key 8
+XIMHotKeyTriggers 16
+XIMStyles.count_styles 0
+XIMStyles.supported_styles 8
+XIMStyles 16
+XkbExtensionDeviceNotifyEvent.type 0
+XkbExtensionDeviceNotifyEvent.serial 8
+XkbExtensionDeviceNotifyEvent.send_event 16
+XkbExtensionDeviceNotifyEvent.display 24
+XkbExtensionDeviceNotifyEvent.time 32
+XkbExtensionDeviceNotifyEvent.xkb_type 40
+XkbExtensionDeviceNotifyEvent.device 44
+XkbExtensionDeviceNotifyEvent.reason 48
+XkbExtensionDeviceNotifyEvent.supported 52
+XkbExtensionDeviceNotifyEvent.unsupported 56
+XkbExtensionDeviceNotifyEvent.first_btn 60
+XkbExtensionDeviceNotifyEvent.num_btns 64
+XkbExtensionDeviceNotifyEvent.leds_defined 68
+XkbExtensionDeviceNotifyEvent.led_state 72
+XkbExtensionDeviceNotifyEvent.led_class 76
+XkbExtensionDeviceNotifyEvent.led_id 80
+XkbExtensionDeviceNotifyEvent 88
+XwcTextItem.chars 0
+XwcTextItem.nchars 8
+XwcTextItem.delta 12
+XwcTextItem.font_set 16
+XwcTextItem 24
+XClassHint.res_name 0
+XClassHint.res_class 8
+XClassHint 16
+XChar2b.byte1 0
+XChar2b.byte2 1
+XChar2b 2
+XSetWindowAttributes.background_pixmap 0
+XSetWindowAttributes.background_pixel 8
+XSetWindowAttributes.border_pixmap 16
+XSetWindowAttributes.border_pixel 24
+XSetWindowAttributes.bit_gravity 32
+XSetWindowAttributes.win_gravity 36
+XSetWindowAttributes.backing_store 40
+XSetWindowAttributes.backing_planes 48
+XSetWindowAttributes.backing_pixel 56
+XSetWindowAttributes.save_under 64
+XSetWindowAttributes.event_mask 72
+XSetWindowAttributes.do_not_propagate_mask 80
+XSetWindowAttributes.override_redirect 88
+XSetWindowAttributes.colormap 96
+XSetWindowAttributes.cursor 104
+XSetWindowAttributes 112
+XRenderPictFormat.id 0
+XRenderPictFormat.type 8
+XRenderPictFormat.depth 12
+XRenderPictFormat.direct 16
+XRenderPictFormat.colormap 32
+XRenderPictFormat 40
+XReparentEvent.type 0
+XReparentEvent.serial 8
+XReparentEvent.send_event 16
+XReparentEvent.display 24
+XReparentEvent.event 32
+XReparentEvent.window 40
+XReparentEvent.parent 48
+XReparentEvent.x 56
+XReparentEvent.y 60
+XReparentEvent.override_redirect 64
+XReparentEvent 72
+XCirculateRequestEvent.type 0
+XCirculateRequestEvent.serial 8
+XCirculateRequestEvent.send_event 16
+XCirculateRequestEvent.display 24
+XCirculateRequestEvent.parent 32
+XCirculateRequestEvent.window 40
+XCirculateRequestEvent.place 48
+XCirculateRequestEvent 56
+XImage.width 0
+XImage.height 4
+XImage.xoffset 8
+XImage.format 12
+XImage.data 16
+XImage.byte_order 24
+XImage.bitmap_unit 28
+XImage.bitmap_bit_order 32
+XImage.bitmap_pad 36
+XImage.depth 40
+XImage.bytes_per_line 44
+XImage.bits_per_pixel 48
+XImage.red_mask 56
+XImage.green_mask 64
+XImage.blue_mask 72
+XImage.obdata 80
+XImage.f.create_image 88
+XImage.f.destroy_image 96
+XImage.f.get_pixel 104
+XImage.f.put_pixel 112
+XImage.f.sub_image 120
+XImage.f.add_pixel 128
+XImage 136
+XKeyEvent.type 0
+XKeyEvent.serial 8
+XKeyEvent.send_event 16
+XKeyEvent.display 24
+XKeyEvent.window 32
+XKeyEvent.root 40
+XKeyEvent.subwindow 48
+XKeyEvent.time 56
+XKeyEvent.x 64
+XKeyEvent.y 68
+XKeyEvent.x_root 72
+XKeyEvent.y_root 76
+XKeyEvent.state 80
+XKeyEvent.keycode 84
+XKeyEvent.same_screen 88
+XKeyEvent 96
+XkbActionMessageEvent.type 0
+XkbActionMessageEvent.serial 8
+XkbActionMessageEvent.send_event 16
+XkbActionMessageEvent.display 24
+XkbActionMessageEvent.time 32
+XkbActionMessageEvent.xkb_type 40
+XkbActionMessageEvent.device 44
+XkbActionMessageEvent.keycode 48
+XkbActionMessageEvent.press 52
+XkbActionMessageEvent.key_event_follows 56
+XkbActionMessageEvent.group 60
+XkbActionMessageEvent.mods 64
+XkbActionMessageEvent.message 68
+XkbActionMessageEvent 80
+XdbeSwapInfo.swap_window 0
+XdbeSwapInfo.swap_action 8
+XdbeSwapInfo 16
+XTextItem.chars 0
+XTextItem.nchars 8
+XTextItem.delta 12
+XTextItem.font 16
+XTextItem 24
+XModifierKeymap.max_keypermod 0
+XModifierKeymap.modifiermap 8
+XModifierKeymap 16
+XCharStruct.lbearing 0
+XCharStruct.rbearing 2
+XCharStruct.width 4
+XCharStruct.ascent 6
+XCharStruct.descent 8
+XCharStruct.attributes 10
+XCharStruct 12
+XGravityEvent.type 0
+XGravityEvent.serial 8
+XGravityEvent.send_event 16
+XGravityEvent.display 24
+XGravityEvent.event 32
+XGravityEvent.window 40
+XGravityEvent.x 48
+XGravityEvent.y 52
+XGravityEvent 56
+Visual.ext_data 0
+Visual.visualid 8
+Visual.class 16
+Visual.red_mask 24
+Visual.green_mask 32
+Visual.blue_mask 40
+Visual.bits_per_rgb 48
+Visual.map_entries 52
+Visual 56
+XOMOrientation.num_orientation 0
+XOMOrientation.orientation 8
+XOMOrientation 16
+XkbAccessXNotifyEvent.type 0
+XkbAccessXNotifyEvent.serial 8
+XkbAccessXNotifyEvent.send_event 16
+XkbAccessXNotifyEvent.display 24
+XkbAccessXNotifyEvent.time 32
+XkbAccessXNotifyEvent.xkb_type 40
+XkbAccessXNotifyEvent.device 44
+XkbAccessXNotifyEvent.detail 48
+XkbAccessXNotifyEvent.keycode 52
+XkbAccessXNotifyEvent.sk_delay 56
+XkbAccessXNotifyEvent.debounce_delay 60
+XkbAccessXNotifyEvent 64
+XWindowAttributes.x 0
+XWindowAttributes.y 4
+XWindowAttributes.width 8
+XWindowAttributes.height 12
+XWindowAttributes.border_width 16
+XWindowAttributes.depth 20
+XWindowAttributes.visual 24
+XWindowAttributes.root 32
+XWindowAttributes.class 40
+XWindowAttributes.bit_gravity 44
+XWindowAttributes.win_gravity 48
+XWindowAttributes.backing_store 52
+XWindowAttributes.backing_planes 56
+XWindowAttributes.backing_pixel 64
+XWindowAttributes.save_under 72
+XWindowAttributes.colormap 80
+XWindowAttributes.map_installed 88
+XWindowAttributes.map_state 92
+XWindowAttributes.all_event_masks 96
+XWindowAttributes.your_event_mask 104
+XWindowAttributes.do_not_propagate_mask 112
+XWindowAttributes.override_redirect 120
+XWindowAttributes.screen 128
+XWindowAttributes 136
+XmbTextItem.chars 0
+XmbTextItem.nchars 8
+XmbTextItem.delta 12
+XmbTextItem.font_set 16
+XmbTextItem 24
+XMappingEvent.type 0
+XMappingEvent.serial 8
+XMappingEvent.send_event 16
+XMappingEvent.display 24
+XMappingEvent.window 32
+XMappingEvent.request 40
+XMappingEvent.first_keycode 44
+XMappingEvent.count 48
+XMappingEvent 56
+XSizeHints.flags 0
+XSizeHints.x 8
+XSizeHints.y 12
+XSizeHints.width 16
+XSizeHints.height 20
+XSizeHints.min_width 24
+XSizeHints.min_height 28
+XSizeHints.max_width 32
+XSizeHints.max_height 36
+XSizeHints.width_inc 40
+XSizeHints.height_inc 44
+XSizeHints.min_aspect.x 48
+XSizeHints.min_aspect.y 52
+XSizeHints.max_aspect.x 56
+XSizeHints.max_aspect.y 60
+XSizeHints.base_width 64
+XSizeHints.base_height 68
+XSizeHints.win_gravity 72
+XSizeHints 80
+XUnmapEvent.type 0
+XUnmapEvent.serial 8
+XUnmapEvent.send_event 16
+XUnmapEvent.display 24
+XUnmapEvent.event 32
+XUnmapEvent.window 40
+XUnmapEvent.from_configure 48
+XUnmapEvent 56
+awtImageData.Depth 0
+awtImageData.wsImageFormat 4
+awtImageData.clrdata 16
+awtImageData.convert 48
+awtImageData 560
+XkbStateNotifyEvent.type 0
+XkbStateNotifyEvent.serial 8
+XkbStateNotifyEvent.send_event 16
+XkbStateNotifyEvent.display 24
+XkbStateNotifyEvent.time 32
+XkbStateNotifyEvent.xkb_type 40
+XkbStateNotifyEvent.device 44
+XkbStateNotifyEvent.changed 48
+XkbStateNotifyEvent.group 52
+XkbStateNotifyEvent.base_group 56
+XkbStateNotifyEvent.latched_group 60
+XkbStateNotifyEvent.locked_group 64
+XkbStateNotifyEvent.mods 68
+XkbStateNotifyEvent.base_mods 72
+XkbStateNotifyEvent.latched_mods 76
+XkbStateNotifyEvent.locked_mods 80
+XkbStateNotifyEvent.compat_state 84
+XkbStateNotifyEvent.grab_mods 88
+XkbStateNotifyEvent.compat_grab_mods 89
+XkbStateNotifyEvent.lookup_mods 90
+XkbStateNotifyEvent.compat_lookup_mods 91
+XkbStateNotifyEvent.ptr_buttons 92
+XkbStateNotifyEvent.keycode 96
+XkbStateNotifyEvent.event_type 97
+XkbStateNotifyEvent.req_major 98
+XkbStateNotifyEvent.req_minor 99
+XkbStateNotifyEvent 104
+XExposeEvent.type 0
+XExposeEvent.serial 8
+XExposeEvent.send_event 16
+XExposeEvent.display 24
+XExposeEvent.window 32
+XExposeEvent.x 40
+XExposeEvent.y 44
+XExposeEvent.width 48
+XExposeEvent.height 52
+XExposeEvent.count 56
+XExposeEvent 64
+XkbMapNotifyEvent.type 0
+XkbMapNotifyEvent.serial 8
+XkbMapNotifyEvent.send_event 16
+XkbMapNotifyEvent.display 24
+XkbMapNotifyEvent.time 32
+XkbMapNotifyEvent.xkb_type 40
+XkbMapNotifyEvent.device 44
+XkbMapNotifyEvent.changed 48
+XkbMapNotifyEvent.flags 52
+XkbMapNotifyEvent.first_type 56
+XkbMapNotifyEvent.num_types 60
+XkbMapNotifyEvent.min_key_code 64
+XkbMapNotifyEvent.max_key_code 65
+XkbMapNotifyEvent.first_key_sym 66
+XkbMapNotifyEvent.first_key_act 67
+XkbMapNotifyEvent.first_key_behavior 68
+XkbMapNotifyEvent.first_key_explicit 69
+XkbMapNotifyEvent.first_modmap_key 70
+XkbMapNotifyEvent.first_vmodmap_key 71
+XkbMapNotifyEvent.num_key_syms 72
+XkbMapNotifyEvent.num_key_acts 76
+XkbMapNotifyEvent.num_key_behaviors 80
+XkbMapNotifyEvent.num_key_explicit 84
+XkbMapNotifyEvent.num_modmap_keys 88
+XkbMapNotifyEvent.num_vmodmap_keys 92
+XkbMapNotifyEvent.vmods 96
+XkbMapNotifyEvent 104
+XGCValues.function 0
+XGCValues.plane_mask 8
+XGCValues.foreground 16
+XGCValues.background 24
+XGCValues.line_width 32
+XGCValues.line_style 36
+XGCValues.cap_style 40
+XGCValues.join_style 44
+XGCValues.fill_style 48
+XGCValues.fill_rule 52
+XGCValues.arc_mode 56
+XGCValues.tile 64
+XGCValues.stipple 72
+XGCValues.ts_x_origin 80
+XGCValues.ts_y_origin 84
+XGCValues.font 88
+XGCValues.subwindow_mode 96
+XGCValues.graphics_exposures 100
+XGCValues.clip_x_origin 104
+XGCValues.clip_y_origin 108
+XGCValues.clip_mask 112
+XGCValues.dash_offset 120
+XGCValues.dashes 124
+XGCValues 128
+XFocusChangeEvent.type 0
+XFocusChangeEvent.serial 8
+XFocusChangeEvent.send_event 16
+XFocusChangeEvent.display 24
+XFocusChangeEvent.window 32
+XFocusChangeEvent.mode 40
+XFocusChangeEvent.detail 44
+XFocusChangeEvent 48
+XPixmapFormatValues.depth 0
+XPixmapFormatValues.bits_per_pixel 4
+XPixmapFormatValues.scanline_pad 8
+XPixmapFormatValues 12
+XMapEvent.type 0
+XMapEvent.serial 8
+XMapEvent.send_event 16
+XMapEvent.display 24
+XMapEvent.event 32
+XMapEvent.window 40
+XMapEvent.override_redirect 48
+XMapEvent 56
+XkbBellNotifyEvent.type 0
+XkbBellNotifyEvent.serial 8
+XkbBellNotifyEvent.send_event 16
+XkbBellNotifyEvent.display 24
+XkbBellNotifyEvent.time 32
+XkbBellNotifyEvent.xkb_type 40
+XkbBellNotifyEvent.device 44
+XkbBellNotifyEvent.percent 48
+XkbBellNotifyEvent.pitch 52
+XkbBellNotifyEvent.duration 56
+XkbBellNotifyEvent.bell_class 60
+XkbBellNotifyEvent.bell_id 64
+XkbBellNotifyEvent.name 72
+XkbBellNotifyEvent.window 80
+XkbBellNotifyEvent.event_only 88
+XkbBellNotifyEvent 96
+XIMStringConversionText.length 0
+XIMStringConversionText.feedback 8
+XIMStringConversionText.encoding_is_wchar 16
+XIMStringConversionText.string 24
+XIMStringConversionText 32
+XKeyboardState.key_click_percent 0
+XKeyboardState.bell_percent 4
+XKeyboardState.bell_pitch 8
+XKeyboardState.bell_duration 12
+XKeyboardState.led_mask 16
+XKeyboardState.global_auto_repeat 24
+XKeyboardState.auto_repeats 28
+XKeyboardState 64
+XkbEvent.type 0
+XkbEvent.any 0
+XkbEvent.new_kbd 0
+XkbEvent.map 0
+XkbEvent.state 0
+XkbEvent.ctrls 0
+XkbEvent.indicators 0
+XkbEvent.names 0
+XkbEvent.compat 0
+XkbEvent.bell 0
+XkbEvent.message 0
+XkbEvent.accessx 0
+XkbEvent.device 0
+XkbEvent.core 0
+XkbEvent 192
+XPoint.x 0
+XPoint.y 2
+XPoint 4
+XSegment.x1 0
+XSegment.y1 2
+XSegment.x2 4
+XSegment.y2 6
+XSegment 8
+XIconSize.min_width 0
+XIconSize.min_height 4
+XIconSize.max_width 8
+XIconSize.max_height 12
+XIconSize.width_inc 16
+XIconSize.height_inc 20
+XIconSize 24
+XIMCallback.client_data 0
+XIMCallback.callback 8
+XIMCallback 16
+XConfigureEvent.type 0
+XConfigureEvent.serial 8
+XConfigureEvent.send_event 16
+XConfigureEvent.display 24
+XConfigureEvent.event 32
+XConfigureEvent.window 40
+XConfigureEvent.x 48
+XConfigureEvent.y 52
+XConfigureEvent.width 56
+XConfigureEvent.height 60
+XConfigureEvent.border_width 64
+XConfigureEvent.above 72
+XConfigureEvent.override_redirect 80
+XConfigureEvent 88
+XRectangle.x 0
+XRectangle.y 2
+XRectangle.width 4
+XRectangle.height 6
+XRectangle 8
+XkbNamesNotifyEvent.type 0
+XkbNamesNotifyEvent.serial 8
+XkbNamesNotifyEvent.send_event 16
+XkbNamesNotifyEvent.display 24
+XkbNamesNotifyEvent.time 32
+XkbNamesNotifyEvent.xkb_type 40
+XkbNamesNotifyEvent.device 44
+XkbNamesNotifyEvent.changed 48
+XkbNamesNotifyEvent.first_type 52
+XkbNamesNotifyEvent.num_types 56
+XkbNamesNotifyEvent.first_lvl 60
+XkbNamesNotifyEvent.num_lvls 64
+XkbNamesNotifyEvent.num_aliases 68
+XkbNamesNotifyEvent.num_radio_groups 72
+XkbNamesNotifyEvent.changed_vmods 76
+XkbNamesNotifyEvent.changed_groups 80
+XkbNamesNotifyEvent.changed_indicators 84
+XkbNamesNotifyEvent.first_key 88
+XkbNamesNotifyEvent.num_keys 92
+XkbNamesNotifyEvent 96
+XCreateWindowEvent.type 0
+XCreateWindowEvent.serial 8
+XCreateWindowEvent.send_event 16
+XCreateWindowEvent.display 24
+XCreateWindowEvent.parent 32
+XCreateWindowEvent.window 40
+XCreateWindowEvent.x 48
+XCreateWindowEvent.y 52
+XCreateWindowEvent.width 56
+XCreateWindowEvent.height 60
+XCreateWindowEvent.border_width 64
+XCreateWindowEvent.override_redirect 68
+XCreateWindowEvent 72
+XVisibilityEvent.type 0
+XVisibilityEvent.serial 8
+XVisibilityEvent.send_event 16
+XVisibilityEvent.display 24
+XVisibilityEvent.window 32
+XVisibilityEvent.state 40
+XVisibilityEvent 48
+XWMHints.flags 0
+XWMHints.initial_state 12
+XWMHints.icon_pixmap 16
+XWMHints.icon_window 24
+XWMHints.icon_x 32
+XWMHints.icon_y 36
+XWMHints.icon_mask 40
+XWMHints.input 8
+XWMHints.window_group 48
+XWMHints 56
+XCrossingEvent.type 0
+XCrossingEvent.serial 8
+XCrossingEvent.send_event 16
+XCrossingEvent.display 24
+XCrossingEvent.window 32
+XCrossingEvent.root 40
+XCrossingEvent.subwindow 48
+XCrossingEvent.time 56
+XCrossingEvent.x 64
+XCrossingEvent.y 68
+XCrossingEvent.x_root 72
+XCrossingEvent.y_root 76
+XCrossingEvent.mode 80
+XCrossingEvent.detail 84
+XCrossingEvent.same_screen 88
+XCrossingEvent.focus 92
+XCrossingEvent.state 96
+XCrossingEvent 104
+XSelectionRequestEvent.type 0
+XSelectionRequestEvent.serial 8
+XSelectionRequestEvent.send_event 16
+XSelectionRequestEvent.display 24
+XSelectionRequestEvent.owner 32
+XSelectionRequestEvent.requestor 40
+XSelectionRequestEvent.selection 48
+XSelectionRequestEvent.target 56
+XSelectionRequestEvent.property 64
+XSelectionRequestEvent.time 72
+XSelectionRequestEvent 80
+XNoExposeEvent.type 0
+XNoExposeEvent.serial 8
+XNoExposeEvent.send_event 16
+XNoExposeEvent.display 24
+XNoExposeEvent.drawable 32
+XNoExposeEvent.major_code 40
+XNoExposeEvent.minor_code 44
+XNoExposeEvent 48
+XHostAddress.family 0
+XHostAddress.length 4
+XHostAddress.address 8
+XHostAddress 16
+XColormapEvent.type 0
+XColormapEvent.serial 8
+XColormapEvent.send_event 16
+XColormapEvent.display 24
+XColormapEvent.window 32
+XColormapEvent.colormap 40
+XColormapEvent.new 48
+XColormapEvent.state 52
+XColormapEvent 56
+ColorEntry.r 0
+ColorEntry.g 1
+ColorEntry.b 2
+ColorEntry.flags 3
+ColorEntry 4
+XResizeRequestEvent.type 0
+XResizeRequestEvent.serial 8
+XResizeRequestEvent.send_event 16
+XResizeRequestEvent.display 24
+XResizeRequestEvent.window 32
+XResizeRequestEvent.width 40
+XResizeRequestEvent.height 44
+XResizeRequestEvent 48
+Depth.depth 0
+Depth.nvisuals 4
+Depth.visuals 8
+Depth 16
+XPropertyEvent.type 0
+XPropertyEvent.serial 8
+XPropertyEvent.send_event 16
+XPropertyEvent.display 24
+XPropertyEvent.window 32
+XPropertyEvent.atom 40
+XPropertyEvent.time 48
+XPropertyEvent.state 56
+XPropertyEvent 64
+XDestroyWindowEvent.type 0
+XDestroyWindowEvent.serial 8
+XDestroyWindowEvent.send_event 16
+XDestroyWindowEvent.display 24
+XDestroyWindowEvent.event 32
+XDestroyWindowEvent.window 40
+XDestroyWindowEvent 48
+XStandardColormap.colormap 0
+XStandardColormap.red_max 8
+XStandardColormap.red_mult 16
+XStandardColormap.green_max 24
+XStandardColormap.green_mult 32
+XStandardColormap.blue_max 40
+XStandardColormap.blue_mult 48
+XStandardColormap.base_pixel 56
+XStandardColormap.visualid 64
+XStandardColormap.killid 72
+XStandardColormap 80
+XComposeStatus.compose_ptr 0
+XComposeStatus.chars_matched 8
+XComposeStatus 16
+AwtGraphicsConfigData.awt_depth 0
+AwtGraphicsConfigData.awt_cmap 8
+AwtGraphicsConfigData.awt_visInfo 16
+AwtGraphicsConfigData.awt_num_colors 80
+AwtGraphicsConfigData.awtImage 88
+AwtGraphicsConfigData.AwtColorMatch 96
+AwtGraphicsConfigData.monoImage 104
+AwtGraphicsConfigData.monoPixmap 112
+AwtGraphicsConfigData.monoPixmapWidth 120
+AwtGraphicsConfigData.monoPixmapHeight 124
+AwtGraphicsConfigData.monoPixmapGC 128
+AwtGraphicsConfigData.pixelStride 136
+AwtGraphicsConfigData.color_data 144
+AwtGraphicsConfigData.glxInfo 152
+AwtGraphicsConfigData.isTranslucencySupported 160
+AwtGraphicsConfigData.renderPictFormat 168
+AwtGraphicsConfigData 208
+XColor.pixel 0
+XColor.red 8
+XColor.green 10
+XColor.blue 12
+XColor.flags 14
+XColor.pad 15
+XColor 16
+XTextProperty.value 0
+XTextProperty.encoding 8
+XTextProperty.format 16
+XTextProperty.nitems 24
+XTextProperty 32
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/data/x11wrappergen/sizes.64-solaris-i386 Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,1016 @@
+long 8
+int 4
+short 2
+ptr 8
+Bool 4
+Atom 8
+Window 8
+XExtData.number 0
+XExtData.next 8
+XExtData.free_private 16
+XExtData.private_data 24
+XExtData 32
+XIMStringConversionCallbackStruct.position 0
+XIMStringConversionCallbackStruct.direction 4
+XIMStringConversionCallbackStruct.operation 8
+XIMStringConversionCallbackStruct.factor 10
+XIMStringConversionCallbackStruct.text 16
+XIMStringConversionCallbackStruct 24
+XkbNewKeyboardNotifyEvent.type 0
+XkbNewKeyboardNotifyEvent.serial 8
+XkbNewKeyboardNotifyEvent.send_event 16
+XkbNewKeyboardNotifyEvent.display 24
+XkbNewKeyboardNotifyEvent.time 32
+XkbNewKeyboardNotifyEvent.xkb_type 40
+XkbNewKeyboardNotifyEvent.device 44
+XkbNewKeyboardNotifyEvent.old_device 48
+XkbNewKeyboardNotifyEvent.min_key_code 52
+XkbNewKeyboardNotifyEvent.max_key_code 56
+XkbNewKeyboardNotifyEvent.old_min_key_code 60
+XkbNewKeyboardNotifyEvent.old_max_key_code 64
+XkbNewKeyboardNotifyEvent.changed 68
+XkbNewKeyboardNotifyEvent.req_major 72
+XkbNewKeyboardNotifyEvent.req_minor 73
+XkbNewKeyboardNotifyEvent 80
+XTimeCoord.time 0
+XTimeCoord.x 8
+XTimeCoord.y 10
+XTimeCoord 16
+XkbCompatMapNotifyEvent.type 0
+XkbCompatMapNotifyEvent.serial 8
+XkbCompatMapNotifyEvent.send_event 16
+XkbCompatMapNotifyEvent.display 24
+XkbCompatMapNotifyEvent.time 32
+XkbCompatMapNotifyEvent.xkb_type 40
+XkbCompatMapNotifyEvent.device 44
+XkbCompatMapNotifyEvent.changed_groups 48
+XkbCompatMapNotifyEvent.first_si 52
+XkbCompatMapNotifyEvent.num_si 56
+XkbCompatMapNotifyEvent.num_total_si 60
+XkbCompatMapNotifyEvent 64
+XIMStatusDrawCallbackStruct.type 0
+XIMStatusDrawCallbackStruct.data 8
+XIMStatusDrawCallbackStruct 16
+XKeyboardControl.key_click_percent 0
+XKeyboardControl.bell_percent 4
+XKeyboardControl.bell_pitch 8
+XKeyboardControl.bell_duration 12
+XKeyboardControl.led 16
+XKeyboardControl.led_mode 20
+XKeyboardControl.key 24
+XKeyboardControl.auto_repeat_mode 28
+XKeyboardControl 32
+XSelectionClearEvent.type 0
+XSelectionClearEvent.serial 8
+XSelectionClearEvent.send_event 16
+XSelectionClearEvent.display 24
+XSelectionClearEvent.window 32
+XSelectionClearEvent.selection 40
+XSelectionClearEvent.time 48
+XSelectionClearEvent 56
+XWindowChanges.x 0
+XWindowChanges.y 4
+XWindowChanges.width 8
+XWindowChanges.height 12
+XWindowChanges.border_width 16
+XWindowChanges.sibling 24
+XWindowChanges.stack_mode 32
+XWindowChanges 40
+XIMPreeditCaretCallbackStruct.position 0
+XIMPreeditCaretCallbackStruct.direction 4
+XIMPreeditCaretCallbackStruct.style 8
+XIMPreeditCaretCallbackStruct 12
+XOMCharSetList.charset_count 0
+XOMCharSetList.charset_list 8
+XOMCharSetList 16
+XOMFontInfo.num_font 0
+XOMFontInfo.font_struct_list 8
+XOMFontInfo.font_name_list 16
+XOMFontInfo 24
+AwtScreenData.numConfigs 0
+AwtScreenData.root 8
+AwtScreenData.whitepixel 16
+AwtScreenData.blackpixel 24
+AwtScreenData.defaultConfig 32
+AwtScreenData.configs 40
+AwtScreenData 48
+XIMHotKeyTrigger.keysym 0
+XIMHotKeyTrigger.modifier 8
+XIMHotKeyTrigger.modifier_mask 12
+XIMHotKeyTrigger 16
+XCirculateEvent.type 0
+XCirculateEvent.serial 8
+XCirculateEvent.send_event 16
+XCirculateEvent.display 24
+XCirculateEvent.event 32
+XCirculateEvent.window 40
+XCirculateEvent.place 48
+XCirculateEvent 56
+Screen.ext_data 0
+Screen.display 8
+Screen.root 16
+Screen.width 24
+Screen.height 28
+Screen.mwidth 32
+Screen.mheight 36
+Screen.ndepths 40
+Screen.depths 48
+Screen.root_depth 56
+Screen.root_visual 64
+Screen.default_gc 72
+Screen.cmap 80
+Screen.white_pixel 88
+Screen.black_pixel 96
+Screen.max_maps 104
+Screen.min_maps 108
+Screen.backing_store 112
+Screen.save_unders 116
+Screen.root_input_mask 120
+Screen 128
+XMapRequestEvent.type 0
+XMapRequestEvent.serial 8
+XMapRequestEvent.send_event 16
+XMapRequestEvent.display 24
+XMapRequestEvent.parent 32
+XMapRequestEvent.window 40
+XMapRequestEvent 48
+XIMText.length 0
+XIMText.feedback 8
+XIMText.encoding_is_wchar 16
+XIMText.string 24
+XIMText 32
+XGraphicsExposeEvent.type 0
+XGraphicsExposeEvent.serial 8
+XGraphicsExposeEvent.send_event 16
+XGraphicsExposeEvent.display 24
+XGraphicsExposeEvent.drawable 32
+XGraphicsExposeEvent.x 40
+XGraphicsExposeEvent.y 44
+XGraphicsExposeEvent.width 48
+XGraphicsExposeEvent.height 52
+XGraphicsExposeEvent.count 56
+XGraphicsExposeEvent.major_code 60
+XGraphicsExposeEvent.minor_code 64
+XGraphicsExposeEvent 72
+XEvent.type 0
+XEvent.xany 0
+XEvent.xkey 0
+XEvent.xbutton 0
+XEvent.xmotion 0
+XEvent.xcrossing 0
+XEvent.xfocus 0
+XEvent.xexpose 0
+XEvent.xgraphicsexpose 0
+XEvent.xnoexpose 0
+XEvent.xvisibility 0
+XEvent.xcreatewindow 0
+XEvent.xdestroywindow 0
+XEvent.xunmap 0
+XEvent.xmap 0
+XEvent.xmaprequest 0
+XEvent.xreparent 0
+XEvent.xconfigure 0
+XEvent.xgravity 0
+XEvent.xresizerequest 0
+XEvent.xconfigurerequest 0
+XEvent.xcirculate 0
+XEvent.xcirculaterequest 0
+XEvent.xproperty 0
+XEvent.xselectionclear 0
+XEvent.xselectionrequest 0
+XEvent.xselection 0
+XEvent.xcolormap 0
+XEvent.xclient 0
+XEvent.xmapping 0
+XEvent.xerror 0
+XEvent.xkeymap 0
+XEvent.pad 0
+XEvent 192
+XRenderDirectFormat.red 0
+XRenderDirectFormat.redMask 2
+XRenderDirectFormat.green 4
+XRenderDirectFormat.greenMask 6
+XRenderDirectFormat.blue 8
+XRenderDirectFormat.blueMask 10
+XRenderDirectFormat.alpha 12
+XRenderDirectFormat.alphaMask 14
+XRenderDirectFormat 16
+ColorData.awt_Colors 0
+ColorData.awt_numICMcolors 8
+ColorData.awt_icmLUT 16
+ColorData.awt_icmLUT2Colors 24
+ColorData.img_grays 32
+ColorData.img_clr_tbl 40
+ColorData.img_oda_red 48
+ColorData.img_oda_green 56
+ColorData.img_oda_blue 64
+ColorData.pGrayInverseLutData 72
+ColorData.screendata 80
+ColorData 88
+XFontStruct.ext_data 0
+XFontStruct.fid 8
+XFontStruct.direction 16
+XFontStruct.min_char_or_byte2 20
+XFontStruct.max_char_or_byte2 24
+XFontStruct.min_byte1 28
+XFontStruct.max_byte1 32
+XFontStruct.all_chars_exist 36
+XFontStruct.n_properties 44
+XFontStruct.properties 48
+XFontStruct.min_bounds 56
+XFontStruct.max_bounds 68
+XFontStruct.per_char 80
+XFontStruct.ascent 88
+XFontStruct.descent 92
+XFontStruct 96
+XExtCodes.extension 0
+XExtCodes.major_opcode 4
+XExtCodes.first_event 8
+XExtCodes.first_error 12
+XExtCodes 16
+XFontSetExtents.max_ink_extent 0
+XFontSetExtents.max_logical_extent 8
+XFontSetExtents 16
+XSelectionEvent.type 0
+XSelectionEvent.serial 8
+XSelectionEvent.send_event 16
+XSelectionEvent.display 24
+XSelectionEvent.requestor 32
+XSelectionEvent.selection 40
+XSelectionEvent.target 48
+XSelectionEvent.property 56
+XSelectionEvent.time 64
+XSelectionEvent 72
+XArc.x 0
+XArc.y 2
+XArc.width 4
+XArc.height 6
+XArc.angle1 8
+XArc.angle2 10
+XArc 12
+XErrorEvent.type 0
+XErrorEvent.display 8
+XErrorEvent.resourceid 16
+XErrorEvent.serial 24
+XErrorEvent.error_code 32
+XErrorEvent.request_code 33
+XErrorEvent.minor_code 34
+XErrorEvent 40
+XConfigureRequestEvent.type 0
+XConfigureRequestEvent.serial 8
+XConfigureRequestEvent.send_event 16
+XConfigureRequestEvent.display 24
+XConfigureRequestEvent.parent 32
+XConfigureRequestEvent.window 40
+XConfigureRequestEvent.x 48
+XConfigureRequestEvent.y 52
+XConfigureRequestEvent.width 56
+XConfigureRequestEvent.height 60
+XConfigureRequestEvent.border_width 64
+XConfigureRequestEvent.above 72
+XConfigureRequestEvent.detail 80
+XConfigureRequestEvent.value_mask 88
+XConfigureRequestEvent 96
+ScreenFormat.ext_data 0
+ScreenFormat.depth 8
+ScreenFormat.bits_per_pixel 12
+ScreenFormat.scanline_pad 16
+ScreenFormat 24
+XButtonEvent.type 0
+XButtonEvent.serial 8
+XButtonEvent.send_event 16
+XButtonEvent.display 24
+XButtonEvent.window 32
+XButtonEvent.root 40
+XButtonEvent.subwindow 48
+XButtonEvent.time 56
+XButtonEvent.x 64
+XButtonEvent.y 68
+XButtonEvent.x_root 72
+XButtonEvent.y_root 76
+XButtonEvent.state 80
+XButtonEvent.button 84
+XButtonEvent.same_screen 88
+XButtonEvent 96
+XFontProp.name 0
+XFontProp.card32 8
+XFontProp 16
+XIMValuesList.count_values 0
+XIMValuesList.supported_values 8
+XIMValuesList 16
+XKeymapEvent.type 0
+XKeymapEvent.serial 8
+XKeymapEvent.send_event 16
+XKeymapEvent.display 24
+XKeymapEvent.window 32
+XKeymapEvent.key_vector 40
+XKeymapEvent 72
+XTextItem16.chars 0
+XTextItem16.nchars 8
+XTextItem16.delta 12
+XTextItem16.font 16
+XTextItem16 24
+XIMPreeditDrawCallbackStruct.caret 0
+XIMPreeditDrawCallbackStruct.chg_first 4
+XIMPreeditDrawCallbackStruct.chg_length 8
+XIMPreeditDrawCallbackStruct.text 16
+XIMPreeditDrawCallbackStruct 24
+XVisualInfo.visual 0
+XVisualInfo.visualid 8
+XVisualInfo.screen 16
+XVisualInfo.depth 20
+XVisualInfo.class 24
+XVisualInfo.red_mask 32
+XVisualInfo.green_mask 40
+XVisualInfo.blue_mask 48
+XVisualInfo.colormap_size 56
+XVisualInfo.bits_per_rgb 60
+XVisualInfo 64
+XkbControlsNotifyEvent.type 0
+XkbControlsNotifyEvent.serial 8
+XkbControlsNotifyEvent.send_event 16
+XkbControlsNotifyEvent.display 24
+XkbControlsNotifyEvent.time 32
+XkbControlsNotifyEvent.xkb_type 40
+XkbControlsNotifyEvent.device 44
+XkbControlsNotifyEvent.changed_ctrls 48
+XkbControlsNotifyEvent.enabled_ctrls 52
+XkbControlsNotifyEvent.enabled_ctrl_changes 56
+XkbControlsNotifyEvent.num_groups 60
+XkbControlsNotifyEvent.keycode 64
+XkbControlsNotifyEvent.event_type 65
+XkbControlsNotifyEvent.req_major 66
+XkbControlsNotifyEvent.req_minor 67
+XkbControlsNotifyEvent 72
+PropMwmHints.flags 0
+PropMwmHints.functions 8
+PropMwmHints.decorations 16
+PropMwmHints.inputMode 24
+PropMwmHints.status 32
+PropMwmHints 40
+XClientMessageEvent.type 0
+XClientMessageEvent.serial 8
+XClientMessageEvent.send_event 16
+XClientMessageEvent.display 24
+XClientMessageEvent.window 32
+XClientMessageEvent.message_type 40
+XClientMessageEvent.format 48
+XClientMessageEvent.data 56
+XClientMessageEvent 96
+XAnyEvent.type 0
+XAnyEvent.serial 8
+XAnyEvent.send_event 16
+XAnyEvent.display 24
+XAnyEvent.window 32
+XAnyEvent 40
+XkbIndicatorNotifyEvent.type 0
+XkbIndicatorNotifyEvent.serial 8
+XkbIndicatorNotifyEvent.send_event 16
+XkbIndicatorNotifyEvent.display 24
+XkbIndicatorNotifyEvent.time 32
+XkbIndicatorNotifyEvent.xkb_type 40
+XkbIndicatorNotifyEvent.device 44
+XkbIndicatorNotifyEvent.changed 48
+XkbIndicatorNotifyEvent.state 52
+XkbIndicatorNotifyEvent 56
+XIMPreeditStateNotifyCallbackStruct.state 0
+XIMPreeditStateNotifyCallbackStruct 8
+XkbAnyEvent.type 0
+XkbAnyEvent.serial 8
+XkbAnyEvent.send_event 16
+XkbAnyEvent.display 24
+XkbAnyEvent.time 32
+XkbAnyEvent.xkb_type 40
+XkbAnyEvent.device 44
+XkbAnyEvent 48
+XMotionEvent.type 0
+XMotionEvent.serial 8
+XMotionEvent.send_event 16
+XMotionEvent.display 24
+XMotionEvent.window 32
+XMotionEvent.root 40
+XMotionEvent.subwindow 48
+XMotionEvent.time 56
+XMotionEvent.x 64
+XMotionEvent.y 68
+XMotionEvent.x_root 72
+XMotionEvent.y_root 76
+XMotionEvent.state 80
+XMotionEvent.is_hint 84
+XMotionEvent.same_screen 88
+XMotionEvent 96
+XIMHotKeyTriggers.num_hot_key 0
+XIMHotKeyTriggers.key 8
+XIMHotKeyTriggers 16
+XIMStyles.count_styles 0
+XIMStyles.supported_styles 8
+XIMStyles 16
+XkbExtensionDeviceNotifyEvent.type 0
+XkbExtensionDeviceNotifyEvent.serial 8
+XkbExtensionDeviceNotifyEvent.send_event 16
+XkbExtensionDeviceNotifyEvent.display 24
+XkbExtensionDeviceNotifyEvent.time 32
+XkbExtensionDeviceNotifyEvent.xkb_type 40
+XkbExtensionDeviceNotifyEvent.device 44
+XkbExtensionDeviceNotifyEvent.reason 48
+XkbExtensionDeviceNotifyEvent.supported 52
+XkbExtensionDeviceNotifyEvent.unsupported 56
+XkbExtensionDeviceNotifyEvent.first_btn 60
+XkbExtensionDeviceNotifyEvent.num_btns 64
+XkbExtensionDeviceNotifyEvent.leds_defined 68
+XkbExtensionDeviceNotifyEvent.led_state 72
+XkbExtensionDeviceNotifyEvent.led_class 76
+XkbExtensionDeviceNotifyEvent.led_id 80
+XkbExtensionDeviceNotifyEvent 88
+XwcTextItem.chars 0
+XwcTextItem.nchars 8
+XwcTextItem.delta 12
+XwcTextItem.font_set 16
+XwcTextItem 24
+XClassHint.res_name 0
+XClassHint.res_class 8
+XClassHint 16
+XChar2b.byte1 0
+XChar2b.byte2 1
+XChar2b 2
+XSetWindowAttributes.background_pixmap 0
+XSetWindowAttributes.background_pixel 8
+XSetWindowAttributes.border_pixmap 16
+XSetWindowAttributes.border_pixel 24
+XSetWindowAttributes.bit_gravity 32
+XSetWindowAttributes.win_gravity 36
+XSetWindowAttributes.backing_store 40
+XSetWindowAttributes.backing_planes 48
+XSetWindowAttributes.backing_pixel 56
+XSetWindowAttributes.save_under 64
+XSetWindowAttributes.event_mask 72
+XSetWindowAttributes.do_not_propagate_mask 80
+XSetWindowAttributes.override_redirect 88
+XSetWindowAttributes.colormap 96
+XSetWindowAttributes.cursor 104
+XSetWindowAttributes 112
+XRenderPictFormat.id 0
+XRenderPictFormat.type 8
+XRenderPictFormat.depth 12
+XRenderPictFormat.direct 16
+XRenderPictFormat.colormap 32
+XRenderPictFormat 40
+XReparentEvent.type 0
+XReparentEvent.serial 8
+XReparentEvent.send_event 16
+XReparentEvent.display 24
+XReparentEvent.event 32
+XReparentEvent.window 40
+XReparentEvent.parent 48
+XReparentEvent.x 56
+XReparentEvent.y 60
+XReparentEvent.override_redirect 64
+XReparentEvent 72
+XCirculateRequestEvent.type 0
+XCirculateRequestEvent.serial 8
+XCirculateRequestEvent.send_event 16
+XCirculateRequestEvent.display 24
+XCirculateRequestEvent.parent 32
+XCirculateRequestEvent.window 40
+XCirculateRequestEvent.place 48
+XCirculateRequestEvent 56
+XImage.width 0
+XImage.height 4
+XImage.xoffset 8
+XImage.format 12
+XImage.data 16
+XImage.byte_order 24
+XImage.bitmap_unit 28
+XImage.bitmap_bit_order 32
+XImage.bitmap_pad 36
+XImage.depth 40
+XImage.bytes_per_line 44
+XImage.bits_per_pixel 48
+XImage.red_mask 56
+XImage.green_mask 64
+XImage.blue_mask 72
+XImage.obdata 80
+XImage.f.create_image 88
+XImage.f.destroy_image 96
+XImage.f.get_pixel 104
+XImage.f.put_pixel 112
+XImage.f.sub_image 120
+XImage.f.add_pixel 128
+XImage 136
+XKeyEvent.type 0
+XKeyEvent.serial 8
+XKeyEvent.send_event 16
+XKeyEvent.display 24
+XKeyEvent.window 32
+XKeyEvent.root 40
+XKeyEvent.subwindow 48
+XKeyEvent.time 56
+XKeyEvent.x 64
+XKeyEvent.y 68
+XKeyEvent.x_root 72
+XKeyEvent.y_root 76
+XKeyEvent.state 80
+XKeyEvent.keycode 84
+XKeyEvent.same_screen 88
+XKeyEvent 96
+XkbActionMessageEvent.type 0
+XkbActionMessageEvent.serial 8
+XkbActionMessageEvent.send_event 16
+XkbActionMessageEvent.display 24
+XkbActionMessageEvent.time 32
+XkbActionMessageEvent.xkb_type 40
+XkbActionMessageEvent.device 44
+XkbActionMessageEvent.keycode 48
+XkbActionMessageEvent.press 52
+XkbActionMessageEvent.key_event_follows 56
+XkbActionMessageEvent.group 60
+XkbActionMessageEvent.mods 64
+XkbActionMessageEvent.message 68
+XkbActionMessageEvent 80
+XdbeSwapInfo.swap_window 0
+XdbeSwapInfo.swap_action 8
+XdbeSwapInfo 16
+XTextItem.chars 0
+XTextItem.nchars 8
+XTextItem.delta 12
+XTextItem.font 16
+XTextItem 24
+XModifierKeymap.max_keypermod 0
+XModifierKeymap.modifiermap 8
+XModifierKeymap 16
+XCharStruct.lbearing 0
+XCharStruct.rbearing 2
+XCharStruct.width 4
+XCharStruct.ascent 6
+XCharStruct.descent 8
+XCharStruct.attributes 10
+XCharStruct 12
+XGravityEvent.type 0
+XGravityEvent.serial 8
+XGravityEvent.send_event 16
+XGravityEvent.display 24
+XGravityEvent.event 32
+XGravityEvent.window 40
+XGravityEvent.x 48
+XGravityEvent.y 52
+XGravityEvent 56
+Visual.ext_data 0
+Visual.visualid 8
+Visual.class 16
+Visual.red_mask 24
+Visual.green_mask 32
+Visual.blue_mask 40
+Visual.bits_per_rgb 48
+Visual.map_entries 52
+Visual 56
+XOMOrientation.num_orientation 0
+XOMOrientation.orientation 8
+XOMOrientation 16
+XkbAccessXNotifyEvent.type 0
+XkbAccessXNotifyEvent.serial 8
+XkbAccessXNotifyEvent.send_event 16
+XkbAccessXNotifyEvent.display 24
+XkbAccessXNotifyEvent.time 32
+XkbAccessXNotifyEvent.xkb_type 40
+XkbAccessXNotifyEvent.device 44
+XkbAccessXNotifyEvent.detail 48
+XkbAccessXNotifyEvent.keycode 52
+XkbAccessXNotifyEvent.sk_delay 56
+XkbAccessXNotifyEvent.debounce_delay 60
+XkbAccessXNotifyEvent 64
+XWindowAttributes.x 0
+XWindowAttributes.y 4
+XWindowAttributes.width 8
+XWindowAttributes.height 12
+XWindowAttributes.border_width 16
+XWindowAttributes.depth 20
+XWindowAttributes.visual 24
+XWindowAttributes.root 32
+XWindowAttributes.class 40
+XWindowAttributes.bit_gravity 44
+XWindowAttributes.win_gravity 48
+XWindowAttributes.backing_store 52
+XWindowAttributes.backing_planes 56
+XWindowAttributes.backing_pixel 64
+XWindowAttributes.save_under 72
+XWindowAttributes.colormap 80
+XWindowAttributes.map_installed 88
+XWindowAttributes.map_state 92
+XWindowAttributes.all_event_masks 96
+XWindowAttributes.your_event_mask 104
+XWindowAttributes.do_not_propagate_mask 112
+XWindowAttributes.override_redirect 120
+XWindowAttributes.screen 128
+XWindowAttributes 136
+XmbTextItem.chars 0
+XmbTextItem.nchars 8
+XmbTextItem.delta 12
+XmbTextItem.font_set 16
+XmbTextItem 24
+XMappingEvent.type 0
+XMappingEvent.serial 8
+XMappingEvent.send_event 16
+XMappingEvent.display 24
+XMappingEvent.window 32
+XMappingEvent.request 40
+XMappingEvent.first_keycode 44
+XMappingEvent.count 48
+XMappingEvent 56
+XSizeHints.flags 0
+XSizeHints.x 8
+XSizeHints.y 12
+XSizeHints.width 16
+XSizeHints.height 20
+XSizeHints.min_width 24
+XSizeHints.min_height 28
+XSizeHints.max_width 32
+XSizeHints.max_height 36
+XSizeHints.width_inc 40
+XSizeHints.height_inc 44
+XSizeHints.min_aspect.x 48
+XSizeHints.min_aspect.y 52
+XSizeHints.max_aspect.x 56
+XSizeHints.max_aspect.y 60
+XSizeHints.base_width 64
+XSizeHints.base_height 68
+XSizeHints.win_gravity 72
+XSizeHints 80
+XUnmapEvent.type 0
+XUnmapEvent.serial 8
+XUnmapEvent.send_event 16
+XUnmapEvent.display 24
+XUnmapEvent.event 32
+XUnmapEvent.window 40
+XUnmapEvent.from_configure 48
+XUnmapEvent 56
+awtImageData.Depth 0
+awtImageData.wsImageFormat 4
+awtImageData.clrdata 16
+awtImageData.convert 48
+awtImageData 560
+XkbStateNotifyEvent.type 0
+XkbStateNotifyEvent.serial 8
+XkbStateNotifyEvent.send_event 16
+XkbStateNotifyEvent.display 24
+XkbStateNotifyEvent.time 32
+XkbStateNotifyEvent.xkb_type 40
+XkbStateNotifyEvent.device 44
+XkbStateNotifyEvent.changed 48
+XkbStateNotifyEvent.group 52
+XkbStateNotifyEvent.base_group 56
+XkbStateNotifyEvent.latched_group 60
+XkbStateNotifyEvent.locked_group 64
+XkbStateNotifyEvent.mods 68
+XkbStateNotifyEvent.base_mods 72
+XkbStateNotifyEvent.latched_mods 76
+XkbStateNotifyEvent.locked_mods 80
+XkbStateNotifyEvent.compat_state 84
+XkbStateNotifyEvent.grab_mods 88
+XkbStateNotifyEvent.compat_grab_mods 89
+XkbStateNotifyEvent.lookup_mods 90
+XkbStateNotifyEvent.compat_lookup_mods 91
+XkbStateNotifyEvent.ptr_buttons 92
+XkbStateNotifyEvent.keycode 96
+XkbStateNotifyEvent.event_type 97
+XkbStateNotifyEvent.req_major 98
+XkbStateNotifyEvent.req_minor 99
+XkbStateNotifyEvent 104
+XExposeEvent.type 0
+XExposeEvent.serial 8
+XExposeEvent.send_event 16
+XExposeEvent.display 24
+XExposeEvent.window 32
+XExposeEvent.x 40
+XExposeEvent.y 44
+XExposeEvent.width 48
+XExposeEvent.height 52
+XExposeEvent.count 56
+XExposeEvent 64
+XkbMapNotifyEvent.type 0
+XkbMapNotifyEvent.serial 8
+XkbMapNotifyEvent.send_event 16
+XkbMapNotifyEvent.display 24
+XkbMapNotifyEvent.time 32
+XkbMapNotifyEvent.xkb_type 40
+XkbMapNotifyEvent.device 44
+XkbMapNotifyEvent.changed 48
+XkbMapNotifyEvent.flags 52
+XkbMapNotifyEvent.first_type 56
+XkbMapNotifyEvent.num_types 60
+XkbMapNotifyEvent.min_key_code 64
+XkbMapNotifyEvent.max_key_code 65
+XkbMapNotifyEvent.first_key_sym 66
+XkbMapNotifyEvent.first_key_act 67
+XkbMapNotifyEvent.first_key_behavior 68
+XkbMapNotifyEvent.first_key_explicit 69
+XkbMapNotifyEvent.first_modmap_key 70
+XkbMapNotifyEvent.first_vmodmap_key 71
+XkbMapNotifyEvent.num_key_syms 72
+XkbMapNotifyEvent.num_key_acts 76
+XkbMapNotifyEvent.num_key_behaviors 80
+XkbMapNotifyEvent.num_key_explicit 84
+XkbMapNotifyEvent.num_modmap_keys 88
+XkbMapNotifyEvent.num_vmodmap_keys 92
+XkbMapNotifyEvent.vmods 96
+XkbMapNotifyEvent 104
+XGCValues.function 0
+XGCValues.plane_mask 8
+XGCValues.foreground 16
+XGCValues.background 24
+XGCValues.line_width 32
+XGCValues.line_style 36
+XGCValues.cap_style 40
+XGCValues.join_style 44
+XGCValues.fill_style 48
+XGCValues.fill_rule 52
+XGCValues.arc_mode 56
+XGCValues.tile 64
+XGCValues.stipple 72
+XGCValues.ts_x_origin 80
+XGCValues.ts_y_origin 84
+XGCValues.font 88
+XGCValues.subwindow_mode 96
+XGCValues.graphics_exposures 100
+XGCValues.clip_x_origin 104
+XGCValues.clip_y_origin 108
+XGCValues.clip_mask 112
+XGCValues.dash_offset 120
+XGCValues.dashes 124
+XGCValues 128
+XFocusChangeEvent.type 0
+XFocusChangeEvent.serial 8
+XFocusChangeEvent.send_event 16
+XFocusChangeEvent.display 24
+XFocusChangeEvent.window 32
+XFocusChangeEvent.mode 40
+XFocusChangeEvent.detail 44
+XFocusChangeEvent 48
+XPixmapFormatValues.depth 0
+XPixmapFormatValues.bits_per_pixel 4
+XPixmapFormatValues.scanline_pad 8
+XPixmapFormatValues 12
+XMapEvent.type 0
+XMapEvent.serial 8
+XMapEvent.send_event 16
+XMapEvent.display 24
+XMapEvent.event 32
+XMapEvent.window 40
+XMapEvent.override_redirect 48
+XMapEvent 56
+XkbBellNotifyEvent.type 0
+XkbBellNotifyEvent.serial 8
+XkbBellNotifyEvent.send_event 16
+XkbBellNotifyEvent.display 24
+XkbBellNotifyEvent.time 32
+XkbBellNotifyEvent.xkb_type 40
+XkbBellNotifyEvent.device 44
+XkbBellNotifyEvent.percent 48
+XkbBellNotifyEvent.pitch 52
+XkbBellNotifyEvent.duration 56
+XkbBellNotifyEvent.bell_class 60
+XkbBellNotifyEvent.bell_id 64
+XkbBellNotifyEvent.name 72
+XkbBellNotifyEvent.window 80
+XkbBellNotifyEvent.event_only 88
+XkbBellNotifyEvent 96
+XIMStringConversionText.length 0
+XIMStringConversionText.feedback 8
+XIMStringConversionText.encoding_is_wchar 16
+XIMStringConversionText.string 24
+XIMStringConversionText 32
+XKeyboardState.key_click_percent 0
+XKeyboardState.bell_percent 4
+XKeyboardState.bell_pitch 8
+XKeyboardState.bell_duration 12
+XKeyboardState.led_mask 16
+XKeyboardState.global_auto_repeat 24
+XKeyboardState.auto_repeats 28
+XKeyboardState 64
+XkbEvent.type 0
+XkbEvent.any 0
+XkbEvent.new_kbd 0
+XkbEvent.map 0
+XkbEvent.state 0
+XkbEvent.ctrls 0
+XkbEvent.indicators 0
+XkbEvent.names 0
+XkbEvent.compat 0
+XkbEvent.bell 0
+XkbEvent.message 0
+XkbEvent.accessx 0
+XkbEvent.device 0
+XkbEvent.core 0
+XkbEvent 192
+XPoint.x 0
+XPoint.y 2
+XPoint 4
+XSegment.x1 0
+XSegment.y1 2
+XSegment.x2 4
+XSegment.y2 6
+XSegment 8
+XIconSize.min_width 0
+XIconSize.min_height 4
+XIconSize.max_width 8
+XIconSize.max_height 12
+XIconSize.width_inc 16
+XIconSize.height_inc 20
+XIconSize 24
+XIMCallback.client_data 0
+XIMCallback.callback 8
+XIMCallback 16
+XConfigureEvent.type 0
+XConfigureEvent.serial 8
+XConfigureEvent.send_event 16
+XConfigureEvent.display 24
+XConfigureEvent.event 32
+XConfigureEvent.window 40
+XConfigureEvent.x 48
+XConfigureEvent.y 52
+XConfigureEvent.width 56
+XConfigureEvent.height 60
+XConfigureEvent.border_width 64
+XConfigureEvent.above 72
+XConfigureEvent.override_redirect 80
+XConfigureEvent 88
+XRectangle.x 0
+XRectangle.y 2
+XRectangle.width 4
+XRectangle.height 6
+XRectangle 8
+XkbNamesNotifyEvent.type 0
+XkbNamesNotifyEvent.serial 8
+XkbNamesNotifyEvent.send_event 16
+XkbNamesNotifyEvent.display 24
+XkbNamesNotifyEvent.time 32
+XkbNamesNotifyEvent.xkb_type 40
+XkbNamesNotifyEvent.device 44
+XkbNamesNotifyEvent.changed 48
+XkbNamesNotifyEvent.first_type 52
+XkbNamesNotifyEvent.num_types 56
+XkbNamesNotifyEvent.first_lvl 60
+XkbNamesNotifyEvent.num_lvls 64
+XkbNamesNotifyEvent.num_aliases 68
+XkbNamesNotifyEvent.num_radio_groups 72
+XkbNamesNotifyEvent.changed_vmods 76
+XkbNamesNotifyEvent.changed_groups 80
+XkbNamesNotifyEvent.changed_indicators 84
+XkbNamesNotifyEvent.first_key 88
+XkbNamesNotifyEvent.num_keys 92
+XkbNamesNotifyEvent 96
+XCreateWindowEvent.type 0
+XCreateWindowEvent.serial 8
+XCreateWindowEvent.send_event 16
+XCreateWindowEvent.display 24
+XCreateWindowEvent.parent 32
+XCreateWindowEvent.window 40
+XCreateWindowEvent.x 48
+XCreateWindowEvent.y 52
+XCreateWindowEvent.width 56
+XCreateWindowEvent.height 60
+XCreateWindowEvent.border_width 64
+XCreateWindowEvent.override_redirect 68
+XCreateWindowEvent 72
+XVisibilityEvent.type 0
+XVisibilityEvent.serial 8
+XVisibilityEvent.send_event 16
+XVisibilityEvent.display 24
+XVisibilityEvent.window 32
+XVisibilityEvent.state 40
+XVisibilityEvent 48
+XWMHints.flags 0
+XWMHints.initial_state 12
+XWMHints.icon_pixmap 16
+XWMHints.icon_window 24
+XWMHints.icon_x 32
+XWMHints.icon_y 36
+XWMHints.icon_mask 40
+XWMHints.input 8
+XWMHints.window_group 48
+XWMHints 56
+XCrossingEvent.type 0
+XCrossingEvent.serial 8
+XCrossingEvent.send_event 16
+XCrossingEvent.display 24
+XCrossingEvent.window 32
+XCrossingEvent.root 40
+XCrossingEvent.subwindow 48
+XCrossingEvent.time 56
+XCrossingEvent.x 64
+XCrossingEvent.y 68
+XCrossingEvent.x_root 72
+XCrossingEvent.y_root 76
+XCrossingEvent.mode 80
+XCrossingEvent.detail 84
+XCrossingEvent.same_screen 88
+XCrossingEvent.focus 92
+XCrossingEvent.state 96
+XCrossingEvent 104
+XSelectionRequestEvent.type 0
+XSelectionRequestEvent.serial 8
+XSelectionRequestEvent.send_event 16
+XSelectionRequestEvent.display 24
+XSelectionRequestEvent.owner 32
+XSelectionRequestEvent.requestor 40
+XSelectionRequestEvent.selection 48
+XSelectionRequestEvent.target 56
+XSelectionRequestEvent.property 64
+XSelectionRequestEvent.time 72
+XSelectionRequestEvent 80
+XNoExposeEvent.type 0
+XNoExposeEvent.serial 8
+XNoExposeEvent.send_event 16
+XNoExposeEvent.display 24
+XNoExposeEvent.drawable 32
+XNoExposeEvent.major_code 40
+XNoExposeEvent.minor_code 44
+XNoExposeEvent 48
+XHostAddress.family 0
+XHostAddress.length 4
+XHostAddress.address 8
+XHostAddress 16
+XColormapEvent.type 0
+XColormapEvent.serial 8
+XColormapEvent.send_event 16
+XColormapEvent.display 24
+XColormapEvent.window 32
+XColormapEvent.colormap 40
+XColormapEvent.new 48
+XColormapEvent.state 52
+XColormapEvent 56
+ColorEntry.r 0
+ColorEntry.g 1
+ColorEntry.b 2
+ColorEntry.flags 3
+ColorEntry 4
+XResizeRequestEvent.type 0
+XResizeRequestEvent.serial 8
+XResizeRequestEvent.send_event 16
+XResizeRequestEvent.display 24
+XResizeRequestEvent.window 32
+XResizeRequestEvent.width 40
+XResizeRequestEvent.height 44
+XResizeRequestEvent 48
+Depth.depth 0
+Depth.nvisuals 4
+Depth.visuals 8
+Depth 16
+XPropertyEvent.type 0
+XPropertyEvent.serial 8
+XPropertyEvent.send_event 16
+XPropertyEvent.display 24
+XPropertyEvent.window 32
+XPropertyEvent.atom 40
+XPropertyEvent.time 48
+XPropertyEvent.state 56
+XPropertyEvent 64
+XDestroyWindowEvent.type 0
+XDestroyWindowEvent.serial 8
+XDestroyWindowEvent.send_event 16
+XDestroyWindowEvent.display 24
+XDestroyWindowEvent.event 32
+XDestroyWindowEvent.window 40
+XDestroyWindowEvent 48
+XStandardColormap.colormap 0
+XStandardColormap.red_max 8
+XStandardColormap.red_mult 16
+XStandardColormap.green_max 24
+XStandardColormap.green_mult 32
+XStandardColormap.blue_max 40
+XStandardColormap.blue_mult 48
+XStandardColormap.base_pixel 56
+XStandardColormap.visualid 64
+XStandardColormap.killid 72
+XStandardColormap 80
+XComposeStatus.compose_ptr 0
+XComposeStatus.chars_matched 8
+XComposeStatus 16
+AwtGraphicsConfigData.awt_depth 0
+AwtGraphicsConfigData.awt_cmap 8
+AwtGraphicsConfigData.awt_visInfo 16
+AwtGraphicsConfigData.awt_num_colors 80
+AwtGraphicsConfigData.awtImage 88
+AwtGraphicsConfigData.AwtColorMatch 96
+AwtGraphicsConfigData.monoImage 104
+AwtGraphicsConfigData.monoPixmap 112
+AwtGraphicsConfigData.monoPixmapWidth 120
+AwtGraphicsConfigData.monoPixmapHeight 124
+AwtGraphicsConfigData.monoPixmapGC 128
+AwtGraphicsConfigData.pixelStride 136
+AwtGraphicsConfigData.color_data 144
+AwtGraphicsConfigData.glxInfo 152
+AwtGraphicsConfigData.isTranslucencySupported 160
+AwtGraphicsConfigData.renderPictFormat 168
+AwtGraphicsConfigData 208
+XColor.pixel 0
+XColor.red 8
+XColor.green 10
+XColor.blue 12
+XColor.flags 14
+XColor.pad 15
+XColor 16
+XTextProperty.value 0
+XTextProperty.encoding 8
+XTextProperty.format 16
+XTextProperty.nitems 24
+XTextProperty 32
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/data/x11wrappergen/xlibtypes.txt Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,1040 @@
+//
+//
+// This file is used for automated generation of java classes to wrap native structures.
+// The detail on format of this file see WrapperGenerator.java
+//
+// WARNING: if you modified this file, you need to regenerate sizes.64-solaris-i386
+//
+
+XExtData
+ number int
+ next pointer XExtData
+ free_private pointer
+ private_data pointer
+XIMText
+ length short
+ feedback pointer
+ encoding_is_wchar Bool
+ string pointer
+XSetWindowAttributes
+ background_pixmap long
+ background_pixel long
+ border_pixmap long
+ border_pixel long
+ bit_gravity int
+ win_gravity int
+ backing_store int
+ backing_planes long
+ backing_pixel long
+ save_under Bool
+ event_mask long
+ do_not_propagate_mask long
+ override_redirect Bool
+ colormap long
+ cursor long
+Visual
+ ext_data pointer XExtData
+ visualid long
+ class int
+ red_mask long
+ green_mask long
+ blue_mask long
+ bits_per_rgb int
+ map_entries int
+Depth
+ depth int
+ nvisuals int
+ visuals pointer Visual
+XClassHint
+ res_name pointer
+ res_class pointer
+XIMPreeditCaretCallbackStruct
+ position int
+ direction int
+ style int
+XmbTextItem
+ chars pointer byte
+ nchars int
+ delta int
+ font_set pointer
+XStandardColormap
+ colormap long
+ red_max long
+ red_mult long
+ green_max long
+ green_mult long
+ blue_max long
+ blue_mult long
+ base_pixel long
+ visualid long
+ killid long
+XIMCallback
+ client_data pointer
+ callback pointer
+XKeyboardState
+ key_click_percent int
+ bell_percent int
+ bell_pitch int
+ bell_duration int
+ led_mask long
+ global_auto_repeat int
+ auto_repeats array byte 32
+XCirculateEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ event long
+ window long
+ place int
+XWMHints
+ flags long
+ initial_state int
+ icon_pixmap pointer
+ icon_window long
+ icon_x int
+ icon_y int
+ icon_mask long
+ input Bool
+ window_group long
+XCrossingEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ root long
+ subwindow long
+ time ulong
+ x int
+ y int
+ x_root int
+ y_root int
+ mode int
+ detail int
+ same_screen Bool
+ focus Bool
+ state int
+XIMStringConversionText
+ length short
+ feedback pointer
+ encoding_is_wchar Bool
+ string pointer
+XKeymapEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ key_vector array byte 32
+XDestroyWindowEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ event long
+ window long
+XComposeStatus
+ compose_ptr pointer
+ chars_matched int
+XTextItem
+ chars pointer
+ nchars int
+ delta int
+ font long
+XIMStringConversionCallbackStruct
+ position short
+ direction int
+ operation short
+ factor short
+ text pointer XIMStringConversionText
+XOMFontInfo
+ num_font int
+ font_struct_list pointer
+ font_name_list pointer
+XClientMessageEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ message_type Atom
+ format int
+ data array long 5
+XMapRequestEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ parent long
+ window long
+XSelectionEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ requestor long
+ selection Atom
+ target Atom
+ property Atom
+ time ulong
+XVisibilityEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ state int
+XConfigureRequestEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ parent long
+ window long
+ x int
+ y int
+ width int
+ height int
+ border_width int
+ above long
+ detail int
+ value_mask long
+Screen
+ ext_data pointer XExtData
+ display pointer
+ root long
+ width int
+ height int
+ mwidth int
+ mheight int
+ ndepths int
+ depths pointer Depth
+ root_depth int
+ root_visual pointer Visual
+ default_gc long
+ cmap long
+ white_pixel long
+ black_pixel long
+ max_maps int
+ min_maps int
+ backing_store int
+ save_unders Bool
+ root_input_mask long
+XTextProperty
+ value pointer byte
+ encoding long
+ format int
+ nitems long
+XWindowChanges
+ x int
+ y int
+ width int
+ height int
+ border_width int
+ sibling long
+ stack_mode int
+XVisualInfo
+ visual pointer
+ visualid long
+ screen int
+ depth int
+ class int
+ red_mask long
+ green_mask long
+ blue_mask long
+ colormap_size int
+ bits_per_rgb int
+XRenderDirectFormat
+ red short
+ redMask short
+ green short
+ greenMask short
+ blue short
+ blueMask short
+ alpha short
+ alphaMask short
+XRenderPictFormat
+ id long
+ type int
+ depth int
+ direct struct XRenderDirectFormat
+ colormap long
+XIMHotKeyTrigger
+ keysym long
+ modifier int
+ modifier_mask int
+XIMHotKeyTriggers
+ num_hot_key int
+ key pointer XIMHotKeyTrigger
+XIMStyles
+ count_styles short
+ supported_styles pointer long
+XIMStatusDrawCallbackStruct
+ type int
+ data long
+XWindowAttributes
+ x int
+ y int
+ width int
+ height int
+ border_width int
+ depth int
+ visual pointer Visual
+ root long
+ class int
+ bit_gravity int
+ win_gravity int
+ backing_store int
+ backing_planes long
+ backing_pixel long
+ save_under Bool
+ colormap long
+ map_installed Bool
+ map_state int
+ all_event_masks long
+ your_event_mask long
+ do_not_propagate_mask long
+ override_redirect Bool
+ screen pointer Screen
+XExtCodes
+ extension int
+ major_opcode int
+ first_event int
+ first_error int
+XPropertyEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ atom Atom
+ time ulong
+ state int
+
+XSizeHints
+ flags long
+ x int
+ y int
+ width int
+ height int
+ min_width int
+ min_height int
+ max_width int
+ max_height int
+ width_inc int
+ height_inc int
+ min_aspect.x int
+ min_aspect.y int
+ max_aspect.x int
+ max_aspect.y int
+ base_width int
+ base_height int
+ win_gravity int
+XIconSize
+ min_width int
+ min_height int
+ max_width int
+ max_height int
+ width_inc int
+ height_inc int
+XwcTextItem
+ chars pointer
+ nchars int
+ delta int
+ font_set pointer
+XIMPreeditDrawCallbackStruct
+ caret int
+ chg_first int
+ chg_length int
+ text pointer XIMText
+XErrorEvent
+ type int
+ display long
+ resourceid long
+ serial long
+ error_code byte
+ request_code byte
+ minor_code byte
+XSelectionClearEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ selection Atom
+ time ulong
+XKeyboardControl
+ key_click_percent int
+ bell_percent int
+ bell_pitch int
+ bell_duration int
+ led int
+ led_mode int
+ key int
+ auto_repeat_mode int
+XAnyEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+XTimeCoord
+ time ulong
+ x short
+ y short
+XGravityEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ event long
+ window long
+ x int
+ y int
+XCharStruct
+ lbearing short
+ rbearing short
+ width short
+ ascent short
+ descent short
+ attributes short
+XArc
+ x short
+ y short
+ width short
+ height short
+ angle1 short
+ angle2 short
+XPoint
+ x short
+ y short
+ScreenFormat
+ ext_data pointer XExtData
+ depth int
+ bits_per_pixel int
+ scanline_pad int
+XFocusChangeEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ mode int
+ detail int
+XResizeRequestEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ width int
+ height int
+
+XRectangle
+ x short
+ y short
+ width short
+ height short
+
+XMappingEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ request int
+ first_keycode int
+ count int
+XSegment
+ x1 short
+ y1 short
+ x2 short
+ y2 short
+XColor
+ pixel long
+ red short
+ green short
+ blue short
+ flags byte
+ pad byte
+XKeyEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ root long
+ subwindow long
+ time ulong
+ x int
+ y int
+ x_root int
+ y_root int
+ state int
+ keycode int
+ same_screen Bool
+XReparentEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ event long
+ window long
+ parent long
+ x int
+ y int
+ override_redirect Bool
+XMotionEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ root long
+ subwindow long
+ time ulong
+ x int
+ y int
+ x_root int
+ y_root int
+ state int
+ is_hint byte
+ same_screen Bool
+XButtonEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ root long
+ subwindow long
+ time ulong
+ x int
+ y int
+ x_root int
+ y_root int
+ state int
+ button int
+ same_screen Bool
+XHostAddress
+ family int
+ length int
+ address pointer
+XOMCharSetList
+ charset_count int
+ charset_list pointer
+XNoExposeEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ drawable long
+ major_code int
+ minor_code int
+XSelectionRequestEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ owner long
+ requestor long
+ selection Atom
+ target Atom
+ property Atom
+ time ulong
+XGCValues
+ function int
+ plane_mask long
+ foreground long
+ background long
+ line_width int
+ line_style int
+ cap_style int
+ join_style int
+ fill_style int
+ fill_rule int
+ arc_mode int
+ tile long
+ stipple long
+ ts_x_origin int
+ ts_y_origin int
+ font long
+ subwindow_mode int
+ graphics_exposures Bool
+ clip_x_origin int
+ clip_y_origin int
+ clip_mask long
+ dash_offset int
+ dashes byte
+XImage
+ width int
+ height int
+ xoffset int
+ format int
+ data pointer byte
+ byte_order int
+ bitmap_unit int
+ bitmap_bit_order int
+ bitmap_pad int
+ depth int
+ bytes_per_line int
+ bits_per_pixel int
+ red_mask long
+ green_mask long
+ blue_mask long
+ obdata pointer
+ f.create_image pointer
+ f.destroy_image pointer
+ f.get_pixel pointer
+ f.put_pixel pointer
+ f.sub_image pointer
+ f.add_pixel pointer
+XIMValuesList
+ count_values short
+ supported_values pointer
+XColormapEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ colormap long
+ new Bool
+ state int
+XIMPreeditStateNotifyCallbackStruct
+ state long
+XCreateWindowEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ parent long
+ window long
+ x int
+ y int
+ width int
+ height int
+ border_width int
+ override_redirect Bool
+XConfigureEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ event long
+ window long
+ x int
+ y int
+ width int
+ height int
+ border_width int
+ above long
+ override_redirect Bool
+XFontProp
+ name long
+ card32 long
+XModifierKeymap
+ max_keypermod int
+ modifiermap pointer
+XCirculateRequestEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ parent long
+ window long
+ place int
+XChar2b
+ byte1 byte
+ byte2 byte
+XTextItem16
+ chars pointer XChar2b
+ nchars int
+ delta int
+ font long
+XOMOrientation
+ num_orientation int
+ orientation pointer int
+XGraphicsExposeEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ drawable long
+ x int
+ y int
+ width int
+ height int
+ count int
+ major_code int
+ minor_code int
+XFontStruct
+ ext_data pointer XExtData
+ fid long
+ direction int
+ min_char_or_byte2 int
+ max_char_or_byte2 int
+ min_byte1 int
+ max_byte1 int
+ all_chars_exist Bool
+ n_properties int
+ properties pointer XFontProp
+ min_bounds struct XCharStruct
+ max_bounds struct XCharStruct
+ per_char pointer XCharStruct
+ ascent int
+ descent int
+XMapEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ event long
+ window long
+ override_redirect int
+XExposeEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ window long
+ x int
+ y int
+ width int
+ height int
+ count int
+
+XFontSetExtents
+ max_ink_extent struct XRectangle
+ max_logical_extent struct XRectangle
+
+XUnmapEvent
+ type int
+ serial long
+ send_event Bool
+ display long
+ event long
+ window long
+ from_configure Bool
+PropMwmHints
+ flags long
+ functions long
+ decorations long
+ inputMode long
+ status long
+XPixmapFormatValues
+ depth int
+ bits_per_pixel int
+ scanline_pad int
+awtImageData
+ Depth int
+ wsImageFormat struct XPixmapFormatValues
+ clrdata pointer
+ convert array pointer 32
+ColorEntry
+ r byte
+ g byte
+ b byte
+ flags byte
+ColorData
+ awt_Colors pointer ColorEntry
+ awt_numICMcolors int
+ awt_icmLUT pointer int
+ awt_icmLUT2Colors pointer byte
+ img_grays pointer byte
+ img_clr_tbl pointer byte
+ img_oda_red pointer byte
+ img_oda_green pointer byte
+ img_oda_blue pointer byte
+ pGrayInverseLutData pointer int
+ screendata int
+
+AwtGraphicsConfigData
+ awt_depth int
+ awt_cmap long
+ awt_visInfo struct XVisualInfo
+ awt_num_colors int
+ awtImage pointer awtImageData
+ AwtColorMatch pointer
+ monoImage pointer
+ monoPixmap long
+ monoPixmapWidth int
+ monoPixmapHeight int
+ monoPixmapGC long
+ pixelStride int
+ color_data pointer ColorData
+ glxInfo pointer
+ isTranslucencySupported int
+ renderPictFormat struct XRenderPictFormat
+
+AwtScreenData
+ numConfigs int
+ root long
+ whitepixel long
+ blackpixel long
+ defaultConfig pointer AwtGraphicsConfigData
+ configs pointer // AwtGraphicsConfigDataPtr *configs;
+
+XdbeSwapInfo
+ swap_window long
+ swap_action int
+
+XEvent
+ type int
+ xany struct XAnyEvent
+ xkey struct XKeyEvent
+ xbutton struct XButtonEvent
+ xmotion struct XMotionEvent
+ xcrossing struct XCrossingEvent
+ xfocus struct XFocusChangeEvent
+ xexpose struct XExposeEvent
+ xgraphicsexpose struct XGraphicsExposeEvent
+ xnoexpose struct XNoExposeEvent
+ xvisibility struct XVisibilityEvent
+ xcreatewindow struct XCreateWindowEvent
+ xdestroywindow struct XDestroyWindowEvent
+ xunmap struct XUnmapEvent
+ xmap struct XMapEvent
+ xmaprequest struct XMapRequestEvent
+ xreparent struct XReparentEvent
+ xconfigure struct XConfigureEvent
+ xgravity struct XGravityEvent
+ xresizerequest struct XResizeRequestEvent
+ xconfigurerequest struct XConfigureRequestEvent
+ xcirculate struct XCirculateEvent
+ xcirculaterequest struct XCirculateRequestEvent
+ xproperty struct XPropertyEvent
+ xselectionclear struct XSelectionClearEvent
+ xselectionrequest struct XSelectionRequestEvent
+ xselection struct XSelectionEvent
+ xcolormap struct XColormapEvent
+ xclient struct XClientMessageEvent
+ xmapping struct XMappingEvent
+ xerror struct XErrorEvent
+ xkeymap struct XKeymapEvent
+ pad array long 24
+
+XkbAnyEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+
+XkbNewKeyboardNotifyEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+ old_device int
+ min_key_code int
+ max_key_code int
+ old_min_key_code int
+ old_max_key_code int
+ changed int
+ req_major byte
+ req_minor byte
+
+XkbMapNotifyEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+ changed int
+ flags int
+ first_type int
+ num_types int
+ min_key_code int
+ max_key_code int
+ first_key_sym int
+ first_key_act int
+ first_key_behavior int
+ first_key_explicit int
+ first_modmap_key int
+ first_vmodmap_key int
+ num_key_syms int
+ num_key_acts int
+ num_key_behaviors int
+ num_key_explicit int
+ num_modmap_keys int
+ num_vmodmap_keys int
+ vmods int
+
+XkbStateNotifyEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+ changed int
+ group int
+ base_group int
+ latched_group int
+ locked_group int
+ mods int
+ base_mods int
+ latched_mods int
+ locked_mods int
+ compat_state int
+ grab_mods byte
+ compat_grab_mods byte
+ lookup_mods byte
+ compat_lookup_mods byte
+ ptr_buttons int
+ keycode int
+ event_type byte
+ req_major byte
+ req_minor byte
+
+XkbControlsNotifyEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+ changed_ctrls int
+ enabled_ctrls int
+ enabled_ctrl_changes int
+ num_groups int
+ keycode int
+ event_type byte
+ req_major byte
+ req_minor byte
+
+XkbIndicatorNotifyEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+ changed int
+ state int
+
+XkbNamesNotifyEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+ changed int
+ first_type int
+ num_types int
+ first_lvl int
+ num_lvls int
+ num_aliases int
+ num_radio_groups int
+ changed_vmods int
+ changed_groups int
+ changed_indicators int
+ first_key int
+ num_keys int
+
+
+XkbCompatMapNotifyEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+ changed_groups int
+ first_si int
+ num_si int
+ num_total_si int
+
+XkbBellNotifyEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+ percent int
+ pitch int
+ duration int
+ bell_class int
+ bell_id int
+ name Atom
+ window long
+ event_only Bool
+
+XkbActionMessageEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+ keycode int
+ press Bool
+ key_event_follows Bool
+ group int
+ mods int
+ message array byte 7 //XkbActionMessageLength+1
+
+XkbAccessXNotifyEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+ detail int
+ keycode int
+ sk_delay int
+ debounce_delay int
+
+XkbExtensionDeviceNotifyEvent
+ type int
+ serial ulong
+ send_event Bool
+ display long
+ time ulong
+ xkb_type int
+ device int
+ reason int
+ supported int
+ unsupported int
+ first_btn int
+ num_btns int
+ leds_defined int
+ led_state int
+ led_class int
+ led_id int
+
+XkbEvent
+ type int
+ any struct XkbAnyEvent
+ new_kbd struct XkbNewKeyboardNotifyEvent
+ map struct XkbMapNotifyEvent
+ state struct XkbStateNotifyEvent
+ ctrls struct XkbControlsNotifyEvent
+ indicators struct XkbIndicatorNotifyEvent
+ names struct XkbNamesNotifyEvent
+ compat struct XkbCompatMapNotifyEvent
+ bell struct XkbBellNotifyEvent
+ message struct XkbActionMessageEvent
+ accessx struct XkbAccessXNotifyEvent
+ device struct XkbExtensionDeviceNotifyEvent
+ core struct XEvent
--- a/jdk/make/gensrc/GensrcIcons.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/gensrc/GensrcIcons.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -109,17 +109,16 @@
ifeq ($(OPENJDK_TARGET_OS), macosx)
- GENSRC_OSX_ICONS_TMP := $(JDK_OUTPUTDIR)/gensrc
- GENSRC_OSX_ICONS_DST := $(GENSRC_OSX_ICONS_TMP)/sun/osxapp
+ GENSRC_OSX_ICONS_DST := $(JDK_OUTPUTDIR)/gensrc_headers_icons
GENSRC_OSX_ICONS := $(GENSRC_OSX_ICONS_DST)/AWTIconData.h
ifdef OPENJDK
- GENSRC_OSX_ICONS_SRC := $(JDK_TOPDIR)/src/macosx/native/sun/osxapp/resource/icons/JavaApp.icns
+ GENSRC_OSX_ICONS_SRC := $(JDK_TOPDIR)/make/data/macosxicons/JavaApp.icns
else
- GENSRC_OSX_ICONS_SRC := $(JDK_TOPDIR)/src/closed/macosx/native/sun/osxapp/resource/icons/JavaApp.icns
+ GENSRC_OSX_ICONS_SRC := $(JDK_TOPDIR)/make/closed/data/macosxicons/JavaApp.icns
endif
- $(GENSRC_OSX_ICONS_DST)/AWTIconData.h: $(GENSRC_OSX_ICONS_SRC)
+ $(GENSRC_OSX_ICONS): $(GENSRC_OSX_ICONS_SRC)
$(RM) $@ $@.tmp
$(MKDIR) -p $(dir $@)
$(ECHO) "static unsigned char sAWTIconData[] = { " >> $@.tmp
--- a/jdk/make/gensrc/GensrcLocaleDataMetaInfo.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/gensrc/GensrcLocaleDataMetaInfo.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -65,6 +65,13 @@
$1_EN_LOCALES := $$(filter $(EN_LOCALES), $$($1_LOCALES))
$1_NON_EN_LOCALES := $$(filter-out $(EN_LOCALES), $$($1_LOCALES))
+ # Special handling for Chinese locales to include implicit scripts
+ $1_NON_EN_LOCALES := $$(subst zh-CN,zh-CN$$(SPACE)zh-Hans-CN, $$($1_NON_EN_LOCALES))
+ $1_NON_EN_LOCALES := $$(subst zh-SG,zh-SG$$(SPACE)zh-Hans-SG, $$($1_NON_EN_LOCALES))
+ $1_NON_EN_LOCALES := $$(subst zh-HK,zh-HK$$(SPACE)zh-Hant-HK, $$($1_NON_EN_LOCALES))
+ $1_NON_EN_LOCALES := $$(subst zh-MO,zh-MO$$(SPACE)zh-Hant-MO, $$($1_NON_EN_LOCALES))
+ $1_NON_EN_LOCALES := $$(subst zh-TW,zh-TW$$(SPACE)zh-Hant-TW, $$($1_NON_EN_LOCALES))
+
ALL_EN_LOCALES += $$($1_EN_LOCALES)
ALL_NON_EN_LOCALES += $$($1_NON_EN_LOCALES)
--- a/jdk/make/gensrc/GensrcMisc.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/gensrc/GensrcMisc.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -83,9 +83,9 @@
GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/sun/nio/ch/SocketOptionRegistry.java
-GENSRC_SOR_SRC := $(JDK_TOPDIR)/src/share/native/sun/nio/ch
+GENSRC_SOR_SRC := $(JDK_TOPDIR)/make/src/native/genconstants/ch
GENSRC_SOR_SRC_FILE := genSocketOptionRegistry.c
-GENSRC_SOR_BIN := $(JDK_OUTPUTDIR)/gensrc/genSocketOptionRegistry
+GENSRC_SOR_BIN := $(JDK_OUTPUTDIR)/btnative/genSocketOptionRegistry
SOR_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSRC_SOR_SRC)/$(GENSRC_SOR_SRC_FILE) | \
$(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }')
@@ -100,11 +100,9 @@
OUTPUT_DIR := $(GENSRC_SOR_BIN), \
PROGRAM := genSocketOptionRegistry))
-ifneq ($(wildcard $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/ch/SocketOptionRegistry-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java), )
- HAS_SOCKET_OPTION_REGISTRY := true
-endif
+SOR_PREGEN_FILE := $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/ch/SocketOptionRegistry-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java.template
-ifneq ($(HAS_SOCKET_OPTION_REGISTRY), true)
+ifeq ($(wildcard $(SOR_PREGEN_FILE)), )
$(JDK_OUTPUTDIR)/gensrc/sun/nio/ch/SocketOptionRegistry.java: $(BUILD_GENSRC_SOR_EXE)
$(MKDIR) -p $(@D)
$(RM) $@ $@.tmp
@@ -112,7 +110,7 @@
$(BUILD_GENSRC_SOR_EXE) >> $@.tmp
$(MV) $@.tmp $@
else
- $(JDK_OUTPUTDIR)/gensrc/sun/nio/ch/SocketOptionRegistry.java: $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/ch/SocketOptionRegistry-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java
+ $(JDK_OUTPUTDIR)/gensrc/sun/nio/ch/SocketOptionRegistry.java: $(SOR_PREGEN_FILE)
$(call install-file)
endif
@@ -122,9 +120,9 @@
GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/UnixConstants.java
- GENSRC_UC_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/fs
+ GENSRC_UC_SRC := $(JDK_TOPDIR)/make/src/native/genconstants/fs
GENSRC_UC_SRC_FILE := genUnixConstants.c
- GENSRC_UC_BIN := $(JDK_OUTPUTDIR)/gensrc/genUnixConstants
+ GENSRC_UC_BIN := $(JDK_OUTPUTDIR)/btnative/genUnixConstants
UC_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSRC_UC_SRC)/$(GENSRC_UC_SRC_FILE) | \
$(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }')
@@ -140,11 +138,9 @@
OUTPUT_DIR := $(GENSRC_UC_BIN), \
PROGRAM := genUnixConstants))
- ifneq ($(wildcard $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/fs/UnixConstants-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java), )
- HAS_UNIX_CONSTANTS := true
- endif
+ UC_PREGEN_FILE := $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/fs/UnixConstants-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java.template
- ifneq ($(HAS_UNIX_CONSTANTS), true)
+ ifeq ($(wildcard $(UC_PREGEN_FILE)), )
$(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/UnixConstants.java: $(BUILD_GENSRC_UC_EXE)
$(MKDIR) -p $(@D)
$(RM) $@ $@.tmp
@@ -152,7 +148,7 @@
$(BUILD_GENSRC_UC_EXE) >> $@.tmp
$(MV) $@.tmp $@
else
- $(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/UnixConstants.java: $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/fs/UnixConstants-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java
+ $(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/UnixConstants.java: $(UC_PREGEN_FILE)
$(call install-file)
endif
@@ -164,9 +160,9 @@
GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/SolarisConstants.java
- GENSRC_SOL_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/fs
+ GENSRC_SOL_SRC := $(JDK_TOPDIR)/make/src/native/genconstants/fs
GENSRC_SOL_SRC_FILE := genSolarisConstants.c
- GENSRC_SOL_BIN := $(JDK_OUTPUTDIR)/gensrc/genSolarisConstants
+ GENSRC_SOL_BIN := $(JDK_OUTPUTDIR)/btnative/genSolarisConstants
SOL_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSRC_SOL_SRC)/$(GENSRC_SOL_SRC_FILE) | \
$(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }')
--- a/jdk/make/gensrc/GensrcX11Wrappers.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/gensrc/GensrcX11Wrappers.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -42,7 +42,7 @@
GENSRC_X11WRAPPERS_DST := $(JDK_OUTPUTDIR)/gensrc/sun/awt/X11
# The pre-calculated offset file are stored here:
-GENSRC_SIZER_DIR := $(JDK_TOPDIR)/src/solaris/classes/sun/awt/X11/generator
+GENSRC_SIZER_DIR := $(JDK_TOPDIR)/make/data/x11wrappergen
# Normal case is to generate only according to target bits
GENSRC_X11_VERSION := $(OPENJDK_TARGET_CPU_BITS)
--- a/jdk/make/lib/Awt2dLibraries.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/lib/Awt2dLibraries.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -23,6 +23,9 @@
# questions.
#
+# Hook to include the corresponding custom file, if present.
+$(eval $(call IncludeCustomExtension, jdk, lib/Awt2dLibraries.gmk))
+
# Openwin is defined on Solaris.
OPENWIN_LIB := $(OPENWIN_HOME)/lib
@@ -550,10 +553,6 @@
endif
ifeq ($(OPENJDK_TARGET_OS), linux)
- ifndef OPENJDK
- include $(JDK_TOPDIR)/make/closed/xawt.gmk
- endif
-
ifeq ($(DISABLE_XRENDER), true)
LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true
endif
--- a/jdk/make/lib/PlatformLibraries.gmk Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/make/lib/PlatformLibraries.gmk Thu Feb 20 16:27:08 2014 -0800
@@ -63,7 +63,7 @@
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB) \
-I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
- -I$(JDK_OUTPUTDIR)/gensrc/sun/osxapp \
+ -I$(JDK_OUTPUTDIR)/gensrc_headers_icons \
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
-F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/src/classes/build/tools/x11wrappergen/WrapperGenerator.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,1368 @@
+/*
+ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package build.tools.x11wrappergen;
+
+import java.util.*;
+import java.io.*;
+import java.nio.charset.*;
+import java.text.MessageFormat;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+public class WrapperGenerator {
+ /* XLibParser converts Xlib.h to a Java Object that encapsulates the
+ * X11 API and data structures */
+ // Charset and decoder for ISO-8859-15
+ private final static Logger log = Logger.getLogger("WrapperGenerator");
+ boolean generateLog = true;
+ boolean wide;
+ private static Charset charset = Charset.forName("ISO-8859-15");
+
+ String package_name = "sun.awt.X11";
+ String package_path = "sun/awt/X11";
+ String sizerFileName = "sizer.c";
+ String defaultBaseClass = "XWrapperBase";
+
+ String compile_options = "-lX11";
+ static Hashtable symbolTable = new Hashtable();
+ static Hashtable sizeTable32bit = new Hashtable();
+ static Hashtable sizeTable64bit = new Hashtable();
+ static Hashtable knownSizes32 = new Hashtable();
+ static Hashtable knownSizes64 = new Hashtable();
+ static {
+/*
+ knownSizes64.put("", Integer.valueOf());
+ knownSizes32.put("", Integer.valueOf());
+*/
+ knownSizes64.put("XComposeStatus", Integer.valueOf(16));
+ knownSizes64.put("XTimeCoord", Integer.valueOf(16));
+ knownSizes64.put("XExtData", Integer.valueOf(32));
+ knownSizes64.put("XWindowChanges", Integer.valueOf(40));
+ knownSizes64.put("XOMCharSetList", Integer.valueOf(16));
+ knownSizes64.put("XModifierKeymap", Integer.valueOf(16));
+ knownSizes32.put("XIMValuesList", Integer.valueOf(8));
+ knownSizes32.put("XGCValues", Integer.valueOf(92));
+// knownSizes32.put("XIMStringConversionCallbackStruct", Integer.valueOf(16));
+ }
+
+ private static abstract class BaseType {
+
+ String real_type;
+ String name;
+
+
+ public String getName() {
+ return name;
+ }
+ public String getRealType() {
+ return real_type;
+ }
+
+ public String toString() {
+ return name;
+ }
+ }
+
+ private static class AtomicType extends BaseType {
+
+ private boolean alias;
+ private String aliasName;
+
+ static final int TYPE_INT=0;
+ static final int TYPE_CHAR=1;
+ static final int TYPE_LONG=2;
+ static final int TYPE_LONG_LONG=3;
+ static final int TYPE_DOUBLE=4;
+ static final int TYPE_FLOAT=5;
+ static final int TYPE_PTR=6;
+ static final int TYPE_SHORT=7;
+ static final int TYPE_BOOL = 8;
+ static final int TYPE_STRUCT = 9;
+ static final int TYPE_ARRAY = 10;
+ static final int TYPE_BYTE=11;
+ static final int TYPE_ATOM = 12;
+ static final int TYPE_ULONG = 13;
+ static int getTypeForString(String str) {
+ int type=-1;
+ if (str.equals("int"))
+ type = AtomicType.TYPE_INT;
+ else if (str.equals("long"))
+ type = AtomicType.TYPE_LONG;
+ else if (str.equals("byte"))
+ type = AtomicType.TYPE_BYTE;
+ else if (str.equals("char"))
+ type = AtomicType.TYPE_CHAR;
+ else if (str.equals("long long"))
+ type = AtomicType.TYPE_LONG_LONG;
+ else if (str.equals("double"))
+ type = AtomicType.TYPE_DOUBLE;
+ else if (str.equals("float"))
+ type = AtomicType.TYPE_FLOAT;
+ else if (str.equals("pointer"))
+ type = AtomicType.TYPE_PTR;
+ else if (str.equals("short"))
+ type = AtomicType.TYPE_SHORT;
+ else if (str.equals("Bool"))
+ type = AtomicType.TYPE_BOOL;
+ else if (str.equals("struct"))
+ type = AtomicType.TYPE_STRUCT;
+ else if (str.equals("Atom"))
+ type = AtomicType.TYPE_ATOM;
+ else if (str.equals("array"))
+ type = TYPE_ARRAY;
+ else if (str.equals("ulong"))
+ type = TYPE_ULONG;
+ else throw new IllegalArgumentException("Uknown type string: " + str);
+
+ return type;
+ }
+ String getJavaType() {
+ if (referencedType != null) {
+ if (referencedType instanceof AtomicType) {
+ return ((AtomicType)referencedType).getJavaType();
+ } else {
+ return referencedType.getName();
+ }
+ } else {
+ return getJavaTypeForType(type);
+ }
+ }
+ static String getJavaTypeForType(int type) {
+ switch (type) {
+ case TYPE_INT:
+ return "int";
+ case TYPE_CHAR:
+ return "char";
+ case TYPE_BYTE:
+ return "byte";
+ case TYPE_LONG:
+ case TYPE_LONG_LONG:
+ case TYPE_PTR:
+ case TYPE_ULONG:
+ return "long";
+ case TYPE_DOUBLE:
+ return "double";
+ case TYPE_FLOAT:
+ return "float";
+ case TYPE_SHORT:
+ return "short";
+ case TYPE_BOOL:
+ return "boolean";
+ case TYPE_ATOM:
+ return "long";
+ default:
+ throw new IllegalArgumentException("Unknown type: " + type);
+ }
+ }
+ String getItemSize() {
+ if (referencedType != null) {
+ if (referencedType instanceof StructType) {
+ return ((StructType)referencedType).getSize();
+ } else {
+ return ((AtomicType)referencedType).getItemSize();
+ }
+ } else {
+ int i32 = getNativeSizeForAccess(getJavaAccess(false));
+ int i64 = getNativeSizeForAccess(getJavaAccess(true));
+ if (i32 != i64) {
+ return "Native.get" + getNativeAccess() + "Size()";
+ } else {
+ return Integer.toString(i32);
+ }
+ }
+ }
+
+ String getJavaResult(String offset, String base) {
+ String res = null;
+ switch (type) {
+ case TYPE_STRUCT:
+ res = "pData + " + offset;
+ break;
+ case TYPE_PTR:
+ if (referencedType == null || referencedType instanceof StructType) {
+ res = base + "+" + offset;
+ } else if (referencedType instanceof AtomicType) {
+ res = MessageFormat.format("Native.get{0}({1})",
+ new Object[] {getNativeAccessForType(((AtomicType)referencedType).type),
+ base + "+" + offset});
+ }
+ break;
+ case TYPE_ARRAY:
+ if (referencedType instanceof StructType) {
+ res = "pData + " + offset;
+ } else if (referencedType instanceof AtomicType) {
+ res = MessageFormat.format("Native.get{0}(pData + {1})",
+ new Object[] {getNativeAccessForType(((AtomicType)referencedType).type),
+ offset});
+ }
+ break;
+ default:
+ res = MessageFormat.format("(Native.get{0}(pData+{1}))",
+ new Object[] {getNativeAccess(), offset});
+ }
+ return getJavaResultConversion(res, base);
+ }
+ String getJavaResultConversion(String value, String base) {
+ if (referencedType != null) {
+ if (referencedType instanceof StructType) {
+ if (type == TYPE_PTR) {
+ return MessageFormat.format("({2} != 0)?(new {0}({1})):(null)", new Object[] {referencedType.getName(),value, base});
+ } else {
+ return MessageFormat.format("new {0}({1})", new Object[] {referencedType.getName(),value});
+ }
+ } else {
+ return value;
+ }
+ } else {
+ return getJavaResultConversionForType(type, value);
+ }
+ }
+ static String getJavaResultConversionForType(int type, String value) {
+ return value;
+ }
+ String getNativeAccess() {
+ return getNativeAccessForType(type);
+ }
+ String getJavaAccess(boolean wide) {
+ return getJavaAccessForType(type, wide);
+ }
+ static String getJavaAccessForType(int type, boolean wide) {
+ switch (type) {
+ case TYPE_INT:
+ return "Int";
+ case TYPE_CHAR:
+ return "Char";
+ case TYPE_BYTE:
+ return "Byte";
+ case TYPE_LONG:
+ case TYPE_PTR:
+ case TYPE_ARRAY:
+ case TYPE_STRUCT:
+ case TYPE_ATOM:
+ return (wide?"Long":"Int");
+ case TYPE_LONG_LONG:
+ return "Long";
+ case TYPE_ULONG:
+ return (wide?"ULong":"UInt");
+ case TYPE_DOUBLE:
+ return "Double";
+ case TYPE_FLOAT:
+ return "Float";
+ case TYPE_SHORT:
+ return "Short";
+ case TYPE_BOOL:
+ return "Int";
+ default:
+ throw new IllegalArgumentException("Unknown type: " + type);
+ }
+ }
+ static String getNativeAccessForType(int type) {
+ switch (type) {
+ case TYPE_INT:
+ return "Int";
+ case TYPE_CHAR:
+ return "Char";
+ case TYPE_BYTE:
+ return "Byte";
+ case TYPE_LONG:
+ case TYPE_PTR:
+ case TYPE_ARRAY:
+ case TYPE_STRUCT:
+ return "Long";
+ case TYPE_LONG_LONG:
+ return "Long";
+ case TYPE_ULONG:
+ return "ULong";
+ case TYPE_DOUBLE:
+ return "Double";
+ case TYPE_FLOAT:
+ return "Float";
+ case TYPE_SHORT:
+ return "Short";
+ case TYPE_BOOL:
+ return "Bool";
+ case TYPE_ATOM:
+ return "Long";
+ default:
+ throw new IllegalArgumentException("Unknown type: " + type);
+ }
+ }
+
+ static int getNativeSizeForAccess(String access) {
+ if (access.equals("Int")) return 4;
+ else if (access.equals("Byte")) return 1;
+ else if (access.equals("Long")) return 8;
+ else if (access.equals("Double")) return 8;
+ else if (access.equals("Float")) return 4;
+ else if (access.equals("Char")) return 2;
+ else if (access.equals("Short")) return 2;
+ else if (access.equals("ULong")) return 8;
+ else if (access.equals("UInt")) return 4;
+ else throw new IllegalArgumentException("Unknow access type: " + access);
+ }
+
+ String getJavaConversion(String offset, String value) {
+ if (referencedType != null) {
+ if (referencedType instanceof StructType) {
+ return getJavaConversionForType(TYPE_PTR, offset, value + ".pData");
+ } else {
+ if (type == TYPE_ARRAY) {
+ return getJavaConversionForType(((AtomicType)referencedType).type, offset, value);
+ } else { // TYPE_PTR
+ return getJavaConversionForType(TYPE_PTR, offset, value);
+ }
+ }
+ } else {
+ return getJavaConversionForType(type, offset, value);
+ }
+ }
+ static String getJavaConversionForType(int type, String offset, String value) {
+ return MessageFormat.format("Native.put{0}({2}, {1})", new Object[] {getNativeAccessForType(type), value, offset});
+ }
+
+
+ int type;
+ int offset;
+ int direction;
+ BaseType referencedType;
+ int arrayLength = -1;
+ boolean autoFree = false;
+ public AtomicType(int _type,String _name, String _real_type) {
+ name = _name.replaceAll("[* \t]","");
+ if ((name.indexOf("[") != -1) || (name.indexOf("]") != -1))
+ {
+ name = name.replaceAll("\\[.*\\]","");
+ }
+ type = _type;
+ real_type = _real_type;
+ if (real_type == null)
+ {
+ System.out.println(" real type is null");
+
+ }
+ }
+ public boolean isIn() {
+ return direction == 0;
+ }
+ public boolean isOut() {
+ return direction == 1;
+ }
+ public boolean isInOut() {
+ return direction == 2;
+ }
+ public boolean isAutoFree() {
+ return autoFree;
+ }
+ public void setAttributes(String[] attributes) {
+ String mod = attributes[3];
+ if ("in".equals(mod)) {
+ direction = 0;
+ } else if ("out".equals(mod)) {
+ direction = 1;
+ if (attributes.length > 4 && "free".equals(attributes[4])) {
+ autoFree = true;
+ }
+ } else if ("inout".equals(mod)) {
+ direction = 2;
+ } else if ("alias".equals(mod)) {
+ alias = true;
+ aliasName = attributes[4];
+ } else if (type == TYPE_ARRAY || type == TYPE_PTR || type == TYPE_STRUCT) {
+ referencedType = (BaseType)symbolTable.get(mod);
+ if (referencedType == null) {
+ log.warning("Can't find type for name " + mod);
+ }
+ if (attributes.length > 4) { // array length
+ try {
+ arrayLength = Integer.parseInt(attributes[4]);
+ } catch (Exception e) {
+ }
+ }
+ }
+ }
+ public BaseType getReferencedType() {
+ return referencedType;
+ }
+ public int getArrayLength() {
+ return arrayLength;
+ }
+ public void setOffset(int o)
+ {
+ offset = o;
+ }
+ public int getType() {
+ return type;
+ }
+ public String getTypeUpperCase() {
+ switch (type) {
+ case TYPE_INT:
+ return "Int";
+ case TYPE_CHAR:
+ return "Char";
+ case TYPE_BYTE:
+ return "Byte";
+ case TYPE_LONG:
+ case TYPE_LONG_LONG:
+ case TYPE_PTR:
+ return "Long";
+ case TYPE_DOUBLE:
+ return "Double";
+ case TYPE_FLOAT:
+ return "Float";
+ case TYPE_SHORT:
+ return "Short";
+ case TYPE_BOOL:
+ return "Int";
+ case TYPE_ATOM:
+ return "Long";
+ case TYPE_ULONG:
+ return "ULong";
+ default: throw new IllegalArgumentException("Uknown type");
+ }
+ }
+ public int getOffset()
+ {
+ return offset;
+ }
+ public boolean isAlias() {
+ return alias;
+ }
+ public String getAliasName() {
+ return aliasName;
+ }
+ }
+
+ private static class StructType extends BaseType {
+
+ Vector members;
+ String description;
+ boolean packed;
+ int size;
+ String baseClass, interfaces;
+ boolean isInterface;
+ String javaClassName;
+
+ /**
+ * Construct new structured type.
+ * Description is used for name and type definition and has the following format:
+ * structName [ '[' base classe ']' ] [ '{' interfaces '}' ] [ '|' javaClassName ]
+ */
+ public StructType(String _desc)
+ {
+ members = new Vector();
+ parseDescription(_desc);
+ }
+ public int getNumFields()
+ {
+ return members.size();
+ }
+ public void setName(String _name)
+ {
+ _name = _name.replaceAll("[* \t]","");
+ parseDescription(_name);
+ }
+
+ public void setSize(int i)
+ {
+ size = i;
+ }
+
+ public String getDescription()
+ {
+ return description;
+ }
+
+ public Enumeration getMembers()
+ {
+ return members.elements();
+ }
+
+ public void addMember(BaseType tp)
+ {
+ members.add(tp);
+ }
+ public String getBaseClass() {
+ return baseClass;
+ }
+ public String getInterfaces() {
+ return interfaces;
+ }
+ public boolean getIsInterface() {
+ return isInterface;
+ }
+ public String getJavaClassName() {
+ return javaClassName;
+ }
+ void parseDescription(String _desc) {
+ if (_desc.indexOf('[') != -1) { // Has base class
+ baseClass = _desc.substring(_desc.indexOf('[')+1, _desc.indexOf(']'));
+ _desc = _desc.substring(0, _desc.indexOf('[')) + _desc.substring(_desc.indexOf(']')+1);
+ }
+ if (_desc.indexOf('{') != -1) { // Has base class
+ interfaces = _desc.substring(_desc.indexOf('{')+1, _desc.indexOf('}'));
+ _desc = _desc.substring(0, _desc.indexOf('{')) + _desc.substring(_desc.indexOf('}')+1);
+ }
+ if (_desc.startsWith("-")) { // Interface
+ isInterface = true;
+ _desc = _desc.substring(1, _desc.length());
+ }
+ if (_desc.indexOf("|") != -1) {
+ javaClassName = _desc.substring(_desc.indexOf('|')+1, _desc.length());
+ _desc = _desc.substring(0, _desc.indexOf('|'));
+ }
+ name = _desc;
+ if (javaClassName == null) {
+ javaClassName = name;
+ }
+ description = _desc;
+// System.out.println("Struct " + name + " extends " + baseClass + " implements " + interfaces);
+ }
+
+ /**
+ * Returns String containing Java code calculating size of the structure depending on the data model
+ */
+ public String getSize() {
+ String s32 = (String) WrapperGenerator.sizeTable32bit.get(getName());
+ String s64 = (String) WrapperGenerator.sizeTable64bit.get(getName());
+ if (s32 == null || s64 == null) {
+ return (s32 == null)?(s64):(s32);
+ }
+ if (s32.equals(s64)) {
+ return s32;
+ } else {
+ return MessageFormat.format("((XlibWrapper.dataModel == 32)?({0}):({1}))", new Object[] {s32, s64});
+ }
+ }
+ public String getOffset(AtomicType atp) {
+ String key = getName()+"."+(atp.isAlias() ? atp.getAliasName() : atp.getName());
+ String s64 = (String) WrapperGenerator.sizeTable64bit.get(key);
+ String s32 = (String) WrapperGenerator.sizeTable32bit.get(key);
+ if (s32 == null || s64 == null) {
+ return (s32 == null)?(s64):(s32);
+ }
+ if (s32.equals(s64)) {
+ return s32;
+ } else {
+ return MessageFormat.format("((XlibWrapper.dataModel == 32)?({0}):({1}))", new Object[]{s32, s64});
+ }
+ }
+ }
+
+ private static class FunctionType extends BaseType {
+
+ Vector args;
+ String description;
+ boolean packed;
+ String returnType;
+
+ int alignment;
+
+ public FunctionType(String _desc)
+ {
+ args = new Vector();
+ description = _desc;
+ setName(_desc);
+ }
+ boolean isVoid() {
+ return (returnType == null);
+ }
+ String getReturnType() {
+ if (returnType == null) {
+ return "void";
+ } else {
+ return returnType;
+ }
+ }
+
+ public int getNumArgs()
+ {
+ return args.size();
+ }
+ public void setName(String _name)
+ {
+ if (_name.startsWith("!")) {
+ _name = _name.substring(1, _name.length());
+ }
+ if (_name.indexOf("|") != -1) {
+ returnType = _name.substring(_name.indexOf("|")+1, _name.length());
+ _name = _name.substring(0, _name.indexOf("|"));
+ }
+ name = _name.replaceAll("[* \t]","");
+ }
+
+ public String getDescription()
+ {
+ return description;
+ }
+
+ public Collection getArguments()
+ {
+ return args;
+ }
+ public void addArgument(BaseType tp)
+ {
+ args.add(tp);
+ }
+ }
+
+ public String makeComment(String str)
+ {
+ StringTokenizer st = new StringTokenizer(str,"\r\n");
+ String ret="";
+
+ while (st.hasMoreTokens())
+ {
+ ret = ret + "//" + st.nextToken() + "\n";
+ }
+
+ return ret;
+ }
+
+ public String getJavaTypeForSize(int size) {
+ switch(size) {
+ case 1: return "byte";
+ case 2: return "short";
+ case 4: return "int";
+ case 8: return "long";
+ default: throw new RuntimeException("Unsupported size: " + size);
+ }
+ }
+ public String getOffsets(StructType stp,AtomicType atp, boolean wide)
+ {
+ String key = stp.getName()+"."+atp.getName();
+ return wide == true ? (String) sizeTable64bit.get(key) : (String) sizeTable32bit.get(key);
+ }
+
+ public String getStructSize(StructType stp, boolean wide)
+ {
+ return wide == true ? (String) sizeTable64bit.get(stp.getName()) : (String) sizeTable32bit.get(stp.getName());
+ }
+
+ public int getLongSize(boolean wide)
+ {
+ return Integer.parseInt(wide == true ? (String)sizeTable64bit.get("long") : (String)sizeTable32bit.get("long"));
+ }
+
+ public int getPtrSize(boolean wide)
+ {
+ return Integer.parseInt(wide == true ? (String)sizeTable64bit.get("ptr") : (String)sizeTable32bit.get("ptr"));
+ }
+ public int getBoolSize(boolean wide) {
+ return getOrdinalSize("Bool", wide);
+ }
+ public int getOrdinalSize(String ordinal, boolean wide) {
+ return Integer.parseInt(wide == true ? (String)sizeTable64bit.get(ordinal) : (String)sizeTable32bit.get(ordinal));
+ }
+
+ public void writeToString(StructType stp, PrintWriter pw) {
+ int type;
+ pw.println("\n\n\tString getName() {\n\t\treturn \"" + stp.getName()+ "\"; \n\t}");
+ pw.println("\n\n\tString getFieldsAsString() {\n\t\tStringBuilder ret = new StringBuilder(" + stp.getNumFields() * 40 + ");\n");
+
+ for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+ AtomicType tp = (AtomicType) e.nextElement();
+
+ type = tp.getType();
+ String name = tp.getName().replace('.', '_');
+ if ((name != null) && (name.length() > 0))
+ {
+ if (type == AtomicType.TYPE_ATOM) {
+ pw.println("\t\tret.append(\"" + name + " = \" ).append( XAtom.get(get_" + name + "()) ).append(\", \");");
+ } else if (name.equals("type")) {
+ pw.println("\t\tret.append(\"type = \").append( XlibWrapper.eventToString[get_type()] ).append(\", \");");
+ } else if (name.equals("window")){
+ pw.println("\t\tret.append(\"window = \" ).append( getWindow(get_window()) ).append(\", \");");
+ } else if (type == AtomicType.TYPE_ARRAY) {
+ pw.print("\t\tret.append(\"{\")");
+ for (int i = 0; i < tp.getArrayLength(); i++) {
+ pw.print("\n\t\t.append( get_" + name + "(" + i + ") ).append(\" \")");
+ }
+ pw.println(".append( \"}\");");
+ } else {
+ pw.println("\t\tret.append(\"" + name +" = \").append( get_"+ name+"() ).append(\", \");");
+ }
+ }
+
+ }
+ pw.println("\t\treturn ret.toString();\n\t}\n\n");
+ }
+
+ public void writeStubs(StructType stp, PrintWriter pw) {
+ int type;
+ String prefix = "";
+ if (!stp.getIsInterface()) {
+ prefix = "\t\tabstract ";
+ } else {
+ prefix = "\t";
+ }
+ for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+ AtomicType tp = (AtomicType) e.nextElement();
+
+ type = tp.getType();
+ String name = tp.getName().replace('.','_');
+ if ((name != null) && (name.length() > 0))
+ {
+ if (type == AtomicType.TYPE_ARRAY) {
+ // Returns pointer to the start of the array
+ pw.println(prefix + "long get_" +name +"();");
+
+ pw.println(prefix + tp.getJavaType() + " get_" +name +"(int index);");
+ pw.println(prefix + "void set_" +name +"(int index, " + tp.getJavaType() + " v);");
+ } else {
+ pw.println(prefix + tp.getJavaType() + " get_" +name +"();");
+ if (type != AtomicType.TYPE_STRUCT) pw.println(prefix + "void set_" +name +"(" + tp.getJavaType() + " v);");
+ }
+ }
+ }
+ }
+
+ private int padSize(int size, int wordLength) {
+ int bytesPerWord = wordLength / 8;
+ // Make size dividable by bytesPerWord
+ return (size + bytesPerWord / 2) / bytesPerWord * bytesPerWord;
+ }
+
+ public void writeAccessorImpls(StructType stp, PrintWriter pw) {
+ int type;
+ int i=0;
+ String s_size_32 = getStructSize(stp, false);
+ String s_size_64 = getStructSize(stp, true);
+ int acc_size_32 = 0;
+ int acc_size_64 = 0;
+ String s_log = (generateLog?"log.finest(\"\");":"");
+ for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+ AtomicType tp = (AtomicType) e.nextElement();
+
+ type = tp.getType();
+ String name = tp.getName().replace('.','_');
+ String pref = "\tpublic " ;
+ if ((name != null) && (name.length() > 0))
+ {
+ String jt = tp.getJavaType();
+ String ja_32 = tp.getJavaAccess(false);
+ String ja_64 = tp.getJavaAccess(true);
+ String ja = ja_32;
+ int elemSize_32 = AtomicType.getNativeSizeForAccess(ja_32);
+ int elemSize_64 = AtomicType.getNativeSizeForAccess(ja_64);
+ String elemSize = tp.getItemSize();
+ if (type == AtomicType.TYPE_ARRAY) {
+ acc_size_32 += elemSize_32 * tp.getArrayLength();
+ acc_size_64 += elemSize_64 * tp.getArrayLength();
+ pw.println(pref + tp.getJavaType() + " get_" +name + "(int index) { " +s_log+"return " +
+ tp.getJavaResult(stp.getOffset(tp) + "+index*" + elemSize, null) + "; }");
+ if (tp.getReferencedType() instanceof AtomicType) { // Set for StructType is forbidden
+ pw.println(MessageFormat.format(pref + "void set_{0}(int index, {1} v) '{' {3} {2}; '}'",
+ new Object[] {
+ name, jt,
+ tp.getJavaConversion("pData+"+stp.getOffset(tp)+" + index*" + elemSize, "v"),
+ s_log}));
+ }
+ // Returns pointer to the start of the array
+ pw.println(pref + "long get_" +name+ "() { "+s_log+"return pData+"+stp.getOffset(tp)+"; }");
+ } else if (type == AtomicType.TYPE_PTR) {
+ pw.println(MessageFormat.format(pref + "{0} get_{1}(int index) '{' {3} return {2}; '}'",
+ new Object[] {
+ jt, name,
+ tp.getJavaResult("index*" + elemSize, "Native.getLong(pData+"+stp.getOffset(tp)+")"),
+ s_log
+ }));
+ pw.println(pref + "long get_" +name+ "() { "+s_log+"return Native.getLong(pData+"+stp.getOffset(tp)+"); }");
+ pw.println(MessageFormat.format(pref + "void set_{0}({1} v) '{' {3} {2}; '}'",
+ new Object[] {name, "long", "Native.putLong(pData + " + stp.getOffset(tp) + ", v)", s_log}));
+ acc_size_32 += elemSize_32;
+ acc_size_64 += elemSize_64;
+ } else {
+ acc_size_32 += elemSize_32;
+ acc_size_64 += elemSize_64;
+ pw.println(pref + tp.getJavaType() + " get_" +name +
+ "() { "+s_log+"return " + tp.getJavaResult(stp.getOffset(tp), null) + "; }");
+ if (type != AtomicType.TYPE_STRUCT) {
+ pw.println(MessageFormat.format(pref + "void set_{0}({1} v) '{' {3} {2}; '}'",
+ new Object[] {name, jt, tp.getJavaConversion("pData+"+stp.getOffset(tp), "v"), s_log}));
+ }
+ }
+ i++;
+ }
+ }
+ if (s_size_32 != null && !s_size_32.equals(Integer.toString(acc_size_32))) {
+ if (log.isLoggable(Level.FINE)) {
+ log.fine("32 bits: The size of the structure " + stp.getName() + " " + s_size_32 +
+ " is not equal to the accumulated size " +acc_size_32 + " of the fields");
+ }
+ } else if (s_size_64 != null && !s_size_64.equals(Integer.toString(acc_size_64))) {
+ if (log.isLoggable(Level.FINE)) {
+ log.fine("64 bits: The size of the structure " + stp.getName() + " " +s_size_64+
+ " is not equal to the accumulated size " +acc_size_64+" of the fields");
+ }
+ }
+ }
+
+ public void writeWrapperSubclass(StructType stp, PrintWriter pw, boolean wide) {
+
+
+ pw.println("class " + stp.getJavaClassName() + "AccessorImpl" + " extends " + stp.getJavaClassName() + "Accessor {");
+ pw.println("/*\nThis class serves as a Wrapper for the following X Struct \nsThe offsets here are calculated based on actual compiler.\n\n" +stp.getDescription() + "\n\n */");
+
+ writeAccessorImpls(stp, pw);
+
+ pw.println("\n\n } \n\n");
+ }
+
+ public void writeWrapper(String outputDir, StructType stp)
+ {
+ if (stp.getNumFields() > 0) {
+
+ try {
+ FileOutputStream fs = new FileOutputStream(outputDir + "/"+stp.getJavaClassName()+".java");
+ PrintWriter pw = new PrintWriter(fs);
+ pw.println("// This file is an automatically generated file, please do not edit this file, modify the WrapperGenerator.java file instead !\n" );
+
+ pw.println("package "+package_name+";\n");
+ pw.println("import sun.misc.*;\n");
+ pw.println("import sun.util.logging.PlatformLogger;");
+ String baseClass = stp.getBaseClass();
+ if (baseClass == null) {
+ baseClass = defaultBaseClass;
+ }
+ if (stp.getIsInterface()) {
+ pw.print("public interface ");
+ pw.print(stp.getJavaClassName());
+ } else {
+ pw.print("public class ");
+ pw.print(stp.getJavaClassName() + " extends " + baseClass);
+ }
+ if (stp.getInterfaces() != null) {
+ pw.print(" implements " + stp.getInterfaces());
+ }
+ pw.println(" { ");
+ if (!stp.getIsInterface()) {
+ pw.println("\tprivate Unsafe unsafe = XlibWrapper.unsafe; ");
+ pw.println("\tprivate final boolean should_free_memory;");
+ pw.println("\tpublic static int getSize() { return " + stp.getSize() + "; }");
+ pw.println("\tpublic int getDataSize() { return getSize(); }");
+ pw.println("\n\tlong pData;");
+ pw.println("\n\tpublic long getPData() { return pData; }");
+
+ pw.println("\n\n\tpublic " + stp.getJavaClassName() + "(long addr) {");
+ if (generateLog) {
+ pw.println("\t\tlog.finest(\"Creating\");");
+ }
+ pw.println("\t\tpData=addr;");
+ pw.println("\t\tshould_free_memory = false;");
+ pw.println("\t}");
+ pw.println("\n\n\tpublic " + stp.getJavaClassName() + "() {");
+ if (generateLog) {
+ pw.println("\t\tlog.finest(\"Creating\");");
+ }
+ pw.println("\t\tpData = unsafe.allocateMemory(getSize());");
+ pw.println("\t\tshould_free_memory = true;");
+ pw.println("\t}");
+
+ pw.println("\n\n\tpublic void dispose() {");
+ if (generateLog) {
+ pw.println("\t\tlog.finest(\"Disposing\");");
+ }
+ pw.println("\t\tif (should_free_memory) {");
+ if (generateLog) {
+ pw.println("\t\t\tlog.finest(\"freeing memory\");");
+ }
+ pw.println("\t\t\tunsafe.freeMemory(pData); \n\t}");
+ pw.println("\t\t}");
+ writeAccessorImpls(stp, pw);
+ writeToString(stp,pw);
+ } else {
+ pw.println("\n\n\tvoid dispose();");
+ pw.println("\n\tlong getPData();");
+ writeStubs(stp,pw);
+ }
+
+
+ pw.println("}\n\n\n");
+ pw.close();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private boolean readSizeInfo(InputStream is, boolean wide) {
+ String line;
+ String splits[];
+ BufferedReader in = new BufferedReader(new InputStreamReader(is));
+ try {
+ while ((line = in.readLine()) != null)
+ {
+ splits = line.split("\\p{Space}");
+ if (splits.length == 2)
+ {
+ if (wide) {
+ sizeTable64bit.put(splits[0],splits[1]);
+ } else {
+ sizeTable32bit.put(splits[0],splits[1]);
+ }
+ }
+ }
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ public void writeFunctionCallWrapper(String outputDir, FunctionType ft) {
+ try {
+ FileOutputStream fs = new FileOutputStream(outputDir + "/" + ft.getName()+".java");
+ PrintWriter pw = new PrintWriter(fs);
+ pw.println("// This file is an automatically generated file, please do not edit this file, modify the WrapperGenerator.java file instead !\n" );
+
+ pw.println("package "+package_name+";\n");
+ pw.println("import sun.misc.Unsafe;\n");
+ pw.println("class " + ft.getName() + " {");
+ pw.println("\tprivate static Unsafe unsafe = XlibWrapper.unsafe;");
+ pw.println("\tprivate boolean __executed = false;");
+ pw.println("\tprivate boolean __disposed = false;");
+ Iterator iter = ft.getArguments().iterator();
+ while (iter.hasNext()) {
+ AtomicType at = (AtomicType)iter.next();
+ if (at.isIn()) {
+ pw.println("\t" + at.getJavaType() + " _" + at.getName() + ";");
+ } else {
+ pw.println("\tlong " + at.getName() + "_ptr = unsafe.allocateMemory(Native.get" + at.getTypeUpperCase() + "Size());");
+ }
+ }
+ pw.println("\tpublic " + ft.getName() + "(");
+ iter = ft.getArguments().iterator();
+ boolean first = true;
+ while (iter.hasNext()) {
+ AtomicType at = (AtomicType)iter.next();
+ if (at.isIn() || at.isInOut()) {
+ if (!first) {
+ pw.println(",");
+ }
+ first = false;
+ pw.print("\t\t" + at.getJavaType() + " " + at.getName());
+ }
+ }
+ pw.println("\t)");
+ pw.println("\t{");
+ iter = ft.getArguments().iterator();
+ while (iter.hasNext()) {
+ AtomicType at = (AtomicType)iter.next();
+ if (at.isIn() || at.isInOut()) {
+ pw.println("\t\tset_" + at.getName() + "(" + at.getName() + ");");
+ }
+ }
+ pw.println("\t}");
+
+ pw.println("\tpublic " + ft.getReturnType() + " execute() {");
+ if (ft.isVoid()) {
+ pw.println("\t\texecute(null);");
+ } else {
+ pw.println("\t\treturn execute(null);");
+ }
+ pw.println("\t}");
+
+ pw.println("\tpublic " + ft.getReturnType() + " execute(XToolkit.XErrorHandler errorHandler) {");
+ pw.println("\t\tif (__disposed) {");
+ pw.println("\t\t throw new IllegalStateException(\"Disposed\");");
+ pw.println("\t\t}");
+ pw.println("\t\tXToolkit.awtLock();");
+ pw.println("\t\ttry {");
+ pw.println("\t\t\tif (__executed) {");
+ pw.println("\t\t\t throw new IllegalStateException(\"Already executed\");");
+ pw.println("\t\t\t}");
+ pw.println("\t\t\t__executed = true;");
+ pw.println("\t\t\tif (errorHandler != null) {");
+ pw.println("\t\t\t XErrorHandlerUtil.WITH_XERROR_HANDLER(errorHandler);");
+ pw.println("\t\t\t}");
+ iter = ft.getArguments().iterator();
+ while (iter.hasNext()) {
+ AtomicType at = (AtomicType)iter.next();
+ if (!at.isIn() && at.isAutoFree()) {
+ pw.println("\t\t\tNative.put" + at.getTypeUpperCase() + "(" +at.getName() + "_ptr, 0);");
+ }
+ }
+ if (!ft.isVoid()) {
+ pw.println("\t\t\t" + ft.getReturnType() + " status = ");
+ }
+ pw.println("\t\t\tXlibWrapper." + ft.getName() + "(XToolkit.getDisplay(), ");
+ iter = ft.getArguments().iterator();
+ first = true;
+ while (iter.hasNext()) {
+ AtomicType at = (AtomicType)iter.next();
+ if (!first) {
+ pw.println(",");
+ }
+ first = false;
+ if (at.isIn()) {
+ pw.print("\t\t\t\tget_" + at.getName() + "()");
+ } else {
+ pw.print("\t\t\t\t" + at.getName() + "_ptr");
+ }
+ }
+ pw.println("\t\t\t);");
+ pw.println("\t\t\tif (errorHandler != null) {");
+ pw.println("\t\t\t XErrorHandlerUtil.RESTORE_XERROR_HANDLER();");
+ pw.println("\t\t\t}");
+ if (!ft.isVoid()) {
+ pw.println("\t\t\treturn status;");
+ }
+ pw.println("\t\t} finally {");
+ pw.println("\t\t XToolkit.awtUnlock();");
+ pw.println("\t\t}");
+ pw.println("\t}");
+
+ pw.println("\tpublic boolean isExecuted() {");
+ pw.println("\t return __executed;");
+ pw.println("\t}");
+ pw.println("\t");
+ pw.println("\tpublic boolean isDisposed() {");
+ pw.println("\t return __disposed;");
+ pw.println("\t}");
+ pw.println("\tpublic void finalize() {");
+ pw.println("\t dispose();");
+ pw.println("\t}");
+
+ pw.println("\tpublic void dispose() {");
+ pw.println("\t\tXToolkit.awtLock();");
+ pw.println("\t\ttry {");
+ pw.println("\t\tif (__disposed || !__executed) {");
+ pw.println("\t\t return;");
+ pw.println("\t\t} finally {");
+ pw.println("\t\t XToolkit.awtUnlock();");
+ pw.println("\t\t}");
+ pw.println("\t\t}");
+
+ iter = ft.getArguments().iterator();
+ while (iter.hasNext()) {
+ AtomicType at = (AtomicType)iter.next();
+ if (!at.isIn()) {
+ if (at.isAutoFree()) {
+ pw.println("\t\tif (__executed && get_" + at.getName() + "()!= 0) {");
+ pw.println("\t\t\tXlibWrapper.XFree(get_" + at.getName() + "());");
+ pw.println("\t\t}");
+ }
+ pw.println("\t\tunsafe.freeMemory(" + at.getName() + "_ptr);");
+ }
+ }
+ pw.println("\t\t__disposed = true;");
+ pw.println("\t\t}");
+ pw.println("\t}");
+
+ iter = ft.getArguments().iterator();
+ while (iter.hasNext()) {
+ AtomicType at = (AtomicType)iter.next();
+ pw.println("\tpublic " + at.getJavaType() + " get_" + at.getName() + "() {");
+
+ pw.println("\t\tif (__disposed) {");
+ pw.println("\t\t throw new IllegalStateException(\"Disposed\");");
+ pw.println("\t\t}");
+ pw.println("\t\tif (!__executed) {");
+ pw.println("\t\t throw new IllegalStateException(\"Not executed\");");
+ pw.println("\t\t}");
+
+ if (at.isIn()) {
+ pw.println("\t\treturn _" + at.getName() + ";");
+ } else {
+ pw.println("\t\treturn Native.get" + at.getTypeUpperCase() + "(" + at.getName() + "_ptr);");
+ }
+ pw.println("\t}");
+
+ pw.println("\tpublic void set_" + at.getName() + "(" + at.getJavaType() + " data) {");
+ if (at.isIn()) {
+ pw.println("\t\t_" + at.getName() + " = data;");
+ } else {
+ pw.println("\t\tNative.put" + at.getTypeUpperCase() + "(" + at.getName() + "_ptr, data);");
+ }
+ pw.println("\t}");
+ }
+ pw.println("}");
+ pw.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public void writeJavaWrapperClass(String outputDir) {
+// (new File(outputDir, package_path)).mkdirs();
+ try {
+ for (Enumeration e = symbolTable.elements() ; e.hasMoreElements() ;) {
+ BaseType tp = (BaseType) e.nextElement();
+ if (tp instanceof StructType) {
+ StructType st = (StructType) tp;
+ writeWrapper(outputDir, st);
+ } else if (tp instanceof FunctionType) {
+ writeFunctionCallWrapper(outputDir, (FunctionType)tp);
+ }
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+
+ public void writeNativeSizer(String file)
+ {
+ int type;
+ int i=0;
+ int j=0;
+ BaseType tp;
+ StructType stp;
+ Enumeration eo;
+
+
+ try {
+
+ FileOutputStream fs = new FileOutputStream(file);
+ PrintWriter pw = new PrintWriter(fs);
+
+ pw.println("/* This file is an automatically generated file, please do not edit this file, modify the XlibParser.java file instead !*/\n" );
+ pw.println("#include <X11/Xlib.h>\n#include <X11/Xutil.h>\n#include <X11/Xos.h>\n#include <X11/Xatom.h>\n#include <stdio.h>\n");
+ pw.println("#include <X11/extensions/Xdbe.h>");
+ pw.println("#include <X11/XKBlib.h>");
+ pw.println("#include \"awt_p.h\"");
+ pw.println("#include \"color.h\"");
+ pw.println("#include \"colordata.h\"");
+ pw.println("\ntypedef struct\n");
+ pw.println("{\n");
+ pw.println(" unsigned long flags;\n");
+ pw.println(" unsigned long functions;\n");
+ pw.println(" unsigned long decorations;\n");
+ pw.println(" long inputMode;\n");
+ pw.println(" unsigned long status;\n");
+ pw.println("} PropMwmHints;\n");
+
+
+ pw.println("\n\nint main(){");
+ j=0;
+ for ( eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
+ tp = (BaseType) eo.nextElement();
+ if (tp instanceof StructType)
+ {
+ stp = (StructType) tp;
+ if (!stp.getIsInterface()) {
+ pw.println(stp.getName()+" temp"+ j + ";\n");
+ j++;
+ }
+ }
+ }
+ j=0;
+
+ pw.println("printf(\"long\t%d\\n\",(int)sizeof(long));");
+ pw.println("printf(\"int\t%d\\n\",(int)sizeof(int));");
+ pw.println("printf(\"short\t%d\\n\",(int)sizeof(short));");
+ pw.println("printf(\"ptr\t%d\\n\",(int)sizeof(void *));");
+ pw.println("printf(\"Bool\t%d\\n\",(int)sizeof(Bool));");
+ pw.println("printf(\"Atom\t%d\\n\",(int)sizeof(Atom));");
+ pw.println("printf(\"Window\t%d\\n\",(int)sizeof(Window));");
+
+
+ for (eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
+
+
+ tp = (BaseType) eo.nextElement();
+ if (tp instanceof StructType)
+ {
+ stp = (StructType) tp;
+ if (stp.getIsInterface()) {
+ continue;
+ }
+ for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
+ AtomicType atp = (AtomicType) e.nextElement();
+ if (atp.isAlias()) continue;
+ pw.println("printf(\""+ stp.getName() + "." + atp.getName() + "\t%d\\n\""+
+ ",(int)((unsigned long ) &temp"+j+"."+atp.getName()+"- (unsigned long ) &temp" + j + ") );");
+
+ i++;
+
+
+ }
+ pw.println("printf(\""+ stp.getName() + "\t%d\\n\"" + ",(int)sizeof(temp"+j+"));");
+
+ j++;
+ }
+
+ }
+ pw.println("return 0;");
+ pw.println("}");
+ pw.close();
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ private void initTypes() {
+ symbolTable.put("int", new AtomicType(AtomicType.TYPE_INT, "", "int"));
+ symbolTable.put("short", new AtomicType(AtomicType.TYPE_SHORT, "", "short"));
+ symbolTable.put("long", new AtomicType(AtomicType.TYPE_LONG, "", "long"));
+ symbolTable.put("float", new AtomicType(AtomicType.TYPE_FLOAT, "", "float"));
+ symbolTable.put("double", new AtomicType(AtomicType.TYPE_DOUBLE, "", "double"));
+ symbolTable.put("Bool", new AtomicType(AtomicType.TYPE_BOOL, "", "Bool"));
+ symbolTable.put("char", new AtomicType(AtomicType.TYPE_CHAR, "", "char"));
+ symbolTable.put("byte", new AtomicType(AtomicType.TYPE_BYTE, "", "byte"));
+ symbolTable.put("pointer", new AtomicType(AtomicType.TYPE_PTR, "", "pointer"));
+ symbolTable.put("longlong", new AtomicType(AtomicType.TYPE_LONG_LONG, "", "longlong"));
+ symbolTable.put("Atom", new AtomicType(AtomicType.TYPE_ATOM, "", "Atom"));
+ symbolTable.put("ulong", new AtomicType(AtomicType.TYPE_ULONG, "", "ulong"));
+ }
+ public WrapperGenerator(String outputDir, String xlibFilename) {
+ initTypes();
+ try {
+ BufferedReader in = new BufferedReader(new FileReader(xlibFilename));
+ String line;
+ String splits[];
+ BaseType curType = null;
+ while ((line = in.readLine()) != null)
+ {
+ int commentStart = line.indexOf("//");
+ if (commentStart >= 0) {
+ // remove comment
+ line = line.substring(0, commentStart);
+ }
+
+ if ("".equals(line)) {
+ // skip empty line
+ continue;
+ }
+
+ splits = line.split("\\p{Space}+");
+ if (splits.length >= 2)
+ {
+ String struct_name = curType.getName();
+ String field_name = splits[1];
+ String s_type = splits[2];
+ BaseType bt = curType;
+ int type = AtomicType.getTypeForString(s_type);
+ AtomicType atp = null;
+ if (bt != null && type != -1) {
+ atp = new AtomicType(type,field_name,s_type);
+ if (splits.length > 3) {
+ atp.setAttributes(splits);
+ }
+ if (bt instanceof StructType) {
+ StructType stp = (StructType) bt;
+ stp.addMember(atp);
+ } else if (bt instanceof FunctionType) {
+ ((FunctionType)bt).addArgument(atp);
+ }
+ }
+ else if (bt == null) {
+ System.out.println("Cannot find " + struct_name);
+ }
+
+ }
+ else if (line != null) {
+ BaseType bt = (BaseType) symbolTable.get(line);
+ if (bt == null) {
+ if (line.startsWith("!")) {
+ FunctionType ft = new FunctionType(line);
+ ft.setName(line);
+ symbolTable.put(ft.getName(),ft);
+ curType = ft;
+ } else {
+ StructType stp = new StructType(line);
+ stp.setName(line);
+ curType = stp;
+ symbolTable.put(stp.getName(),stp);
+ }
+ }
+ }
+
+ }
+ in.close();
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+ private void makeSizer(String outputDir) {
+ if (wide) {
+ sizerFileName = "sizer.64.c";
+ } else {
+ sizerFileName = "sizer.32.c";
+ }
+ File fp = new File(outputDir, sizerFileName);
+ writeNativeSizer(fp.getAbsolutePath());
+ }
+ private boolean readSizeInfo(String sizeInfo) {
+ try {
+ File f = new File(sizeInfo+".32");
+ boolean res = true;
+ FileInputStream fis = null;
+ if (f.exists()) {
+ fis = new FileInputStream(f);
+ res = readSizeInfo(fis, false);
+ fis.close();
+ }
+ f = new File(sizeInfo+".64");
+ if (f.exists()) {
+ fis = new FileInputStream(f);
+ res &= readSizeInfo(fis, true);
+ fis.close();
+ }
+ return res;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ private void startGeneration(String outputDir, String sizeInfo) {
+ if (readSizeInfo(sizeInfo))
+ {
+ writeJavaWrapperClass(outputDir);
+ }
+ else {
+ System.out.println("Error calculating offsets");
+ }
+ }
+
+ public static void main(String[] args) {
+
+ if (args.length < 4) {
+ System.out.println("Usage:\nWrapperGenerator <output_dir> <xlibtypes.txt> <action> [<platform> | <sizes info file>]");
+ System.out.println("Where <action>: gen, sizer");
+ System.out.println(" <platform>: 32, 64");
+ System.exit(1);
+ }
+
+ WrapperGenerator xparser = new WrapperGenerator(args[0], args[1]);
+ if (args[2].equals("sizer")) {
+ xparser.wide = args[3].equals("64");
+ xparser.makeSizer(args[0]);
+ } else if (args[2].equals("gen")) {
+ xparser.startGeneration(args[0], args[3]);
+ }
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/src/native/genconstants/ch/genSocketOptionRegistry.c Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include <stdio.h>
+#ifdef _WIN32
+#include <winsock2.h>
+#include <ws2tcpip.h>
+#else
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#endif
+
+/**
+ * Generates sun.nio.ch.SocketOptionRegistry, a class that maps Java-level
+ * socket options to the platform specific level and option.
+ */
+
+static void out(char* s) {
+ printf("%s\n", s);
+}
+
+static void emit(const char *name, char * family, int level, int optname) {
+ printf(" map.put(new RegistryKey(%s, %s),", name, family);
+ printf(" new OptionKey(%d, %d));\n", level, optname);
+}
+
+static void emit_unspec(const char *name, int level, int optname) {
+ emit(name, "Net.UNSPEC", level, optname);
+}
+
+static void emit_inet(const char *name, int level, int optname) {
+ emit(name, "StandardProtocolFamily.INET", level, optname);
+}
+
+static void emit_inet6(const char *name, int level, int optname) {
+ emit(name, "StandardProtocolFamily.INET6", level, optname);
+}
+
+int main(int argc, const char* argv[]) {
+ out("// AUTOMATICALLY GENERATED FILE - DO NOT EDIT ");
+ out("package sun.nio.ch; ");
+ out("import java.net.SocketOption; ");
+ out("import java.net.StandardSocketOptions; ");
+ out("import java.net.ProtocolFamily; ");
+ out("import java.net.StandardProtocolFamily; ");
+ out("import java.util.Map; ");
+ out("import java.util.HashMap; ");
+ out("class SocketOptionRegistry { ");
+ out(" private SocketOptionRegistry() { } ");
+ out(" private static class RegistryKey { ");
+ out(" private final SocketOption<?> name; ");
+ out(" private final ProtocolFamily family; ");
+ out(" RegistryKey(SocketOption<?> name, ProtocolFamily family) { ");
+ out(" this.name = name; ");
+ out(" this.family = family; ");
+ out(" } ");
+ out(" public int hashCode() { ");
+ out(" return name.hashCode() + family.hashCode(); ");
+ out(" } ");
+ out(" public boolean equals(Object ob) { ");
+ out(" if (ob == null) return false; ");
+ out(" if (!(ob instanceof RegistryKey)) return false; ");
+ out(" RegistryKey other = (RegistryKey)ob; ");
+ out(" if (this.name != other.name) return false; ");
+ out(" if (this.family != other.family) return false; ");
+ out(" return true; ");
+ out(" } ");
+ out(" } ");
+ out(" private static class LazyInitialization { ");
+ out(" static final Map<RegistryKey,OptionKey> options = options(); ");
+ out(" private static Map<RegistryKey,OptionKey> options() { ");
+ out(" Map<RegistryKey,OptionKey> map = ");
+ out(" new HashMap<RegistryKey,OptionKey>(); ");
+
+ emit_unspec("StandardSocketOptions.SO_BROADCAST", SOL_SOCKET, SO_BROADCAST);
+ emit_unspec("StandardSocketOptions.SO_KEEPALIVE", SOL_SOCKET, SO_KEEPALIVE);
+ emit_unspec("StandardSocketOptions.SO_LINGER", SOL_SOCKET, SO_LINGER);
+ emit_unspec("StandardSocketOptions.SO_SNDBUF", SOL_SOCKET, SO_SNDBUF);
+ emit_unspec("StandardSocketOptions.SO_RCVBUF", SOL_SOCKET, SO_RCVBUF);
+ emit_unspec("StandardSocketOptions.SO_REUSEADDR", SOL_SOCKET, SO_REUSEADDR);
+ emit_unspec("StandardSocketOptions.TCP_NODELAY", IPPROTO_TCP, TCP_NODELAY);
+
+ emit_inet("StandardSocketOptions.IP_TOS", IPPROTO_IP, IP_TOS);
+ emit_inet("StandardSocketOptions.IP_MULTICAST_IF", IPPROTO_IP, IP_MULTICAST_IF);
+ emit_inet("StandardSocketOptions.IP_MULTICAST_TTL", IPPROTO_IP, IP_MULTICAST_TTL);
+ emit_inet("StandardSocketOptions.IP_MULTICAST_LOOP", IPPROTO_IP, IP_MULTICAST_LOOP);
+
+#ifdef AF_INET6
+ emit_inet6("StandardSocketOptions.IP_MULTICAST_IF", IPPROTO_IPV6, IPV6_MULTICAST_IF);
+ emit_inet6("StandardSocketOptions.IP_MULTICAST_TTL", IPPROTO_IPV6, IPV6_MULTICAST_HOPS);
+ emit_inet6("StandardSocketOptions.IP_MULTICAST_LOOP", IPPROTO_IPV6, IPV6_MULTICAST_LOOP);
+#endif
+
+ emit_unspec("ExtendedSocketOption.SO_OOBINLINE", SOL_SOCKET, SO_OOBINLINE);
+
+ out(" return map; ");
+ out(" } ");
+ out(" } ");
+ out(" public static OptionKey findOption(SocketOption<?> name, ProtocolFamily family) { ");
+ out(" RegistryKey key = new RegistryKey(name, family); ");
+ out(" return LazyInitialization.options.get(key); ");
+ out(" } ");
+ out("} ");
+
+ return 0;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/src/native/genconstants/fs/genSolarisConstants.c Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include <stdio.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sys/acl.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+/**
+ * Generates sun.nio.fs.SolarisConstants
+ */
+
+static void out(char* s) {
+ printf("%s\n", s);
+}
+
+static void emit(char* name, int value) {
+ printf(" static final int %s = %d;\n", name, value);
+}
+
+static void emitX(char* name, int value) {
+ printf(" static final int %s = 0x%x;\n", name, value);
+}
+
+#define DEF(X) emit(#X, X);
+#define DEFX(X) emitX(#X, X);
+
+int main(int argc, const char* argv[]) {
+ out("// AUTOMATICALLY GENERATED FILE - DO NOT EDIT ");
+ out("package sun.nio.fs; ");
+ out("class SolarisConstants { ");
+ out(" private SolarisConstants() { } ");
+
+ // extended attributes
+ DEFX(O_XATTR);
+ DEF(_PC_XATTR_ENABLED);
+
+ // ACL configuration
+ DEF(_PC_ACL_ENABLED);
+ DEFX(_ACL_ACE_ENABLED);
+
+ // ACL commands
+ DEFX(ACE_GETACL);
+ DEFX(ACE_SETACL);
+
+ // ACL mask/flags/types
+ emitX("ACE_ACCESS_ALLOWED_ACE_TYPE", 0x0000);
+ emitX("ACE_ACCESS_DENIED_ACE_TYPE", 0x0001);
+ emitX("ACE_SYSTEM_AUDIT_ACE_TYPE", 0x0002);
+ emitX("ACE_SYSTEM_ALARM_ACE_TYPE", 0x0003);
+ emitX("ACE_READ_DATA", 0x00000001);
+ emitX("ACE_LIST_DIRECTORY", 0x00000001);
+ emitX("ACE_WRITE_DATA", 0x00000002);
+ emitX("ACE_ADD_FILE", 0x00000002);
+ emitX("ACE_APPEND_DATA", 0x00000004);
+ emitX("ACE_ADD_SUBDIRECTORY", 0x00000004);
+ emitX("ACE_READ_NAMED_ATTRS", 0x00000008);
+ emitX("ACE_WRITE_NAMED_ATTRS", 0x00000010);
+ emitX("ACE_EXECUTE", 0x00000020);
+ emitX("ACE_DELETE_CHILD", 0x00000040);
+ emitX("ACE_READ_ATTRIBUTES", 0x00000080);
+ emitX("ACE_WRITE_ATTRIBUTES", 0x00000100);
+ emitX("ACE_DELETE", 0x00010000);
+ emitX("ACE_READ_ACL", 0x00020000);
+ emitX("ACE_WRITE_ACL", 0x00040000);
+ emitX("ACE_WRITE_OWNER", 0x00080000);
+ emitX("ACE_SYNCHRONIZE", 0x00100000);
+ emitX("ACE_FILE_INHERIT_ACE", 0x0001);
+ emitX("ACE_DIRECTORY_INHERIT_ACE", 0x0002);
+ emitX("ACE_NO_PROPAGATE_INHERIT_ACE", 0x0004);
+ emitX("ACE_INHERIT_ONLY_ACE", 0x0008);
+ emitX("ACE_SUCCESSFUL_ACCESS_ACE_FLAG", 0x0010);
+ emitX("ACE_FAILED_ACCESS_ACE_FLAG", 0x0020);
+ emitX("ACE_IDENTIFIER_GROUP", 0x0040);
+ emitX("ACE_OWNER", 0x1000);
+ emitX("ACE_GROUP", 0x2000);
+ emitX("ACE_EVERYONE", 0x4000);
+
+ out("} ");
+ return 0;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/src/native/genconstants/fs/genUnixConstants.c Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include <stdio.h>
+#include <errno.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+/**
+ * Generates sun.nio.fs.UnixConstants
+ */
+
+static void out(char* s) {
+ printf("%s\n", s);
+}
+
+static void emit(char* name, int value) {
+ printf(" static final int %s = %d;\n", name, value);
+}
+
+static void emitX(char* name, int value) {
+ printf(" static final int %s = 0x%x;\n", name, value);
+}
+
+#define DEF(X) emit(#X, X);
+#define DEFX(X) emitX(#X, X);
+
+int main(int argc, const char* argv[]) {
+ out("// AUTOMATICALLY GENERATED FILE - DO NOT EDIT ");
+ out("package sun.nio.fs; ");
+ out("class UnixConstants { ");
+ out(" private UnixConstants() { } ");
+
+ // open flags
+ DEF(O_RDONLY);
+ DEF(O_WRONLY);
+ DEF(O_RDWR);
+ DEFX(O_APPEND);
+ DEFX(O_CREAT);
+ DEFX(O_EXCL);
+ DEFX(O_TRUNC);
+ DEFX(O_SYNC);
+#ifndef O_DSYNC
+ // At least FreeBSD doesn't define O_DSYNC
+ emit("O_DSYNC", O_SYNC);
+#else
+ DEFX(O_DSYNC);
+#endif
+#ifdef O_NOFOLLOW
+ DEFX(O_NOFOLLOW);
+#else
+ // not supported (dummy values will not be used at runtime).
+ emitX("O_NOFOLLOW", 0x0);
+#endif
+
+ // mode masks
+ emitX("S_IAMB",
+ (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH));
+ DEF(S_IRUSR);
+ DEF(S_IWUSR);
+ DEF(S_IXUSR);
+ DEF(S_IRGRP);
+ DEF(S_IWGRP);
+ DEF(S_IXGRP);
+ DEF(S_IROTH);
+ DEF(S_IWOTH);
+ DEF(S_IXOTH);
+ DEFX(S_IFMT);
+ DEFX(S_IFREG);
+ DEFX(S_IFDIR);
+ DEFX(S_IFLNK);
+ DEFX(S_IFCHR);
+ DEFX(S_IFBLK);
+ DEFX(S_IFIFO);
+
+ // access modes
+ DEF(R_OK);
+ DEF(W_OK);
+ DEF(X_OK);
+ DEF(F_OK);
+
+ // errors
+ DEF(ENOENT);
+ DEF(EACCES);
+ DEF(EEXIST);
+ DEF(ENOTDIR);
+ DEF(EINVAL);
+ DEF(EXDEV);
+ DEF(EISDIR);
+ DEF(ENOTEMPTY);
+ DEF(ENOSPC);
+ DEF(EAGAIN);
+ DEF(ENOSYS);
+ DEF(ELOOP);
+ DEF(EROFS);
+#ifndef ENODATA
+ // Only used in Linux java source, provide any value so it compiles
+ emit("ENODATA", ELAST);
+#else
+ DEF(ENODATA);
+#endif
+ DEF(ERANGE);
+ DEF(EMFILE);
+
+ // flags used with openat/unlinkat/etc.
+#if defined(AT_SYMLINK_NOFOLLOW) && defined(AT_REMOVEDIR)
+ DEFX(AT_SYMLINK_NOFOLLOW)
+ DEFX(AT_REMOVEDIR);
+#else
+ // not supported (dummy values will not be used at runtime).
+ emitX("AT_SYMLINK_NOFOLLOW", 0x0);
+ emitX("AT_REMOVEDIR", 0x0);
+#endif
+
+ out("} ");
+
+ return 0;
+}
--- a/jdk/src/aix/classes/sun/nio/ch/AixPollPort.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/aix/classes/sun/nio/ch/AixPollPort.java Thu Feb 20 16:27:08 2014 -0800
@@ -107,6 +107,7 @@
private final ArrayBlockingQueue<Event> queue;
private final Event NEED_TO_POLL = new Event(null, 0);
private final Event EXECUTE_TASK_OR_SHUTDOWN = new Event(null, 0);
+ private final Event CONTINUE_AFTER_CTL_EVENT = new Event(null, 0);
// encapsulates a pollset control event for a file descriptor
static class ControlEvent {
@@ -342,7 +343,11 @@
// To emulate one shot semantic we need to remove
// the file descriptor here.
- pollsetCtl(pollset, PS_DELETE, fd, 0);
+ if (fd != sp[0] && fd != ctlSp[0]) {
+ synchronized (controlQueue) {
+ pollsetCtl(pollset, PS_DELETE, fd, 0);
+ }
+ }
// wakeup
if (fd == sp[0]) {
@@ -351,10 +356,6 @@
drain1(sp[0]);
}
- // This is the only file descriptor without
- // one shot semantic => register it again.
- pollsetCtl(pollset, PS_ADD, sp[0], Net.POLLIN);
-
// queue special event if there are more events
// to handle.
if (n > 0) {
@@ -368,12 +369,12 @@
if (fd == ctlSp[0]) {
synchronized (controlQueue) {
drain1(ctlSp[0]);
- // This file descriptor does not have
- // one shot semantic => register it again.
- pollsetCtl(pollset, PS_ADD, ctlSp[0], Net.POLLIN);
processControlQueue();
}
- continue;
+ if (n > 0) {
+ continue;
+ }
+ return CONTINUE_AFTER_CTL_EVENT;
}
PollableChannel channel = fdToChannel.get(fd);
@@ -431,6 +432,11 @@
continue;
}
+ // contine after we processed a control event
+ if (ev == CONTINUE_AFTER_CTL_EVENT) {
+ continue;
+ }
+
// handle wakeup to execute task or shutdown
if (ev == EXECUTE_TASK_OR_SHUTDOWN) {
Runnable task = pollTask();
Binary file jdk/src/macosx/native/sun/osxapp/resource/icons/JavaApp.icns has changed
--- a/jdk/src/share/bin/java.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/bin/java.c Thu Feb 20 16:27:08 2014 -0800
@@ -345,10 +345,10 @@
} \
} while (JNI_FALSE)
-#define CHECK_EXCEPTION_RETURN(CER_return_value) \
+#define CHECK_EXCEPTION_RETURN() \
do { \
if ((*env)->ExceptionOccurred(env)) { \
- return CER_return_value; \
+ return; \
} \
} while (JNI_FALSE)
@@ -1258,7 +1258,6 @@
GetApplicationClass(JNIEnv *env)
{
jmethodID mid;
- jobject result;
jclass cls = GetLauncherHelperClass(env);
NULL_CHECK0(cls);
NULL_CHECK0(mid = (*env)->GetStaticMethodID(env, cls,
--- a/jdk/src/share/bin/parse_manifest.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/bin/parse_manifest.c Thu Feb 20 16:27:08 2014 -0800
@@ -233,7 +233,7 @@
jlong base_offset;
jlong offset;
char buffer[MINREAD];
- p = buffer;
+ p = (Byte*) buffer;
/*
* Read the END Header, which is the starting point for ZIP files.
* (Clearly designed to make writing a zip file easier than reading
@@ -276,7 +276,7 @@
if (JLI_Lseek(fd, offset, SEEK_SET) < (jlong)0) {
return (-1);
}
- p = buffer;
+ p = (Byte*) buffer;
base_offset = base_offset - ZIP64_ENDSIZ(p) - ZIP64_ENDOFF(p) - ZIP64_ENDHDR;
} else {
base_offset = base_offset - ENDSIZ(p) - ENDOFF(p);
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,110 +22,99 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
-
package com.sun.java.util.jar.pack;
import java.util.ListResourceBundle;
public class DriverResource_ja extends ListResourceBundle {
- public static final String VERSION ="VERSION";
- public static final String BAD_ARGUMENT ="BAD_ARGUMENT";
- public static final String BAD_OPTION ="BAD_OPTION";
- public static final String BAD_REPACK_OUTPUT="BAD_REPACK_OUTPUT";
- public static final String DETECTED_ZIP_COMMENT="DETECTED_ZIP_COMMENT";
- public static final String SKIP_FOR_REPACKED ="SKIP_FOR_REPACKED";
- public static final String WRITE_PACK_FILE ="WRITE_PACK_FILE";
- public static final String WIRTE_PACKGZ_FILE="WIRTE_PACKGZ_FILE";
- public static final String SKIP_FOR_MOVE_FAILED="SKIP_FOR_MOVE_FAILED";
- public static final String PACK_HELP="PACK_HELP";
- public static final String UNPACK_HELP ="UNPACK_HELP";
- public static final String MORE_INFO = "MORE_INFO";
- public static final String DUPLICATE_OPTION = "DUPLICATE_OPTION";
- public static final String BAD_SPEC = "BAD_SPEC";
- //The following string is duplicate in PACK and UNPACK comment,which was draw out to ruduce translation work.
- private static final String PARAMETER_V = " -v, --verbose increase program verbosity";
- private static final String PARAMETER_Q = " -q, --quiet set verbosity to lowest level";
- private static final String PARAMETER_LF = " -l{F}, --log-file={F} output to the given log file, or '-' for System.out";
- private static final String PARAMETER_H = " -?, -h, --help print this message";
- private static final String PARAMETER_VER = " -V, --version print program version";
- private static final String PARAMETER_J = " -J{X} pass option X to underlying Java VM";
-
+ public static final String VERSION = "VERSION";
+ public static final String BAD_ARGUMENT = "BAD_ARGUMENT";
+ public static final String BAD_OPTION = "BAD_OPTION";
+ public static final String BAD_REPACK_OUTPUT = "BAD_REPACK_OUTPUT";
+ public static final String DETECTED_ZIP_COMMENT = "DETECTED_ZIP_COMMENT";
+ public static final String SKIP_FOR_REPACKED = "SKIP_FOR_REPACKED";
+ public static final String WRITE_PACK_FILE = "WRITE_PACK_FILE";
+ public static final String WRITE_PACKGZ_FILE = "WRITE_PACKGZ_FILE";
+ public static final String SKIP_FOR_MOVE_FAILED = "SKIP_FOR_MOVE_FAILED";
+ public static final String PACK_HELP = "PACK_HELP";
+ public static final String UNPACK_HELP = "UNPACK_HELP";
+ public static final String MORE_INFO = "MORE_INFO";
+ public static final String DUPLICATE_OPTION = "DUPLICATE_OPTION";
+ public static final String BAD_SPEC = "BAD_SPEC";
- //The following are outputs of command 'pack200' and 'unpack200'.
- //Don't translate command arguments ,words with a prefix of '-' or '--'.
- //
- private static final Object[][] resource= {
- {VERSION,"{0}\u30D0\u30FC\u30B8\u30E7\u30F3{1}"},//parameter 0:class name;parameter 1: version value
- {BAD_ARGUMENT,"\u7121\u52B9\u306A\u5F15\u6570: {0}"},
- {BAD_OPTION,"\u7121\u52B9\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: {0}={1}"},//parameter 0:option name;parameter 1:option value
- {BAD_REPACK_OUTPUT,"\u7121\u52B9\u306A--repack\u51FA\u529B: {0}"},//parameter 0:filename
- {DETECTED_ZIP_COMMENT,"\u691C\u51FA\u3055\u308C\u305FZIP\u30B3\u30E1\u30F3\u30C8: {0}"},//parameter 0:comment
- {SKIP_FOR_REPACKED,"\u3059\u3067\u306B\u518D\u5727\u7E2E\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u30B9\u30AD\u30C3\u30D7\u3057\u3066\u3044\u307E\u3059: {0}"},//parameter 0:filename
- {WRITE_PACK_FILE,"*.pack\u30D5\u30A1\u30A4\u30EB\u3092\u66F8\u304D\u8FBC\u3080\u306B\u306F\u3001--no-gzip\u3092\u6307\u5B9A\u3057\u307E\u3059: {0}"},//parameter 0:filename
- {WIRTE_PACKGZ_FILE,"*.pack.gz\u30D5\u30A1\u30A4\u30EB\u3092\u66F8\u304D\u8FBC\u3080\u306B\u306F\u3001--gzip\u3092\u6307\u5B9A\u3057\u307E\u3059: {0}"},//parameter 0:filename
- {SKIP_FOR_MOVE_FAILED,"\u79FB\u52D5\u304C\u5931\u6557\u3057\u305F\u305F\u3081\u89E3\u51CD\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3066\u3044\u307E\u3059: {0}"},//parameter 0:filename
- {PACK_HELP,new String[]{
- "\u4F7F\u7528\u65B9\u6CD5: pack200 [-opt... | --option=value]... x.pack[.gz] y.jar",
- "",
- "\u5727\u7E2E\u30AA\u30D7\u30B7\u30E7\u30F3",
- " -g\u3001--no-gzip \u30D7\u30EC\u30FC\u30F3\u306A*.pack\u30D5\u30A1\u30A4\u30EB\u3092\u5727\u7E2E\u305B\u305A\u306B\u51FA\u529B\u3057\u307E\u3059",
- " --gzip (\u30C7\u30D5\u30A9\u30EB\u30C8)\u5727\u7E2E\u51FA\u529B\u3092gzip\u3067\u5F8C\u51E6\u7406\u3057\u307E\u3059",
- " -G\u3001--strip-debug \u5727\u7E2E\u4E2D\u306B\u30C7\u30D0\u30C3\u30B0\u5C5E\u6027\u3092\u524A\u9664\u3057\u307E\u3059",
- " -O\u3001--no-keep-file-order \u30D5\u30A1\u30A4\u30EB\u306E\u9806\u5E8F\u4ED8\u3051\u60C5\u5831\u3092\u8EE2\u9001\u3057\u307E\u305B\u3093",
- " --keep-file-order (\u30C7\u30D5\u30A9\u30EB\u30C8)\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u9806\u5E8F\u4ED8\u3051\u3092\u4FDD\u6301\u3057\u307E\u3059",
- " -S{N}\u3001--segment-limit={N} \u30BB\u30B0\u30E1\u30F3\u30C8\u5236\u9650\u3092\u51FA\u529B\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8N=1Mb)",
- " -E{N}\u3001--effort={N} \u5727\u7E2E\u306E\u8A66\u884C(\u30C7\u30D5\u30A9\u30EB\u30C8N=5)",
- " -H{h}\u3001--deflate-hint={h} \u30C7\u30D5\u30EC\u30FC\u30C8\u30FB\u30D2\u30F3\u30C8\u3092\u8EE2\u9001\u3057\u307E\u3059: true\u3001false\u307E\u305F\u306Fkeep(\u30C7\u30D5\u30A9\u30EB\u30C8)",
- " -m{V}\u3001--modification-time={V} \u5909\u66F4\u6642\u9593\u3092\u8EE2\u9001\u3057\u307E\u3059: latest\u307E\u305F\u306Fkeep(\u30C7\u30D5\u30A9\u30EB\u30C8)",
- " -P{F}\u3001--pass-file={F} \u6307\u5B9A\u3055\u308C\u305F\u5727\u7E2E\u3055\u308C\u3066\u3044\u306A\u3044\u5165\u529B\u8981\u7D20\u3092\u8EE2\u9001\u3057\u307E\u3059",
- " -U{a}\u3001--unknown-attribute={a} \u4E0D\u660E\u306E\u5C5E\u6027\u30A2\u30AF\u30B7\u30E7\u30F3: error\u3001strip\u307E\u305F\u306Fpass(\u30C7\u30D5\u30A9\u30EB\u30C8)",
- " -C{N}={L}\u3001--class-attribute={N}={L} (\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u5C5E\u6027)",
- " -F{N}={L}\u3001--field-attribute={N}={L} (\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u5C5E\u6027)",
- " -M{N}={L}\u3001--method-attribute={N}={L} (\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u5C5E\u6027)",
- " -D{N}={L}\u3001--code-attribute={N}={L} (\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u5C5E\u6027)",
- " -f{F}\u3001--config-file={F} Pack200.Packer\u30D7\u30ED\u30D1\u30C6\u30A3\u306B\u30D5\u30A1\u30A4\u30EBF\u3092\u8AAD\u307F\u8FBC\u307F\u307E\u3059",
- PARAMETER_V ,
- PARAMETER_Q ,
- PARAMETER_LF ,
- PARAMETER_H ,
- PARAMETER_VER ,
- PARAMETER_J,
- "",
- "\u6CE8\u610F:",
- " -P\u3001-C\u3001-F\u3001-M\u304A\u3088\u3073-D\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u7D2F\u7A4D\u3055\u308C\u307E\u3059\u3002",
- " \u5C5E\u6027\u5B9A\u7FA9\u306E\u4F8B: -C SourceFile=RUH .",
- " Config.\u30D5\u30A1\u30A4\u30EB\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u306F\u3001Pack200 API\u306B\u3088\u3063\u3066\u5B9A\u7FA9\u3055\u308C\u307E\u3059\u3002",
- " -S\u3001-E\u3001-H\u3001-m\u3001-U\u306E\u5024\u306E\u610F\u5473\u306F\u3001Pack200 API\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
- " \u30EC\u30A4\u30A2\u30A6\u30C8\u5B9A\u7FA9(RUH\u306A\u3069)\u306FJSR 200\u306B\u3088\u3063\u3066\u5B9A\u7FA9\u3055\u308C\u307E\u3059\u3002",
- "",
- "\u518D\u5727\u7E2E\u30E2\u30FC\u30C9\u3067\u306F\u3001JAR\u30D5\u30A1\u30A4\u30EB\u304C\u5727\u7E2E/\u89E3\u51CD\u30B5\u30A4\u30AF\u30EB\u3067\u66F4\u65B0\u3055\u308C\u307E\u3059:",
- " pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar\n"
- }
- },
- {UNPACK_HELP,new String[]{
- "\u4F7F\u7528\u65B9\u6CD5: unpack200 [-opt... | --option=value]... x.pack[.gz] y.jar\n",
- "",
- "\u89E3\u51CD\u30AA\u30D7\u30B7\u30E7\u30F3",
- " -H{h}\u3001--deflate-hint={h} \u8EE2\u9001\u3055\u308C\u305F\u30C7\u30D5\u30EC\u30FC\u30C8\u30FB\u30D2\u30F3\u30C8\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u3059: true\u3001false\u307E\u305F\u306Fkeep(\u30C7\u30D5\u30A9\u30EB\u30C8)",
- " -r\u3001--remove-pack-file \u89E3\u51CD\u5F8C\u306B\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u307E\u3059",
- PARAMETER_V ,
- PARAMETER_Q ,
- PARAMETER_LF ,
- PARAMETER_H ,
- PARAMETER_VER ,
- PARAMETER_J,
- }
- },
+ /*
+ * The following are the output of 'pack200' and 'unpack200' commands.
+ * Do not translate command arguments and words with a prefix of '-' or '--'.
+ */
+ private static final Object[][] resource = {
+ {VERSION, "{0}\u30D0\u30FC\u30B8\u30E7\u30F3{1}"}, // parameter 0:class name;parameter 1: version value
+ {BAD_ARGUMENT, "\u7121\u52B9\u306A\u5F15\u6570: {0}"},
+ {BAD_OPTION, "\u7121\u52B9\u306A\u30AA\u30D7\u30B7\u30E7\u30F3: {0}={1}"}, // parameter 0:option name;parameter 1:option value
+ {BAD_REPACK_OUTPUT, "\u7121\u52B9\u306A--repack\u51FA\u529B: {0}"}, // parameter 0:filename
+ {DETECTED_ZIP_COMMENT, "\u691C\u51FA\u3055\u308C\u305FZIP\u30B3\u30E1\u30F3\u30C8: {0}"}, // parameter 0:comment
+ {SKIP_FOR_REPACKED, "\u3059\u3067\u306B\u518D\u5727\u7E2E\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u30B9\u30AD\u30C3\u30D7\u3057\u3066\u3044\u307E\u3059: {0}"}, // parameter 0:filename
+ {WRITE_PACK_FILE, "*.pack\u30D5\u30A1\u30A4\u30EB\u3092\u66F8\u304D\u8FBC\u3080\u306B\u306F\u3001--no-gzip\u3092\u6307\u5B9A\u3057\u307E\u3059: {0}"}, // parameter 0:filename
+ {WRITE_PACKGZ_FILE, "*.pack.gz\u30D5\u30A1\u30A4\u30EB\u3092\u66F8\u304D\u8FBC\u3080\u306B\u306F\u3001--gzip\u3092\u6307\u5B9A\u3057\u307E\u3059: {0}"}, // parameter 0:filename
+ {SKIP_FOR_MOVE_FAILED, "\u79FB\u52D5\u304C\u5931\u6557\u3057\u305F\u305F\u3081\u89E3\u51CD\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3066\u3044\u307E\u3059: {0}"}, // parameter 0:filename
+ {PACK_HELP, new String[] {
+ "\u4F7F\u7528\u65B9\u6CD5: pack200 [-opt... | --option=value]... x.pack[.gz] y.jar",
+ "",
+ "\u5727\u7E2E\u30AA\u30D7\u30B7\u30E7\u30F3",
+ " -g\u3001--no-gzip \u30D7\u30EC\u30FC\u30F3\u306A*.pack\u30D5\u30A1\u30A4\u30EB\u3092\u5727\u7E2E\u305B\u305A\u306B\u51FA\u529B\u3057\u307E\u3059",
+ " --gzip (\u30C7\u30D5\u30A9\u30EB\u30C8)\u5727\u7E2E\u51FA\u529B\u3092gzip\u3067\u5F8C\u51E6\u7406\u3057\u307E\u3059",
+ " -G\u3001--strip-debug \u5727\u7E2E\u4E2D\u306B\u30C7\u30D0\u30C3\u30B0\u5C5E\u6027\u3092\u524A\u9664\u3057\u307E\u3059",
+ " -O\u3001--no-keep-file-order \u30D5\u30A1\u30A4\u30EB\u306E\u9806\u5E8F\u4ED8\u3051\u60C5\u5831\u3092\u8EE2\u9001\u3057\u307E\u305B\u3093",
+ " --keep-file-order (\u30C7\u30D5\u30A9\u30EB\u30C8)\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u9806\u5E8F\u4ED8\u3051\u3092\u4FDD\u6301\u3057\u307E\u3059",
+ " -S{N}\u3001--segment-limit={N} \u30BB\u30B0\u30E1\u30F3\u30C8\u5236\u9650\u3092\u51FA\u529B\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8N=1Mb)",
+ " -E{N}\u3001--effort={N} \u5727\u7E2E\u306E\u8A66\u884C(\u30C7\u30D5\u30A9\u30EB\u30C8N=5)",
+ " -H{h}\u3001--deflate-hint={h} \u30C7\u30D5\u30EC\u30FC\u30C8\u30FB\u30D2\u30F3\u30C8\u3092\u8EE2\u9001\u3057\u307E\u3059: true\u3001false\u307E\u305F\u306Fkeep(\u30C7\u30D5\u30A9\u30EB\u30C8)",
+ " -m{V}\u3001--modification-time={V} \u5909\u66F4\u6642\u9593\u3092\u8EE2\u9001\u3057\u307E\u3059: latest\u307E\u305F\u306Fkeep(\u30C7\u30D5\u30A9\u30EB\u30C8)",
+ " -P{F}\u3001--pass-file={F} \u6307\u5B9A\u3055\u308C\u305F\u5727\u7E2E\u3055\u308C\u3066\u3044\u306A\u3044\u5165\u529B\u8981\u7D20\u3092\u8EE2\u9001\u3057\u307E\u3059",
+ " -U{a}\u3001--unknown-attribute={a} \u4E0D\u660E\u306E\u5C5E\u6027\u30A2\u30AF\u30B7\u30E7\u30F3: error\u3001strip\u307E\u305F\u306Fpass(\u30C7\u30D5\u30A9\u30EB\u30C8)",
+ " -C{N}={L}\u3001--class-attribute={N}={L} (\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u5C5E\u6027)",
+ " -F{N}={L}\u3001--field-attribute={N}={L} (\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u5C5E\u6027)",
+ " -M{N}={L}\u3001--method-attribute={N}={L} (\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u5C5E\u6027)",
+ " -D{N}={L}\u3001--code-attribute={N}={L} (\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u5C5E\u6027)",
+ " -f{F}\u3001--config-file={F} Pack200.Packer\u30D7\u30ED\u30D1\u30C6\u30A3\u306B\u30D5\u30A1\u30A4\u30EBF\u3092\u8AAD\u307F\u8FBC\u307F\u307E\u3059",
+ " -v\u3001--verbose \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u5197\u9577\u6027\u3092\u9AD8\u3081\u307E\u3059",
+ " -q\u3001--quiet \u5197\u9577\u6027\u3092\u6700\u4F4E\u30EC\u30D9\u30EB\u306B\u8A2D\u5B9A\u3057\u307E\u3059",
+ " -l{F}\u3001--log-file={F} \u6307\u5B9A\u306E\u30ED\u30B0\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306FSystem.out ('-'\u306E\u5834\u5408)\u306B\u51FA\u529B\u3057\u307E\u3059",
+ " -?\u3001-h\u3001--help \u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059",
+ " -V\u3001--version \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u307E\u3059",
+ " -J{X} \u30AA\u30D7\u30B7\u30E7\u30F3X\u3092\u57FA\u790E\u3068\u306A\u308BJava VM\u306B\u6E21\u3057\u307E\u3059",
+ "",
+ "\u6CE8\u610F:",
+ " -P\u3001-C\u3001-F\u3001-M\u304A\u3088\u3073-D\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u7D2F\u7A4D\u3055\u308C\u307E\u3059\u3002",
+ " \u5C5E\u6027\u5B9A\u7FA9\u306E\u4F8B: -C SourceFile=RUH .",
+ " Config.\u30D5\u30A1\u30A4\u30EB\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u306F\u3001Pack200 API\u306B\u3088\u3063\u3066\u5B9A\u7FA9\u3055\u308C\u307E\u3059\u3002",
+ " -S\u3001-E\u3001-H\u3001-m\u3001-U\u306E\u5024\u306E\u610F\u5473\u306F\u3001Pack200 API\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
+ " \u30EC\u30A4\u30A2\u30A6\u30C8\u5B9A\u7FA9(RUH\u306A\u3069)\u306FJSR 200\u306B\u3088\u3063\u3066\u5B9A\u7FA9\u3055\u308C\u307E\u3059\u3002",
+ "",
+ "\u518D\u5727\u7E2E\u30E2\u30FC\u30C9\u3067\u306F\u3001JAR\u30D5\u30A1\u30A4\u30EB\u304C\u5727\u7E2E/\u89E3\u51CD\u30B5\u30A4\u30AF\u30EB\u3067\u66F4\u65B0\u3055\u308C\u307E\u3059:",
+ " pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar\n"
+ }
+ },
+ {UNPACK_HELP, new String[] {
+ "\u4F7F\u7528\u65B9\u6CD5: unpack200 [-opt... | --option=value]... x.pack[.gz] y.jar\n",
+ "",
+ "\u89E3\u51CD\u30AA\u30D7\u30B7\u30E7\u30F3",
+ " -H{h}\u3001--deflate-hint={h} \u8EE2\u9001\u3055\u308C\u305F\u30C7\u30D5\u30EC\u30FC\u30C8\u30FB\u30D2\u30F3\u30C8\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u3059: true\u3001false\u307E\u305F\u306Fkeep(\u30C7\u30D5\u30A9\u30EB\u30C8)",
+ " -r\u3001--remove-pack-file \u89E3\u51CD\u5F8C\u306B\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u307E\u3059",
+ " -v\u3001--verbose \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u5197\u9577\u6027\u3092\u9AD8\u3081\u307E\u3059",
+ " -q\u3001--quiet \u5197\u9577\u6027\u3092\u6700\u4F4E\u30EC\u30D9\u30EB\u306B\u8A2D\u5B9A\u3057\u307E\u3059",
+ " -l{F}\u3001--log-file={F} \u6307\u5B9A\u306E\u30ED\u30B0\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306FSystem.out ('-'\u306E\u5834\u5408)\u306B\u51FA\u529B\u3057\u307E\u3059",
+ " -?\u3001-h\u3001--help \u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059",
+ " -V\u3001--version \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u307E\u3059",
+ " -J{X} \u30AA\u30D7\u30B7\u30E7\u30F3X\u3092\u57FA\u790E\u3068\u306A\u308BJava VM\u306B\u6E21\u3057\u307E\u3059"
+ }
+ },
+ {MORE_INFO, "(\u8A73\u7D30\u306F\u3001{0} --help\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002)"}, // parameter 0:command name
+ {DUPLICATE_OPTION, "\u91CD\u8907\u30AA\u30D7\u30B7\u30E7\u30F3: {0}"}, // parameter 0:option
+ {BAD_SPEC, "{0}\u306E\u7121\u52B9\u306A\u4ED5\u69D8: {1}"}, // parameter 0:option;parameter 1:specifier
+ };
- {MORE_INFO,"(\u8A73\u7D30\u306F\u3001{0} --help\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002)"},//parameter 0:command name
- {DUPLICATE_OPTION,"\u91CD\u8907\u30AA\u30D7\u30B7\u30E7\u30F3: {0}"},//parameter 0:option
- {BAD_SPEC,"{0}\u306E\u7121\u52B9\u306A\u4ED5\u69D8: {1}"},//parameter 0:option;parameter 1:specifier
- };
-
- protected Object[][] getContents() {
- return resource;
- }
-
-
+ protected Object[][] getContents() {
+ return resource;
+ }
}
--- a/jdk/src/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,110 +22,99 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
-
package com.sun.java.util.jar.pack;
import java.util.ListResourceBundle;
public class DriverResource_zh_CN extends ListResourceBundle {
- public static final String VERSION ="VERSION";
- public static final String BAD_ARGUMENT ="BAD_ARGUMENT";
- public static final String BAD_OPTION ="BAD_OPTION";
- public static final String BAD_REPACK_OUTPUT="BAD_REPACK_OUTPUT";
- public static final String DETECTED_ZIP_COMMENT="DETECTED_ZIP_COMMENT";
- public static final String SKIP_FOR_REPACKED ="SKIP_FOR_REPACKED";
- public static final String WRITE_PACK_FILE ="WRITE_PACK_FILE";
- public static final String WIRTE_PACKGZ_FILE="WIRTE_PACKGZ_FILE";
- public static final String SKIP_FOR_MOVE_FAILED="SKIP_FOR_MOVE_FAILED";
- public static final String PACK_HELP="PACK_HELP";
- public static final String UNPACK_HELP ="UNPACK_HELP";
- public static final String MORE_INFO = "MORE_INFO";
- public static final String DUPLICATE_OPTION = "DUPLICATE_OPTION";
- public static final String BAD_SPEC = "BAD_SPEC";
- //The following string is duplicate in PACK and UNPACK comment,which was draw out to ruduce translation work.
- private static final String PARAMETER_V = " -v, --verbose increase program verbosity";
- private static final String PARAMETER_Q = " -q, --quiet set verbosity to lowest level";
- private static final String PARAMETER_LF = " -l{F}, --log-file={F} output to the given log file, or '-' for System.out";
- private static final String PARAMETER_H = " -?, -h, --help print this message";
- private static final String PARAMETER_VER = " -V, --version print program version";
- private static final String PARAMETER_J = " -J{X} pass option X to underlying Java VM";
-
+ public static final String VERSION = "VERSION";
+ public static final String BAD_ARGUMENT = "BAD_ARGUMENT";
+ public static final String BAD_OPTION = "BAD_OPTION";
+ public static final String BAD_REPACK_OUTPUT = "BAD_REPACK_OUTPUT";
+ public static final String DETECTED_ZIP_COMMENT = "DETECTED_ZIP_COMMENT";
+ public static final String SKIP_FOR_REPACKED = "SKIP_FOR_REPACKED";
+ public static final String WRITE_PACK_FILE = "WRITE_PACK_FILE";
+ public static final String WRITE_PACKGZ_FILE = "WRITE_PACKGZ_FILE";
+ public static final String SKIP_FOR_MOVE_FAILED = "SKIP_FOR_MOVE_FAILED";
+ public static final String PACK_HELP = "PACK_HELP";
+ public static final String UNPACK_HELP = "UNPACK_HELP";
+ public static final String MORE_INFO = "MORE_INFO";
+ public static final String DUPLICATE_OPTION = "DUPLICATE_OPTION";
+ public static final String BAD_SPEC = "BAD_SPEC";
- //The following are outputs of command 'pack200' and 'unpack200'.
- //Don't translate command arguments ,words with a prefix of '-' or '--'.
- //
- private static final Object[][] resource= {
- {VERSION,"{0}\u7248\u672C{1}"},//parameter 0:class name;parameter 1: version value
- {BAD_ARGUMENT,"\u9519\u8BEF\u53C2\u6570: {0}"},
- {BAD_OPTION,"\u9519\u8BEF\u9009\u9879: {0}={1}"},//parameter 0:option name;parameter 1:option value
- {BAD_REPACK_OUTPUT,"--repack \u8F93\u51FA\u9519\u8BEF: {0}"},//parameter 0:filename
- {DETECTED_ZIP_COMMENT,"\u68C0\u6D4B\u5230 ZIP \u6CE8\u91CA: {0}"},//parameter 0:comment
- {SKIP_FOR_REPACKED,"\u7531\u4E8E\u5DF2\u91CD\u65B0\u6253\u5305\u800C\u8DF3\u8FC7: {0}"},//parameter 0:filename
- {WRITE_PACK_FILE,"\u8981\u5199\u5165 *.pack \u6587\u4EF6, \u8BF7\u6307\u5B9A --no-gzip: {0}"},//parameter 0:filename
- {WIRTE_PACKGZ_FILE,"\u8981\u5199\u5165 *.pack.gz \u6587\u4EF6, \u8BF7\u6307\u5B9A --gzip: {0}"},//parameter 0:filename
- {SKIP_FOR_MOVE_FAILED,"\u7531\u4E8E\u79FB\u52A8\u5931\u8D25\u800C\u8DF3\u8FC7\u91CD\u65B0\u6253\u5305: {0}"},//parameter 0:filename
- {PACK_HELP,new String[]{
- "\u7528\u6CD5: pack200 [-opt... | --option=value]... x.pack[.gz] y.jar",
- "",
- "\u6253\u5305\u9009\u9879",
- " -g, --no-gzip \u8F93\u51FA\u65E0\u683C\u5F0F\u7684 *.pack \u6587\u4EF6, \u4E0D\u538B\u7F29",
- " --gzip (\u9ED8\u8BA4\u503C) \u4F7F\u7528 gzip \u5BF9\u6253\u5305\u8FDB\u884C\u540E\u5904\u7406",
- " -G, --strip-debug \u6253\u5305\u65F6\u5220\u9664\u8C03\u8BD5\u5C5E\u6027",
- " -O, --no-keep-file-order \u4E0D\u4F20\u8F93\u6587\u4EF6\u6392\u5E8F\u4FE1\u606F",
- " --keep-file-order (\u9ED8\u8BA4\u503C) \u4FDD\u7559\u8F93\u5165\u6587\u4EF6\u6392\u5E8F",
- " -S{N}, --segment-limit={N} \u8F93\u51FA\u6BB5\u9650\u5236 (\u9ED8\u8BA4\u503C N=1Mb)",
- " -E{N}, --effort={N} \u6253\u5305\u6548\u679C (\u9ED8\u8BA4\u503C N=5)",
- " -H{h}, --deflate-hint={h} \u4F20\u8F93\u538B\u7F29\u63D0\u793A: true, false \u6216 keep (\u9ED8\u8BA4\u503C)",
- " -m{V}, --modification-time={V} \u4F20\u8F93 modtimes: latest \u6216 keep (\u9ED8\u8BA4\u503C)",
- " -P{F}, --pass-file={F} \u4F20\u8F93\u672A\u89E3\u538B\u7F29\u7684\u7ED9\u5B9A\u8F93\u5165\u5143\u7D20",
- " -U{a}, --unknown-attribute={a} \u672A\u77E5\u5C5E\u6027\u64CD\u4F5C: error, strip \u6216 pass (\u9ED8\u8BA4\u503C)",
- " -C{N}={L}, --class-attribute={N}={L} (\u7528\u6237\u5B9A\u4E49\u7684\u5C5E\u6027)",
- " -F{N}={L}, --field-attribute={N}={L} (\u7528\u6237\u5B9A\u4E49\u7684\u5C5E\u6027)",
- " -M{N}={L}, --method-attribute={N}={L} (\u7528\u6237\u5B9A\u4E49\u7684\u5C5E\u6027)",
- " -D{N}={L}, --code-attribute={N}={L} (\u7528\u6237\u5B9A\u4E49\u7684\u5C5E\u6027)",
- " -f{F}, --config-file={F} \u8BFB\u53D6\u6587\u4EF6 F \u7684 Pack200.Packer \u5C5E\u6027",
- PARAMETER_V ,
- PARAMETER_Q ,
- PARAMETER_LF ,
- PARAMETER_H ,
- PARAMETER_VER ,
- PARAMETER_J,
- "",
- "\u6CE8:",
- " -P, -C, -F, -M \u548C -D \u9009\u9879\u7D2F\u8BA1\u3002",
- " \u793A\u4F8B\u5C5E\u6027\u5B9A\u4E49: -C SourceFile=RUH\u3002",
- " Config. \u6587\u4EF6\u5C5E\u6027\u7531 Pack200 API \u5B9A\u4E49\u3002",
- " \u6709\u5173 -S, -E, -H-, -m, -U \u503C\u7684\u542B\u4E49, \u8BF7\u53C2\u9605 Pack200 API\u3002",
- " \u5E03\u5C40\u5B9A\u4E49 (\u4F8B\u5982 RUH) \u7531 JSR 200 \u5B9A\u4E49\u3002",
- "",
- "\u91CD\u65B0\u6253\u5305\u6A21\u5F0F\u901A\u8FC7\u6253\u5305/\u89E3\u5305\u5468\u671F\u66F4\u65B0 JAR \u6587\u4EF6:",
- " pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar\n"
- }
- },
- {UNPACK_HELP,new String[]{
- "\u7528\u6CD5: unpack200 [-opt... | --option=value]... x.pack[.gz] y.jar\n",
- "",
- "\u89E3\u5305\u9009\u9879",
- " -H{h}, --deflate-hint={h} \u8986\u76D6\u5DF2\u4F20\u8F93\u7684\u538B\u7F29\u63D0\u793A: true, false \u6216 keep (\u9ED8\u8BA4\u503C)",
- " -r, --remove-pack-file \u89E3\u5305\u4E4B\u540E\u5220\u9664\u8F93\u5165\u6587\u4EF6",
- PARAMETER_V ,
- PARAMETER_Q ,
- PARAMETER_LF ,
- PARAMETER_H ,
- PARAMETER_VER ,
- PARAMETER_J,
- }
- },
+ /*
+ * The following are the output of 'pack200' and 'unpack200' commands.
+ * Do not translate command arguments and words with a prefix of '-' or '--'.
+ */
+ private static final Object[][] resource = {
+ {VERSION, "{0}\u7248\u672C{1}"}, // parameter 0:class name;parameter 1: version value
+ {BAD_ARGUMENT, "\u9519\u8BEF\u53C2\u6570: {0}"},
+ {BAD_OPTION, "\u9519\u8BEF\u9009\u9879: {0}={1}"}, // parameter 0:option name;parameter 1:option value
+ {BAD_REPACK_OUTPUT, "--repack \u8F93\u51FA\u9519\u8BEF: {0}"}, // parameter 0:filename
+ {DETECTED_ZIP_COMMENT, "\u68C0\u6D4B\u5230 ZIP \u6CE8\u91CA: {0}"}, // parameter 0:comment
+ {SKIP_FOR_REPACKED, "\u7531\u4E8E\u5DF2\u91CD\u65B0\u6253\u5305\u800C\u8DF3\u8FC7: {0}"}, // parameter 0:filename
+ {WRITE_PACK_FILE, "\u8981\u5199\u5165 *.pack \u6587\u4EF6, \u8BF7\u6307\u5B9A --no-gzip: {0}"}, // parameter 0:filename
+ {WRITE_PACKGZ_FILE, "\u8981\u5199\u5165 *.pack.gz \u6587\u4EF6, \u8BF7\u6307\u5B9A --gzip: {0}"}, // parameter 0:filename
+ {SKIP_FOR_MOVE_FAILED, "\u7531\u4E8E\u79FB\u52A8\u5931\u8D25\u800C\u8DF3\u8FC7\u91CD\u65B0\u6253\u5305: {0}"}, // parameter 0:filename
+ {PACK_HELP, new String[] {
+ "\u7528\u6CD5: pack200 [-opt... | --option=value]... x.pack[.gz] y.jar",
+ "",
+ "\u6253\u5305\u9009\u9879",
+ " -g, --no-gzip \u8F93\u51FA\u65E0\u683C\u5F0F\u7684 *.pack \u6587\u4EF6, \u4E0D\u538B\u7F29",
+ " --gzip (\u9ED8\u8BA4\u503C) \u4F7F\u7528 gzip \u5BF9\u6253\u5305\u8FDB\u884C\u540E\u5904\u7406",
+ " -G, --strip-debug \u6253\u5305\u65F6\u5220\u9664\u8C03\u8BD5\u5C5E\u6027",
+ " -O, --no-keep-file-order \u4E0D\u4F20\u8F93\u6587\u4EF6\u6392\u5E8F\u4FE1\u606F",
+ " --keep-file-order (\u9ED8\u8BA4\u503C) \u4FDD\u7559\u8F93\u5165\u6587\u4EF6\u6392\u5E8F",
+ " -S{N}, --segment-limit={N} \u8F93\u51FA\u6BB5\u9650\u5236 (\u9ED8\u8BA4\u503C N=1Mb)",
+ " -E{N}, --effort={N} \u6253\u5305\u6548\u679C (\u9ED8\u8BA4\u503C N=5)",
+ " -H{h}, --deflate-hint={h} \u4F20\u8F93\u538B\u7F29\u63D0\u793A: true, false \u6216 keep (\u9ED8\u8BA4\u503C)",
+ " -m{V}, --modification-time={V} \u4F20\u8F93 modtimes: latest \u6216 keep (\u9ED8\u8BA4\u503C)",
+ " -P{F}, --pass-file={F} \u4F20\u8F93\u672A\u89E3\u538B\u7F29\u7684\u7ED9\u5B9A\u8F93\u5165\u5143\u7D20",
+ " -U{a}, --unknown-attribute={a} \u672A\u77E5\u5C5E\u6027\u64CD\u4F5C: error, strip \u6216 pass (\u9ED8\u8BA4\u503C)",
+ " -C{N}={L}, --class-attribute={N}={L} (\u7528\u6237\u5B9A\u4E49\u7684\u5C5E\u6027)",
+ " -F{N}={L}, --field-attribute={N}={L} (\u7528\u6237\u5B9A\u4E49\u7684\u5C5E\u6027)",
+ " -M{N}={L}, --method-attribute={N}={L} (\u7528\u6237\u5B9A\u4E49\u7684\u5C5E\u6027)",
+ " -D{N}={L}, --code-attribute={N}={L} (\u7528\u6237\u5B9A\u4E49\u7684\u5C5E\u6027)",
+ " -f{F}, --config-file={F} \u8BFB\u53D6\u6587\u4EF6 F \u7684 Pack200.Packer \u5C5E\u6027",
+ " -v, --verbose \u63D0\u9AD8\u7A0B\u5E8F\u8BE6\u7EC6\u7A0B\u5EA6",
+ " -q, --quiet \u5C06\u8BE6\u7EC6\u7A0B\u5EA6\u8BBE\u7F6E\u4E3A\u6700\u4F4E\u7EA7\u522B",
+ " -l{F}, --log-file={F} \u8F93\u51FA\u5230\u7ED9\u5B9A\u65E5\u5FD7\u6587\u4EF6, \u6216\u5BF9\u4E8E System.out \u6307\u5B9A '-'",
+ " -?, -h, --help \u8F93\u51FA\u6B64\u6D88\u606F",
+ " -V, --version \u8F93\u51FA\u7A0B\u5E8F\u7248\u672C",
+ " -J{X} \u5C06\u9009\u9879 X \u4F20\u9012\u7ED9\u57FA\u7840 Java VM",
+ "",
+ "\u6CE8:",
+ " -P, -C, -F, -M \u548C -D \u9009\u9879\u7D2F\u8BA1\u3002",
+ " \u793A\u4F8B\u5C5E\u6027\u5B9A\u4E49: -C SourceFile=RUH\u3002",
+ " Config. \u6587\u4EF6\u5C5E\u6027\u7531 Pack200 API \u5B9A\u4E49\u3002",
+ " \u6709\u5173 -S, -E, -H-, -m, -U \u503C\u7684\u542B\u4E49, \u8BF7\u53C2\u9605 Pack200 API\u3002",
+ " \u5E03\u5C40\u5B9A\u4E49 (\u4F8B\u5982 RUH) \u7531 JSR 200 \u5B9A\u4E49\u3002",
+ "",
+ "\u91CD\u65B0\u6253\u5305\u6A21\u5F0F\u901A\u8FC7\u6253\u5305/\u89E3\u5305\u5468\u671F\u66F4\u65B0 JAR \u6587\u4EF6:",
+ " pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar\n"
+ }
+ },
+ {UNPACK_HELP, new String[] {
+ "\u7528\u6CD5: unpack200 [-opt... | --option=value]... x.pack[.gz] y.jar\n",
+ "",
+ "\u89E3\u5305\u9009\u9879",
+ " -H{h}, --deflate-hint={h} \u8986\u76D6\u5DF2\u4F20\u8F93\u7684\u538B\u7F29\u63D0\u793A: true, false \u6216 keep (\u9ED8\u8BA4\u503C)",
+ " -r, --remove-pack-file \u89E3\u5305\u4E4B\u540E\u5220\u9664\u8F93\u5165\u6587\u4EF6",
+ " -v, --verbose \u63D0\u9AD8\u7A0B\u5E8F\u8BE6\u7EC6\u7A0B\u5EA6",
+ " -q, --quiet \u5C06\u8BE6\u7EC6\u7A0B\u5EA6\u8BBE\u7F6E\u4E3A\u6700\u4F4E\u7EA7\u522B",
+ " -l{F}, --log-file={F} \u8F93\u51FA\u5230\u7ED9\u5B9A\u65E5\u5FD7\u6587\u4EF6, \u6216\u5BF9\u4E8E System.out \u6307\u5B9A '-'",
+ " -?, -h, --help \u8F93\u51FA\u6B64\u6D88\u606F",
+ " -V, --version \u8F93\u51FA\u7A0B\u5E8F\u7248\u672C",
+ " -J{X} \u5C06\u9009\u9879 X \u4F20\u9012\u7ED9\u57FA\u7840 Java VM"
+ }
+ },
+ {MORE_INFO, "(\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u8FD0\u884C {0} --help\u3002)"}, // parameter 0:command name
+ {DUPLICATE_OPTION, "\u91CD\u590D\u7684\u9009\u9879: {0}"}, // parameter 0:option
+ {BAD_SPEC, "{0}\u7684\u89C4\u8303\u9519\u8BEF: {1}"}, // parameter 0:option;parameter 1:specifier
+ };
- {MORE_INFO,"(\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u8FD0\u884C {0} --help\u3002)"},//parameter 0:command name
- {DUPLICATE_OPTION,"\u91CD\u590D\u7684\u9009\u9879: {0}"},//parameter 0:option
- {BAD_SPEC,"{0}\u7684\u89C4\u8303\u9519\u8BEF: {1}"},//parameter 0:option;parameter 1:specifier
- };
-
- protected Object[][] getContents() {
- return resource;
- }
-
-
+ protected Object[][] getContents() {
+ return resource;
+ }
}
--- a/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -411,8 +411,7 @@
udpSocket.receive(ipkt);
long end = System.currentTimeMillis();
- byte[] data = new byte[ipkt.getLength()];
- data = ipkt.getData();
+ byte[] data = ipkt.getData();
if (isMatchResponse(data, xid)) {
return data;
}
--- a/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecord.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/jndi/dns/ResourceRecord.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,8 +25,13 @@
package com.sun.jndi.dns;
+import javax.naming.CommunicationException;
import javax.naming.InvalidNameException;
+import java.io.IOException;
+
+import java.nio.charset.StandardCharsets;
+
/**
* The ResourceRecord class represents a DNS resource record.
@@ -84,6 +89,11 @@
null, "IN", null, null, "HS"
};
+ /*
+ * Maximum number of compression references in labels.
+ * Used to detect compression loops.
+ */
+ private static final int MAXIMUM_COMPRESSION_REFERENCES = 16;
byte[] msg; // DNS message
int msgLen; // msg size (in octets)
@@ -110,12 +120,12 @@
* false, the rdata is not decoded (and getRdata() will return null)
* unless this is an SOA record.
*
- * @throws InvalidNameException if a decoded domain name isn't valid.
+ * @throws CommunicationException if a decoded domain name isn't valid.
* @throws ArrayIndexOutOfBoundsException given certain other corrupt data.
*/
ResourceRecord(byte[] msg, int msgLen, int offset,
boolean qSection, boolean decodeRdata)
- throws InvalidNameException {
+ throws CommunicationException {
this.msg = msg;
this.msgLen = msgLen;
@@ -235,7 +245,7 @@
* Decodes the binary format of the RR.
* May throw ArrayIndexOutOfBoundsException given corrupt data.
*/
- private void decode(boolean decodeRdata) throws InvalidNameException {
+ private void decode(boolean decodeRdata) throws CommunicationException {
int pos = offset; // index of next unread octet
name = new DnsName(); // NAME
@@ -316,7 +326,7 @@
/*
* Returns the name encoded at msg[pos], including the root label.
*/
- private DnsName decodeName(int pos) throws InvalidNameException {
+ private DnsName decodeName(int pos) throws CommunicationException {
DnsName n = new DnsName();
decodeName(pos, n);
return n;
@@ -326,22 +336,39 @@
* Prepends to "n" the domain name encoded at msg[pos], including the root
* label. Returns the index into "msg" following the name.
*/
- private int decodeName(int pos, DnsName n) throws InvalidNameException {
- if (msg[pos] == 0) { // end of name
- n.add(0, "");
- return (pos + 1);
- } else if ((msg[pos] & 0xC0) != 0) { // name compression
- decodeName(getUShort(pos) & 0x3FFF, n);
- return (pos + 2);
- } else { // append a label
- int len = msg[pos++];
- try {
- n.add(0, new String(msg, pos, len, "ISO-8859-1"));
- } catch (java.io.UnsupportedEncodingException e) {
- // assert false : "ISO-Latin-1 charset unavailable";
+ private int decodeName(int pos, DnsName n) throws CommunicationException {
+ int endPos = -1;
+ int level = 0;
+ try {
+ while (true) {
+ if (level > MAXIMUM_COMPRESSION_REFERENCES)
+ throw new IOException("Too many compression references");
+ int typeAndLen = msg[pos] & 0xFF;
+ if (typeAndLen == 0) { // end of name
+ ++pos;
+ n.add(0, "");
+ break;
+ } else if (typeAndLen <= 63) { // regular label
+ ++pos;
+ n.add(0, new String(msg, pos, typeAndLen,
+ StandardCharsets.ISO_8859_1));
+ pos += typeAndLen;
+ } else if ((typeAndLen & 0xC0) == 0xC0) { // name compression
+ ++level;
+ endPos = pos + 2;
+ pos = getUShort(pos) & 0x3FFF;
+ } else
+ throw new IOException("Invalid label type: " + typeAndLen);
}
- return decodeName(pos + len, n);
+ } catch (IOException | InvalidNameException e) {
+ CommunicationException ce =new CommunicationException(
+ "DNS error: malformed packet");
+ ce.initCause(e);
+ throw ce;
}
+ if (endPos == -1)
+ endPos = pos;
+ return endPos;
}
/*
@@ -352,7 +379,7 @@
* The rdata of records with unknown type/class combinations is
* returned in a newly-allocated byte array.
*/
- private Object decodeRdata(int pos) throws InvalidNameException {
+ private Object decodeRdata(int pos) throws CommunicationException {
if (rrclass == CLASS_INTERNET) {
switch (rrtype) {
case TYPE_A:
@@ -386,7 +413,7 @@
/*
* Returns the rdata of an MX record that is encoded at msg[pos].
*/
- private String decodeMx(int pos) throws InvalidNameException {
+ private String decodeMx(int pos) throws CommunicationException {
int preference = getUShort(pos);
pos += 2;
DnsName name = decodeName(pos);
@@ -396,7 +423,7 @@
/*
* Returns the rdata of an SOA record that is encoded at msg[pos].
*/
- private String decodeSoa(int pos) throws InvalidNameException {
+ private String decodeSoa(int pos) throws CommunicationException {
DnsName mname = new DnsName();
pos = decodeName(pos, mname);
DnsName rname = new DnsName();
@@ -421,7 +448,7 @@
* Returns the rdata of an SRV record that is encoded at msg[pos].
* See RFC 2782.
*/
- private String decodeSrv(int pos) throws InvalidNameException {
+ private String decodeSrv(int pos) throws CommunicationException {
int priority = getUShort(pos);
pos += 2;
int weight = getUShort(pos);
@@ -436,7 +463,7 @@
* Returns the rdata of an NAPTR record that is encoded at msg[pos].
* See RFC 2915.
*/
- private String decodeNaptr(int pos) throws InvalidNameException {
+ private String decodeNaptr(int pos) throws CommunicationException {
int order = getUShort(pos);
pos += 2;
int preference = getUShort(pos);
--- a/jdk/src/share/classes/com/sun/security/auth/callback/TextCallbackHandler.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/security/auth/callback/TextCallbackHandler.java Thu Feb 20 16:27:08 2014 -0800
@@ -28,21 +28,14 @@
/* JAAS imports */
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.ConfirmationCallback;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.TextOutputCallback;
+import javax.security.auth.callback.NameCallback; // javadoc
+import javax.security.auth.callback.PasswordCallback; // javadoc
import javax.security.auth.callback.UnsupportedCallbackException;
/* Java imports */
-import java.io.BufferedReader;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PushbackInputStream;
-import java.util.Arrays;
-import sun.security.util.Password;
+import sun.security.util.ConsoleCallbackHandler;
/**
* <p>
@@ -55,6 +48,7 @@
@jdk.Exported
public class TextCallbackHandler implements CallbackHandler {
+ private final CallbackHandler consoleHandler;
/**
* <p>Creates a callback handler that prompts and reads from the
@@ -63,7 +57,9 @@
* CallbackHandler.
*/
- public TextCallbackHandler() { }
+ public TextCallbackHandler() {
+ this.consoleHandler = new ConsoleCallbackHandler();
+ }
/**
* Handles the specified set of callbacks.
@@ -76,187 +72,7 @@
public void handle(Callback[] callbacks)
throws IOException, UnsupportedCallbackException
{
- ConfirmationCallback confirmation = null;
-
- for (int i = 0; i < callbacks.length; i++) {
- if (callbacks[i] instanceof TextOutputCallback) {
- TextOutputCallback tc = (TextOutputCallback) callbacks[i];
-
- String text;
- switch (tc.getMessageType()) {
- case TextOutputCallback.INFORMATION:
- text = "";
- break;
- case TextOutputCallback.WARNING:
- text = "Warning: ";
- break;
- case TextOutputCallback.ERROR:
- text = "Error: ";
- break;
- default:
- throw new UnsupportedCallbackException(
- callbacks[i], "Unrecognized message type");
- }
-
- String message = tc.getMessage();
- if (message != null) {
- text += message;
- }
- if (text != null) {
- System.err.println(text);
- }
-
- } else if (callbacks[i] instanceof NameCallback) {
- NameCallback nc = (NameCallback) callbacks[i];
-
- if (nc.getDefaultName() == null) {
- System.err.print(nc.getPrompt());
- } else {
- System.err.print(nc.getPrompt() +
- " [" + nc.getDefaultName() + "] ");
- }
- System.err.flush();
-
- String result = readLine();
- if (result.equals("")) {
- result = nc.getDefaultName();
- }
-
- nc.setName(result);
-
- } else if (callbacks[i] instanceof PasswordCallback) {
- PasswordCallback pc = (PasswordCallback) callbacks[i];
-
- System.err.print(pc.getPrompt());
- System.err.flush();
-
- pc.setPassword(Password.readPassword(System.in, pc.isEchoOn()));
-
- } else if (callbacks[i] instanceof ConfirmationCallback) {
- confirmation = (ConfirmationCallback) callbacks[i];
-
- } else {
- throw new UnsupportedCallbackException(
- callbacks[i], "Unrecognized Callback");
- }
- }
-
- /* Do the confirmation callback last. */
- if (confirmation != null) {
- doConfirmation(confirmation);
- }
- }
-
- /* Reads a line of input */
- private String readLine() throws IOException {
- String result = new BufferedReader
- (new InputStreamReader(System.in)).readLine();
- if (result == null) {
- throw new IOException("Cannot read from System.in");
- }
- return result;
- }
-
- private void doConfirmation(ConfirmationCallback confirmation)
- throws IOException, UnsupportedCallbackException
- {
- String prefix;
- int messageType = confirmation.getMessageType();
- switch (messageType) {
- case ConfirmationCallback.WARNING:
- prefix = "Warning: ";
- break;
- case ConfirmationCallback.ERROR:
- prefix = "Error: ";
- break;
- case ConfirmationCallback.INFORMATION:
- prefix = "";
- break;
- default:
- throw new UnsupportedCallbackException(
- confirmation, "Unrecognized message type: " + messageType);
- }
-
- class OptionInfo {
- String name;
- int value;
- OptionInfo(String name, int value) {
- this.name = name;
- this.value = value;
- }
- }
-
- OptionInfo[] options;
- int optionType = confirmation.getOptionType();
- switch (optionType) {
- case ConfirmationCallback.YES_NO_OPTION:
- options = new OptionInfo[] {
- new OptionInfo("Yes", ConfirmationCallback.YES),
- new OptionInfo("No", ConfirmationCallback.NO)
- };
- break;
- case ConfirmationCallback.YES_NO_CANCEL_OPTION:
- options = new OptionInfo[] {
- new OptionInfo("Yes", ConfirmationCallback.YES),
- new OptionInfo("No", ConfirmationCallback.NO),
- new OptionInfo("Cancel", ConfirmationCallback.CANCEL)
- };
- break;
- case ConfirmationCallback.OK_CANCEL_OPTION:
- options = new OptionInfo[] {
- new OptionInfo("OK", ConfirmationCallback.OK),
- new OptionInfo("Cancel", ConfirmationCallback.CANCEL)
- };
- break;
- case ConfirmationCallback.UNSPECIFIED_OPTION:
- String[] optionStrings = confirmation.getOptions();
- options = new OptionInfo[optionStrings.length];
- for (int i = 0; i < options.length; i++) {
- options[i] = new OptionInfo(optionStrings[i], i);
- }
- break;
- default:
- throw new UnsupportedCallbackException(
- confirmation, "Unrecognized option type: " + optionType);
- }
-
- int defaultOption = confirmation.getDefaultOption();
-
- String prompt = confirmation.getPrompt();
- if (prompt == null) {
- prompt = "";
- }
- prompt = prefix + prompt;
- if (!prompt.equals("")) {
- System.err.println(prompt);
- }
-
- for (int i = 0; i < options.length; i++) {
- if (optionType == ConfirmationCallback.UNSPECIFIED_OPTION) {
- // defaultOption is an index into the options array
- System.err.println(
- i + ". " + options[i].name +
- (i == defaultOption ? " [default]" : ""));
- } else {
- // defaultOption is an option value
- System.err.println(
- i + ". " + options[i].name +
- (options[i].value == defaultOption ? " [default]" : ""));
- }
- }
- System.err.print("Enter a number: ");
- System.err.flush();
- int result;
- try {
- result = Integer.parseInt(readLine());
- if (result < 0 || result > (options.length - 1)) {
- result = defaultOption;
- }
- result = options[result].value;
- } catch (NumberFormatException e) {
- result = defaultOption;
- }
-
- confirmation.setSelectedIndex(result);
+ // delegate to console handler
+ consoleHandler.handle(callbacks);
}
}
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties Thu Feb 20 16:27:08 2014 -0800
@@ -143,12 +143,12 @@
InternalFrame.closeButtonToolTip=Schlie\u00DFen
############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButton.textAndMnemonic=Wiede&rherstellen
-InternalFrameTitlePane.moveButton.textAndMnemonic=Verschieben(&M)
-InternalFrameTitlePane.sizeButton.textAndMnemonic=Gr\u00F6\u00DFe(&S)
+InternalFrameTitlePane.restoreButton.textAndMnemonic=&Wiederherstellen
+InternalFrameTitlePane.moveButton.textAndMnemonic=&Verschieben
+InternalFrameTitlePane.sizeButton.textAndMnemonic=&Gr\u00F6\u00DFe
InternalFrameTitlePane.minimizeButton.textAndMnemonic=Mi&nimieren
InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ma&ximieren
-InternalFrameTitlePane.closeButton.textAndMnemonic=S&chlie\u00DFen
+InternalFrameTitlePane.closeButton.textAndMnemonic=&Schlie\u00DFen
############ Text strings #############
# Used for html forms
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties Thu Feb 20 16:27:08 2014 -0800
@@ -145,7 +145,7 @@
############ Internal Frame Title Pane Strings ############
InternalFrameTitlePane.restoreButton.textAndMnemonic=&Restaurar
InternalFrameTitlePane.moveButton.textAndMnemonic=&Mover
-InternalFrameTitlePane.sizeButton.textAndMnemonic=Tama\u00F1o(&S)
+InternalFrameTitlePane.sizeButton.textAndMnemonic=&Tama\u00F1o
InternalFrameTitlePane.minimizeButton.textAndMnemonic=Mi&nimizar
InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ma&ximizar
InternalFrameTitlePane.closeButton.textAndMnemonic=&Cerrar
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties Thu Feb 20 16:27:08 2014 -0800
@@ -144,11 +144,11 @@
############ Internal Frame Title Pane Strings ############
InternalFrameTitlePane.restoreButton.textAndMnemonic=&Restaurer
-InternalFrameTitlePane.moveButton.textAndMnemonic=D\u00E9placer(&M)
-InternalFrameTitlePane.sizeButton.textAndMnemonic=Taille(&S)
-InternalFrameTitlePane.minimizeButton.textAndMnemonic=R\u00E9duire(&N)
-InternalFrameTitlePane.maximizeButton.textAndMnemonic=Agrandir(&X)
-InternalFrameTitlePane.closeButton.textAndMnemonic=Fermer(&C)
+InternalFrameTitlePane.moveButton.textAndMnemonic=D\u00E9p&lacer
+InternalFrameTitlePane.sizeButton.textAndMnemonic=Re&dimensionner
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=&R\u00E9duire
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=&Agrandir
+InternalFrameTitlePane.closeButton.textAndMnemonic=&Fermer
############ Text strings #############
# Used for html forms
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_it.properties Thu Feb 20 16:27:08 2014 -0800
@@ -144,10 +144,10 @@
############ Internal Frame Title Pane Strings ############
InternalFrameTitlePane.restoreButton.textAndMnemonic=&Ripristina
-InternalFrameTitlePane.moveButton.textAndMnemonic=Sposta(&M)
-InternalFrameTitlePane.sizeButton.textAndMnemonic=Dimen&sioni
-InternalFrameTitlePane.minimizeButton.textAndMnemonic=Riduci a ico&na
-InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ingrandisci(&X)
+InternalFrameTitlePane.moveButton.textAndMnemonic=&Sposta
+InternalFrameTitlePane.sizeButton.textAndMnemonic=R&idimensiona
+InternalFrameTitlePane.minimizeButton.textAndMnemonic=Ri&duci a icona
+InternalFrameTitlePane.maximizeButton.textAndMnemonic=In&grandisci
InternalFrameTitlePane.closeButton.textAndMnemonic=&Chiudi
############ Text strings #############
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties Thu Feb 20 16:27:08 2014 -0800
@@ -145,10 +145,10 @@
############ Internal Frame Title Pane Strings ############
InternalFrameTitlePane.restoreButton.textAndMnemonic=&Restaurar
InternalFrameTitlePane.moveButton.textAndMnemonic=&Mover
-InternalFrameTitlePane.sizeButton.textAndMnemonic=Tamanho(&S)
+InternalFrameTitlePane.sizeButton.textAndMnemonic=&Dimensionar
InternalFrameTitlePane.minimizeButton.textAndMnemonic=Mi&nimizar
InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ma&ximizar
-InternalFrameTitlePane.closeButton.textAndMnemonic=Fe&char
+InternalFrameTitlePane.closeButton.textAndMnemonic=&Fechar
############ Text strings #############
# Used for html forms
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties Thu Feb 20 16:27:08 2014 -0800
@@ -143,12 +143,12 @@
InternalFrame.closeButtonToolTip=St\u00E4ng
############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButton.textAndMnemonic=\u00C5terst\u00E4ll(&R)
-InternalFrameTitlePane.moveButton.textAndMnemonic=Flytta(&M)
+InternalFrameTitlePane.restoreButton.textAndMnemonic=&\u00C5terst\u00E4ll
+InternalFrameTitlePane.moveButton.textAndMnemonic=&Flytta
InternalFrameTitlePane.sizeButton.textAndMnemonic=&Storlek
InternalFrameTitlePane.minimizeButton.textAndMnemonic=Mi&nimera
InternalFrameTitlePane.maximizeButton.textAndMnemonic=Ma&ximera
-InternalFrameTitlePane.closeButton.textAndMnemonic=St\u00E4ng(&C)
+InternalFrameTitlePane.closeButton.textAndMnemonic=&St\u00E4ng
############ Text strings #############
# Used for html forms
--- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties Thu Feb 20 16:27:08 2014 -0800
@@ -143,9 +143,9 @@
InternalFrame.closeButtonToolTip=\u95DC\u9589
############ Internal Frame Title Pane Strings ############
-InternalFrameTitlePane.restoreButton.textAndMnemonic=\u5FA9\u539F(&R)
+InternalFrameTitlePane.restoreButton.textAndMnemonic=\u56DE\u5FA9(&R)
InternalFrameTitlePane.moveButton.textAndMnemonic=\u79FB\u52D5(&M)
-InternalFrameTitlePane.sizeButton.textAndMnemonic=\u5927\u5C0F(&S)
+InternalFrameTitlePane.sizeButton.textAndMnemonic=\u8ABF\u6574\u5927\u5C0F(&S)
InternalFrameTitlePane.minimizeButton.textAndMnemonic=\u6700\u5C0F\u5316(&N)
InternalFrameTitlePane.maximizeButton.textAndMnemonic=\u6700\u5927\u5316(&X)
InternalFrameTitlePane.closeButton.textAndMnemonic=\u95DC\u9589(&C)
--- a/jdk/src/share/classes/com/sun/tools/jdi/ArrayTypeImpl.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/com/sun/tools/jdi/ArrayTypeImpl.java Thu Feb 20 16:27:08 2014 -0800
@@ -200,4 +200,9 @@
* Defined always to be true for arrays
*/
public boolean isFinal() { return true; }
+
+ /*
+ * Defined always to be false for arrays
+ */
+ public boolean isStatic() { return false; }
}
--- a/jdk/src/share/classes/java/lang/invoke/MethodHandle.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/java/lang/invoke/MethodHandle.java Thu Feb 20 16:27:08 2014 -0800
@@ -31,8 +31,6 @@
import sun.misc.Unsafe;
import static java.lang.invoke.MethodHandleStatics.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
/**
* A method handle is a typed, directly executable reference to an underlying method,
--- a/jdk/src/share/classes/java/lang/invoke/SimpleMethodHandle.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/java/lang/invoke/SimpleMethodHandle.java Thu Feb 20 16:27:08 2014 -0800
@@ -27,8 +27,6 @@
import static java.lang.invoke.LambdaForm.*;
import static java.lang.invoke.MethodHandleNatives.Constants.*;
-import java.util.logging.Level;
-import java.util.logging.Logger;
/**
* A method handle whose behavior is determined only by its LambdaForm.
--- a/jdk/src/share/classes/java/sql/Clob.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/java/sql/Clob.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -309,8 +309,8 @@
void truncate(long len) throws SQLException;
/**
- * This method frees the <code>Clob</code> object and releases the resources the resources
- * that it holds. The object is invalid once the <code>free</code> method
+ * This method releases the resources that the <code>Clob</code> object
+ * holds. The object is invalid once the <code>free</code> method
* is called.
* <p>
* After <code>free</code> has been called, any attempt to invoke a
--- a/jdk/src/share/classes/java/util/ArrayPrefixHelpers.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/java/util/ArrayPrefixHelpers.java Thu Feb 20 16:27:08 2014 -0800
@@ -128,7 +128,6 @@
this.lo = lo; this.hi = hi;
}
- @SuppressWarnings("unchecked")
public final void compute() {
final BinaryOperator<T> fn;
final T[] a;
@@ -142,9 +141,9 @@
if (lt == null) { // first pass
int mid = (l + h) >>> 1;
f = rt = t.right =
- new CumulateTask<>(t, fn, a, org, fnc, th, mid, h);
+ new CumulateTask<T>(t, fn, a, org, fnc, th, mid, h);
t = lt = t.left =
- new CumulateTask<>(t, fn, a, org, fnc, th, l, mid);
+ new CumulateTask<T>(t, fn, a, org, fnc, th, l, mid);
}
else { // possibly refork
T pin = t.in;
@@ -213,7 +212,9 @@
sum = t.in;
t.out = sum;
for (CumulateTask<T> par;;) { // propagate
- if ((par = (CumulateTask<T>)t.getCompleter()) == null) {
+ @SuppressWarnings("unchecked") CumulateTask<T> partmp
+ = (CumulateTask<T>)t.getCompleter();
+ if ((par = partmp) == null) {
if ((state & FINISHED) != 0) // enable join
t.quietlyComplete();
break outer;
@@ -245,6 +246,7 @@
}
}
}
+ private static final long serialVersionUID = 5293554502939613543L;
}
static final class LongCumulateTask extends CountedCompleter<Void> {
@@ -394,6 +396,7 @@
}
}
}
+ private static final long serialVersionUID = -5074099945909284273L;
}
static final class DoubleCumulateTask extends CountedCompleter<Void> {
@@ -543,6 +546,7 @@
}
}
}
+ private static final long serialVersionUID = -586947823794232033L;
}
static final class IntCumulateTask extends CountedCompleter<Void> {
@@ -692,5 +696,6 @@
}
}
}
+ private static final long serialVersionUID = 3731755594596840961L;
}
}
--- a/jdk/src/share/classes/java/util/CurrencyData.properties Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,594 +0,0 @@
-#
-# Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation. Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-formatVersion=1
-
-# Version of the currency code information in this class.
-# It is a serial number that accompanies with each amendment.
-
-dataVersion=156
-
-# List of all valid ISO 4217 currency codes.
-# To ensure compatibility, do not remove codes.
-
-all=ADP020-AED784-AFA004-AFN971-ALL008-AMD051-ANG532-AOA973-ARS032-ATS040-AUD036-\
- AWG533-AYM945-AZM031-AZN944-BAM977-BBD052-BDT050-BEF056-BGL100-BGN975-BHD048-BIF108-\
- BMD060-BND096-BOB068-BOV984-BRL986-BSD044-BTN064-BWP072-BYB112-BYR974-\
- BZD084-CAD124-CDF976-CHF756-CLF990-CLP152-CNY156-COP170-CRC188-CSD891-CUP192-CUC931-\
- CVE132-CYP196-CZK203-DEM276-DJF262-DKK208-DOP214-DZD012-EEK233-EGP818-\
- ERN232-ESP724-ETB230-EUR978-FIM246-FJD242-FKP238-FRF250-GBP826-GEL981-\
- GHC288-GHS936-GIP292-GMD270-GNF324-GRD300-GTQ320-GWP624-GYD328-HKD344-HNL340-\
- HRK191-HTG332-HUF348-IDR360-IEP372-ILS376-INR356-IQD368-IRR364-ISK352-\
- ITL380-JMD388-JOD400-JPY392-KES404-KGS417-KHR116-KMF174-KPW408-KRW410-\
- KWD414-KYD136-KZT398-LAK418-LBP422-LKR144-LRD430-LSL426-LTL440-LUF442-\
- LVL428-LYD434-MAD504-MDL498-MGA969-MGF450-MKD807-MMK104-MNT496-MOP446-MRO478-\
- MTL470-MUR480-MVR462-MWK454-MXN484-MXV979-MYR458-MZM508-MZN943-NAD516-NGN566-\
- NIO558-NLG528-NOK578-NPR524-NZD554-OMR512-PAB590-PEN604-PGK598-PHP608-\
- PKR586-PLN985-PTE620-PYG600-QAR634-ROL946-RON946-RSD941-RUB643-RUR810-RWF646-SAR682-\
- SBD090-SCR690-SDD736-SDG938-SEK752-SGD702-SHP654-SIT705-SKK703-SLL694-SOS706-\
- SRD968-SRG740-SSP728-STD678-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TMT934-TND788-TOP776-\
- TPE626-TRL792-TRY949-TTD780-TWD901-TZS834-UAH980-UGX800-USD840-USN997-USS998-\
- UYU858-UZS860-VEB862-VEF937-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\
- XBB956-XBC957-XBD958-XCD951-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\
- XPT962-XSU994-XTS963-XUA965-XXX999-YER886-YUM891-ZAR710-ZMK894-ZMW967-ZWD716-ZWL932-\
- ZWN942-ZWR935
-
-
-# Mappings from ISO 3166 country codes to ISO 4217 currency codes.
-#
-# Three forms are used:
-# Form 1: <country code>=<currency code>
-# Form 2: <country code>=<currency code 1>;<time stamp>;<currency code 2>
-# Form 3: <country code>=
-# Form 1 is used if no future change in currency is known.
-# Form 2 indicates that before the specified time currency 1 is used, from
-# the specified time currency 2. The time is given in SimpleDateFormat's
-# yyyy-MM-dd-HH-mm-ss format in the GMT time zone.
-# Form 3 indicates the country doesn't have a currency (the entry is still
-# needed to verify that the country code is valid).
-#
-# The table is based on the following web sites:
-# http://www.din.de/gremien/nas/nabd/iso3166ma/codlstp1/db_en.html
-# http://www.currency-iso.org/iso_index/iso_tables.htm
-# http://www.cia.gov/cia/publications/factbook/indexgeo.html
-
-# AFGHANISTAN
-AF=AFN
-# \u00c5LAND ISLANDS
-AX=EUR
-# ALBANIA
-AL=ALL
-# ALGERIA
-DZ=DZD
-# AMERICAN SAMOA
-AS=USD
-# ANDORRA
-AD=EUR
-# ANGOLA
-AO=AOA
-# ANGUILLA
-AI=XCD
-# ANTARCTICA
-AQ=
-# ANTIGUA AND BARBUDA
-AG=XCD
-# ARGENTINA
-AR=ARS
-# ARMENIA
-AM=AMD
-# ARUBA
-AW=AWG
-# AUSTRALIA
-AU=AUD
-# AUSTRIA
-AT=EUR
-# AZERBAIJAN
-AZ=AZN
-# BAHAMAS
-BS=BSD
-# BAHRAIN
-BH=BHD
-# BANGLADESH
-BD=BDT
-# BARBADOS
-BB=BBD
-# BELARUS
-BY=BYR
-# BELGIUM
-BE=EUR
-# BELIZE
-BZ=BZD
-# BENIN
-BJ=XOF
-# BERMUDA
-BM=BMD
-# Bonaire, Sint Eustatius and Saba
-BQ=USD
-# BHUTAN
-BT=BTN
-# BOLIVIA
-BO=BOB
-# BOSNIA AND HERZEGOVINA
-BA=BAM
-# BOTSWANA
-BW=BWP
-# BOUVET ISLAND
-BV=NOK
-# BRAZIL
-BR=BRL
-# BRITISH INDIAN OCEAN TERRITORY
-IO=USD
-# BRUNEI DARUSSALAM
-BN=BND
-# BULGARIA
-BG=BGN
-# BURKINA FASO
-BF=XOF
-# BURUNDI
-BI=BIF
-# CAMBODIA
-KH=KHR
-# CAMEROON
-CM=XAF
-# CANADA
-CA=CAD
-# CAPE VERDE
-CV=CVE
-# CAYMAN ISLANDS
-KY=KYD
-# CENTRAL AFRICAN REPUBLIC
-CF=XAF
-# CHAD
-TD=XAF
-# CHILE
-CL=CLP
-# CHINA
-CN=CNY
-# CHRISTMAS ISLAND
-CX=AUD
-# COCOS (KEELING) ISLANDS
-CC=AUD
-# COLOMBIA
-CO=COP
-# COMOROS
-KM=KMF
-# CONGO
-CG=XAF
-# CONGO, THE DEMOCRATIC REPUBLIC OF THE
-CD=CDF
-# COOK ISLANDS
-CK=NZD
-# COSTA RICA
-CR=CRC
-# COTE D'IVOIRE
-CI=XOF
-# CROATIA
-HR=HRK
-# CUBA
-CU=CUP
-# Cura\u00e7ao
-CW=ANG
-# CYPRUS
-CY=EUR
-# CZECH REPUBLIC
-CZ=CZK
-# DENMARK
-DK=DKK
-# DJIBOUTI
-DJ=DJF
-# DOMINICA
-DM=XCD
-# DOMINICAN REPUBLIC
-DO=DOP
-# ECUADOR
-EC=USD
-# EGYPT
-EG=EGP
-# EL SALVADOR
-# USD is also legal currency as of 2001/01/01
-SV=SVC
-# EQUATORIAL GUINEA
-GQ=XAF
-# ERITREA
-ER=ERN
-# ESTONIA
-EE=EUR
-# ETHIOPIA
-ET=ETB
-# FALKLAND ISLANDS (MALVINAS)
-FK=FKP
-# FAROE ISLANDS
-FO=DKK
-# FIJI
-FJ=FJD
-# FINLAND
-FI=EUR
-# FRANCE
-FR=EUR
-# FRENCH GUIANA
-GF=EUR
-# FRENCH POLYNESIA
-PF=XPF
-# FRENCH SOUTHERN TERRITORIES
-TF=EUR
-# GABON
-GA=XAF
-# GAMBIA
-GM=GMD
-# GEORGIA
-GE=GEL
-# GERMANY
-DE=EUR
-# GHANA
-GH=GHS
-# GIBRALTAR
-GI=GIP
-# GREECE
-GR=EUR
-# GREENLAND
-GL=DKK
-# GRENADA
-GD=XCD
-# GUADELOUPE
-GP=EUR
-# GUAM
-GU=USD
-# GUATEMALA
-GT=GTQ
-# GUERNSEY
-GG=GBP
-# GUINEA
-GN=GNF
-# GUINEA-BISSAU
-GW=XOF
-# GUYANA
-GY=GYD
-# HAITI
-HT=HTG
-# HEARD ISLAND AND MCDONALD ISLANDS
-HM=AUD
-# HOLY SEE (VATICAN CITY STATE)
-VA=EUR
-# HONDURAS
-HN=HNL
-# HONG KONG
-HK=HKD
-# HUNGARY
-HU=HUF
-# ICELAND
-IS=ISK
-# INDIA
-IN=INR
-# INDONESIA
-ID=IDR
-# IRAN, ISLAMIC REPUBLIC OF
-IR=IRR
-# IRAQ
-IQ=IQD
-# IRELAND
-IE=EUR
-# ISLE OF MAN
-IM=GBP
-# ISRAEL
-IL=ILS
-# ITALY
-IT=EUR
-# JAMAICA
-JM=JMD
-# JAPAN
-JP=JPY
-# JERSEY
-JE=GBP
-# JORDAN
-JO=JOD
-# KAZAKSTAN
-KZ=KZT
-# KENYA
-KE=KES
-# KIRIBATI
-KI=AUD
-# KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF
-KP=KPW
-# KOREA, REPUBLIC OF
-KR=KRW
-# KUWAIT
-KW=KWD
-# KYRGYZSTAN
-KG=KGS
-# LAO PEOPLE'S DEMOCRATIC REPUBLIC
-LA=LAK
-# LATVIA
-LV=LVL;2013-12-31-22-00-00;EUR
-# LEBANON
-LB=LBP
-# LESOTHO
-LS=LSL
-# LIBERIA
-LR=LRD
-# LIBYAN ARAB JAMAHIRIYA
-LY=LYD
-# LIECHTENSTEIN
-LI=CHF
-# LITHUANIA
-LT=LTL
-# LUXEMBOURG
-LU=EUR
-# MACAU
-MO=MOP
-# MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF
-MK=MKD
-# MADAGASCAR
-MG=MGA
-# MALAWI
-MW=MWK
-# MALAYSIA
-MY=MYR
-# MALDIVES
-MV=MVR
-# MALI
-ML=XOF
-# MALTA
-MT=EUR
-# MARSHALL ISLANDS
-MH=USD
-# MARTINIQUE
-MQ=EUR
-# MAURITANIA
-MR=MRO
-# MAURITIUS
-MU=MUR
-# MAYOTTE
-YT=EUR
-# MEXICO
-MX=MXN
-# MICRONESIA, FEDERATED STATES OF
-FM=USD
-# MOLDOVA, REPUBLIC OF
-MD=MDL
-# MONACO
-MC=EUR
-# MONGOLIA
-MN=MNT
-# MONTENEGRO
-ME=EUR
-# MONTSERRAT
-MS=XCD
-# MOROCCO
-MA=MAD
-# MOZAMBIQUE
-MZ=MZN
-# MYANMAR
-MM=MMK
-# NAMIBIA
-NA=NAD
-# NAURU
-NR=AUD
-# NEPAL
-NP=NPR
-# NETHERLANDS
-NL=EUR
-# NETHERLANDS ANTILLES
-AN=ANG
-# NEW CALEDONIA
-NC=XPF
-# NEW ZEALAND
-NZ=NZD
-# NICARAGUA
-NI=NIO
-# NIGER
-NE=XOF
-# NIGERIA
-NG=NGN
-# NIUE
-NU=NZD
-# NORFOLK ISLAND
-NF=AUD
-# NORTHERN MARIANA ISLANDS
-MP=USD
-# NORWAY
-NO=NOK
-# OMAN
-OM=OMR
-# PAKISTAN
-PK=PKR
-# PALAU
-PW=USD
-# PALESTINIAN TERRITORY, OCCUPIED
-PS=ILS
-# PANAMA
-PA=PAB
-# PAPUA NEW GUINEA
-PG=PGK
-# PARAGUAY
-PY=PYG
-# PERU
-PE=PEN
-# PHILIPPINES
-PH=PHP
-# PITCAIRN
-PN=NZD
-# POLAND
-PL=PLN
-# PORTUGAL
-PT=EUR
-# PUERTO RICO
-PR=USD
-# QATAR
-QA=QAR
-# REUNION
-RE=EUR
-# ROMANIA
-RO=RON
-# RUSSIAN FEDERATION
-RU=RUB
-# RWANDA
-RW=RWF
-# SAINT BARTHELEMY
-BL=EUR
-# SAINT HELENA
-SH=SHP
-# SAINT KITTS AND NEVIS
-KN=XCD
-# SAINT LUCIA
-LC=XCD
-# SAINT MARTIN
-MF=EUR
-# SAINT PIERRE AND MIQUELON
-PM=EUR
-# SAINT VINCENT AND THE GRENADINES
-VC=XCD
-# SAMOA
-WS=WST
-# SAN MARINO
-SM=EUR
-# SOUTH SUDAN
-SS=SSP
-# SAO TOME AND PRINCIPE
-ST=STD
-# SAUDI ARABIA
-SA=SAR
-# SENEGAL
-SN=XOF
-# SERBIA
-RS=RSD
-# SERBIA AND MONTENEGRO
-CS=CSD
-# SEYCHELLES
-SC=SCR
-# SIERRA LEONE
-SL=SLL
-# SINGAPORE
-SG=SGD
-# SLOVAKIA
-SK=EUR
-# SLOVENIA
-SI=EUR
-# SOLOMON ISLANDS
-SB=SBD
-# SOMALIA
-SO=SOS
-# SOUTH AFRICA
-ZA=ZAR
-# SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS
-GS=GBP
-# SPAIN
-ES=EUR
-# SRI LANKA
-LK=LKR
-# SUDAN
-SD=SDG
-# SURINAME
-SR=SRD
-# SVALBARD AND JAN MAYEN
-SJ=NOK
-# Sint Maarten (Dutch part)
-SX=ANG
-# SWAZILAND
-SZ=SZL
-# SWEDEN
-SE=SEK
-# SWITZERLAND
-CH=CHF
-# SYRIAN ARAB REPUBLIC
-SY=SYP
-# TAIWAN
-TW=TWD
-# TAJIKISTAN
-TJ=TJS
-# TANZANIA, UNITED REPUBLIC OF
-TZ=TZS
-# THAILAND
-TH=THB
-# TIMOR-LESTE
-TL=USD
-# TOGO
-TG=XOF
-# TOKELAU
-TK=NZD
-# TONGA
-TO=TOP
-# TRINIDAD AND TOBAGO
-TT=TTD
-# TUNISIA
-TN=TND
-# TURKEY
-TR=TRY
-# TURKMENISTAN
-TM=TMT
-# TURKS AND CAICOS ISLANDS
-TC=USD
-# TUVALU
-TV=AUD
-# UGANDA
-UG=UGX
-# UKRAINE
-UA=UAH
-# UNITED ARAB EMIRATES
-AE=AED
-# UNITED KINGDOM
-GB=GBP
-# UNITED STATES
-US=USD
-# UNITED STATES MINOR OUTLYING ISLANDS
-UM=USD
-# URUGUAY
-UY=UYU
-# UZBEKISTAN
-UZ=UZS
-# VANUATU
-VU=VUV
-# VENEZUELA
-VE=VEF
-# VIET NAM
-VN=VND
-# VIRGIN ISLANDS, BRITISH
-VG=USD
-# VIRGIN ISLANDS, U.S.
-VI=USD
-# WALLIS AND FUTUNA
-WF=XPF
-# WESTERN SAHARA
-EH=MAD
-# YEMEN
-YE=YER
-# ZAMBIA
-ZM=ZMW
-# ZIMBABWE
-ZW=ZWL
-
-
-# List of currencies with 0, 1, OR 3 decimals for minor units, or where there
-# are no minor units defined. All others use 2 decimals.
-
-minor0=\
- ADP-BEF-BIF-BYB-BYR-CLF-CLP-DJF-ESP-GNF-\
- GRD-ISK-ITL-JPY-KMF-KRW-LUF-MGF-PYG-PTE-RWF-\
- TPE-TRL-UGX-VND-VUV-XAF-XOF-XPF
-minor1=
-minor3=\
- BHD-IQD-JOD-KWD-LYD-OMR-TND
-minorUndefined=\
- XAG-XAU-XBA-XBB-XBC-XBD-XDR-XFO-XFU-XPD-\
- XPT-XSU-XTS-XUA-XXX
--- a/jdk/src/share/classes/java/util/regex/Pattern.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/java/util/regex/Pattern.java Thu Feb 20 16:27:08 2014 -0800
@@ -3961,7 +3961,7 @@
* Node class for a case sensitive/BMP-only sequence of literal
* characters.
*/
- static final class Slice extends SliceNode {
+ static class Slice extends SliceNode {
Slice(int[] buf) {
super(buf);
}
@@ -4034,7 +4034,7 @@
* Node class for a case sensitive sequence of literal characters
* including supplementary characters.
*/
- static final class SliceS extends SliceNode {
+ static final class SliceS extends Slice {
SliceS(int[] buf) {
super(buf);
}
--- a/jdk/src/share/classes/java/util/stream/DoubleStream.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/java/util/stream/DoubleStream.java Thu Feb 20 16:27:08 2014 -0800
@@ -330,7 +330,7 @@
* <pre>{@code
* double result = identity;
* for (double element : this stream)
- * result = accumulator.apply(result, element)
+ * result = accumulator.applyAsDouble(result, element)
* return result;
* }</pre>
*
@@ -391,7 +391,7 @@
* result = element;
* }
* else
- * result = accumulator.apply(result, element);
+ * result = accumulator.applyAsDouble(result, element);
* }
* return foundAny ? OptionalDouble.of(result) : OptionalDouble.empty();
* }</pre>
--- a/jdk/src/share/classes/java/util/stream/IntStream.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/java/util/stream/IntStream.java Thu Feb 20 16:27:08 2014 -0800
@@ -323,7 +323,7 @@
* <pre>{@code
* int result = identity;
* for (int element : this stream)
- * result = accumulator.apply(result, element)
+ * result = accumulator.applyAsInt(result, element)
* return result;
* }</pre>
*
@@ -384,7 +384,7 @@
* result = element;
* }
* else
- * result = accumulator.apply(result, element);
+ * result = accumulator.applyAsInt(result, element);
* }
* return foundAny ? OptionalInt.of(result) : OptionalInt.empty();
* }</pre>
--- a/jdk/src/share/classes/java/util/stream/LongStream.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/java/util/stream/LongStream.java Thu Feb 20 16:27:08 2014 -0800
@@ -328,7 +328,7 @@
* <pre>{@code
* long result = identity;
* for (long element : this stream)
- * result = accumulator.apply(result, element)
+ * result = accumulator.applyAsLong(result, element)
* return result;
* }</pre>
*
@@ -389,7 +389,7 @@
* result = element;
* }
* else
- * result = accumulator.apply(result, element);
+ * result = accumulator.applyAsLong(result, element);
* }
* return foundAny ? OptionalLong.of(result) : OptionalLong.empty();
* }</pre>
--- a/jdk/src/share/classes/javax/imageio/spi/ServiceRegistry.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/imageio/spi/ServiceRegistry.java Thu Feb 20 16:27:08 2014 -0800
@@ -123,15 +123,6 @@
}
}
- // The following two methods expose functionality from
- // sun.misc.Service. If that class is made public, they may be
- // removed.
- //
- // The sun.misc.ServiceConfigurationError class may also be
- // exposed, in which case the references to 'an
- // <code>Error</code>' below should be changed to 'a
- // <code>ServiceConfigurationError</code>'.
-
/**
* Searches for implementations of a particular service class
* using the given class loader.
--- a/jdk/src/share/classes/javax/naming/AuthenticationException.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/AuthenticationException.java Thu Feb 20 16:27:08 2014 -0800
@@ -29,7 +29,7 @@
* This exception is thrown when an authentication error occurs while
* accessing the naming or directory service.
* An authentication error can happen, for example, when the credentials
- * supplied by the user program is invalid or otherwise fails to
+ * supplied by the user program are invalid or otherwise fail to
* authenticate the user to the naming/directory service.
*<p>
* If the program wants to handle this exception in particular, it
@@ -37,7 +37,7 @@
* catch NamingException. After catching AuthenticationException, the
* program could reattempt the authentication by updating
* the resolved context's environment properties with the appropriate
- * appropriate credentials.
+ * credentials.
* <p>
* Synchronization and serialization issues that apply to NamingException
* apply directly here.
--- a/jdk/src/share/classes/javax/naming/AuthenticationNotSupportedException.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/AuthenticationNotSupportedException.java Thu Feb 20 16:27:08 2014 -0800
@@ -67,7 +67,7 @@
/**
* Constructs a new instance of AuthenticationNotSupportedException
- * all name resolution fields and explanation initialized to null.
+ * with all name resolution fields and explanation initialized to null.
*/
public AuthenticationNotSupportedException() {
super();
--- a/jdk/src/share/classes/javax/naming/CannotProceedException.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/CannotProceedException.java Thu Feb 20 16:27:08 2014 -0800
@@ -64,7 +64,7 @@
/**
* Contains the remaining unresolved part of the second
* "name" argument to Context.rename().
- * This information necessary for
+ * This information is necessary for
* continuing the Context.rename() operation.
* <p>
* This field is initialized to null.
--- a/jdk/src/share/classes/javax/naming/CompositeName.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/CompositeName.java Thu Feb 20 16:27:08 2014 -0800
@@ -205,7 +205,7 @@
private transient NameImpl impl;
/**
* Constructs a new composite name instance using the components
- * specified by 'comps'. This protected method is intended to be
+ * specified by 'comps'. This protected method is intended
* to be used by subclasses of CompositeName when they override
* methods such as clone(), getPrefix(), getSuffix().
*
@@ -436,7 +436,7 @@
/**
* Determines whether a composite name is a suffix of this composite name.
- * A composite name 'n' is a suffix if it it is equal to
+ * A composite name 'n' is a suffix if it is equal to
* getSuffix(size()-n.size())--in other words, this
* composite name ends with 'n'.
* If n is null or not a composite name, false is returned.
--- a/jdk/src/share/classes/javax/naming/CompoundName.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/CompoundName.java Thu Feb 20 16:27:08 2014 -0800
@@ -165,7 +165,7 @@
/**
* Constructs a new compound name instance using the components
- * specified in comps and syntax. This protected method is intended to be
+ * specified in comps and syntax. This protected method is intended
* to be used by subclasses of CompoundName when they override
* methods such as clone(), getPrefix(), getSuffix().
*
@@ -365,7 +365,7 @@
* components in this compound name.
* The result and this compound name share the same syntax.
* Subsequent changes to
- * this compound name does not affect the name that is returned and
+ * this compound name do not affect the name that is returned and
* vice versa.
*
* @param posn The 0-based index of the component at which to stop.
@@ -385,7 +385,7 @@
* components in this compound name.
* The result and this compound name share the same syntax.
* Subsequent changes to
- * this compound name does not affect the name that is returned.
+ * this compound name do not affect the name that is returned.
*
* @param posn The 0-based index of the component at which to start.
* Must be in the range [0,size()].
@@ -423,7 +423,7 @@
/**
* Determines whether a compound name is a suffix of this compound name.
- * A compound name 'n' is a suffix if it it is equal to
+ * A compound name 'n' is a suffix if it is equal to
* getSuffix(size()-n.size())--in other words, this
* compound name ends with 'n'.
* If n is null or not a compound name, false is returned.
--- a/jdk/src/share/classes/javax/naming/LinkException.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/LinkException.java Thu Feb 20 16:27:08 2014 -0800
@@ -26,11 +26,11 @@
package javax.naming;
/**
- * This exception is used to describe problems encounter while resolving links.
- * Addition information is added to the base NamingException for pinpointing
+ * This exception is used to describe problems encountered while resolving links.
+ * Additional information is added to the base NamingException for pinpointing
* the problem with the link.
*<p>
- * Analogous to how NamingException captures name resolution information,
+ * Analogously to how NamingException captures name resolution information,
* LinkException captures "link"-name resolution information pinpointing
* the problem encountered while resolving a link. All these fields may
* be null.
@@ -111,7 +111,7 @@
protected String linkExplanation;
/**
- * Constructs a new instance of LinkException with an explanation
+ * Constructs a new instance of LinkException with an explanation.
* All the other fields are initialized to null.
* @param explanation A possibly null string containing additional
* detail about this exception.
@@ -176,7 +176,7 @@
}
/**
- * Retrieves the explanation associated with the problem encounter
+ * Retrieves the explanation associated with the problem encountered
* when resolving a link.
*
* @return The possibly null detail string explaining more about the problem
@@ -190,7 +190,7 @@
}
/**
- * Sets the explanation associated with the problem encounter
+ * Sets the explanation associated with the problem encountered
* when resolving a link.
*
* @param msg The possibly null detail string explaining more about the problem
@@ -211,7 +211,7 @@
* invoke this method using the resulting composite name.
*<p>
* A copy of <code>name</code> is made and stored.
- * Subsequent changes to <code>name</code> does not
+ * Subsequent changes to <code>name</code> do not
* affect the copy in this NamingException and vice versa.
*
*
@@ -237,7 +237,7 @@
* invoke this method using the resulting composite name.
*<p>
* A copy of <code>name</code> is made and stored.
- * Subsequent changes to <code>name</code> does not
+ * Subsequent changes to <code>name</code> do not
* affect the copy in this NamingException and vice versa.
*
* @param name The name to set remaining link name to. This can be null.
--- a/jdk/src/share/classes/javax/naming/LinkLoopException.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/LinkLoopException.java Thu Feb 20 16:27:08 2014 -0800
@@ -27,7 +27,7 @@
/**
* This exception is thrown when
- * a loop was detected will attempting to resolve a link, or an implementation
+ * a loop was detected while attempting to resolve a link, or an implementation
* specific limit on link counts has been reached.
* <p>
* Synchronization and serialization issues that apply to LinkException
@@ -42,7 +42,7 @@
public class LinkLoopException extends LinkException {
/**
- * Constructs a new instance of LinkLoopException with an explanation
+ * Constructs a new instance of LinkLoopException with an explanation.
* All the other fields are initialized to null.
* @param explanation A possibly null string containing additional
* detail about this exception.
--- a/jdk/src/share/classes/javax/naming/MalformedLinkException.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/MalformedLinkException.java Thu Feb 20 16:27:08 2014 -0800
@@ -42,7 +42,7 @@
public class MalformedLinkException extends LinkException {
/**
- * Constructs a new instance of MalformedLinkException with an explanation
+ * Constructs a new instance of MalformedLinkException with an explanation.
* All the other fields are initialized to null.
* @param explanation A possibly null string containing additional
* detail about this exception.
--- a/jdk/src/share/classes/javax/naming/NamingException.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/NamingException.java Thu Feb 20 16:27:08 2014 -0800
@@ -201,7 +201,7 @@
* invoke this method using the resulting composite name.
*<p>
* A copy of <code>name</code> is made and stored.
- * Subsequent changes to <code>name</code> does not
+ * Subsequent changes to <code>name</code> do not
* affect the copy in this NamingException and vice versa.
*
* @param name The possibly null name to set resolved name to.
@@ -225,7 +225,7 @@
* invoke this method using the resulting composite name.
*<p>
* A copy of <code>name</code> is made and stored.
- * Subsequent changes to <code>name</code> does not
+ * Subsequent changes to <code>name</code> do not
* affect the copy in this NamingException and vice versa.
* @param name The possibly null name to set remaining name to.
* If null, it sets the remaining name field to null.
@@ -279,7 +279,7 @@
* a compound name, you should "stringify" the compound name
* then invoke the overloaded form that accepts a String parameter.
*<p>
- * Subsequent changes to <code>name</code> does not
+ * Subsequent changes to <code>name</code> do not
* affect the remaining name field in this NamingException and vice versa.
* @param name The possibly null name containing ordered components to add.
* If name is null, this method does not do anything.
--- a/jdk/src/share/classes/javax/naming/RefAddr.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/RefAddr.java Thu Feb 20 16:27:08 2014 -0800
@@ -90,7 +90,7 @@
/**
* Determines whether obj is equal to this RefAddr.
*<p>
- * obj is equal to this RefAddr all of these conditions are true
+ * obj is equal to this RefAddr if all of these conditions are true
*<ul>
*<li> non-null
*<li> instance of RefAddr
--- a/jdk/src/share/classes/javax/naming/Reference.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/Reference.java Thu Feb 20 16:27:08 2014 -0800
@@ -218,8 +218,8 @@
* String.compareTo() is used to test the equality of the address types.
*
* @param addrType The non-null address type for which to find the address.
- * @return The address in this reference with address type 'addrType;
- * null if no such address exist.
+ * @return The address in this reference with address type 'addrType';
+ * null if no such address exists.
*/
public RefAddr get(String addrType) {
int len = addrs.size();
--- a/jdk/src/share/classes/javax/naming/Referenceable.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/naming/Referenceable.java Thu Feb 20 16:27:08 2014 -0800
@@ -33,7 +33,7 @@
* objects which themselves are not directly bound to the naming system.
* Such objects can implement the Referenceable interface as a way
* for programs that use that object to determine what its Reference is.
- * For example, when binding a object, if an object implements the
+ * For example, when binding an object, if an object implements the
* Referenceable interface, getReference() can be invoked on the object to
* get its Reference to use for binding.
*
--- a/jdk/src/share/classes/javax/sound/midi/MidiSystem.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/sound/midi/MidiSystem.java Thu Feb 20 16:27:08 2014 -0800
@@ -1475,7 +1475,7 @@
/**
* Obtains the set of services currently installed on the system
- * using sun.misc.Service, the SPI mechanism in 1.3.
+ * using the SPI mechanism in 1.3.
* @return a List of instances of providers for the requested service.
* If no providers are available, a List of length 0 will be returned.
*/
--- a/jdk/src/share/classes/javax/sound/sampled/AudioSystem.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/javax/sound/sampled/AudioSystem.java Thu Feb 20 16:27:08 2014 -0800
@@ -1622,7 +1622,7 @@
/**
* Obtains the set of services currently installed on the system
- * using sun.misc.Service, the SPI mechanism in 1.3.
+ * using the SPI mechanism in 1.3.
* @return a List of instances of providers for the requested service.
* If no providers are available, a vector of length 0 will be returned.
*/
--- a/jdk/src/share/classes/sun/applet/AppletViewerPanel.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/applet/AppletViewerPanel.java Thu Feb 20 16:27:08 2014 -0800
@@ -31,7 +31,6 @@
import java.net.MalformedURLException;
import java.awt.*;
import java.applet.*;
-import sun.tools.jar.*;
/**
--- a/jdk/src/share/classes/sun/misc/ClassLoaderUtil.java Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-/*
- * Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.misc;
-
-/**
- * Provides utility functions related to URLClassLoaders or subclasses of it.
- *
- * W A R N I N G
- *
- * This class uses undocumented, unpublished, private data structures inside
- * java.net.URLClassLoader and sun.misc.URLClassPath. Use with extreme caution.
- *
- * @author tjquinn
- */
-
-
-import java.io.IOException;
-import java.net.URLClassLoader;
-import java.util.*;
-import java.util.jar.JarFile;
-
-public class ClassLoaderUtil {
-
- /**
- * Releases resources held by a URLClassLoader. A new classloader must
- * be created before the underlying resources can be accessed again.
- * @param classLoader the instance of URLClassLoader (or a subclass)
- */
- public static void releaseLoader(URLClassLoader classLoader) {
- releaseLoader(classLoader, null);
- }
-
- /**
- * Releases resources held by a URLClassLoader. Notably, close the jars
- * opened by the loader. Initializes and updates the List of
- * jars that have been successfully closed.
- * <p>
- * @param classLoader the instance of URLClassLoader (or a subclass)
- * @param jarsClosed a List of Strings that will contain the names of jars
- * successfully closed; can be null if the caller does not need the information returned
- * @return a List of IOExceptions reporting jars that failed to close; null
- * indicates that an error other than an IOException occurred attempting to
- * release the loader; empty indicates a successful release; non-empty
- * indicates at least one error attempting to close an open jar.
- */
- public static List<IOException> releaseLoader(URLClassLoader classLoader, List<String> jarsClosed) {
-
- List<IOException> ioExceptions = new LinkedList<IOException>();
-
- try {
- /* Records all IOExceptions thrown while closing jar files. */
-
- if (jarsClosed != null) {
- jarsClosed.clear();
- }
-
- URLClassPath ucp = SharedSecrets.getJavaNetAccess()
- .getURLClassPath(classLoader);
- ArrayList<?> loaders = ucp.loaders;
- Stack<?> urls = ucp.urls;
- HashMap<?,?> lmap = ucp.lmap;
-
- /*
- *The urls variable in the URLClassPath object holds URLs that have not yet
- *been used to resolve a resource or load a class and, therefore, do
- *not yet have a loader associated with them. Clear the stack so any
- *future requests that might incorrectly reach the loader cannot be
- *resolved and cannot open a jar file after we think we've closed
- *them all.
- */
- synchronized(urls) {
- urls.clear();
- }
-
- /*
- *Also clear the map of URLs to loaders so the class loader cannot use
- *previously-opened jar files - they are about to be closed.
- */
- synchronized(lmap) {
- lmap.clear();
- }
-
- /*
- *The URLClassPath object's path variable records the list of all URLs that are on
- *the URLClassPath's class path. Leave that unchanged. This might
- *help someone trying to debug why a released class loader is still used.
- *Because the stack and lmap are now clear, code that incorrectly uses a
- *the released class loader will trigger an exception if the
- *class or resource would have been resolved by the class
- *loader (and no other) if it had not been released.
- *
- *The list of URLs might provide some hints to the person as to where
- *in the code the class loader was set up, which might in turn suggest
- *where in the code the class loader needs to stop being used.
- *The URLClassPath does not use the path variable to open new jar
- *files - it uses the urls Stack for that - so leaving the path variable
- *will not by itself allow the class loader to continue handling requests.
- */
-
- /*
- *For each loader, close the jar file associated with that loader.
- *
- *The URLClassPath's use of loaders is sync-ed on the entire URLClassPath
- *object.
- */
- synchronized (ucp) {
- for (Object o : loaders) {
- if (o != null) {
- /*
- *If the loader is a JarLoader inner class and its jarFile
- *field is non-null then try to close that jar file. Add
- *it to the list of closed files if successful.
- */
- if (o instanceof URLClassPath.JarLoader) {
- URLClassPath.JarLoader jl = (URLClassPath.JarLoader)o;
- JarFile jarFile = jl.getJarFile();
- try {
- if (jarFile != null) {
- jarFile.close();
- if (jarsClosed != null) {
- jarsClosed.add(jarFile.getName());
- }
- }
- } catch (IOException ioe) {
- /*
- *Wrap the IOException to identify which jar
- *could not be closed and add it to the list
- *of IOExceptions to be returned to the caller.
- */
- String jarFileName = (jarFile == null) ? "filename not available":jarFile.getName();
- String msg = "Error closing JAR file: " + jarFileName;
- IOException newIOE = new IOException(msg);
- newIOE.initCause(ioe);
- ioExceptions.add(newIOE);
- }
- }
- }
- }
- /*
- *Now clear the loaders ArrayList.
- */
- loaders.clear();
- }
- } catch (Throwable t) {
- throw new RuntimeException (t);
- }
- return ioExceptions;
- }
-}
--- a/jdk/src/share/classes/sun/misc/Service.java Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,434 +0,0 @@
-/*
- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.misc;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.Set;
-import java.util.TreeSet;
-
-
-/**
- * A simple service-provider lookup mechanism. A <i>service</i> is a
- * well-known set of interfaces and (usually abstract) classes. A <i>service
- * provider</i> is a specific implementation of a service. The classes in a
- * provider typically implement the interfaces and subclass the classes defined
- * in the service itself. Service providers may be installed in an
- * implementation of the Java platform in the form of extensions, that is, jar
- * files placed into any of the usual extension directories. Providers may
- * also be made available by adding them to the applet or application class
- * path or by some other platform-specific means.
- *
- * <p> In this lookup mechanism a service is represented by an interface or an
- * abstract class. (A concrete class may be used, but this is not
- * recommended.) A provider of a given service contains one or more concrete
- * classes that extend this <i>service class</i> with data and code specific to
- * the provider. This <i>provider class</i> will typically not be the entire
- * provider itself but rather a proxy that contains enough information to
- * decide whether the provider is able to satisfy a particular request together
- * with code that can create the actual provider on demand. The details of
- * provider classes tend to be highly service-specific; no single class or
- * interface could possibly unify them, so no such class has been defined. The
- * only requirement enforced here is that provider classes must have a
- * zero-argument constructor so that they may be instantiated during lookup.
- *
- * <p> A service provider identifies itself by placing a provider-configuration
- * file in the resource directory <tt>META-INF/services</tt>. The file's name
- * should consist of the fully-qualified name of the abstract service class.
- * The file should contain a list of fully-qualified concrete provider-class
- * names, one per line. Space and tab characters surrounding each name, as
- * well as blank lines, are ignored. The comment character is <tt>'#'</tt>
- * (<tt>0x23</tt>); on each line all characters following the first comment
- * character are ignored. The file must be encoded in UTF-8.
- *
- * <p> If a particular concrete provider class is named in more than one
- * configuration file, or is named in the same configuration file more than
- * once, then the duplicates will be ignored. The configuration file naming a
- * particular provider need not be in the same jar file or other distribution
- * unit as the provider itself. The provider must be accessible from the same
- * class loader that was initially queried to locate the configuration file;
- * note that this is not necessarily the class loader that found the file.
- *
- * <p> <b>Example:</b> Suppose we have a service class named
- * <tt>java.io.spi.CharCodec</tt>. It has two abstract methods:
- *
- * <pre>
- * public abstract CharEncoder getEncoder(String encodingName);
- * public abstract CharDecoder getDecoder(String encodingName);
- * </pre>
- *
- * Each method returns an appropriate object or <tt>null</tt> if it cannot
- * translate the given encoding. Typical <tt>CharCodec</tt> providers will
- * support more than one encoding.
- *
- * <p> If <tt>sun.io.StandardCodec</tt> is a provider of the <tt>CharCodec</tt>
- * service then its jar file would contain the file
- * <tt>META-INF/services/java.io.spi.CharCodec</tt>. This file would contain
- * the single line:
- *
- * <pre>
- * sun.io.StandardCodec # Standard codecs for the platform
- * </pre>
- *
- * To locate an encoder for a given encoding name, the internal I/O code would
- * do something like this:
- *
- * <pre>
- * CharEncoder getEncoder(String encodingName) {
- * Iterator ps = Service.providers(CharCodec.class);
- * while (ps.hasNext()) {
- * CharCodec cc = (CharCodec)ps.next();
- * CharEncoder ce = cc.getEncoder(encodingName);
- * if (ce != null)
- * return ce;
- * }
- * return null;
- * }
- * </pre>
- *
- * The provider-lookup mechanism always executes in the security context of the
- * caller. Trusted system code should typically invoke the methods in this
- * class from within a privileged security context.
- *
- * @author Mark Reinhold
- * @since 1.3
- */
-
-public final class Service<S> {
-
- private static final String prefix = "META-INF/services/";
-
- private Service() { }
-
- private static void fail(Class<?> service, String msg, Throwable cause)
- throws ServiceConfigurationError
- {
- ServiceConfigurationError sce
- = new ServiceConfigurationError(service.getName() + ": " + msg);
- sce.initCause(cause);
- throw sce;
- }
-
- private static void fail(Class<?> service, String msg)
- throws ServiceConfigurationError
- {
- throw new ServiceConfigurationError(service.getName() + ": " + msg);
- }
-
- private static void fail(Class<?> service, URL u, int line, String msg)
- throws ServiceConfigurationError
- {
- fail(service, u + ":" + line + ": " + msg);
- }
-
- /**
- * Parse a single line from the given configuration file, adding the name
- * on the line to both the names list and the returned set iff the name is
- * not already a member of the returned set.
- */
- private static int parseLine(Class<?> service, URL u, BufferedReader r, int lc,
- List<String> names, Set<String> returned)
- throws IOException, ServiceConfigurationError
- {
- String ln = r.readLine();
- if (ln == null) {
- return -1;
- }
- int ci = ln.indexOf('#');
- if (ci >= 0) ln = ln.substring(0, ci);
- ln = ln.trim();
- int n = ln.length();
- if (n != 0) {
- if ((ln.indexOf(' ') >= 0) || (ln.indexOf('\t') >= 0))
- fail(service, u, lc, "Illegal configuration-file syntax");
- int cp = ln.codePointAt(0);
- if (!Character.isJavaIdentifierStart(cp))
- fail(service, u, lc, "Illegal provider-class name: " + ln);
- for (int i = Character.charCount(cp); i < n; i += Character.charCount(cp)) {
- cp = ln.codePointAt(i);
- if (!Character.isJavaIdentifierPart(cp) && (cp != '.'))
- fail(service, u, lc, "Illegal provider-class name: " + ln);
- }
- if (!returned.contains(ln)) {
- names.add(ln);
- returned.add(ln);
- }
- }
- return lc + 1;
- }
-
- /**
- * Parse the content of the given URL as a provider-configuration file.
- *
- * @param service
- * The service class for which providers are being sought;
- * used to construct error detail strings
- *
- * @param url
- * The URL naming the configuration file to be parsed
- *
- * @param returned
- * A Set containing the names of provider classes that have already
- * been returned. This set will be updated to contain the names
- * that will be yielded from the returned <tt>Iterator</tt>.
- *
- * @return A (possibly empty) <tt>Iterator</tt> that will yield the
- * provider-class names in the given configuration file that are
- * not yet members of the returned set
- *
- * @throws ServiceConfigurationError
- * If an I/O error occurs while reading from the given URL, or
- * if a configuration-file format error is detected
- */
- private static Iterator<String> parse(Class<?> service, URL u, Set<String> returned)
- throws ServiceConfigurationError
- {
- InputStream in = null;
- BufferedReader r = null;
- ArrayList<String> names = new ArrayList<>();
- try {
- in = u.openStream();
- r = new BufferedReader(new InputStreamReader(in, "utf-8"));
- int lc = 1;
- while ((lc = parseLine(service, u, r, lc, names, returned)) >= 0);
- } catch (IOException x) {
- fail(service, ": " + x);
- } finally {
- try {
- if (r != null) r.close();
- if (in != null) in.close();
- } catch (IOException y) {
- fail(service, ": " + y);
- }
- }
- return names.iterator();
- }
-
-
- /**
- * Private inner class implementing fully-lazy provider lookup
- */
- private static class LazyIterator<S> implements Iterator<S> {
-
- Class<S> service;
- ClassLoader loader;
- Enumeration<URL> configs = null;
- Iterator<String> pending = null;
- Set<String> returned = new TreeSet<>();
- String nextName = null;
-
- private LazyIterator(Class<S> service, ClassLoader loader) {
- this.service = service;
- this.loader = loader;
- }
-
- public boolean hasNext() throws ServiceConfigurationError {
- if (nextName != null) {
- return true;
- }
- if (configs == null) {
- try {
- String fullName = prefix + service.getName();
- if (loader == null)
- configs = ClassLoader.getSystemResources(fullName);
- else
- configs = loader.getResources(fullName);
- } catch (IOException x) {
- fail(service, ": " + x);
- }
- }
- while ((pending == null) || !pending.hasNext()) {
- if (!configs.hasMoreElements()) {
- return false;
- }
- pending = parse(service, configs.nextElement(), returned);
- }
- nextName = pending.next();
- return true;
- }
-
- public S next() throws ServiceConfigurationError {
- if (!hasNext()) {
- throw new NoSuchElementException();
- }
- String cn = nextName;
- nextName = null;
- Class<?> c = null;
- try {
- c = Class.forName(cn, false, loader);
- } catch (ClassNotFoundException x) {
- fail(service,
- "Provider " + cn + " not found");
- }
- if (!service.isAssignableFrom(c)) {
- fail(service,
- "Provider " + cn + " not a subtype");
- }
- try {
- return service.cast(c.newInstance());
- } catch (Throwable x) {
- fail(service,
- "Provider " + cn + " could not be instantiated: " + x,
- x);
- }
- return null; /* This cannot happen */
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
-
- }
-
-
- /**
- * Locates and incrementally instantiates the available providers of a
- * given service using the given class loader.
- *
- * <p> This method transforms the name of the given service class into a
- * provider-configuration filename as described above and then uses the
- * <tt>getResources</tt> method of the given class loader to find all
- * available files with that name. These files are then read and parsed to
- * produce a list of provider-class names. The iterator that is returned
- * uses the given class loader to lookup and then instantiate each element
- * of the list.
- *
- * <p> Because it is possible for extensions to be installed into a running
- * Java virtual machine, this method may return different results each time
- * it is invoked. <p>
- *
- * @param service
- * The service's abstract service class
- *
- * @param loader
- * The class loader to be used to load provider-configuration files
- * and instantiate provider classes, or <tt>null</tt> if the system
- * class loader (or, failing that the bootstrap class loader) is to
- * be used
- *
- * @return An <tt>Iterator</tt> that yields provider objects for the given
- * service, in some arbitrary order. The iterator will throw a
- * <tt>ServiceConfigurationError</tt> if a provider-configuration
- * file violates the specified format or if a provider class cannot
- * be found and instantiated.
- *
- * @throws ServiceConfigurationError
- * If a provider-configuration file violates the specified format
- * or names a provider class that cannot be found and instantiated
- *
- * @see #providers(java.lang.Class)
- * @see #installedProviders(java.lang.Class)
- */
- public static <S> Iterator<S> providers(Class<S> service, ClassLoader loader)
- throws ServiceConfigurationError
- {
- return new LazyIterator<S>(service, loader);
- }
-
-
- /**
- * Locates and incrementally instantiates the available providers of a
- * given service using the context class loader. This convenience method
- * is equivalent to
- *
- * <pre>
- * ClassLoader cl = Thread.currentThread().getContextClassLoader();
- * return Service.providers(service, cl);
- * </pre>
- *
- * @param service
- * The service's abstract service class
- *
- * @return An <tt>Iterator</tt> that yields provider objects for the given
- * service, in some arbitrary order. The iterator will throw a
- * <tt>ServiceConfigurationError</tt> if a provider-configuration
- * file violates the specified format or if a provider class cannot
- * be found and instantiated.
- *
- * @throws ServiceConfigurationError
- * If a provider-configuration file violates the specified format
- * or names a provider class that cannot be found and instantiated
- *
- * @see #providers(java.lang.Class, java.lang.ClassLoader)
- */
- public static <S> Iterator<S> providers(Class<S> service)
- throws ServiceConfigurationError
- {
- ClassLoader cl = Thread.currentThread().getContextClassLoader();
- return Service.providers(service, cl);
- }
-
-
- /**
- * Locates and incrementally instantiates the available providers of a
- * given service using the extension class loader. This convenience method
- * simply locates the extension class loader, call it
- * <tt>extClassLoader</tt>, and then does
- *
- * <pre>
- * return Service.providers(service, extClassLoader);
- * </pre>
- *
- * If the extension class loader cannot be found then the system class
- * loader is used; if there is no system class loader then the bootstrap
- * class loader is used.
- *
- * @param service
- * The service's abstract service class
- *
- * @return An <tt>Iterator</tt> that yields provider objects for the given
- * service, in some arbitrary order. The iterator will throw a
- * <tt>ServiceConfigurationError</tt> if a provider-configuration
- * file violates the specified format or if a provider class cannot
- * be found and instantiated.
- *
- * @throws ServiceConfigurationError
- * If a provider-configuration file violates the specified format
- * or names a provider class that cannot be found and instantiated
- *
- * @see #providers(java.lang.Class, java.lang.ClassLoader)
- */
- public static <S> Iterator<S> installedProviders(Class<S> service)
- throws ServiceConfigurationError
- {
- ClassLoader cl = ClassLoader.getSystemClassLoader();
- ClassLoader prev = null;
- while (cl != null) {
- prev = cl;
- cl = cl.getParent();
- }
- return Service.providers(service, prev);
- }
-
-}
--- a/jdk/src/share/classes/sun/misc/ServiceConfigurationError.java Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.misc;
-
-
-/**
- * Error thrown when something goes wrong while looking up service providers.
- * In particular, this error will be thrown in the following situations:
- *
- * <ul>
- * <li> A concrete provider class cannot be found,
- * <li> A concrete provider class cannot be instantiated,
- * <li> The format of a provider-configuration file is illegal, or
- * <li> An IOException occurs while reading a provider-configuration file.
- * </ul>
- *
- * @author Mark Reinhold
- * @since 1.3
- */
-
-public class ServiceConfigurationError extends Error {
-
- static final long serialVersionUID = 8769866263384244465L;
-
- /**
- * Constructs a new instance with the specified detail string.
- */
- public ServiceConfigurationError(String msg) {
- super(msg);
- }
-
- /**
- * Constructs a new instance that wraps the specified throwable.
- */
- public ServiceConfigurationError(Throwable x) {
- super(x);
- }
-
-}
--- a/jdk/src/share/classes/sun/security/jgss/GSSUtil.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/jgss/GSSUtil.java Thu Feb 20 16:27:08 2014 -0800
@@ -25,7 +25,6 @@
package sun.security.jgss;
-import com.sun.security.auth.callback.TextCallbackHandler;
import javax.security.auth.Subject;
import javax.security.auth.kerberos.KerberosPrincipal;
import javax.security.auth.kerberos.KerberosTicket;
@@ -48,6 +47,7 @@
import javax.security.auth.login.LoginContext;
import javax.security.auth.login.LoginException;
import sun.security.action.GetBooleanAction;
+import sun.security.util.ConsoleCallbackHandler;
/**
* The GSSUtilImplementation that knows how to work with the internals of
@@ -243,7 +243,7 @@
if ((defaultHandler != null) && (defaultHandler.length() != 0)) {
cb = null;
} else {
- cb = new TextCallbackHandler();
+ cb = new ConsoleCallbackHandler();
}
}
--- a/jdk/src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/provider/certpath/AdaptableX509CertSelector.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,13 +26,16 @@
package sun.security.provider.certpath;
import java.io.IOException;
-import java.util.Date;
-
+import java.math.BigInteger;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import java.security.cert.X509CertSelector;
import java.security.cert.CertificateException;
+import java.util.Arrays;
+import java.util.Date;
+import sun.security.util.Debug;
+import sun.security.util.DerInputStream;
import sun.security.util.DerOutputStream;
import sun.security.x509.SerialNumber;
import sun.security.x509.KeyIdentifier;
@@ -40,26 +43,27 @@
/**
* An adaptable X509 certificate selector for forward certification path
- * building.
+ * building. This selector overrides the default X509CertSelector matching
+ * rules for the subjectKeyIdentifier and serialNumber criteria, and adds
+ * additional rules for certificate validity.
*
* @since 1.7
*/
class AdaptableX509CertSelector extends X509CertSelector {
+
+ private static final Debug debug = Debug.getInstance("certpath");
+
// The start date of a validity period.
private Date startDate;
// The end date of a validity period.
private Date endDate;
- // Is subject key identifier sensitive?
- private boolean isSKIDSensitive = false;
+ // The subject key identifier
+ private byte[] ski;
- // Is serial number sensitive?
- private boolean isSNSensitive = false;
-
- AdaptableX509CertSelector() {
- super();
- }
+ // The serial number
+ private BigInteger serial;
/**
* Sets the criterion of the X509Certificate validity period.
@@ -86,51 +90,70 @@
}
/**
- * Parse the authority key identifier extension.
+ * This selector overrides the subjectKeyIdentifier matching rules of
+ * X509CertSelector, so it throws IllegalArgumentException if this method
+ * is ever called.
+ */
+ @Override
+ public void setSubjectKeyIdentifier(byte[] subjectKeyID) {
+ throw new IllegalArgumentException();
+ }
+
+ /**
+ * This selector overrides the serialNumber matching rules of
+ * X509CertSelector, so it throws IllegalArgumentException if this method
+ * is ever called.
+ */
+ @Override
+ public void setSerialNumber(BigInteger serial) {
+ throw new IllegalArgumentException();
+ }
+
+ /**
+ * Sets the subjectKeyIdentifier and serialNumber criteria from the
+ * authority key identifier extension.
*
- * If the keyIdentifier field of the extension is non-null, set the
- * subjectKeyIdentifier criterion. If the authorityCertSerialNumber
- * field is non-null, set the serialNumber criterion.
+ * The subjectKeyIdentifier criterion is set to the keyIdentifier field
+ * of the extension, or null if it is empty. The serialNumber criterion
+ * is set to the authorityCertSerialNumber field, or null if it is empty.
*
- * Note that we will not set the subject criterion according to the
+ * Note that we do not set the subject criterion to the
* authorityCertIssuer field of the extension. The caller MUST set
- * the subject criterion before call match().
+ * the subject criterion before calling match().
*
- * @param akidext the authorityKeyIdentifier extension
+ * @param ext the authorityKeyIdentifier extension
+ * @throws IOException if there is an error parsing the extension
*/
- void parseAuthorityKeyIdentifierExtension(
- AuthorityKeyIdentifierExtension akidext) throws IOException {
- if (akidext != null) {
- KeyIdentifier akid = (KeyIdentifier)akidext.get(
- AuthorityKeyIdentifierExtension.KEY_ID);
+ void setSkiAndSerialNumber(AuthorityKeyIdentifierExtension ext)
+ throws IOException {
+
+ ski = null;
+ serial = null;
+
+ if (ext != null) {
+ KeyIdentifier akid = (KeyIdentifier)ext.get(
+ AuthorityKeyIdentifierExtension.KEY_ID);
if (akid != null) {
- // Do not override the previous setting for initial selection.
- if (isSKIDSensitive || getSubjectKeyIdentifier() == null) {
- DerOutputStream derout = new DerOutputStream();
- derout.putOctetString(akid.getIdentifier());
- super.setSubjectKeyIdentifier(derout.toByteArray());
-
- isSKIDSensitive = true;
- }
+ DerOutputStream derout = new DerOutputStream();
+ derout.putOctetString(akid.getIdentifier());
+ ski = derout.toByteArray();
}
-
- SerialNumber asn = (SerialNumber)akidext.get(
- AuthorityKeyIdentifierExtension.SERIAL_NUMBER);
+ SerialNumber asn = (SerialNumber)ext.get(
+ AuthorityKeyIdentifierExtension.SERIAL_NUMBER);
if (asn != null) {
- // Do not override the previous setting for initial selection.
- if (isSNSensitive || getSerialNumber() == null) {
- super.setSerialNumber(asn.getNumber());
- isSNSensitive = true;
- }
+ serial = asn.getNumber();
}
-
- // the subject criterion should be set by the caller.
+ // the subject criterion should be set by the caller
}
}
/**
* Decides whether a <code>Certificate</code> should be selected.
*
+ * This method overrides the matching rules for the subjectKeyIdentifier
+ * and serialNumber criteria and adds additional rules for certificate
+ * validity.
+ *
* For the purpose of compatibility, when a certificate is of
* version 1 and version 2, or the certificate does not include
* a subject key identifier extension, the selection criterion
@@ -138,12 +161,28 @@
*/
@Override
public boolean match(Certificate cert) {
- if (!(cert instanceof X509Certificate)) {
+ X509Certificate xcert = (X509Certificate)cert;
+
+ // match subject key identifier
+ if (!matchSubjectKeyID(xcert)) {
return false;
}
- X509Certificate xcert = (X509Certificate)cert;
+ // In practice, a CA may replace its root certificate and require that
+ // the existing certificate is still valid, even if the AKID extension
+ // does not match the replacement root certificate fields.
+ //
+ // Conservatively, we only support the replacement for version 1 and
+ // version 2 certificate. As for version 3, the certificate extension
+ // may contain sensitive information (for example, policies), the
+ // AKID need to be respected to seek the exact certificate in case
+ // of key or certificate abuse.
int version = xcert.getVersion();
+ if (serial != null && version > 2) {
+ if (!serial.equals(xcert.getSerialNumber())) {
+ return false;
+ }
+ }
// Check the validity period for version 1 and 2 certificate.
if (version < 3) {
@@ -154,7 +193,6 @@
return false;
}
}
-
if (endDate != null) {
try {
xcert.checkValidity(endDate);
@@ -164,26 +202,50 @@
}
}
- // If no SubjectKeyIdentifier extension, don't bother to check it.
- if (isSKIDSensitive &&
- (version < 3 || xcert.getExtensionValue("2.5.29.14") == null)) {
- setSubjectKeyIdentifier(null);
+
+ if (!super.match(cert)) {
+ return false;
}
- // In practice, a CA may replace its root certificate and require that
- // the existing certificate is still valid, even if the AKID extension
- // does not match the replacement root certificate fields.
- //
- // Conservatively, we only support the replacement for version 1 and
- // version 2 certificate. As for version 2, the certificate extension
- // may contain sensitive information (for example, policies), the
- // AKID need to be respected to seek the exact certificate in case
- // of key or certificate abuse.
- if (isSNSensitive && version < 3) {
- setSerialNumber(null);
+ return true;
+ }
+
+ /*
+ * Match on subject key identifier extension value. These matching rules
+ * are identical to X509CertSelector except that if the certificate does
+ * not have a subject key identifier extension, it returns true.
+ */
+ private boolean matchSubjectKeyID(X509Certificate xcert) {
+ if (ski == null) {
+ return true;
}
-
- return super.match(cert);
+ try {
+ byte[] extVal = xcert.getExtensionValue("2.5.29.14");
+ if (extVal == null) {
+ if (debug != null) {
+ debug.println("AdaptableX509CertSelector.match: "
+ + "no subject key ID extension");
+ }
+ return true;
+ }
+ DerInputStream in = new DerInputStream(extVal);
+ byte[] certSubjectKeyID = in.getOctetString();
+ if (certSubjectKeyID == null ||
+ !Arrays.equals(ski, certSubjectKeyID)) {
+ if (debug != null) {
+ debug.println("AdaptableX509CertSelector.match: "
+ + "subject key IDs don't match");
+ }
+ return false;
+ }
+ } catch (IOException ex) {
+ if (debug != null) {
+ debug.println("AdaptableX509CertSelector.match: "
+ + "exception in subject key ID check");
+ }
+ return false;
+ }
+ return true;
}
@Override
@@ -198,6 +260,9 @@
copy.endDate = (Date)endDate.clone();
}
+ if (ski != null) {
+ copy.ski = ski.clone();
+ }
return copy;
}
}
--- a/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -751,9 +751,7 @@
* issued. [section 5.2.1, RFC 2459]
*/
AuthorityKeyIdentifierExtension crlAKID = crl.getAuthKeyIdExtension();
- if (crlAKID != null) {
- issuerSelector.parseAuthorityKeyIdentifierExtension(crlAKID);
- }
+ issuerSelector.setSkiAndSerialNumber(crlAKID);
matched = issuerSelector.match(cert);
--- a/jdk/src/share/classes/sun/security/provider/certpath/ForwardBuilder.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/provider/certpath/ForwardBuilder.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -269,7 +269,7 @@
*/
AuthorityKeyIdentifierExtension akidext =
currentState.cert.getAuthorityKeyIdentifierExtension();
- caSelector.parseAuthorityKeyIdentifierExtension(akidext);
+ caSelector.setSkiAndSerialNumber(akidext);
/*
* check the validity period
--- a/jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/provider/certpath/PKIXCertPathValidator.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -103,7 +103,7 @@
*/
try {
X509CertImpl firstCertImpl = X509CertImpl.toImpl(firstCert);
- selector.parseAuthorityKeyIdentifierExtension(
+ selector.setSkiAndSerialNumber(
firstCertImpl.getAuthorityKeyIdentifierExtension());
} catch (CertificateException | IOException e) {
// ignore
--- a/jdk/src/share/classes/sun/security/provider/certpath/RevocationChecker.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/provider/certpath/RevocationChecker.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1035,6 +1035,9 @@
boolean signFlag = true;
List<? extends Certificate> cpList =
cpbr.getCertPath().getCertificates();
+ if (cpList.isEmpty()) {
+ return;
+ }
try {
for (int i = cpList.size()-1; i >= 0; i-- ) {
X509Certificate cert = (X509Certificate)cpList.get(i);
--- a/jdk/src/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java Thu Feb 20 16:27:08 2014 -0800
@@ -53,9 +53,9 @@
{"If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified",
"\u5982\u679C\u5BC6\u94A5\u5E93\u672A\u53D7\u53E3\u4EE4\u4FDD\u62A4, \u5219\u4E0D\u80FD\u6307\u5B9A -storepass \u548C -keypass"},
{"Usage.jarsigner.options.jar.file.alias",
- "\u7528\u6CD5: jarsigner [\u9009\u9879] jar \u6587\u4EF6\u522B\u540D"},
+ "\u7528\u6CD5: jarsigner [\u9009\u9879] jar-file \u522B\u540D"},
{".jarsigner.verify.options.jar.file.alias.",
- " jarsigner -verify [options] jar-file [alias...]"},
+ " jarsigner -verify [\u9009\u9879] jar-file [\u522B\u540D...]"},
{".keystore.url.keystore.location",
"[-keystore <url>] \u5BC6\u94A5\u5E93\u4F4D\u7F6E"},
{".storepass.password.password.for.keystore.integrity",
@@ -65,7 +65,7 @@
{".keypass.password.password.for.private.key.if.different.",
"[-keypass <\u53E3\u4EE4>] \u79C1\u6709\u5BC6\u94A5\u7684\u53E3\u4EE4 (\u5982\u679C\u4E0D\u540C)"},
{".certchain.file.name.of.alternative.certchain.file",
- "[-certchain <file>] \u66FF\u4EE3 certchain \u6587\u4EF6\u7684\u540D\u79F0"},
+ "[-certchain <\u6587\u4EF6>] \u66FF\u4EE3 certchain \u6587\u4EF6\u7684\u540D\u79F0"},
{".sigfile.file.name.of.SF.DSA.file",
"[-sigfile <\u6587\u4EF6>] .SF/.DSA \u6587\u4EF6\u7684\u540D\u79F0"},
{".signedjar.file.name.of.signed.JAR.file",
--- a/jdk/src/share/classes/sun/security/tools/keytool/Resources_de.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Resources_de.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,10 +65,16 @@
{"Generates.certificate.from.a.certificate.request",
"Generiert ein Zertifikat aus einer Zertifikatanforderung"}, //-gencert
{"Generates.CRL", "Generiert eine CRL"}, //-gencrl
+ {"Generated.keyAlgName.secret.key",
+ "{0} Secret Key generiert"}, //-genseckey
+ {"Generated.keysize.bit.keyAlgName.secret.key",
+ "{0}-Bit {1} Secret Key generiert"}, //-genseckey
{"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
"Importiert Eintr\u00E4ge aus einer Identity-Datenbank im JDK 1.1.x-Stil"}, //-identitydb
{"Imports.a.certificate.or.a.certificate.chain",
"Importiert ein Zertifikat oder eine Zertifikatkette"}, //-importcert
+ {"Imports.a.password",
+ "Importiert ein Kennwort"}, //-importpass
{"Imports.one.or.all.entries.from.another.keystore",
"Importiert einen oder alle Eintr\u00E4ge aus einem anderen Keystore"}, //-importkeystore
{"Clones.a.key.entry",
@@ -220,6 +226,8 @@
{"Must.specify.alias", "Sie m\u00FCssen einen Alias angeben"},
{"Keystore.password.must.be.at.least.6.characters",
"Keystore-Kennwort muss mindestens sechs Zeichen lang sein"},
+ {"Enter.the.password.to.be.stored.",
+ "Geben Sie das Kennwort ein, das gespeichert werden soll: "},
{"Enter.keystore.password.", "Keystore-Kennwort eingeben: "},
{"Enter.source.keystore.password.", "Quell-Keystore-Kennwort eingeben: "},
{"Enter.destination.keystore.password.", "Ziel-Keystore-Kennwort eingeben: "},
@@ -328,6 +336,7 @@
{"New.prompt.", "Neues {0}: "},
{"Passwords.must.differ", "Kennw\u00F6rter m\u00FCssen sich unterscheiden"},
{"Re.enter.new.prompt.", "Neues {0} erneut eingeben: "},
+ {"Re.enter.passpword.", "Geben Sie das Kennwort erneut ein: "},
{"Re.enter.new.password.", "Neues Kennwort erneut eingeben: "},
{"They.don.t.match.Try.again", "Keine \u00DCbereinstimmung. Wiederholen Sie den Vorgang"},
{"Enter.prompt.alias.name.", "{0}-Aliasnamen eingeben: "},
--- a/jdk/src/share/classes/sun/security/tools/keytool/Resources_es.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Resources_es.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,10 +65,16 @@
{"Generates.certificate.from.a.certificate.request",
"Genera un certificado a partir de una solicitud de certificado"}, //-gencert
{"Generates.CRL", "Genera CRL"}, //-gencrl
+ {"Generated.keyAlgName.secret.key",
+ "Clave secreta {0} generada"}, //-genseckey
+ {"Generated.keysize.bit.keyAlgName.secret.key",
+ "Clave secreta {1} de {0} bits generada"}, //-genseckey
{"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
"Importa entradas desde una base de datos de identidades JDK 1.1.x-style"}, //-identitydb
{"Imports.a.certificate.or.a.certificate.chain",
"Importa un certificado o una cadena de certificados"}, //-importcert
+ {"Imports.a.password",
+ "Importa una contrase\u00F1a"}, //-importpass
{"Imports.one.or.all.entries.from.another.keystore",
"Importa una o todas las entradas desde otro almac\u00E9n de claves"}, //-importkeystore
{"Clones.a.key.entry",
@@ -220,6 +226,8 @@
{"Must.specify.alias", "Se debe especificar un alias"},
{"Keystore.password.must.be.at.least.6.characters",
"La contrase\u00F1a del almac\u00E9n de claves debe tener al menos 6 caracteres"},
+ {"Enter.the.password.to.be.stored.",
+ "Introduzca la contrase\u00F1a que se va a almacenar: "},
{"Enter.keystore.password.", "Introduzca la contrase\u00F1a del almac\u00E9n de claves: "},
{"Enter.source.keystore.password.", "Introduzca la contrase\u00F1a de almac\u00E9n de claves de origen: "},
{"Enter.destination.keystore.password.", "Introduzca la contrase\u00F1a de almac\u00E9n de claves de destino: "},
@@ -328,6 +336,7 @@
{"New.prompt.", "Nuevo {0}: "},
{"Passwords.must.differ", "Las contrase\u00F1as deben ser distintas"},
{"Re.enter.new.prompt.", "Vuelva a escribir el nuevo {0}: "},
+ {"Re.enter.passpword.", "Vuelva a introducir la contrase\u00F1a: "},
{"Re.enter.new.password.", "Volver a escribir la contrase\u00F1a nueva: "},
{"They.don.t.match.Try.again", "No coinciden. Int\u00E9ntelo de nuevo"},
{"Enter.prompt.alias.name.", "Escriba el nombre de alias de {0}: "},
--- a/jdk/src/share/classes/sun/security/tools/keytool/Resources_fr.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Resources_fr.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,10 +65,16 @@
{"Generates.certificate.from.a.certificate.request",
"G\u00E9n\u00E8re le certificat \u00E0 partir d'une demande de certificat"}, //-gencert
{"Generates.CRL", "G\u00E9n\u00E8re la liste des certificats r\u00E9voqu\u00E9s (CRL)"}, //-gencrl
+ {"Generated.keyAlgName.secret.key",
+ "Cl\u00E9 secr\u00E8te {0} g\u00E9n\u00E9r\u00E9e"}, //-genseckey
+ {"Generated.keysize.bit.keyAlgName.secret.key",
+ "Cl\u00E9 secr\u00E8te {0} bits {1} g\u00E9n\u00E9r\u00E9e"}, //-genseckey
{"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
"Importe les entr\u00E9es \u00E0 partir d'une base de donn\u00E9es d'identit\u00E9s de type JDK 1.1.x"}, //-identitydb
{"Imports.a.certificate.or.a.certificate.chain",
"Importe un certificat ou une cha\u00EEne de certificat"}, //-importcert
+ {"Imports.a.password",
+ "Importe un mot de passe"}, //-importpass
{"Imports.one.or.all.entries.from.another.keystore",
"Importe une entr\u00E9e ou la totalit\u00E9 des entr\u00E9es depuis un autre fichier de cl\u00E9s"}, //-importkeystore
{"Clones.a.key.entry",
@@ -220,6 +226,8 @@
{"Must.specify.alias", "L'alias doit \u00EAtre sp\u00E9cifi\u00E9"},
{"Keystore.password.must.be.at.least.6.characters",
"Un mot de passe de fichier de cl\u00E9s doit comporter au moins 6 caract\u00E8res"},
+ {"Enter.the.password.to.be.stored.",
+ "Saisissez le mot de passe \u00E0 stocker : "},
{"Enter.keystore.password.", "Entrez le mot de passe du fichier de cl\u00E9s : "},
{"Enter.source.keystore.password.", "Entrez le mot de passe du fichier de cl\u00E9s source\u00A0: "},
{"Enter.destination.keystore.password.", "Entrez le mot de passe du fichier de cl\u00E9s de destination\u00A0: "},
@@ -328,6 +336,7 @@
{"New.prompt.", "Nouveau {0} : "},
{"Passwords.must.differ", "Les mots de passe doivent diff\u00E9rer"},
{"Re.enter.new.prompt.", "Indiquez encore le nouveau {0} : "},
+ {"Re.enter.passpword.", "R\u00E9p\u00E9tez le mot de passe : "},
{"Re.enter.new.password.", "Ressaisissez le nouveau mot de passe : "},
{"They.don.t.match.Try.again", "Ils sont diff\u00E9rents. R\u00E9essayez."},
{"Enter.prompt.alias.name.", "Indiquez le nom d''alias {0} : "},
--- a/jdk/src/share/classes/sun/security/tools/keytool/Resources_it.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Resources_it.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,10 +65,16 @@
{"Generates.certificate.from.a.certificate.request",
"Genera un certificato da una richiesta di certificato"}, //-gencert
{"Generates.CRL", "Genera CRL"}, //-gencrl
+ {"Generated.keyAlgName.secret.key",
+ "Generata chiave segreta {0}"}, //-genseckey
+ {"Generated.keysize.bit.keyAlgName.secret.key",
+ "Generata chiave segreta {1} a {0} bit"}, //-genseckey
{"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
"Importa le voci da un database delle identit\u00E0 di tipo JDK 1.1.x"}, //-identitydb
{"Imports.a.certificate.or.a.certificate.chain",
"Importa un certificato o una catena di certificati"}, //-importcert
+ {"Imports.a.password",
+ "Importa una password"}, //-importpass
{"Imports.one.or.all.entries.from.another.keystore",
"Importa una o tutte le voci da un altro keystore"}, //-importkeystore
{"Clones.a.key.entry",
@@ -220,6 +226,8 @@
{"Must.specify.alias", "\u00C8 necessario specificare l'alias"},
{"Keystore.password.must.be.at.least.6.characters",
"La password del keystore deve contenere almeno 6 caratteri"},
+ {"Enter.the.password.to.be.stored.",
+ "Immettere la password da memorizzare: "},
{"Enter.keystore.password.", "Immettere la password del keystore: "},
{"Enter.source.keystore.password.", "Immettere la password del keystore di origine: "},
{"Enter.destination.keystore.password.", "Immettere la password del keystore di destinazione: "},
@@ -328,6 +336,7 @@
{"New.prompt.", "Nuova {0}: "},
{"Passwords.must.differ", "Le password non devono coincidere"},
{"Re.enter.new.prompt.", "Reimmettere un nuovo valore per {0}: "},
+ {"Re.enter.passpword.", "Reimmettere la password: "},
{"Re.enter.new.password.", "Immettere nuovamente la nuova password: "},
{"They.don.t.match.Try.again", "Non corrispondono. Riprovare."},
{"Enter.prompt.alias.name.", "Immettere nome alias {0}: "},
@@ -335,7 +344,7 @@
"Immettere un nuovo nome alias\t(premere INVIO per annullare l'importazione della voce): "},
{"Enter.alias.name.", "Immettere nome alias: "},
{".RETURN.if.same.as.for.otherAlias.",
- "\t(INVIO se corrisponde al nome di <{0}>"},
+ "\t(INVIO se corrisponde al nome di <{0}>)"},
{".PATTERN.printX509Cert",
"Proprietario: {0}\nAutorit\u00E0 emittente: {1}\nNumero di serie: {2}\nValido da: {3} a: {4}\nImpronte digitali certificato:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t Nome algoritmo firma: {8}\n\t Versione: {9}"},
{"What.is.your.first.and.last.name.",
--- a/jdk/src/share/classes/sun/security/tools/keytool/Resources_ja.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Resources_ja.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,10 +65,16 @@
{"Generates.certificate.from.a.certificate.request",
"\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8\u304B\u3089\u8A3C\u660E\u66F8\u3092\u751F\u6210\u3057\u307E\u3059"}, //-gencert
{"Generates.CRL", "CRL\u3092\u751F\u6210\u3057\u307E\u3059"}, //-gencrl
+ {"Generated.keyAlgName.secret.key",
+ "{0}\u79D8\u5BC6\u9375\u3092\u751F\u6210\u3057\u307E\u3057\u305F"}, //-genseckey
+ {"Generated.keysize.bit.keyAlgName.secret.key",
+ "{0}\u30D3\u30C3\u30C8{1}\u79D8\u5BC6\u9375\u3092\u751F\u6210\u3057\u307E\u3057\u305F"}, //-genseckey
{"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
"JDK 1.1.x-style\u30A2\u30A4\u30C7\u30F3\u30C6\u30A3\u30C6\u30A3\u30FB\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u30A8\u30F3\u30C8\u30EA\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-identitydb
{"Imports.a.certificate.or.a.certificate.chain",
"\u8A3C\u660E\u66F8\u307E\u305F\u306F\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-importcert
+ {"Imports.a.password",
+ "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-importpass
{"Imports.one.or.all.entries.from.another.keystore",
"\u5225\u306E\u30AD\u30FC\u30B9\u30C8\u30A2\u304B\u30891\u3064\u307E\u305F\u306F\u3059\u3079\u3066\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-importkeystore
{"Clones.a.key.entry",
@@ -220,6 +226,8 @@
{"Must.specify.alias", "\u5225\u540D\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
{"Keystore.password.must.be.at.least.6.characters",
"\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u306F6\u6587\u5B57\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
+ {"Enter.the.password.to.be.stored.",
+ "\u4FDD\u5B58\u3059\u308B\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
{"Enter.keystore.password.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
{"Enter.source.keystore.password.", "\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
{"Enter.destination.keystore.password.", "\u51FA\u529B\u5148\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
@@ -328,6 +336,7 @@
{"New.prompt.", "\u65B0\u898F{0}: "},
{"Passwords.must.differ", "\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u7570\u306A\u3063\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
{"Re.enter.new.prompt.", "\u65B0\u898F{0}\u3092\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
+ {"Re.enter.passpword.", "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
{"Re.enter.new.password.", "\u65B0\u898F\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
{"They.don.t.match.Try.again", "\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u3082\u3046\u4E00\u5EA6\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044"},
{"Enter.prompt.alias.name.", "{0}\u306E\u5225\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
--- a/jdk/src/share/classes/sun/security/tools/keytool/Resources_ko.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Resources_ko.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,10 +65,16 @@
{"Generates.certificate.from.a.certificate.request",
"\uC778\uC99D\uC11C \uC694\uCCAD\uC5D0\uC11C \uC778\uC99D\uC11C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-gencert
{"Generates.CRL", "CRL\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-gencrl
+ {"Generated.keyAlgName.secret.key",
+ "{0} \uBCF4\uC548 \uD0A4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-genseckey
+ {"Generated.keysize.bit.keyAlgName.secret.key",
+ "{0}\uBE44\uD2B8 {1} \uBCF4\uC548 \uD0A4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-genseckey
{"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
"JDK 1.1.x \uC2A4\uD0C0\uC77C ID \uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC11C \uD56D\uBAA9\uC744 \uC784\uD3EC\uD2B8\uD569\uB2C8\uB2E4."}, //-identitydb
{"Imports.a.certificate.or.a.certificate.chain",
"\uC778\uC99D\uC11C \uB610\uB294 \uC778\uC99D\uC11C \uCCB4\uC778\uC744 \uC784\uD3EC\uD2B8\uD569\uB2C8\uB2E4."}, //-importcert
+ {"Imports.a.password",
+ "\uBE44\uBC00\uBC88\uD638\uB97C \uC784\uD3EC\uD2B8\uD569\uB2C8\uB2E4."}, //-importpass
{"Imports.one.or.all.entries.from.another.keystore",
"\uB2E4\uB978 \uD0A4 \uC800\uC7A5\uC18C\uC5D0\uC11C \uD558\uB098 \uB610\uB294 \uBAA8\uB4E0 \uD56D\uBAA9\uC744 \uC784\uD3EC\uD2B8\uD569\uB2C8\uB2E4."}, //-importkeystore
{"Clones.a.key.entry",
@@ -220,6 +226,8 @@
{"Must.specify.alias", "\uBCC4\uCE6D\uC744 \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4."},
{"Keystore.password.must.be.at.least.6.characters",
"\uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638\uB294 6\uC790 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4."},
+ {"Enter.the.password.to.be.stored.",
+ "\uC800\uC7A5\uD560 \uBE44\uBC00\uBC88\uD638 \uC785\uB825: "},
{"Enter.keystore.password.", "\uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638 \uC785\uB825: "},
{"Enter.source.keystore.password.", "\uC18C\uC2A4 \uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638 \uC785\uB825: "},
{"Enter.destination.keystore.password.", "\uB300\uC0C1 \uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638 \uC785\uB825: "},
@@ -328,6 +336,7 @@
{"New.prompt.", "\uC0C8 {0}: "},
{"Passwords.must.differ", "\uBE44\uBC00\uBC88\uD638\uB294 \uB2EC\uB77C\uC57C \uD569\uB2C8\uB2E4."},
{"Re.enter.new.prompt.", "\uC0C8 {0} \uB2E4\uC2DC \uC785\uB825: "},
+ {"Re.enter.passpword.", "\uBE44\uBC00\uBC88\uD638 \uB2E4\uC2DC \uC785\uB825: "},
{"Re.enter.new.password.", "\uC0C8 \uBE44\uBC00\uBC88\uD638 \uB2E4\uC2DC \uC785\uB825: "},
{"They.don.t.match.Try.again", "\uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uC2DC\uB3C4\uD558\uC2ED\uC2DC\uC624."},
{"Enter.prompt.alias.name.", "{0} \uBCC4\uCE6D \uC774\uB984 \uC785\uB825: "},
--- a/jdk/src/share/classes/sun/security/tools/keytool/Resources_pt_BR.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Resources_pt_BR.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,10 +65,16 @@
{"Generates.certificate.from.a.certificate.request",
"Gera um certificado de uma solicita\u00E7\u00E3o de certificado"}, //-gencert
{"Generates.CRL", "Gera CRL"}, //-gencrl
+ {"Generated.keyAlgName.secret.key",
+ "Chave secreta {0} gerada"}, //-genseckey
+ {"Generated.keysize.bit.keyAlgName.secret.key",
+ "Chave secreta {1} de {0} bits gerada"}, //-genseckey
{"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
"Importa entradas de um banco de dados de identidade JDK 1.1.x-style"}, //-identitydb
{"Imports.a.certificate.or.a.certificate.chain",
"Importa um certificado ou uma cadeia de certificados"}, //-importcert
+ {"Imports.a.password",
+ "Importa uma senha"}, //-importpass
{"Imports.one.or.all.entries.from.another.keystore",
"Importa uma ou todas as entradas de outra \u00E1rea de armazenamento de chaves"}, //-importkeystore
{"Clones.a.key.entry",
@@ -220,6 +226,8 @@
{"Must.specify.alias", "Deve ser especificado um alias"},
{"Keystore.password.must.be.at.least.6.characters",
"A senha da \u00E1rea de armazenamento de chaves deve ter, no m\u00EDnimo, 6 caracteres"},
+ {"Enter.the.password.to.be.stored.",
+ "Digite a senha a ser armazenada: "},
{"Enter.keystore.password.", "Informe a senha da \u00E1rea de armazenamento de chaves: "},
{"Enter.source.keystore.password.", "Informe a senha da \u00E1rea de armazenamento de chaves de origem: "},
{"Enter.destination.keystore.password.", "Informe a senha da \u00E1rea de armazenamento de chaves de destino: "},
@@ -328,6 +336,7 @@
{"New.prompt.", "Nova {0}: "},
{"Passwords.must.differ", "As senhas devem ser diferentes"},
{"Re.enter.new.prompt.", "Informe novamente a nova {0}: "},
+ {"Re.enter.passpword.", "Redigite a senha: "},
{"Re.enter.new.password.", "Informe novamente a nova senha: "},
{"They.don.t.match.Try.again", "Elas n\u00E3o correspondem. Tente novamente"},
{"Enter.prompt.alias.name.", "Informe o nome do alias {0}: "},
--- a/jdk/src/share/classes/sun/security/tools/keytool/Resources_sv.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Resources_sv.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,10 +65,16 @@
{"Generates.certificate.from.a.certificate.request",
"Genererar certifikat fr\u00E5n certifikatbeg\u00E4ran"}, //-gencert
{"Generates.CRL", "Genererar CRL"}, //-gencrl
+ {"Generated.keyAlgName.secret.key",
+ "Genererade {0} hemlig nyckel"}, //-genseckey
+ {"Generated.keysize.bit.keyAlgName.secret.key",
+ "Genererade {0}-bitars {1} hemlig nyckel"}, //-genseckey
{"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
"Importerar poster fr\u00E5n identitetsdatabas i JDK 1.1.x-format"}, //-identitydb
{"Imports.a.certificate.or.a.certificate.chain",
"Importerar ett certifikat eller en certifikatkedja"}, //-importcert
+ {"Imports.a.password",
+ "Importerar ett l\u00F6senord"}, //-importpass
{"Imports.one.or.all.entries.from.another.keystore",
"Importerar en eller alla poster fr\u00E5n annat nyckellager"}, //-importkeystore
{"Clones.a.key.entry",
@@ -220,6 +226,8 @@
{"Must.specify.alias", "Du m\u00E5ste ange alias"},
{"Keystore.password.must.be.at.least.6.characters",
"Nyckellagerl\u00F6senordet m\u00E5ste inneh\u00E5lla minst 6 tecken"},
+ {"Enter.the.password.to.be.stored.",
+ "Ange det l\u00F6senord som ska lagras: "},
{"Enter.keystore.password.", "Ange nyckellagerl\u00F6senord: "},
{"Enter.source.keystore.password.", "Ange l\u00F6senord f\u00F6r k\u00E4llnyckellagret: "},
{"Enter.destination.keystore.password.", "Ange nyckellagerl\u00F6senord f\u00F6r destination: "},
@@ -328,6 +336,7 @@
{"New.prompt.", "Nytt {0}: "},
{"Passwords.must.differ", "L\u00F6senorden m\u00E5ste vara olika"},
{"Re.enter.new.prompt.", "Ange nytt {0} igen: "},
+ {"Re.enter.passpword.", "Ange l\u00F6senord igen: "},
{"Re.enter.new.password.", "Ange det nya l\u00F6senordet igen: "},
{"They.don.t.match.Try.again", "De matchar inte. F\u00F6rs\u00F6k igen"},
{"Enter.prompt.alias.name.", "Ange aliasnamn f\u00F6r {0}: "},
--- a/jdk/src/share/classes/sun/security/tools/keytool/Resources_zh_CN.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Resources_zh_CN.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,10 +65,16 @@
{"Generates.certificate.from.a.certificate.request",
"\u6839\u636E\u8BC1\u4E66\u8BF7\u6C42\u751F\u6210\u8BC1\u4E66"}, //-gencert
{"Generates.CRL", "\u751F\u6210 CRL"}, //-gencrl
+ {"Generated.keyAlgName.secret.key",
+ "\u5DF2\u751F\u6210{0}\u5BC6\u94A5"}, //-genseckey
+ {"Generated.keysize.bit.keyAlgName.secret.key",
+ "\u5DF2\u751F\u6210 {0} \u4F4D{1}\u5BC6\u94A5"}, //-genseckey
{"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
"\u4ECE JDK 1.1.x \u6837\u5F0F\u7684\u8EAB\u4EFD\u6570\u636E\u5E93\u5BFC\u5165\u6761\u76EE"}, //-identitydb
{"Imports.a.certificate.or.a.certificate.chain",
"\u5BFC\u5165\u8BC1\u4E66\u6216\u8BC1\u4E66\u94FE"}, //-importcert
+ {"Imports.a.password",
+ "\u5BFC\u5165\u53E3\u4EE4"}, //-importpass
{"Imports.one.or.all.entries.from.another.keystore",
"\u4ECE\u5176\u4ED6\u5BC6\u94A5\u5E93\u5BFC\u5165\u4E00\u4E2A\u6216\u6240\u6709\u6761\u76EE"}, //-importkeystore
{"Clones.a.key.entry",
@@ -220,6 +226,8 @@
{"Must.specify.alias", "\u5FC5\u987B\u6307\u5B9A\u522B\u540D"},
{"Keystore.password.must.be.at.least.6.characters",
"\u5BC6\u94A5\u5E93\u53E3\u4EE4\u81F3\u5C11\u5FC5\u987B\u4E3A 6 \u4E2A\u5B57\u7B26"},
+ {"Enter.the.password.to.be.stored.",
+ "\u8F93\u5165\u8981\u5B58\u50A8\u7684\u53E3\u4EE4: "},
{"Enter.keystore.password.", "\u8F93\u5165\u5BC6\u94A5\u5E93\u53E3\u4EE4: "},
{"Enter.source.keystore.password.", "\u8F93\u5165\u6E90\u5BC6\u94A5\u5E93\u53E3\u4EE4: "},
{"Enter.destination.keystore.password.", "\u8F93\u5165\u76EE\u6807\u5BC6\u94A5\u5E93\u53E3\u4EE4: "},
@@ -328,6 +336,7 @@
{"New.prompt.", "\u65B0{0}: "},
{"Passwords.must.differ", "\u53E3\u4EE4\u4E0D\u80FD\u76F8\u540C"},
{"Re.enter.new.prompt.", "\u91CD\u65B0\u8F93\u5165\u65B0{0}: "},
+ {"Re.enter.passpword.", "\u518D\u6B21\u8F93\u5165\u53E3\u4EE4: "},
{"Re.enter.new.password.", "\u518D\u6B21\u8F93\u5165\u65B0\u53E3\u4EE4: "},
{"They.don.t.match.Try.again", "\u5B83\u4EEC\u4E0D\u5339\u914D\u3002\u8BF7\u91CD\u8BD5"},
{"Enter.prompt.alias.name.", "\u8F93\u5165{0}\u522B\u540D: "},
--- a/jdk/src/share/classes/sun/security/tools/keytool/Resources_zh_TW.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/security/tools/keytool/Resources_zh_TW.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,10 +65,16 @@
{"Generates.certificate.from.a.certificate.request",
"\u5F9E\u6191\u8B49\u8981\u6C42\u7522\u751F\u6191\u8B49"}, //-gencert
{"Generates.CRL", "\u7522\u751F CRL"}, //-gencrl
+ {"Generated.keyAlgName.secret.key",
+ "\u5DF2\u7522\u751F {0} \u79D8\u5BC6\u91D1\u9470"}, //-genseckey
+ {"Generated.keysize.bit.keyAlgName.secret.key",
+ "\u5DF2\u7522\u751F {0} \u4F4D\u5143 {1} \u79D8\u5BC6\u91D1\u9470"}, //-genseckey
{"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
"\u5F9E JDK 1.1.x-style \u8B58\u5225\u8CC7\u6599\u5EAB\u532F\u5165\u9805\u76EE"}, //-identitydb
{"Imports.a.certificate.or.a.certificate.chain",
"\u532F\u5165\u6191\u8B49\u6216\u6191\u8B49\u93C8"}, //-importcert
+ {"Imports.a.password",
+ "\u532F\u5165\u5BC6\u78BC"}, //-importpass
{"Imports.one.or.all.entries.from.another.keystore",
"\u5F9E\u5176\u4ED6\u91D1\u9470\u5132\u5B58\u5EAB\u532F\u5165\u4E00\u500B\u6216\u5168\u90E8\u9805\u76EE"}, //-importkeystore
{"Clones.a.key.entry",
@@ -220,6 +226,8 @@
{"Must.specify.alias", "\u5FC5\u9808\u6307\u5B9A\u5225\u540D"},
{"Keystore.password.must.be.at.least.6.characters",
"\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u5FC5\u9808\u81F3\u5C11\u70BA 6 \u500B\u5B57\u5143"},
+ {"Enter.the.password.to.be.stored.",
+ "\u8F38\u5165\u8981\u5132\u5B58\u7684\u5BC6\u78BC: "},
{"Enter.keystore.password.", "\u8F38\u5165\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC: "},
{"Enter.source.keystore.password.", "\u8ACB\u8F38\u5165\u4F86\u6E90\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC: "},
{"Enter.destination.keystore.password.", "\u8ACB\u8F38\u5165\u76EE\u7684\u5730\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC: "},
@@ -328,6 +336,7 @@
{"New.prompt.", "\u65B0 {0}: "},
{"Passwords.must.differ", "\u5FC5\u9808\u662F\u4E0D\u540C\u7684\u5BC6\u78BC"},
{"Re.enter.new.prompt.", "\u91CD\u65B0\u8F38\u5165\u65B0 {0}: "},
+ {"Re.enter.passpword.", "\u91CD\u65B0\u8F38\u5165\u5BC6\u78BC:"},
{"Re.enter.new.password.", "\u91CD\u65B0\u8F38\u5165\u65B0\u5BC6\u78BC: "},
{"They.don.t.match.Try.again", "\u5B83\u5011\u4E0D\u76F8\u7B26\u3002\u8ACB\u91CD\u8A66"},
{"Enter.prompt.alias.name.", "\u8F38\u5165 {0} \u5225\u540D\u540D\u7A31: "},
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/security/util/ConsoleCallbackHandler.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,247 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package sun.security.util;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.ConfirmationCallback;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.TextOutputCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+/**
+ * A {@code CallbackHandler} that prompts and reads from the command line
+ * for answers to authentication questions.
+ */
+public class ConsoleCallbackHandler implements CallbackHandler {
+
+ /**
+ * Creates a callback handler that prompts and reads from the
+ * command line for answers to authentication questions.
+ */
+ public ConsoleCallbackHandler() { }
+
+ /**
+ * Handles the specified set of callbacks.
+ *
+ * @param callbacks the callbacks to handle
+ * @throws IOException if an input or output error occurs.
+ * @throws UnsupportedCallbackException if the callback is not an
+ * instance of NameCallback or PasswordCallback
+ */
+ public void handle(Callback[] callbacks)
+ throws IOException, UnsupportedCallbackException
+ {
+ ConfirmationCallback confirmation = null;
+
+ for (int i = 0; i < callbacks.length; i++) {
+ if (callbacks[i] instanceof TextOutputCallback) {
+ TextOutputCallback tc = (TextOutputCallback) callbacks[i];
+
+ String text;
+ switch (tc.getMessageType()) {
+ case TextOutputCallback.INFORMATION:
+ text = "";
+ break;
+ case TextOutputCallback.WARNING:
+ text = "Warning: ";
+ break;
+ case TextOutputCallback.ERROR:
+ text = "Error: ";
+ break;
+ default:
+ throw new UnsupportedCallbackException(
+ callbacks[i], "Unrecognized message type");
+ }
+
+ String message = tc.getMessage();
+ if (message != null) {
+ text += message;
+ }
+ if (text != null) {
+ System.err.println(text);
+ }
+
+ } else if (callbacks[i] instanceof NameCallback) {
+ NameCallback nc = (NameCallback) callbacks[i];
+
+ if (nc.getDefaultName() == null) {
+ System.err.print(nc.getPrompt());
+ } else {
+ System.err.print(nc.getPrompt() +
+ " [" + nc.getDefaultName() + "] ");
+ }
+ System.err.flush();
+
+ String result = readLine();
+ if (result.equals("")) {
+ result = nc.getDefaultName();
+ }
+
+ nc.setName(result);
+
+ } else if (callbacks[i] instanceof PasswordCallback) {
+ PasswordCallback pc = (PasswordCallback) callbacks[i];
+
+ System.err.print(pc.getPrompt());
+ System.err.flush();
+
+ pc.setPassword(Password.readPassword(System.in, pc.isEchoOn()));
+
+ } else if (callbacks[i] instanceof ConfirmationCallback) {
+ confirmation = (ConfirmationCallback) callbacks[i];
+
+ } else {
+ throw new UnsupportedCallbackException(
+ callbacks[i], "Unrecognized Callback");
+ }
+ }
+
+ /* Do the confirmation callback last. */
+ if (confirmation != null) {
+ doConfirmation(confirmation);
+ }
+ }
+
+ /* Reads a line of input */
+ private String readLine() throws IOException {
+ String result = new BufferedReader
+ (new InputStreamReader(System.in)).readLine();
+ if (result == null) {
+ throw new IOException("Cannot read from System.in");
+ }
+ return result;
+ }
+
+ private void doConfirmation(ConfirmationCallback confirmation)
+ throws IOException, UnsupportedCallbackException
+ {
+ String prefix;
+ int messageType = confirmation.getMessageType();
+ switch (messageType) {
+ case ConfirmationCallback.WARNING:
+ prefix = "Warning: ";
+ break;
+ case ConfirmationCallback.ERROR:
+ prefix = "Error: ";
+ break;
+ case ConfirmationCallback.INFORMATION:
+ prefix = "";
+ break;
+ default:
+ throw new UnsupportedCallbackException(
+ confirmation, "Unrecognized message type: " + messageType);
+ }
+
+ class OptionInfo {
+ String name;
+ int value;
+ OptionInfo(String name, int value) {
+ this.name = name;
+ this.value = value;
+ }
+ }
+
+ OptionInfo[] options;
+ int optionType = confirmation.getOptionType();
+ switch (optionType) {
+ case ConfirmationCallback.YES_NO_OPTION:
+ options = new OptionInfo[] {
+ new OptionInfo("Yes", ConfirmationCallback.YES),
+ new OptionInfo("No", ConfirmationCallback.NO)
+ };
+ break;
+ case ConfirmationCallback.YES_NO_CANCEL_OPTION:
+ options = new OptionInfo[] {
+ new OptionInfo("Yes", ConfirmationCallback.YES),
+ new OptionInfo("No", ConfirmationCallback.NO),
+ new OptionInfo("Cancel", ConfirmationCallback.CANCEL)
+ };
+ break;
+ case ConfirmationCallback.OK_CANCEL_OPTION:
+ options = new OptionInfo[] {
+ new OptionInfo("OK", ConfirmationCallback.OK),
+ new OptionInfo("Cancel", ConfirmationCallback.CANCEL)
+ };
+ break;
+ case ConfirmationCallback.UNSPECIFIED_OPTION:
+ String[] optionStrings = confirmation.getOptions();
+ options = new OptionInfo[optionStrings.length];
+ for (int i = 0; i < options.length; i++) {
+ options[i] = new OptionInfo(optionStrings[i], i);
+ }
+ break;
+ default:
+ throw new UnsupportedCallbackException(
+ confirmation, "Unrecognized option type: " + optionType);
+ }
+
+ int defaultOption = confirmation.getDefaultOption();
+
+ String prompt = confirmation.getPrompt();
+ if (prompt == null) {
+ prompt = "";
+ }
+ prompt = prefix + prompt;
+ if (!prompt.equals("")) {
+ System.err.println(prompt);
+ }
+
+ for (int i = 0; i < options.length; i++) {
+ if (optionType == ConfirmationCallback.UNSPECIFIED_OPTION) {
+ // defaultOption is an index into the options array
+ System.err.println(
+ i + ". " + options[i].name +
+ (i == defaultOption ? " [default]" : ""));
+ } else {
+ // defaultOption is an option value
+ System.err.println(
+ i + ". " + options[i].name +
+ (options[i].value == defaultOption ? " [default]" : ""));
+ }
+ }
+ System.err.print("Enter a number: ");
+ System.err.flush();
+ int result;
+ try {
+ result = Integer.parseInt(readLine());
+ if (result < 0 || result > (options.length - 1)) {
+ result = defaultOption;
+ }
+ result = options[result].value;
+ } catch (NumberFormatException e) {
+ result = defaultOption;
+ }
+
+ confirmation.setSelectedIndex(result);
+ }
+}
--- a/jdk/src/share/classes/sun/tools/jar/resources/jar_es.properties Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/tools/jar/resources/jar_es.properties Thu Feb 20 16:27:08 2014 -0800
@@ -45,4 +45,4 @@
out.inflated=\ inflado: {0}
out.size=(entrada = {0}) (salida = {1})
-usage=Sintaxis: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] archivos...\nOpciones:\n -c crear nuevo archivo\n -t crear la tabla de contenido del archivo\n -x extraer el archive mencionado (o todos) del archivo\n -u actualizar archive existente\n -v generar salida detallada de los datos de salida est\u00E1ndar\n -f especificar nombre de archive de almacenamiento\n -m incluir informaci\u00F3n de manifiesto del archive de manifiesto especificado\n -n realizar normalizaci\u00F3n de Pack200 despu\u00E9s de crear un nuevo archivo\n -e especificar punto de entrada de la aplicaci\u00F3n para la aplicaci\u00F3n aut\u00F3noma \n que se incluye dentro de un archive jar ejecutable\n -0 s\u00F3lo almacenar; no utilizar compresi\u00F3n ZIP\n -M no crear un archive de manifiesto para las entradas\n -i generar informaci\u00F3n de \u00EDndice para los archives jar especificados\n -C cambiar al directorio especificado e incluir el archivo siguiente\nSi alg\u00FAn archivo es un directorio, se procesar\u00E1 de forma recurrente.\nEl nombre del archivo de manifiesto, el nombre del archivo de almacenamiento y el nombre del punto de entrada se\nespecifican en el mismo orden que los indicadores 'm', 'f' y 'e'.\n\nEjemplo 1: para archivar archivos de dos clases en un archivo llamado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEjemplo 2: utilice un archivo de manifiesto existente 'mymanifest' y archive todos los\n archivos del directorio foo/ en 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage=Sintaxis: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] archivos...\nOpciones:\n -c crear nuevo archivo\n -t crear la tabla de contenido del archivo\n -x extraer el archive mencionado (o todos) del archivo\n -u actualizar archive existente\n -v generar salida detallada de los datos de salida est\u00E1ndar\n -f especificar nombre de archive de almacenamiento\n -m incluir informaci\u00F3n de manifiesto del archive de manifiesto especificado\n -n realizar normalizaci\u00F3n de Pack200 despu\u00E9s de crear un nuevo archivo\n -e especificar punto de entrada de la aplicaci\u00F3n para la aplicaci\u00F3n aut\u00F3noma \n que se incluye dentro de un archive jar ejecutable\n -0 s\u00F3lo almacenar; no utilizar compresi\u00F3n ZIP\n -M no crear un archive de manifiesto para las entradas\n -i generar informaci\u00F3n de \u00EDndice para los archives jar especificados\n -C cambiar al directorio especificado e incluir el archivo siguiente\nSi alg\u00FAn archivo es un directorio, se procesar\u00E1 de forma recurrente.\nEl nombre del archivo de manifiesto, el nombre del archivo de almacenamiento y el nombre del punto de entrada se\nespecifican en el mismo orden que los indicadores 'm', 'f' y 'e'.\n\nEjemplo 1: para archivar archivos de dos clases en un archivo llamado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEjemplo 2: utilice un archivo de manifiesto existente 'mymanifest' y archive todos los\n archivos del directorio foo/ en 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
--- a/jdk/src/share/classes/sun/tools/jar/resources/jar_pt_BR.properties Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/tools/jar/resources/jar_pt_BR.properties Thu Feb 20 16:27:08 2014 -0800
@@ -45,4 +45,4 @@
out.inflated=\ inflado: {0}
out.size=(entrada = {0}) (sa\u00EDda= {1})
-usage=Uso: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] arquivos ...\nOp\u00E7\u00F5es:\n -c cria novo archive\n -t lista o sum\u00E1rio do archive\n -x extrai arquivos com o nome (ou todos) do arquivo compactado\n -u atualiza o archive existente\n -v gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o\n -f especifica o nome do archive\n -m inclui as informa\u00E7\u00F5es do manifesto do arquivo de manifesto especificado\n -n executa a normaliza\u00E7\u00E3o Pack200 ap\u00F3s a cria\u00E7\u00E3o de um novo archive\n -e especifica o ponto de entrada da aplica\u00E7\u00E3o para aplica\u00E7\u00E3o independente \n empacotada em um arquivo jar execut\u00E1vel\n -0 armazena somente; n\u00E3o usa compacta\u00E7\u00E3o ZIP\n -M n\u00E3o cria um arquivo de manifesto para as entradas\n -i gera informa\u00E7\u00F5es de \u00EDndice para os arquivos jar especificados\n -C altera para o diret\u00F3rio especificado e inclui o arquivo seguinte\nSe algum arquivo for um diret\u00F3rio, ent\u00E3o ser\u00E1 processado repetidamente.\nO nome do arquivo de manifesto, o nome do archive e o nome do ponto de entrada s\u00E3o\nespecificados na mesma ordem dos flags 'm', 'f' e 'e'.\n\nExemplo 1: para arquivar dois arquivos de classe em um archive chamado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExemplo 2: use um arquivo de manifesto existente 'mymanifest' e arquive todos os\n arquivos no diret\u00F3rio foo/ na 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage=Uso: jar {ctxui}[vfmn0Me] [jar-file] [manifest-file] [entry-point] [-C dir] arquivos ...\nOp\u00E7\u00F5es:\n -c cria novo arquivo compactado\n -t lista o sum\u00E1rio do arquivo compactado\n -x extrai arquivos com o nome (ou todos) do arquivo compactado\n -u atualiza o arquivo compactado existente\n -v gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o\n -f especifica o nome do arquivo do arquivo compactado\n -m inclui as informa\u00E7\u00F5es do manifesto do arquivo de manifesto especificado\n -n executa a normaliza\u00E7\u00E3o Pack200 ap\u00F3s a cria\u00E7\u00E3o de um novo arquivo compactado\n -e especifica o ponto de entrada da aplica\u00E7\u00E3o para aplica\u00E7\u00E3o stand-alone \n empacotada em um arquivo jar execut\u00E1vel\n -0 armazena somente; n\u00E3o usa compacta\u00E7\u00E3o ZIP\n -M n\u00E3o cria um arquivo de manifesto para as entradas\n -i gera informa\u00E7\u00F5es de \u00EDndice para os arquivos especificados\n -C passa para o diret\u00F3rio especificado e inclui o arquivo a seguir\nSe um arquivo tamb\u00E9m for um diret\u00F3rio, ele ser\u00E1 processado repetidamente.\nO nome do arquivo de manifesto, o nome do arquivo compactado e o nome do ponto de entrada s\u00E3o\nespecificados na mesma ordem dos flags 'm', 'f' e 'e'.\n\nExemplo 1: para arquivar dois arquivos de classe em um arquivo compactado denominado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExemplo 2: use um arquivo de manifesto existente 'mymanifest' e arquive todos os\n arquivos no diret\u00F3rio foo/ na 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
--- a/jdk/src/share/classes/sun/tools/jconsole/resources/messages_ja.properties Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/tools/jconsole/resources/messages_ja.properties Thu Feb 20 16:27:08 2014 -0800
@@ -279,4 +279,4 @@
KBYTES={0} KB
PLOT=\u30D7\u30ED\u30C3\u30C8
VISUALIZE=\u8996\u899A\u5316
-ZZ_USAGE_TEXT=\u4F7F\u7528\u65B9\u6CD5: {0} [ -interval=n ] [ -notile ] [ -pluginpath <path> ] [ -version ] [ connection ... ]\n\n -interval \u66F4\u65B0\u9593\u9694\u3092n\u79D2\u306B\u8A2D\u5B9A\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8\u306F4\u79D2)\n -notile \u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u6700\u521D\u306B\u4E26\u3079\u3066\u8868\u793A\u3057\u306A\u3044(2\u3064\u4EE5\u4E0A\u306E\u63A5\u7D9A\u306B\u3064\u3044\u3066)\n -pluginpath JConsole\u304C\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u53C2\u7167\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3059\u308B\u30D1\u30B9\u3092\u6307\u5B9A\u3059\u308B\n -version \u30D7\u30ED\u30B0\u30E9\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u5370\u5237\u3059\u308B\n\n connection = pid || host:port || JMX URL (service:jmx:<protocol>://...)\n pid \u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9\u306E\u30D7\u30ED\u30BB\u30B9ID\n host \u30EA\u30E2\u30FC\u30C8\u30FB\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306FIP\u30A2\u30C9\u30EC\u30B9\n port \u30EA\u30E2\u30FC\u30C8\u63A5\u7D9A\u7528\u306E\u30DD\u30FC\u30C8\u756A\u53F7\n\n -J JConsole\u304C\u5B9F\u884C\u4E2D\u306EJava\u4EEE\u60F3\u30DE\u30B7\u30F3\u3078\u306E\n \u5165\u529B\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B
+ZZ_USAGE_TEXT=\u4F7F\u7528\u65B9\u6CD5: {0} [ -interval=n ] [ -notile ] [ -pluginpath <path> ] [ -version ] [ connection ... ]\n\n -interval \u66F4\u65B0\u9593\u9694\u3092n\u79D2\u306B\u8A2D\u5B9A\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8\u306F4\u79D2)\n -notile \u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u6700\u521D\u306B\u4E26\u3079\u3066\u8868\u793A\u3057\u306A\u3044(2\u3064\u4EE5\u4E0A\u306E\u63A5\u7D9A\u306B\u3064\u3044\u3066)\n -pluginpath JConsole\u304C\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u53C2\u7167\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3059\u308B\u30D1\u30B9\u3092\u6307\u5B9A\u3059\u308B\n -version \u30D7\u30ED\u30B0\u30E9\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3059\u308B\n\n connection = pid || host:port || JMX URL (service:jmx:<protocol>://...)\n pid \u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9\u306E\u30D7\u30ED\u30BB\u30B9ID\n host \u30EA\u30E2\u30FC\u30C8\u30FB\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306FIP\u30A2\u30C9\u30EC\u30B9\n port \u30EA\u30E2\u30FC\u30C8\u63A5\u7D9A\u7528\u306E\u30DD\u30FC\u30C8\u756A\u53F7\n\n -J JConsole\u304C\u5B9F\u884C\u4E2D\u306EJava\u4EEE\u60F3\u30DE\u30B7\u30F3\u3078\u306E\n \u5165\u529B\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B
--- a/jdk/src/share/classes/sun/util/logging/resources/logging_zh_TW.properties Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/classes/sun/util/logging/resources/logging_zh_TW.properties Thu Feb 20 16:27:08 2014 -0800
@@ -27,7 +27,7 @@
# these are the same as the non-localized level name.
# The following ALL CAPS words should be translated.
-ALL=\u5168\u90E8
+ALL=\u6240\u6709
# The following ALL CAPS words should be translated.
SEVERE=\u56B4\u91CD
# The following ALL CAPS words should be translated.
--- a/jdk/src/share/instrument/InvocationAdapter.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/instrument/InvocationAdapter.c Thu Feb 20 16:27:08 2014 -0800
@@ -153,7 +153,6 @@
char * options;
jarAttribute* attributes;
char * premainClass;
- char * agentClass;
char * bootClassPath;
/*
--- a/jdk/src/share/instrument/JarFacade.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/instrument/JarFacade.c Thu Feb 20 16:27:08 2014 -0800
@@ -33,6 +33,7 @@
#endif /* _WIN32 */
#include <string.h>
#include <stdlib.h>
+#include <ctype.h>
#include "jni.h"
#include "manifest_info.h"
--- a/jdk/src/share/native/java/lang/ClassLoader.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/native/java/lang/ClassLoader.c Thu Feb 20 16:27:08 2014 -0800
@@ -325,7 +325,7 @@
void *entryName = NULL;
char *jniFunctionName;
int i;
- int len;
+ size_t len;
// Check for JNI_On(Un)Load<_libname> function
if (isLoad) {
@@ -501,9 +501,9 @@
{
const char *cname;
char *libName;
- int prefixLen = (int) strlen(JNI_LIB_PREFIX);
- int suffixLen = (int) strlen(JNI_LIB_SUFFIX);
- int len;
+ size_t prefixLen = strlen(JNI_LIB_PREFIX);
+ size_t suffixLen = strlen(JNI_LIB_SUFFIX);
+ size_t len;
jstring lib;
void *ret;
const char *onLoadSymbols[] = JNI_ONLOAD_SYMBOLS;
--- a/jdk/src/share/native/java/lang/Throwable.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/native/java/lang/Throwable.c Thu Feb 20 16:27:08 2014 -0800
@@ -44,7 +44,7 @@
* `this' so you can write 'throw e.fillInStackTrace();'
*/
JNIEXPORT jobject JNICALL
-Java_java_lang_Throwable_fillInStackTrace(JNIEnv *env, jobject throwable, int dummy)
+Java_java_lang_Throwable_fillInStackTrace(JNIEnv *env, jobject throwable, jint dummy)
{
JVM_FillInStackTrace(env, throwable);
return throwable;
--- a/jdk/src/share/native/sun/nio/ch/genSocketOptionRegistry.c Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#include <stdio.h>
-#ifdef _WIN32
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#else
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netinet/tcp.h>
-#endif
-
-/**
- * Generates sun.nio.ch.SocketOptionRegistry, a class that maps Java-level
- * socket options to the platform specific level and option.
- */
-
-static void out(char* s) {
- printf("%s\n", s);
-}
-
-static void emit(const char *name, char * family, int level, int optname) {
- printf(" map.put(new RegistryKey(%s, %s),", name, family);
- printf(" new OptionKey(%d, %d));\n", level, optname);
-}
-
-static void emit_unspec(const char *name, int level, int optname) {
- emit(name, "Net.UNSPEC", level, optname);
-}
-
-static void emit_inet(const char *name, int level, int optname) {
- emit(name, "StandardProtocolFamily.INET", level, optname);
-}
-
-static void emit_inet6(const char *name, int level, int optname) {
- emit(name, "StandardProtocolFamily.INET6", level, optname);
-}
-
-int main(int argc, const char* argv[]) {
- out("// AUTOMATICALLY GENERATED FILE - DO NOT EDIT ");
- out("package sun.nio.ch; ");
- out("import java.net.SocketOption; ");
- out("import java.net.StandardSocketOptions; ");
- out("import java.net.ProtocolFamily; ");
- out("import java.net.StandardProtocolFamily; ");
- out("import java.util.Map; ");
- out("import java.util.HashMap; ");
- out("class SocketOptionRegistry { ");
- out(" private SocketOptionRegistry() { } ");
- out(" private static class RegistryKey { ");
- out(" private final SocketOption<?> name; ");
- out(" private final ProtocolFamily family; ");
- out(" RegistryKey(SocketOption<?> name, ProtocolFamily family) { ");
- out(" this.name = name; ");
- out(" this.family = family; ");
- out(" } ");
- out(" public int hashCode() { ");
- out(" return name.hashCode() + family.hashCode(); ");
- out(" } ");
- out(" public boolean equals(Object ob) { ");
- out(" if (ob == null) return false; ");
- out(" if (!(ob instanceof RegistryKey)) return false; ");
- out(" RegistryKey other = (RegistryKey)ob; ");
- out(" if (this.name != other.name) return false; ");
- out(" if (this.family != other.family) return false; ");
- out(" return true; ");
- out(" } ");
- out(" } ");
- out(" private static class LazyInitialization { ");
- out(" static final Map<RegistryKey,OptionKey> options = options(); ");
- out(" private static Map<RegistryKey,OptionKey> options() { ");
- out(" Map<RegistryKey,OptionKey> map = ");
- out(" new HashMap<RegistryKey,OptionKey>(); ");
-
- emit_unspec("StandardSocketOptions.SO_BROADCAST", SOL_SOCKET, SO_BROADCAST);
- emit_unspec("StandardSocketOptions.SO_KEEPALIVE", SOL_SOCKET, SO_KEEPALIVE);
- emit_unspec("StandardSocketOptions.SO_LINGER", SOL_SOCKET, SO_LINGER);
- emit_unspec("StandardSocketOptions.SO_SNDBUF", SOL_SOCKET, SO_SNDBUF);
- emit_unspec("StandardSocketOptions.SO_RCVBUF", SOL_SOCKET, SO_RCVBUF);
- emit_unspec("StandardSocketOptions.SO_REUSEADDR", SOL_SOCKET, SO_REUSEADDR);
- emit_unspec("StandardSocketOptions.TCP_NODELAY", IPPROTO_TCP, TCP_NODELAY);
-
- emit_inet("StandardSocketOptions.IP_TOS", IPPROTO_IP, IP_TOS);
- emit_inet("StandardSocketOptions.IP_MULTICAST_IF", IPPROTO_IP, IP_MULTICAST_IF);
- emit_inet("StandardSocketOptions.IP_MULTICAST_TTL", IPPROTO_IP, IP_MULTICAST_TTL);
- emit_inet("StandardSocketOptions.IP_MULTICAST_LOOP", IPPROTO_IP, IP_MULTICAST_LOOP);
-
-#ifdef AF_INET6
- emit_inet6("StandardSocketOptions.IP_MULTICAST_IF", IPPROTO_IPV6, IPV6_MULTICAST_IF);
- emit_inet6("StandardSocketOptions.IP_MULTICAST_TTL", IPPROTO_IPV6, IPV6_MULTICAST_HOPS);
- emit_inet6("StandardSocketOptions.IP_MULTICAST_LOOP", IPPROTO_IPV6, IPV6_MULTICAST_LOOP);
-#endif
-
- emit_unspec("ExtendedSocketOption.SO_OOBINLINE", SOL_SOCKET, SO_OOBINLINE);
-
- out(" return map; ");
- out(" } ");
- out(" } ");
- out(" public static OptionKey findOption(SocketOption<?> name, ProtocolFamily family) { ");
- out(" RegistryKey key = new RegistryKey(name, family); ");
- out(" return LazyInitialization.options.get(key); ");
- out(" } ");
- out("} ");
-
- return 0;
-}
--- a/jdk/src/share/native/sun/security/krb5/nativeccache.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/native/sun/security/krb5/nativeccache.c Thu Feb 20 16:27:08 2014 -0800
@@ -141,7 +141,7 @@
#endif /* DEBUG */
ticketConstructor = (*env)->GetMethodID(env, ticketClass, "<init>", "(Lsun/security/util/DerValue;)V");
- if (derValueConstructor == 0) {
+ if (ticketConstructor == 0) {
printf("Couldn't find Ticket constructor\n");
return JNI_ERR;
}
@@ -272,6 +272,7 @@
}
return 0;
}
+
/*
* Class: sun_security_krb5_Credentials
* Method: acquireDefaultNativeCreds
@@ -309,7 +310,7 @@
netypes = (*env)->GetArrayLength(env, jetypes);
etypes = (jint *) (*env)->GetIntArrayElements(env, jetypes, NULL);
- if (!err) {
+ if (etypes != NULL && !err) {
while ((err = krb5_cc_next_cred (kcontext, ccache, &cursor, &creds)) == 0) {
char *serverName = NULL;
@@ -319,8 +320,16 @@
}
if (!err) {
- if (strncmp (serverName, "krbtgt", sizeof("krbtgt")-1) == 0 &&
- isIn(creds.keyblock.enctype, netypes, etypes)) {
+ char* slash = strchr(serverName, '/');
+ char* at = strchr(serverName, '@');
+ // Make sure the server's name is krbtgt/REALM@REALM, the etype
+ // is supported, and the ticket has not expired
+ if (slash && at &&
+ strncmp (serverName, "krbtgt", slash-serverName) == 0 &&
+ // the ablove line shows at must be after slash
+ strncmp (slash+1, at+1, at-slash-1) == 0 &&
+ isIn (creds.keyblock.enctype, netypes, etypes) &&
+ creds.times.endtime > time(0)) {
jobject ticket, clientPrincipal, targetPrincipal, encryptionKey;
jobject ticketFlags, startTime, endTime;
jobject authTime, renewTillTime, hostAddresses;
@@ -399,8 +408,12 @@
if (endTime) (*env)->DeleteLocalRef(env, endTime);
if (renewTillTime) (*env)->DeleteLocalRef(env, renewTillTime);
if (hostAddresses) (*env)->DeleteLocalRef(env, hostAddresses);
+
+ // Stop if there is an exception or we already found the initial TGT
+ if ((*env)->ExceptionCheck(env) || krbCreds) {
+ break;
+ }
}
-
}
if (serverName != NULL) { krb5_free_unparsed_name (kcontext, serverName); }
@@ -410,7 +423,6 @@
if (err == KRB5_CC_END) { err = 0; }
printiferr (err, "while retrieving a ticket");
-
}
if (!err) {
@@ -445,25 +457,25 @@
jbyteArray ary;
ary = (*env)->NewByteArray(env, encodedTicket->length);
- if ((*env)->ExceptionOccurred(env)) {
+ if ((*env)->ExceptionCheck(env)) {
return (jobject) NULL;
}
(*env)->SetByteArrayRegion(env, ary, (jsize) 0, encodedTicket->length, (jbyte *)encodedTicket->data);
- if ((*env)->ExceptionOccurred(env)) {
+ if ((*env)->ExceptionCheck(env)) {
(*env)->DeleteLocalRef(env, ary);
return (jobject) NULL;
}
derValue = (*env)->NewObject(env, derValueClass, derValueConstructor, ary);
- if ((*env)->ExceptionOccurred(env)) {
+ if ((*env)->ExceptionCheck(env)) {
(*env)->DeleteLocalRef(env, ary);
return (jobject) NULL;
}
(*env)->DeleteLocalRef(env, ary);
ticket = (*env)->NewObject(env, ticketClass, ticketConstructor, derValue);
- if ((*env)->ExceptionOccurred(env)) {
+ if ((*env)->ExceptionCheck(env)) {
(*env)->DeleteLocalRef(env, derValue);
return (jobject) NULL;
}
@@ -480,6 +492,10 @@
if (!err) {
// Make a PrincipalName from the full string and the type. Let the PrincipalName class parse it out.
jstring principalStringObj = (*env)->NewStringUTF(env, principalString);
+ if (principalStringObj == NULL) {
+ if (principalString != NULL) { krb5_free_unparsed_name (kcontext, principalString); }
+ return (jobject) NULL;
+ }
principal = (*env)->NewObject(env, principalNameClass, principalNameConstructor, principalStringObj, principalName->type);
if (principalString != NULL) { krb5_free_unparsed_name (kcontext, principalString); }
(*env)->DeleteLocalRef(env, principalStringObj);
@@ -494,8 +510,13 @@
jobject encryptionKey = NULL;
ary = (*env)->NewByteArray(env,cryptoKey->length);
+
+ if (ary == NULL) {
+ return (jobject) NULL;
+ }
+
(*env)->SetByteArrayRegion(env, ary, (jsize) 0, cryptoKey->length, (jbyte *)cryptoKey->contents);
- if (!(*env)->ExceptionOccurred(env)) {
+ if (!(*env)->ExceptionCheck(env)) {
encryptionKey = (*env)->NewObject(env, encryptionKeyClass, encryptionKeyConstructor, cryptoKey->enctype, ary);
}
@@ -514,9 +535,14 @@
unsigned long nlflags = htonl(flags);
ary = (*env)->NewByteArray(env, sizeof(flags));
+
+ if (ary == NULL) {
+ return (jobject) NULL;
+ }
+
(*env)->SetByteArrayRegion(env, ary, (jsize) 0, sizeof(flags), (jbyte *)&nlflags);
- if (!(*env)->ExceptionOccurred(env)) {
+ if (!(*env)->ExceptionCheck(env)) {
ticketFlags = (*env)->NewObject(env, ticketFlagsClass, ticketFlagsConstructor, sizeof(flags)*8, ary);
}
@@ -550,6 +576,10 @@
jobject address_list = (*env)->NewObjectArray(env, addressCount, hostAddressClass, NULL);
+ if (address_list == NULL) {
+ return (jobject) NULL;
+ }
+
// Create a new HostAddress object for each address block.
// First, reset the iterator.
p = addresses;
@@ -567,9 +597,16 @@
(*env)->DeleteLocalRef(env, ary);
+ if (address == NULL) {
+ return (jobject) NULL;
+ }
// Add the HostAddress to the arrray.
(*env)->SetObjectArrayElement(env, address_list, index, address);
+ if ((*env)->ExceptionCheck(env)) {
+ return (jobject) NULL;
+ }
+
index++;
p++;
}
--- a/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h Thu Feb 20 16:27:08 2014 -0800
@@ -55,6 +55,9 @@
* @author Martin Schlaeffer <schlaeff@sbox.tugraz.at>
*/
+#ifndef _PKCS11WRAPPER_H
+#define _PKCS11WRAPPER_H 1
+
/* disable asserts in product mode */
#ifndef DEBUG
#ifndef NDEBUG
@@ -461,3 +464,5 @@
#define free(c) (p11free((c), THIS_FILE, __LINE__))
#endif
+
+#endif /* _PKCS11WRAPPER_H */
--- a/jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1366 +0,0 @@
-/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-import java.util.*;
-import java.io.*;
-import java.nio.charset.*;
-import java.text.MessageFormat;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-public class WrapperGenerator {
- /* XLibParser converts Xlib.h to a Java Object that encapsulates the
- * X11 API and data structures */
- // Charset and decoder for ISO-8859-15
- private final static Logger log = Logger.getLogger("WrapperGenerator");
- boolean generateLog = true;
- boolean wide;
- private static Charset charset = Charset.forName("ISO-8859-15");
-
- String package_name = "sun.awt.X11";
- String package_path = "sun/awt/X11";
- String sizerFileName = "sizer.c";
- String defaultBaseClass = "XWrapperBase";
-
- String compile_options = "-lX11";
- static Hashtable symbolTable = new Hashtable();
- static Hashtable sizeTable32bit = new Hashtable();
- static Hashtable sizeTable64bit = new Hashtable();
- static Hashtable knownSizes32 = new Hashtable();
- static Hashtable knownSizes64 = new Hashtable();
- static {
-/*
- knownSizes64.put("", Integer.valueOf());
- knownSizes32.put("", Integer.valueOf());
-*/
- knownSizes64.put("XComposeStatus", Integer.valueOf(16));
- knownSizes64.put("XTimeCoord", Integer.valueOf(16));
- knownSizes64.put("XExtData", Integer.valueOf(32));
- knownSizes64.put("XWindowChanges", Integer.valueOf(40));
- knownSizes64.put("XOMCharSetList", Integer.valueOf(16));
- knownSizes64.put("XModifierKeymap", Integer.valueOf(16));
- knownSizes32.put("XIMValuesList", Integer.valueOf(8));
- knownSizes32.put("XGCValues", Integer.valueOf(92));
-// knownSizes32.put("XIMStringConversionCallbackStruct", Integer.valueOf(16));
- }
-
- private static abstract class BaseType {
-
- String real_type;
- String name;
-
-
- public String getName() {
- return name;
- }
- public String getRealType() {
- return real_type;
- }
-
- public String toString() {
- return name;
- }
- }
-
- private static class AtomicType extends BaseType {
-
- private boolean alias;
- private String aliasName;
-
- static final int TYPE_INT=0;
- static final int TYPE_CHAR=1;
- static final int TYPE_LONG=2;
- static final int TYPE_LONG_LONG=3;
- static final int TYPE_DOUBLE=4;
- static final int TYPE_FLOAT=5;
- static final int TYPE_PTR=6;
- static final int TYPE_SHORT=7;
- static final int TYPE_BOOL = 8;
- static final int TYPE_STRUCT = 9;
- static final int TYPE_ARRAY = 10;
- static final int TYPE_BYTE=11;
- static final int TYPE_ATOM = 12;
- static final int TYPE_ULONG = 13;
- static int getTypeForString(String str) {
- int type=-1;
- if (str.equals("int"))
- type = AtomicType.TYPE_INT;
- else if (str.equals("long"))
- type = AtomicType.TYPE_LONG;
- else if (str.equals("byte"))
- type = AtomicType.TYPE_BYTE;
- else if (str.equals("char"))
- type = AtomicType.TYPE_CHAR;
- else if (str.equals("long long"))
- type = AtomicType.TYPE_LONG_LONG;
- else if (str.equals("double"))
- type = AtomicType.TYPE_DOUBLE;
- else if (str.equals("float"))
- type = AtomicType.TYPE_FLOAT;
- else if (str.equals("pointer"))
- type = AtomicType.TYPE_PTR;
- else if (str.equals("short"))
- type = AtomicType.TYPE_SHORT;
- else if (str.equals("Bool"))
- type = AtomicType.TYPE_BOOL;
- else if (str.equals("struct"))
- type = AtomicType.TYPE_STRUCT;
- else if (str.equals("Atom"))
- type = AtomicType.TYPE_ATOM;
- else if (str.equals("array"))
- type = TYPE_ARRAY;
- else if (str.equals("ulong"))
- type = TYPE_ULONG;
- else throw new IllegalArgumentException("Uknown type string: " + str);
-
- return type;
- }
- String getJavaType() {
- if (referencedType != null) {
- if (referencedType instanceof AtomicType) {
- return ((AtomicType)referencedType).getJavaType();
- } else {
- return referencedType.getName();
- }
- } else {
- return getJavaTypeForType(type);
- }
- }
- static String getJavaTypeForType(int type) {
- switch (type) {
- case TYPE_INT:
- return "int";
- case TYPE_CHAR:
- return "char";
- case TYPE_BYTE:
- return "byte";
- case TYPE_LONG:
- case TYPE_LONG_LONG:
- case TYPE_PTR:
- case TYPE_ULONG:
- return "long";
- case TYPE_DOUBLE:
- return "double";
- case TYPE_FLOAT:
- return "float";
- case TYPE_SHORT:
- return "short";
- case TYPE_BOOL:
- return "boolean";
- case TYPE_ATOM:
- return "long";
- default:
- throw new IllegalArgumentException("Unknown type: " + type);
- }
- }
- String getItemSize() {
- if (referencedType != null) {
- if (referencedType instanceof StructType) {
- return ((StructType)referencedType).getSize();
- } else {
- return ((AtomicType)referencedType).getItemSize();
- }
- } else {
- int i32 = getNativeSizeForAccess(getJavaAccess(false));
- int i64 = getNativeSizeForAccess(getJavaAccess(true));
- if (i32 != i64) {
- return "Native.get" + getNativeAccess() + "Size()";
- } else {
- return Integer.toString(i32);
- }
- }
- }
-
- String getJavaResult(String offset, String base) {
- String res = null;
- switch (type) {
- case TYPE_STRUCT:
- res = "pData + " + offset;
- break;
- case TYPE_PTR:
- if (referencedType == null || referencedType instanceof StructType) {
- res = base + "+" + offset;
- } else if (referencedType instanceof AtomicType) {
- res = MessageFormat.format("Native.get{0}({1})",
- new Object[] {getNativeAccessForType(((AtomicType)referencedType).type),
- base + "+" + offset});
- }
- break;
- case TYPE_ARRAY:
- if (referencedType instanceof StructType) {
- res = "pData + " + offset;
- } else if (referencedType instanceof AtomicType) {
- res = MessageFormat.format("Native.get{0}(pData + {1})",
- new Object[] {getNativeAccessForType(((AtomicType)referencedType).type),
- offset});
- }
- break;
- default:
- res = MessageFormat.format("(Native.get{0}(pData+{1}))",
- new Object[] {getNativeAccess(), offset});
- }
- return getJavaResultConversion(res, base);
- }
- String getJavaResultConversion(String value, String base) {
- if (referencedType != null) {
- if (referencedType instanceof StructType) {
- if (type == TYPE_PTR) {
- return MessageFormat.format("({2} != 0)?(new {0}({1})):(null)", new Object[] {referencedType.getName(),value, base});
- } else {
- return MessageFormat.format("new {0}({1})", new Object[] {referencedType.getName(),value});
- }
- } else {
- return value;
- }
- } else {
- return getJavaResultConversionForType(type, value);
- }
- }
- static String getJavaResultConversionForType(int type, String value) {
- return value;
- }
- String getNativeAccess() {
- return getNativeAccessForType(type);
- }
- String getJavaAccess(boolean wide) {
- return getJavaAccessForType(type, wide);
- }
- static String getJavaAccessForType(int type, boolean wide) {
- switch (type) {
- case TYPE_INT:
- return "Int";
- case TYPE_CHAR:
- return "Char";
- case TYPE_BYTE:
- return "Byte";
- case TYPE_LONG:
- case TYPE_PTR:
- case TYPE_ARRAY:
- case TYPE_STRUCT:
- case TYPE_ATOM:
- return (wide?"Long":"Int");
- case TYPE_LONG_LONG:
- return "Long";
- case TYPE_ULONG:
- return (wide?"ULong":"UInt");
- case TYPE_DOUBLE:
- return "Double";
- case TYPE_FLOAT:
- return "Float";
- case TYPE_SHORT:
- return "Short";
- case TYPE_BOOL:
- return "Int";
- default:
- throw new IllegalArgumentException("Unknown type: " + type);
- }
- }
- static String getNativeAccessForType(int type) {
- switch (type) {
- case TYPE_INT:
- return "Int";
- case TYPE_CHAR:
- return "Char";
- case TYPE_BYTE:
- return "Byte";
- case TYPE_LONG:
- case TYPE_PTR:
- case TYPE_ARRAY:
- case TYPE_STRUCT:
- return "Long";
- case TYPE_LONG_LONG:
- return "Long";
- case TYPE_ULONG:
- return "ULong";
- case TYPE_DOUBLE:
- return "Double";
- case TYPE_FLOAT:
- return "Float";
- case TYPE_SHORT:
- return "Short";
- case TYPE_BOOL:
- return "Bool";
- case TYPE_ATOM:
- return "Long";
- default:
- throw new IllegalArgumentException("Unknown type: " + type);
- }
- }
-
- static int getNativeSizeForAccess(String access) {
- if (access.equals("Int")) return 4;
- else if (access.equals("Byte")) return 1;
- else if (access.equals("Long")) return 8;
- else if (access.equals("Double")) return 8;
- else if (access.equals("Float")) return 4;
- else if (access.equals("Char")) return 2;
- else if (access.equals("Short")) return 2;
- else if (access.equals("ULong")) return 8;
- else if (access.equals("UInt")) return 4;
- else throw new IllegalArgumentException("Unknow access type: " + access);
- }
-
- String getJavaConversion(String offset, String value) {
- if (referencedType != null) {
- if (referencedType instanceof StructType) {
- return getJavaConversionForType(TYPE_PTR, offset, value + ".pData");
- } else {
- if (type == TYPE_ARRAY) {
- return getJavaConversionForType(((AtomicType)referencedType).type, offset, value);
- } else { // TYPE_PTR
- return getJavaConversionForType(TYPE_PTR, offset, value);
- }
- }
- } else {
- return getJavaConversionForType(type, offset, value);
- }
- }
- static String getJavaConversionForType(int type, String offset, String value) {
- return MessageFormat.format("Native.put{0}({2}, {1})", new Object[] {getNativeAccessForType(type), value, offset});
- }
-
-
- int type;
- int offset;
- int direction;
- BaseType referencedType;
- int arrayLength = -1;
- boolean autoFree = false;
- public AtomicType(int _type,String _name, String _real_type) {
- name = _name.replaceAll("[* \t]","");
- if ((name.indexOf("[") != -1) || (name.indexOf("]") != -1))
- {
- name = name.replaceAll("\\[.*\\]","");
- }
- type = _type;
- real_type = _real_type;
- if (real_type == null)
- {
- System.out.println(" real type is null");
-
- }
- }
- public boolean isIn() {
- return direction == 0;
- }
- public boolean isOut() {
- return direction == 1;
- }
- public boolean isInOut() {
- return direction == 2;
- }
- public boolean isAutoFree() {
- return autoFree;
- }
- public void setAttributes(String[] attributes) {
- String mod = attributes[3];
- if ("in".equals(mod)) {
- direction = 0;
- } else if ("out".equals(mod)) {
- direction = 1;
- if (attributes.length > 4 && "free".equals(attributes[4])) {
- autoFree = true;
- }
- } else if ("inout".equals(mod)) {
- direction = 2;
- } else if ("alias".equals(mod)) {
- alias = true;
- aliasName = attributes[4];
- } else if (type == TYPE_ARRAY || type == TYPE_PTR || type == TYPE_STRUCT) {
- referencedType = (BaseType)symbolTable.get(mod);
- if (referencedType == null) {
- log.warning("Can't find type for name " + mod);
- }
- if (attributes.length > 4) { // array length
- try {
- arrayLength = Integer.parseInt(attributes[4]);
- } catch (Exception e) {
- }
- }
- }
- }
- public BaseType getReferencedType() {
- return referencedType;
- }
- public int getArrayLength() {
- return arrayLength;
- }
- public void setOffset(int o)
- {
- offset = o;
- }
- public int getType() {
- return type;
- }
- public String getTypeUpperCase() {
- switch (type) {
- case TYPE_INT:
- return "Int";
- case TYPE_CHAR:
- return "Char";
- case TYPE_BYTE:
- return "Byte";
- case TYPE_LONG:
- case TYPE_LONG_LONG:
- case TYPE_PTR:
- return "Long";
- case TYPE_DOUBLE:
- return "Double";
- case TYPE_FLOAT:
- return "Float";
- case TYPE_SHORT:
- return "Short";
- case TYPE_BOOL:
- return "Int";
- case TYPE_ATOM:
- return "Long";
- case TYPE_ULONG:
- return "ULong";
- default: throw new IllegalArgumentException("Uknown type");
- }
- }
- public int getOffset()
- {
- return offset;
- }
- public boolean isAlias() {
- return alias;
- }
- public String getAliasName() {
- return aliasName;
- }
- }
-
- private static class StructType extends BaseType {
-
- Vector members;
- String description;
- boolean packed;
- int size;
- String baseClass, interfaces;
- boolean isInterface;
- String javaClassName;
-
- /**
- * Construct new structured type.
- * Description is used for name and type definition and has the following format:
- * structName [ '[' base classe ']' ] [ '{' interfaces '}' ] [ '|' javaClassName ]
- */
- public StructType(String _desc)
- {
- members = new Vector();
- parseDescription(_desc);
- }
- public int getNumFields()
- {
- return members.size();
- }
- public void setName(String _name)
- {
- _name = _name.replaceAll("[* \t]","");
- parseDescription(_name);
- }
-
- public void setSize(int i)
- {
- size = i;
- }
-
- public String getDescription()
- {
- return description;
- }
-
- public Enumeration getMembers()
- {
- return members.elements();
- }
-
- public void addMember(BaseType tp)
- {
- members.add(tp);
- }
- public String getBaseClass() {
- return baseClass;
- }
- public String getInterfaces() {
- return interfaces;
- }
- public boolean getIsInterface() {
- return isInterface;
- }
- public String getJavaClassName() {
- return javaClassName;
- }
- void parseDescription(String _desc) {
- if (_desc.indexOf('[') != -1) { // Has base class
- baseClass = _desc.substring(_desc.indexOf('[')+1, _desc.indexOf(']'));
- _desc = _desc.substring(0, _desc.indexOf('[')) + _desc.substring(_desc.indexOf(']')+1);
- }
- if (_desc.indexOf('{') != -1) { // Has base class
- interfaces = _desc.substring(_desc.indexOf('{')+1, _desc.indexOf('}'));
- _desc = _desc.substring(0, _desc.indexOf('{')) + _desc.substring(_desc.indexOf('}')+1);
- }
- if (_desc.startsWith("-")) { // Interface
- isInterface = true;
- _desc = _desc.substring(1, _desc.length());
- }
- if (_desc.indexOf("|") != -1) {
- javaClassName = _desc.substring(_desc.indexOf('|')+1, _desc.length());
- _desc = _desc.substring(0, _desc.indexOf('|'));
- }
- name = _desc;
- if (javaClassName == null) {
- javaClassName = name;
- }
- description = _desc;
-// System.out.println("Struct " + name + " extends " + baseClass + " implements " + interfaces);
- }
-
- /**
- * Returns String containing Java code calculating size of the structure depending on the data model
- */
- public String getSize() {
- String s32 = (String) WrapperGenerator.sizeTable32bit.get(getName());
- String s64 = (String) WrapperGenerator.sizeTable64bit.get(getName());
- if (s32 == null || s64 == null) {
- return (s32 == null)?(s64):(s32);
- }
- if (s32.equals(s64)) {
- return s32;
- } else {
- return MessageFormat.format("((XlibWrapper.dataModel == 32)?({0}):({1}))", new Object[] {s32, s64});
- }
- }
- public String getOffset(AtomicType atp) {
- String key = getName()+"."+(atp.isAlias() ? atp.getAliasName() : atp.getName());
- String s64 = (String) WrapperGenerator.sizeTable64bit.get(key);
- String s32 = (String) WrapperGenerator.sizeTable32bit.get(key);
- if (s32 == null || s64 == null) {
- return (s32 == null)?(s64):(s32);
- }
- if (s32.equals(s64)) {
- return s32;
- } else {
- return MessageFormat.format("((XlibWrapper.dataModel == 32)?({0}):({1}))", new Object[]{s32, s64});
- }
- }
- }
-
- private static class FunctionType extends BaseType {
-
- Vector args;
- String description;
- boolean packed;
- String returnType;
-
- int alignment;
-
- public FunctionType(String _desc)
- {
- args = new Vector();
- description = _desc;
- setName(_desc);
- }
- boolean isVoid() {
- return (returnType == null);
- }
- String getReturnType() {
- if (returnType == null) {
- return "void";
- } else {
- return returnType;
- }
- }
-
- public int getNumArgs()
- {
- return args.size();
- }
- public void setName(String _name)
- {
- if (_name.startsWith("!")) {
- _name = _name.substring(1, _name.length());
- }
- if (_name.indexOf("|") != -1) {
- returnType = _name.substring(_name.indexOf("|")+1, _name.length());
- _name = _name.substring(0, _name.indexOf("|"));
- }
- name = _name.replaceAll("[* \t]","");
- }
-
- public String getDescription()
- {
- return description;
- }
-
- public Collection getArguments()
- {
- return args;
- }
- public void addArgument(BaseType tp)
- {
- args.add(tp);
- }
- }
-
- public String makeComment(String str)
- {
- StringTokenizer st = new StringTokenizer(str,"\r\n");
- String ret="";
-
- while (st.hasMoreTokens())
- {
- ret = ret + "//" + st.nextToken() + "\n";
- }
-
- return ret;
- }
-
- public String getJavaTypeForSize(int size) {
- switch(size) {
- case 1: return "byte";
- case 2: return "short";
- case 4: return "int";
- case 8: return "long";
- default: throw new RuntimeException("Unsupported size: " + size);
- }
- }
- public String getOffsets(StructType stp,AtomicType atp, boolean wide)
- {
- String key = stp.getName()+"."+atp.getName();
- return wide == true ? (String) sizeTable64bit.get(key) : (String) sizeTable32bit.get(key);
- }
-
- public String getStructSize(StructType stp, boolean wide)
- {
- return wide == true ? (String) sizeTable64bit.get(stp.getName()) : (String) sizeTable32bit.get(stp.getName());
- }
-
- public int getLongSize(boolean wide)
- {
- return Integer.parseInt(wide == true ? (String)sizeTable64bit.get("long") : (String)sizeTable32bit.get("long"));
- }
-
- public int getPtrSize(boolean wide)
- {
- return Integer.parseInt(wide == true ? (String)sizeTable64bit.get("ptr") : (String)sizeTable32bit.get("ptr"));
- }
- public int getBoolSize(boolean wide) {
- return getOrdinalSize("Bool", wide);
- }
- public int getOrdinalSize(String ordinal, boolean wide) {
- return Integer.parseInt(wide == true ? (String)sizeTable64bit.get(ordinal) : (String)sizeTable32bit.get(ordinal));
- }
-
- public void writeToString(StructType stp, PrintWriter pw) {
- int type;
- pw.println("\n\n\tString getName() {\n\t\treturn \"" + stp.getName()+ "\"; \n\t}");
- pw.println("\n\n\tString getFieldsAsString() {\n\t\tStringBuilder ret = new StringBuilder(" + stp.getNumFields() * 40 + ");\n");
-
- for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
- AtomicType tp = (AtomicType) e.nextElement();
-
- type = tp.getType();
- String name = tp.getName().replace('.', '_');
- if ((name != null) && (name.length() > 0))
- {
- if (type == AtomicType.TYPE_ATOM) {
- pw.println("\t\tret.append(\"" + name + " = \" ).append( XAtom.get(get_" + name + "()) ).append(\", \");");
- } else if (name.equals("type")) {
- pw.println("\t\tret.append(\"type = \").append( XlibWrapper.eventToString[get_type()] ).append(\", \");");
- } else if (name.equals("window")){
- pw.println("\t\tret.append(\"window = \" ).append( getWindow(get_window()) ).append(\", \");");
- } else if (type == AtomicType.TYPE_ARRAY) {
- pw.print("\t\tret.append(\"{\")");
- for (int i = 0; i < tp.getArrayLength(); i++) {
- pw.print("\n\t\t.append( get_" + name + "(" + i + ") ).append(\" \")");
- }
- pw.println(".append( \"}\");");
- } else {
- pw.println("\t\tret.append(\"" + name +" = \").append( get_"+ name+"() ).append(\", \");");
- }
- }
-
- }
- pw.println("\t\treturn ret.toString();\n\t}\n\n");
- }
-
- public void writeStubs(StructType stp, PrintWriter pw) {
- int type;
- String prefix = "";
- if (!stp.getIsInterface()) {
- prefix = "\t\tabstract ";
- } else {
- prefix = "\t";
- }
- for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
- AtomicType tp = (AtomicType) e.nextElement();
-
- type = tp.getType();
- String name = tp.getName().replace('.','_');
- if ((name != null) && (name.length() > 0))
- {
- if (type == AtomicType.TYPE_ARRAY) {
- // Returns pointer to the start of the array
- pw.println(prefix + "long get_" +name +"();");
-
- pw.println(prefix + tp.getJavaType() + " get_" +name +"(int index);");
- pw.println(prefix + "void set_" +name +"(int index, " + tp.getJavaType() + " v);");
- } else {
- pw.println(prefix + tp.getJavaType() + " get_" +name +"();");
- if (type != AtomicType.TYPE_STRUCT) pw.println(prefix + "void set_" +name +"(" + tp.getJavaType() + " v);");
- }
- }
- }
- }
-
- private int padSize(int size, int wordLength) {
- int bytesPerWord = wordLength / 8;
- // Make size dividable by bytesPerWord
- return (size + bytesPerWord / 2) / bytesPerWord * bytesPerWord;
- }
-
- public void writeAccessorImpls(StructType stp, PrintWriter pw) {
- int type;
- int i=0;
- String s_size_32 = getStructSize(stp, false);
- String s_size_64 = getStructSize(stp, true);
- int acc_size_32 = 0;
- int acc_size_64 = 0;
- String s_log = (generateLog?"log.finest(\"\");":"");
- for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
- AtomicType tp = (AtomicType) e.nextElement();
-
- type = tp.getType();
- String name = tp.getName().replace('.','_');
- String pref = "\tpublic " ;
- if ((name != null) && (name.length() > 0))
- {
- String jt = tp.getJavaType();
- String ja_32 = tp.getJavaAccess(false);
- String ja_64 = tp.getJavaAccess(true);
- String ja = ja_32;
- int elemSize_32 = AtomicType.getNativeSizeForAccess(ja_32);
- int elemSize_64 = AtomicType.getNativeSizeForAccess(ja_64);
- String elemSize = tp.getItemSize();
- if (type == AtomicType.TYPE_ARRAY) {
- acc_size_32 += elemSize_32 * tp.getArrayLength();
- acc_size_64 += elemSize_64 * tp.getArrayLength();
- pw.println(pref + tp.getJavaType() + " get_" +name + "(int index) { " +s_log+"return " +
- tp.getJavaResult(stp.getOffset(tp) + "+index*" + elemSize, null) + "; }");
- if (tp.getReferencedType() instanceof AtomicType) { // Set for StructType is forbidden
- pw.println(MessageFormat.format(pref + "void set_{0}(int index, {1} v) '{' {3} {2}; '}'",
- new Object[] {
- name, jt,
- tp.getJavaConversion("pData+"+stp.getOffset(tp)+" + index*" + elemSize, "v"),
- s_log}));
- }
- // Returns pointer to the start of the array
- pw.println(pref + "long get_" +name+ "() { "+s_log+"return pData+"+stp.getOffset(tp)+"; }");
- } else if (type == AtomicType.TYPE_PTR) {
- pw.println(MessageFormat.format(pref + "{0} get_{1}(int index) '{' {3} return {2}; '}'",
- new Object[] {
- jt, name,
- tp.getJavaResult("index*" + elemSize, "Native.getLong(pData+"+stp.getOffset(tp)+")"),
- s_log
- }));
- pw.println(pref + "long get_" +name+ "() { "+s_log+"return Native.getLong(pData+"+stp.getOffset(tp)+"); }");
- pw.println(MessageFormat.format(pref + "void set_{0}({1} v) '{' {3} {2}; '}'",
- new Object[] {name, "long", "Native.putLong(pData + " + stp.getOffset(tp) + ", v)", s_log}));
- acc_size_32 += elemSize_32;
- acc_size_64 += elemSize_64;
- } else {
- acc_size_32 += elemSize_32;
- acc_size_64 += elemSize_64;
- pw.println(pref + tp.getJavaType() + " get_" +name +
- "() { "+s_log+"return " + tp.getJavaResult(stp.getOffset(tp), null) + "; }");
- if (type != AtomicType.TYPE_STRUCT) {
- pw.println(MessageFormat.format(pref + "void set_{0}({1} v) '{' {3} {2}; '}'",
- new Object[] {name, jt, tp.getJavaConversion("pData+"+stp.getOffset(tp), "v"), s_log}));
- }
- }
- i++;
- }
- }
- if (s_size_32 != null && !s_size_32.equals(Integer.toString(acc_size_32))) {
- if (log.isLoggable(Level.FINE)) {
- log.fine("32 bits: The size of the structure " + stp.getName() + " " + s_size_32 +
- " is not equal to the accumulated size " +acc_size_32 + " of the fields");
- }
- } else if (s_size_64 != null && !s_size_64.equals(Integer.toString(acc_size_64))) {
- if (log.isLoggable(Level.FINE)) {
- log.fine("64 bits: The size of the structure " + stp.getName() + " " +s_size_64+
- " is not equal to the accumulated size " +acc_size_64+" of the fields");
- }
- }
- }
-
- public void writeWrapperSubclass(StructType stp, PrintWriter pw, boolean wide) {
-
-
- pw.println("class " + stp.getJavaClassName() + "AccessorImpl" + " extends " + stp.getJavaClassName() + "Accessor {");
- pw.println("/*\nThis class serves as a Wrapper for the following X Struct \nsThe offsets here are calculated based on actual compiler.\n\n" +stp.getDescription() + "\n\n */");
-
- writeAccessorImpls(stp, pw);
-
- pw.println("\n\n } \n\n");
- }
-
- public void writeWrapper(String outputDir, StructType stp)
- {
- if (stp.getNumFields() > 0) {
-
- try {
- FileOutputStream fs = new FileOutputStream(outputDir + "/"+stp.getJavaClassName()+".java");
- PrintWriter pw = new PrintWriter(fs);
- pw.println("// This file is an automatically generated file, please do not edit this file, modify the WrapperGenerator.java file instead !\n" );
-
- pw.println("package "+package_name+";\n");
- pw.println("import sun.misc.*;\n");
- pw.println("import sun.util.logging.PlatformLogger;");
- String baseClass = stp.getBaseClass();
- if (baseClass == null) {
- baseClass = defaultBaseClass;
- }
- if (stp.getIsInterface()) {
- pw.print("public interface ");
- pw.print(stp.getJavaClassName());
- } else {
- pw.print("public class ");
- pw.print(stp.getJavaClassName() + " extends " + baseClass);
- }
- if (stp.getInterfaces() != null) {
- pw.print(" implements " + stp.getInterfaces());
- }
- pw.println(" { ");
- if (!stp.getIsInterface()) {
- pw.println("\tprivate Unsafe unsafe = XlibWrapper.unsafe; ");
- pw.println("\tprivate final boolean should_free_memory;");
- pw.println("\tpublic static int getSize() { return " + stp.getSize() + "; }");
- pw.println("\tpublic int getDataSize() { return getSize(); }");
- pw.println("\n\tlong pData;");
- pw.println("\n\tpublic long getPData() { return pData; }");
-
- pw.println("\n\n\tpublic " + stp.getJavaClassName() + "(long addr) {");
- if (generateLog) {
- pw.println("\t\tlog.finest(\"Creating\");");
- }
- pw.println("\t\tpData=addr;");
- pw.println("\t\tshould_free_memory = false;");
- pw.println("\t}");
- pw.println("\n\n\tpublic " + stp.getJavaClassName() + "() {");
- if (generateLog) {
- pw.println("\t\tlog.finest(\"Creating\");");
- }
- pw.println("\t\tpData = unsafe.allocateMemory(getSize());");
- pw.println("\t\tshould_free_memory = true;");
- pw.println("\t}");
-
- pw.println("\n\n\tpublic void dispose() {");
- if (generateLog) {
- pw.println("\t\tlog.finest(\"Disposing\");");
- }
- pw.println("\t\tif (should_free_memory) {");
- if (generateLog) {
- pw.println("\t\t\tlog.finest(\"freeing memory\");");
- }
- pw.println("\t\t\tunsafe.freeMemory(pData); \n\t}");
- pw.println("\t\t}");
- writeAccessorImpls(stp, pw);
- writeToString(stp,pw);
- } else {
- pw.println("\n\n\tvoid dispose();");
- pw.println("\n\tlong getPData();");
- writeStubs(stp,pw);
- }
-
-
- pw.println("}\n\n\n");
- pw.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- }
-
- private boolean readSizeInfo(InputStream is, boolean wide) {
- String line;
- String splits[];
- BufferedReader in = new BufferedReader(new InputStreamReader(is));
- try {
- while ((line = in.readLine()) != null)
- {
- splits = line.split("\\p{Space}");
- if (splits.length == 2)
- {
- if (wide) {
- sizeTable64bit.put(splits[0],splits[1]);
- } else {
- sizeTable32bit.put(splits[0],splits[1]);
- }
- }
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- public void writeFunctionCallWrapper(String outputDir, FunctionType ft) {
- try {
- FileOutputStream fs = new FileOutputStream(outputDir + "/" + ft.getName()+".java");
- PrintWriter pw = new PrintWriter(fs);
- pw.println("// This file is an automatically generated file, please do not edit this file, modify the WrapperGenerator.java file instead !\n" );
-
- pw.println("package "+package_name+";\n");
- pw.println("import sun.misc.Unsafe;\n");
- pw.println("class " + ft.getName() + " {");
- pw.println("\tprivate static Unsafe unsafe = XlibWrapper.unsafe;");
- pw.println("\tprivate boolean __executed = false;");
- pw.println("\tprivate boolean __disposed = false;");
- Iterator iter = ft.getArguments().iterator();
- while (iter.hasNext()) {
- AtomicType at = (AtomicType)iter.next();
- if (at.isIn()) {
- pw.println("\t" + at.getJavaType() + " _" + at.getName() + ";");
- } else {
- pw.println("\tlong " + at.getName() + "_ptr = unsafe.allocateMemory(Native.get" + at.getTypeUpperCase() + "Size());");
- }
- }
- pw.println("\tpublic " + ft.getName() + "(");
- iter = ft.getArguments().iterator();
- boolean first = true;
- while (iter.hasNext()) {
- AtomicType at = (AtomicType)iter.next();
- if (at.isIn() || at.isInOut()) {
- if (!first) {
- pw.println(",");
- }
- first = false;
- pw.print("\t\t" + at.getJavaType() + " " + at.getName());
- }
- }
- pw.println("\t)");
- pw.println("\t{");
- iter = ft.getArguments().iterator();
- while (iter.hasNext()) {
- AtomicType at = (AtomicType)iter.next();
- if (at.isIn() || at.isInOut()) {
- pw.println("\t\tset_" + at.getName() + "(" + at.getName() + ");");
- }
- }
- pw.println("\t}");
-
- pw.println("\tpublic " + ft.getReturnType() + " execute() {");
- if (ft.isVoid()) {
- pw.println("\t\texecute(null);");
- } else {
- pw.println("\t\treturn execute(null);");
- }
- pw.println("\t}");
-
- pw.println("\tpublic " + ft.getReturnType() + " execute(XToolkit.XErrorHandler errorHandler) {");
- pw.println("\t\tif (__disposed) {");
- pw.println("\t\t throw new IllegalStateException(\"Disposed\");");
- pw.println("\t\t}");
- pw.println("\t\tXToolkit.awtLock();");
- pw.println("\t\ttry {");
- pw.println("\t\t\tif (__executed) {");
- pw.println("\t\t\t throw new IllegalStateException(\"Already executed\");");
- pw.println("\t\t\t}");
- pw.println("\t\t\t__executed = true;");
- pw.println("\t\t\tif (errorHandler != null) {");
- pw.println("\t\t\t XErrorHandlerUtil.WITH_XERROR_HANDLER(errorHandler);");
- pw.println("\t\t\t}");
- iter = ft.getArguments().iterator();
- while (iter.hasNext()) {
- AtomicType at = (AtomicType)iter.next();
- if (!at.isIn() && at.isAutoFree()) {
- pw.println("\t\t\tNative.put" + at.getTypeUpperCase() + "(" +at.getName() + "_ptr, 0);");
- }
- }
- if (!ft.isVoid()) {
- pw.println("\t\t\t" + ft.getReturnType() + " status = ");
- }
- pw.println("\t\t\tXlibWrapper." + ft.getName() + "(XToolkit.getDisplay(), ");
- iter = ft.getArguments().iterator();
- first = true;
- while (iter.hasNext()) {
- AtomicType at = (AtomicType)iter.next();
- if (!first) {
- pw.println(",");
- }
- first = false;
- if (at.isIn()) {
- pw.print("\t\t\t\tget_" + at.getName() + "()");
- } else {
- pw.print("\t\t\t\t" + at.getName() + "_ptr");
- }
- }
- pw.println("\t\t\t);");
- pw.println("\t\t\tif (errorHandler != null) {");
- pw.println("\t\t\t XErrorHandlerUtil.RESTORE_XERROR_HANDLER();");
- pw.println("\t\t\t}");
- if (!ft.isVoid()) {
- pw.println("\t\t\treturn status;");
- }
- pw.println("\t\t} finally {");
- pw.println("\t\t XToolkit.awtUnlock();");
- pw.println("\t\t}");
- pw.println("\t}");
-
- pw.println("\tpublic boolean isExecuted() {");
- pw.println("\t return __executed;");
- pw.println("\t}");
- pw.println("\t");
- pw.println("\tpublic boolean isDisposed() {");
- pw.println("\t return __disposed;");
- pw.println("\t}");
- pw.println("\tpublic void finalize() {");
- pw.println("\t dispose();");
- pw.println("\t}");
-
- pw.println("\tpublic void dispose() {");
- pw.println("\t\tXToolkit.awtLock();");
- pw.println("\t\ttry {");
- pw.println("\t\tif (__disposed || !__executed) {");
- pw.println("\t\t return;");
- pw.println("\t\t} finally {");
- pw.println("\t\t XToolkit.awtUnlock();");
- pw.println("\t\t}");
- pw.println("\t\t}");
-
- iter = ft.getArguments().iterator();
- while (iter.hasNext()) {
- AtomicType at = (AtomicType)iter.next();
- if (!at.isIn()) {
- if (at.isAutoFree()) {
- pw.println("\t\tif (__executed && get_" + at.getName() + "()!= 0) {");
- pw.println("\t\t\tXlibWrapper.XFree(get_" + at.getName() + "());");
- pw.println("\t\t}");
- }
- pw.println("\t\tunsafe.freeMemory(" + at.getName() + "_ptr);");
- }
- }
- pw.println("\t\t__disposed = true;");
- pw.println("\t\t}");
- pw.println("\t}");
-
- iter = ft.getArguments().iterator();
- while (iter.hasNext()) {
- AtomicType at = (AtomicType)iter.next();
- pw.println("\tpublic " + at.getJavaType() + " get_" + at.getName() + "() {");
-
- pw.println("\t\tif (__disposed) {");
- pw.println("\t\t throw new IllegalStateException(\"Disposed\");");
- pw.println("\t\t}");
- pw.println("\t\tif (!__executed) {");
- pw.println("\t\t throw new IllegalStateException(\"Not executed\");");
- pw.println("\t\t}");
-
- if (at.isIn()) {
- pw.println("\t\treturn _" + at.getName() + ";");
- } else {
- pw.println("\t\treturn Native.get" + at.getTypeUpperCase() + "(" + at.getName() + "_ptr);");
- }
- pw.println("\t}");
-
- pw.println("\tpublic void set_" + at.getName() + "(" + at.getJavaType() + " data) {");
- if (at.isIn()) {
- pw.println("\t\t_" + at.getName() + " = data;");
- } else {
- pw.println("\t\tNative.put" + at.getTypeUpperCase() + "(" + at.getName() + "_ptr, data);");
- }
- pw.println("\t}");
- }
- pw.println("}");
- pw.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- public void writeJavaWrapperClass(String outputDir) {
-// (new File(outputDir, package_path)).mkdirs();
- try {
- for (Enumeration e = symbolTable.elements() ; e.hasMoreElements() ;) {
- BaseType tp = (BaseType) e.nextElement();
- if (tp instanceof StructType) {
- StructType st = (StructType) tp;
- writeWrapper(outputDir, st);
- } else if (tp instanceof FunctionType) {
- writeFunctionCallWrapper(outputDir, (FunctionType)tp);
- }
- }
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-
- public void writeNativeSizer(String file)
- {
- int type;
- int i=0;
- int j=0;
- BaseType tp;
- StructType stp;
- Enumeration eo;
-
-
- try {
-
- FileOutputStream fs = new FileOutputStream(file);
- PrintWriter pw = new PrintWriter(fs);
-
- pw.println("/* This file is an automatically generated file, please do not edit this file, modify the XlibParser.java file instead !*/\n" );
- pw.println("#include <X11/Xlib.h>\n#include <X11/Xutil.h>\n#include <X11/Xos.h>\n#include <X11/Xatom.h>\n#include <stdio.h>\n");
- pw.println("#include <X11/extensions/Xdbe.h>");
- pw.println("#include <X11/XKBlib.h>");
- pw.println("#include \"awt_p.h\"");
- pw.println("#include \"color.h\"");
- pw.println("#include \"colordata.h\"");
- pw.println("\ntypedef struct\n");
- pw.println("{\n");
- pw.println(" unsigned long flags;\n");
- pw.println(" unsigned long functions;\n");
- pw.println(" unsigned long decorations;\n");
- pw.println(" long inputMode;\n");
- pw.println(" unsigned long status;\n");
- pw.println("} PropMwmHints;\n");
-
-
- pw.println("\n\nint main(){");
- j=0;
- for ( eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
- tp = (BaseType) eo.nextElement();
- if (tp instanceof StructType)
- {
- stp = (StructType) tp;
- if (!stp.getIsInterface()) {
- pw.println(stp.getName()+" temp"+ j + ";\n");
- j++;
- }
- }
- }
- j=0;
-
- pw.println("printf(\"long\t%d\\n\",(int)sizeof(long));");
- pw.println("printf(\"int\t%d\\n\",(int)sizeof(int));");
- pw.println("printf(\"short\t%d\\n\",(int)sizeof(short));");
- pw.println("printf(\"ptr\t%d\\n\",(int)sizeof(void *));");
- pw.println("printf(\"Bool\t%d\\n\",(int)sizeof(Bool));");
- pw.println("printf(\"Atom\t%d\\n\",(int)sizeof(Atom));");
- pw.println("printf(\"Window\t%d\\n\",(int)sizeof(Window));");
-
-
- for (eo = symbolTable.elements() ; eo.hasMoreElements() ;) {
-
-
- tp = (BaseType) eo.nextElement();
- if (tp instanceof StructType)
- {
- stp = (StructType) tp;
- if (stp.getIsInterface()) {
- continue;
- }
- for (Enumeration e = stp.getMembers() ; e.hasMoreElements() ;) {
- AtomicType atp = (AtomicType) e.nextElement();
- if (atp.isAlias()) continue;
- pw.println("printf(\""+ stp.getName() + "." + atp.getName() + "\t%d\\n\""+
- ",(int)((unsigned long ) &temp"+j+"."+atp.getName()+"- (unsigned long ) &temp" + j + ") );");
-
- i++;
-
-
- }
- pw.println("printf(\""+ stp.getName() + "\t%d\\n\"" + ",(int)sizeof(temp"+j+"));");
-
- j++;
- }
-
- }
- pw.println("return 0;");
- pw.println("}");
- pw.close();
-
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
-
- private void initTypes() {
- symbolTable.put("int", new AtomicType(AtomicType.TYPE_INT, "", "int"));
- symbolTable.put("short", new AtomicType(AtomicType.TYPE_SHORT, "", "short"));
- symbolTable.put("long", new AtomicType(AtomicType.TYPE_LONG, "", "long"));
- symbolTable.put("float", new AtomicType(AtomicType.TYPE_FLOAT, "", "float"));
- symbolTable.put("double", new AtomicType(AtomicType.TYPE_DOUBLE, "", "double"));
- symbolTable.put("Bool", new AtomicType(AtomicType.TYPE_BOOL, "", "Bool"));
- symbolTable.put("char", new AtomicType(AtomicType.TYPE_CHAR, "", "char"));
- symbolTable.put("byte", new AtomicType(AtomicType.TYPE_BYTE, "", "byte"));
- symbolTable.put("pointer", new AtomicType(AtomicType.TYPE_PTR, "", "pointer"));
- symbolTable.put("longlong", new AtomicType(AtomicType.TYPE_LONG_LONG, "", "longlong"));
- symbolTable.put("Atom", new AtomicType(AtomicType.TYPE_ATOM, "", "Atom"));
- symbolTable.put("ulong", new AtomicType(AtomicType.TYPE_ULONG, "", "ulong"));
- }
- public WrapperGenerator(String outputDir, String xlibFilename) {
- initTypes();
- try {
- BufferedReader in = new BufferedReader(new FileReader(xlibFilename));
- String line;
- String splits[];
- BaseType curType = null;
- while ((line = in.readLine()) != null)
- {
- int commentStart = line.indexOf("//");
- if (commentStart >= 0) {
- // remove comment
- line = line.substring(0, commentStart);
- }
-
- if ("".equals(line)) {
- // skip empty line
- continue;
- }
-
- splits = line.split("\\p{Space}+");
- if (splits.length >= 2)
- {
- String struct_name = curType.getName();
- String field_name = splits[1];
- String s_type = splits[2];
- BaseType bt = curType;
- int type = AtomicType.getTypeForString(s_type);
- AtomicType atp = null;
- if (bt != null && type != -1) {
- atp = new AtomicType(type,field_name,s_type);
- if (splits.length > 3) {
- atp.setAttributes(splits);
- }
- if (bt instanceof StructType) {
- StructType stp = (StructType) bt;
- stp.addMember(atp);
- } else if (bt instanceof FunctionType) {
- ((FunctionType)bt).addArgument(atp);
- }
- }
- else if (bt == null) {
- System.out.println("Cannot find " + struct_name);
- }
-
- }
- else if (line != null) {
- BaseType bt = (BaseType) symbolTable.get(line);
- if (bt == null) {
- if (line.startsWith("!")) {
- FunctionType ft = new FunctionType(line);
- ft.setName(line);
- symbolTable.put(ft.getName(),ft);
- curType = ft;
- } else {
- StructType stp = new StructType(line);
- stp.setName(line);
- curType = stp;
- symbolTable.put(stp.getName(),stp);
- }
- }
- }
-
- }
- in.close();
- }
- catch (Exception e) {
- e.printStackTrace();
- }
-
- }
- private void makeSizer(String outputDir) {
- if (wide) {
- sizerFileName = "sizer.64.c";
- } else {
- sizerFileName = "sizer.32.c";
- }
- File fp = new File(outputDir, sizerFileName);
- writeNativeSizer(fp.getAbsolutePath());
- }
- private boolean readSizeInfo(String sizeInfo) {
- try {
- File f = new File(sizeInfo+".32");
- boolean res = true;
- FileInputStream fis = null;
- if (f.exists()) {
- fis = new FileInputStream(f);
- res = readSizeInfo(fis, false);
- fis.close();
- }
- f = new File(sizeInfo+".64");
- if (f.exists()) {
- fis = new FileInputStream(f);
- res &= readSizeInfo(fis, true);
- fis.close();
- }
- return res;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- private void startGeneration(String outputDir, String sizeInfo) {
- if (readSizeInfo(sizeInfo))
- {
- writeJavaWrapperClass(outputDir);
- }
- else {
- System.out.println("Error calculating offsets");
- }
- }
-
- public static void main(String[] args) {
-
- if (args.length < 4) {
- System.out.println("Usage:\nWrapperGenerator <output_dir> <xlibtypes.txt> <action> [<platform> | <sizes info file>]");
- System.out.println("Where <action>: gen, sizer");
- System.out.println(" <platform>: 32, 64");
- System.exit(1);
- }
-
- WrapperGenerator xparser = new WrapperGenerator(args[0], args[1]);
- if (args[2].equals("sizer")) {
- xparser.wide = args[3].equals("64");
- xparser.makeSizer(args[0]);
- } else if (args[2].equals("gen")) {
- xparser.startGeneration(args[0], args[3]);
- }
- }
-
-}
--- a/jdk/src/solaris/classes/sun/awt/X11/generator/functions.txt Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-!XGetWindowProperty|int
- w long
- property Atom
- long_offset long
- long_length long
- delete Bool
- req_type Atom
- actual_type Atom out
- actual_format int out
- number_of_items long out
- bytes_after long out
- data pointer out free
-!XQueryTree|int
- w long
- root long out
- parent long out
- children pointer out free
- nchildren int out
-!XTranslateCoordinates|int
- scr_w long
- dest_w long
- src_x int
- src_y int
- dest_x int out
- dest_y int out
- child long out
--- a/jdk/src/solaris/classes/sun/awt/X11/generator/sizes.32 Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1016 +0,0 @@
-long 4
-int 4
-short 2
-ptr 4
-Bool 4
-Atom 4
-Window 4
-XExtData.number 0
-XExtData.next 4
-XExtData.free_private 8
-XExtData.private_data 12
-XExtData 16
-XIMStringConversionCallbackStruct.position 0
-XIMStringConversionCallbackStruct.direction 4
-XIMStringConversionCallbackStruct.operation 8
-XIMStringConversionCallbackStruct.factor 10
-XIMStringConversionCallbackStruct.text 12
-XIMStringConversionCallbackStruct 16
-XkbNewKeyboardNotifyEvent.type 0
-XkbNewKeyboardNotifyEvent.serial 4
-XkbNewKeyboardNotifyEvent.send_event 8
-XkbNewKeyboardNotifyEvent.display 12
-XkbNewKeyboardNotifyEvent.time 16
-XkbNewKeyboardNotifyEvent.xkb_type 20
-XkbNewKeyboardNotifyEvent.device 24
-XkbNewKeyboardNotifyEvent.old_device 28
-XkbNewKeyboardNotifyEvent.min_key_code 32
-XkbNewKeyboardNotifyEvent.max_key_code 36
-XkbNewKeyboardNotifyEvent.old_min_key_code 40
-XkbNewKeyboardNotifyEvent.old_max_key_code 44
-XkbNewKeyboardNotifyEvent.changed 48
-XkbNewKeyboardNotifyEvent.req_major 52
-XkbNewKeyboardNotifyEvent.req_minor 53
-XkbNewKeyboardNotifyEvent 56
-XTimeCoord.time 0
-XTimeCoord.x 4
-XTimeCoord.y 6
-XTimeCoord 8
-XkbCompatMapNotifyEvent.type 0
-XkbCompatMapNotifyEvent.serial 4
-XkbCompatMapNotifyEvent.send_event 8
-XkbCompatMapNotifyEvent.display 12
-XkbCompatMapNotifyEvent.time 16
-XkbCompatMapNotifyEvent.xkb_type 20
-XkbCompatMapNotifyEvent.device 24
-XkbCompatMapNotifyEvent.changed_groups 28
-XkbCompatMapNotifyEvent.first_si 32
-XkbCompatMapNotifyEvent.num_si 36
-XkbCompatMapNotifyEvent.num_total_si 40
-XkbCompatMapNotifyEvent 44
-XIMStatusDrawCallbackStruct.type 0
-XIMStatusDrawCallbackStruct.data 4
-XIMStatusDrawCallbackStruct 8
-XKeyboardControl.key_click_percent 0
-XKeyboardControl.bell_percent 4
-XKeyboardControl.bell_pitch 8
-XKeyboardControl.bell_duration 12
-XKeyboardControl.led 16
-XKeyboardControl.led_mode 20
-XKeyboardControl.key 24
-XKeyboardControl.auto_repeat_mode 28
-XKeyboardControl 32
-XSelectionClearEvent.type 0
-XSelectionClearEvent.serial 4
-XSelectionClearEvent.send_event 8
-XSelectionClearEvent.display 12
-XSelectionClearEvent.window 16
-XSelectionClearEvent.selection 20
-XSelectionClearEvent.time 24
-XSelectionClearEvent 28
-XWindowChanges.x 0
-XWindowChanges.y 4
-XWindowChanges.width 8
-XWindowChanges.height 12
-XWindowChanges.border_width 16
-XWindowChanges.sibling 20
-XWindowChanges.stack_mode 24
-XWindowChanges 28
-XIMPreeditCaretCallbackStruct.position 0
-XIMPreeditCaretCallbackStruct.direction 4
-XIMPreeditCaretCallbackStruct.style 8
-XIMPreeditCaretCallbackStruct 12
-XOMCharSetList.charset_count 0
-XOMCharSetList.charset_list 4
-XOMCharSetList 8
-XOMFontInfo.num_font 0
-XOMFontInfo.font_struct_list 4
-XOMFontInfo.font_name_list 8
-XOMFontInfo 12
-AwtScreenData.numConfigs 0
-AwtScreenData.root 4
-AwtScreenData.whitepixel 8
-AwtScreenData.blackpixel 12
-AwtScreenData.defaultConfig 16
-AwtScreenData.configs 20
-AwtScreenData 24
-XIMHotKeyTrigger.keysym 0
-XIMHotKeyTrigger.modifier 4
-XIMHotKeyTrigger.modifier_mask 8
-XIMHotKeyTrigger 12
-XCirculateEvent.type 0
-XCirculateEvent.serial 4
-XCirculateEvent.send_event 8
-XCirculateEvent.display 12
-XCirculateEvent.event 16
-XCirculateEvent.window 20
-XCirculateEvent.place 24
-XCirculateEvent 28
-Screen.ext_data 0
-Screen.display 4
-Screen.root 8
-Screen.width 12
-Screen.height 16
-Screen.mwidth 20
-Screen.mheight 24
-Screen.ndepths 28
-Screen.depths 32
-Screen.root_depth 36
-Screen.root_visual 40
-Screen.default_gc 44
-Screen.cmap 48
-Screen.white_pixel 52
-Screen.black_pixel 56
-Screen.max_maps 60
-Screen.min_maps 64
-Screen.backing_store 68
-Screen.save_unders 72
-Screen.root_input_mask 76
-Screen 80
-XMapRequestEvent.type 0
-XMapRequestEvent.serial 4
-XMapRequestEvent.send_event 8
-XMapRequestEvent.display 12
-XMapRequestEvent.parent 16
-XMapRequestEvent.window 20
-XMapRequestEvent 24
-XIMText.length 0
-XIMText.feedback 4
-XIMText.encoding_is_wchar 8
-XIMText.string 12
-XIMText 16
-XGraphicsExposeEvent.type 0
-XGraphicsExposeEvent.serial 4
-XGraphicsExposeEvent.send_event 8
-XGraphicsExposeEvent.display 12
-XGraphicsExposeEvent.drawable 16
-XGraphicsExposeEvent.x 20
-XGraphicsExposeEvent.y 24
-XGraphicsExposeEvent.width 28
-XGraphicsExposeEvent.height 32
-XGraphicsExposeEvent.count 36
-XGraphicsExposeEvent.major_code 40
-XGraphicsExposeEvent.minor_code 44
-XGraphicsExposeEvent 48
-XEvent.type 0
-XEvent.xany 0
-XEvent.xkey 0
-XEvent.xbutton 0
-XEvent.xmotion 0
-XEvent.xcrossing 0
-XEvent.xfocus 0
-XEvent.xexpose 0
-XEvent.xgraphicsexpose 0
-XEvent.xnoexpose 0
-XEvent.xvisibility 0
-XEvent.xcreatewindow 0
-XEvent.xdestroywindow 0
-XEvent.xunmap 0
-XEvent.xmap 0
-XEvent.xmaprequest 0
-XEvent.xreparent 0
-XEvent.xconfigure 0
-XEvent.xgravity 0
-XEvent.xresizerequest 0
-XEvent.xconfigurerequest 0
-XEvent.xcirculate 0
-XEvent.xcirculaterequest 0
-XEvent.xproperty 0
-XEvent.xselectionclear 0
-XEvent.xselectionrequest 0
-XEvent.xselection 0
-XEvent.xcolormap 0
-XEvent.xclient 0
-XEvent.xmapping 0
-XEvent.xerror 0
-XEvent.xkeymap 0
-XEvent.pad 0
-XEvent 96
-XRenderDirectFormat.red 0
-XRenderDirectFormat.redMask 2
-XRenderDirectFormat.green 4
-XRenderDirectFormat.greenMask 6
-XRenderDirectFormat.blue 8
-XRenderDirectFormat.blueMask 10
-XRenderDirectFormat.alpha 12
-XRenderDirectFormat.alphaMask 14
-XRenderDirectFormat 16
-ColorData.awt_Colors 0
-ColorData.awt_numICMcolors 4
-ColorData.awt_icmLUT 8
-ColorData.awt_icmLUT2Colors 12
-ColorData.img_grays 16
-ColorData.img_clr_tbl 20
-ColorData.img_oda_red 24
-ColorData.img_oda_green 28
-ColorData.img_oda_blue 32
-ColorData.pGrayInverseLutData 36
-ColorData.screendata 40
-ColorData 44
-XFontStruct.ext_data 0
-XFontStruct.fid 4
-XFontStruct.direction 8
-XFontStruct.min_char_or_byte2 12
-XFontStruct.max_char_or_byte2 16
-XFontStruct.min_byte1 20
-XFontStruct.max_byte1 24
-XFontStruct.all_chars_exist 28
-XFontStruct.n_properties 36
-XFontStruct.properties 40
-XFontStruct.min_bounds 44
-XFontStruct.max_bounds 56
-XFontStruct.per_char 68
-XFontStruct.ascent 72
-XFontStruct.descent 76
-XFontStruct 80
-XExtCodes.extension 0
-XExtCodes.major_opcode 4
-XExtCodes.first_event 8
-XExtCodes.first_error 12
-XExtCodes 16
-XFontSetExtents.max_ink_extent 0
-XFontSetExtents.max_logical_extent 8
-XFontSetExtents 16
-XSelectionEvent.type 0
-XSelectionEvent.serial 4
-XSelectionEvent.send_event 8
-XSelectionEvent.display 12
-XSelectionEvent.requestor 16
-XSelectionEvent.selection 20
-XSelectionEvent.target 24
-XSelectionEvent.property 28
-XSelectionEvent.time 32
-XSelectionEvent 36
-XArc.x 0
-XArc.y 2
-XArc.width 4
-XArc.height 6
-XArc.angle1 8
-XArc.angle2 10
-XArc 12
-XErrorEvent.type 0
-XErrorEvent.display 4
-XErrorEvent.resourceid 8
-XErrorEvent.serial 12
-XErrorEvent.error_code 16
-XErrorEvent.request_code 17
-XErrorEvent.minor_code 18
-XErrorEvent 20
-XConfigureRequestEvent.type 0
-XConfigureRequestEvent.serial 4
-XConfigureRequestEvent.send_event 8
-XConfigureRequestEvent.display 12
-XConfigureRequestEvent.parent 16
-XConfigureRequestEvent.window 20
-XConfigureRequestEvent.x 24
-XConfigureRequestEvent.y 28
-XConfigureRequestEvent.width 32
-XConfigureRequestEvent.height 36
-XConfigureRequestEvent.border_width 40
-XConfigureRequestEvent.above 44
-XConfigureRequestEvent.detail 48
-XConfigureRequestEvent.value_mask 52
-XConfigureRequestEvent 56
-ScreenFormat.ext_data 0
-ScreenFormat.depth 4
-ScreenFormat.bits_per_pixel 8
-ScreenFormat.scanline_pad 12
-ScreenFormat 16
-XButtonEvent.type 0
-XButtonEvent.serial 4
-XButtonEvent.send_event 8
-XButtonEvent.display 12
-XButtonEvent.window 16
-XButtonEvent.root 20
-XButtonEvent.subwindow 24
-XButtonEvent.time 28
-XButtonEvent.x 32
-XButtonEvent.y 36
-XButtonEvent.x_root 40
-XButtonEvent.y_root 44
-XButtonEvent.state 48
-XButtonEvent.button 52
-XButtonEvent.same_screen 56
-XButtonEvent 60
-XFontProp.name 0
-XFontProp.card32 4
-XFontProp 8
-XIMValuesList.count_values 0
-XIMValuesList.supported_values 4
-XIMValuesList 8
-XKeymapEvent.type 0
-XKeymapEvent.serial 4
-XKeymapEvent.send_event 8
-XKeymapEvent.display 12
-XKeymapEvent.window 16
-XKeymapEvent.key_vector 20
-XKeymapEvent 52
-XTextItem16.chars 0
-XTextItem16.nchars 4
-XTextItem16.delta 8
-XTextItem16.font 12
-XTextItem16 16
-XIMPreeditDrawCallbackStruct.caret 0
-XIMPreeditDrawCallbackStruct.chg_first 4
-XIMPreeditDrawCallbackStruct.chg_length 8
-XIMPreeditDrawCallbackStruct.text 12
-XIMPreeditDrawCallbackStruct 16
-XVisualInfo.visual 0
-XVisualInfo.visualid 4
-XVisualInfo.screen 8
-XVisualInfo.depth 12
-XVisualInfo.class 16
-XVisualInfo.red_mask 20
-XVisualInfo.green_mask 24
-XVisualInfo.blue_mask 28
-XVisualInfo.colormap_size 32
-XVisualInfo.bits_per_rgb 36
-XVisualInfo 40
-XkbControlsNotifyEvent.type 0
-XkbControlsNotifyEvent.serial 4
-XkbControlsNotifyEvent.send_event 8
-XkbControlsNotifyEvent.display 12
-XkbControlsNotifyEvent.time 16
-XkbControlsNotifyEvent.xkb_type 20
-XkbControlsNotifyEvent.device 24
-XkbControlsNotifyEvent.changed_ctrls 28
-XkbControlsNotifyEvent.enabled_ctrls 32
-XkbControlsNotifyEvent.enabled_ctrl_changes 36
-XkbControlsNotifyEvent.num_groups 40
-XkbControlsNotifyEvent.keycode 44
-XkbControlsNotifyEvent.event_type 45
-XkbControlsNotifyEvent.req_major 46
-XkbControlsNotifyEvent.req_minor 47
-XkbControlsNotifyEvent 48
-PropMwmHints.flags 0
-PropMwmHints.functions 4
-PropMwmHints.decorations 8
-PropMwmHints.inputMode 12
-PropMwmHints.status 16
-PropMwmHints 20
-XClientMessageEvent.type 0
-XClientMessageEvent.serial 4
-XClientMessageEvent.send_event 8
-XClientMessageEvent.display 12
-XClientMessageEvent.window 16
-XClientMessageEvent.message_type 20
-XClientMessageEvent.format 24
-XClientMessageEvent.data 28
-XClientMessageEvent 48
-XAnyEvent.type 0
-XAnyEvent.serial 4
-XAnyEvent.send_event 8
-XAnyEvent.display 12
-XAnyEvent.window 16
-XAnyEvent 20
-XkbIndicatorNotifyEvent.type 0
-XkbIndicatorNotifyEvent.serial 4
-XkbIndicatorNotifyEvent.send_event 8
-XkbIndicatorNotifyEvent.display 12
-XkbIndicatorNotifyEvent.time 16
-XkbIndicatorNotifyEvent.xkb_type 20
-XkbIndicatorNotifyEvent.device 24
-XkbIndicatorNotifyEvent.changed 28
-XkbIndicatorNotifyEvent.state 32
-XkbIndicatorNotifyEvent 36
-XIMPreeditStateNotifyCallbackStruct.state 0
-XIMPreeditStateNotifyCallbackStruct 4
-XkbAnyEvent.type 0
-XkbAnyEvent.serial 4
-XkbAnyEvent.send_event 8
-XkbAnyEvent.display 12
-XkbAnyEvent.time 16
-XkbAnyEvent.xkb_type 20
-XkbAnyEvent.device 24
-XkbAnyEvent 28
-XMotionEvent.type 0
-XMotionEvent.serial 4
-XMotionEvent.send_event 8
-XMotionEvent.display 12
-XMotionEvent.window 16
-XMotionEvent.root 20
-XMotionEvent.subwindow 24
-XMotionEvent.time 28
-XMotionEvent.x 32
-XMotionEvent.y 36
-XMotionEvent.x_root 40
-XMotionEvent.y_root 44
-XMotionEvent.state 48
-XMotionEvent.is_hint 52
-XMotionEvent.same_screen 56
-XMotionEvent 60
-XIMHotKeyTriggers.num_hot_key 0
-XIMHotKeyTriggers.key 4
-XIMHotKeyTriggers 8
-XIMStyles.count_styles 0
-XIMStyles.supported_styles 4
-XIMStyles 8
-XkbExtensionDeviceNotifyEvent.type 0
-XkbExtensionDeviceNotifyEvent.serial 4
-XkbExtensionDeviceNotifyEvent.send_event 8
-XkbExtensionDeviceNotifyEvent.display 12
-XkbExtensionDeviceNotifyEvent.time 16
-XkbExtensionDeviceNotifyEvent.xkb_type 20
-XkbExtensionDeviceNotifyEvent.device 24
-XkbExtensionDeviceNotifyEvent.reason 28
-XkbExtensionDeviceNotifyEvent.supported 32
-XkbExtensionDeviceNotifyEvent.unsupported 36
-XkbExtensionDeviceNotifyEvent.first_btn 40
-XkbExtensionDeviceNotifyEvent.num_btns 44
-XkbExtensionDeviceNotifyEvent.leds_defined 48
-XkbExtensionDeviceNotifyEvent.led_state 52
-XkbExtensionDeviceNotifyEvent.led_class 56
-XkbExtensionDeviceNotifyEvent.led_id 60
-XkbExtensionDeviceNotifyEvent 64
-XwcTextItem.chars 0
-XwcTextItem.nchars 4
-XwcTextItem.delta 8
-XwcTextItem.font_set 12
-XwcTextItem 16
-XClassHint.res_name 0
-XClassHint.res_class 4
-XClassHint 8
-XChar2b.byte1 0
-XChar2b.byte2 1
-XChar2b 2
-XSetWindowAttributes.background_pixmap 0
-XSetWindowAttributes.background_pixel 4
-XSetWindowAttributes.border_pixmap 8
-XSetWindowAttributes.border_pixel 12
-XSetWindowAttributes.bit_gravity 16
-XSetWindowAttributes.win_gravity 20
-XSetWindowAttributes.backing_store 24
-XSetWindowAttributes.backing_planes 28
-XSetWindowAttributes.backing_pixel 32
-XSetWindowAttributes.save_under 36
-XSetWindowAttributes.event_mask 40
-XSetWindowAttributes.do_not_propagate_mask 44
-XSetWindowAttributes.override_redirect 48
-XSetWindowAttributes.colormap 52
-XSetWindowAttributes.cursor 56
-XSetWindowAttributes 60
-XRenderPictFormat.id 0
-XRenderPictFormat.type 4
-XRenderPictFormat.depth 8
-XRenderPictFormat.direct 12
-XRenderPictFormat.colormap 28
-XRenderPictFormat 32
-XReparentEvent.type 0
-XReparentEvent.serial 4
-XReparentEvent.send_event 8
-XReparentEvent.display 12
-XReparentEvent.event 16
-XReparentEvent.window 20
-XReparentEvent.parent 24
-XReparentEvent.x 28
-XReparentEvent.y 32
-XReparentEvent.override_redirect 36
-XReparentEvent 40
-XCirculateRequestEvent.type 0
-XCirculateRequestEvent.serial 4
-XCirculateRequestEvent.send_event 8
-XCirculateRequestEvent.display 12
-XCirculateRequestEvent.parent 16
-XCirculateRequestEvent.window 20
-XCirculateRequestEvent.place 24
-XCirculateRequestEvent 28
-XImage.width 0
-XImage.height 4
-XImage.xoffset 8
-XImage.format 12
-XImage.data 16
-XImage.byte_order 20
-XImage.bitmap_unit 24
-XImage.bitmap_bit_order 28
-XImage.bitmap_pad 32
-XImage.depth 36
-XImage.bytes_per_line 40
-XImage.bits_per_pixel 44
-XImage.red_mask 48
-XImage.green_mask 52
-XImage.blue_mask 56
-XImage.obdata 60
-XImage.f.create_image 64
-XImage.f.destroy_image 68
-XImage.f.get_pixel 72
-XImage.f.put_pixel 76
-XImage.f.sub_image 80
-XImage.f.add_pixel 84
-XImage 88
-XKeyEvent.type 0
-XKeyEvent.serial 4
-XKeyEvent.send_event 8
-XKeyEvent.display 12
-XKeyEvent.window 16
-XKeyEvent.root 20
-XKeyEvent.subwindow 24
-XKeyEvent.time 28
-XKeyEvent.x 32
-XKeyEvent.y 36
-XKeyEvent.x_root 40
-XKeyEvent.y_root 44
-XKeyEvent.state 48
-XKeyEvent.keycode 52
-XKeyEvent.same_screen 56
-XKeyEvent 60
-XkbActionMessageEvent.type 0
-XkbActionMessageEvent.serial 4
-XkbActionMessageEvent.send_event 8
-XkbActionMessageEvent.display 12
-XkbActionMessageEvent.time 16
-XkbActionMessageEvent.xkb_type 20
-XkbActionMessageEvent.device 24
-XkbActionMessageEvent.keycode 28
-XkbActionMessageEvent.press 32
-XkbActionMessageEvent.key_event_follows 36
-XkbActionMessageEvent.group 40
-XkbActionMessageEvent.mods 44
-XkbActionMessageEvent.message 48
-XkbActionMessageEvent 56
-XdbeSwapInfo.swap_window 0
-XdbeSwapInfo.swap_action 4
-XdbeSwapInfo 8
-XTextItem.chars 0
-XTextItem.nchars 4
-XTextItem.delta 8
-XTextItem.font 12
-XTextItem 16
-XModifierKeymap.max_keypermod 0
-XModifierKeymap.modifiermap 4
-XModifierKeymap 8
-XCharStruct.lbearing 0
-XCharStruct.rbearing 2
-XCharStruct.width 4
-XCharStruct.ascent 6
-XCharStruct.descent 8
-XCharStruct.attributes 10
-XCharStruct 12
-XGravityEvent.type 0
-XGravityEvent.serial 4
-XGravityEvent.send_event 8
-XGravityEvent.display 12
-XGravityEvent.event 16
-XGravityEvent.window 20
-XGravityEvent.x 24
-XGravityEvent.y 28
-XGravityEvent 32
-Visual.ext_data 0
-Visual.visualid 4
-Visual.class 8
-Visual.red_mask 12
-Visual.green_mask 16
-Visual.blue_mask 20
-Visual.bits_per_rgb 24
-Visual.map_entries 28
-Visual 32
-XOMOrientation.num_orientation 0
-XOMOrientation.orientation 4
-XOMOrientation 8
-XkbAccessXNotifyEvent.type 0
-XkbAccessXNotifyEvent.serial 4
-XkbAccessXNotifyEvent.send_event 8
-XkbAccessXNotifyEvent.display 12
-XkbAccessXNotifyEvent.time 16
-XkbAccessXNotifyEvent.xkb_type 20
-XkbAccessXNotifyEvent.device 24
-XkbAccessXNotifyEvent.detail 28
-XkbAccessXNotifyEvent.keycode 32
-XkbAccessXNotifyEvent.sk_delay 36
-XkbAccessXNotifyEvent.debounce_delay 40
-XkbAccessXNotifyEvent 44
-XWindowAttributes.x 0
-XWindowAttributes.y 4
-XWindowAttributes.width 8
-XWindowAttributes.height 12
-XWindowAttributes.border_width 16
-XWindowAttributes.depth 20
-XWindowAttributes.visual 24
-XWindowAttributes.root 28
-XWindowAttributes.class 32
-XWindowAttributes.bit_gravity 36
-XWindowAttributes.win_gravity 40
-XWindowAttributes.backing_store 44
-XWindowAttributes.backing_planes 48
-XWindowAttributes.backing_pixel 52
-XWindowAttributes.save_under 56
-XWindowAttributes.colormap 60
-XWindowAttributes.map_installed 64
-XWindowAttributes.map_state 68
-XWindowAttributes.all_event_masks 72
-XWindowAttributes.your_event_mask 76
-XWindowAttributes.do_not_propagate_mask 80
-XWindowAttributes.override_redirect 84
-XWindowAttributes.screen 88
-XWindowAttributes 92
-XmbTextItem.chars 0
-XmbTextItem.nchars 4
-XmbTextItem.delta 8
-XmbTextItem.font_set 12
-XmbTextItem 16
-XMappingEvent.type 0
-XMappingEvent.serial 4
-XMappingEvent.send_event 8
-XMappingEvent.display 12
-XMappingEvent.window 16
-XMappingEvent.request 20
-XMappingEvent.first_keycode 24
-XMappingEvent.count 28
-XMappingEvent 32
-XSizeHints.flags 0
-XSizeHints.x 4
-XSizeHints.y 8
-XSizeHints.width 12
-XSizeHints.height 16
-XSizeHints.min_width 20
-XSizeHints.min_height 24
-XSizeHints.max_width 28
-XSizeHints.max_height 32
-XSizeHints.width_inc 36
-XSizeHints.height_inc 40
-XSizeHints.min_aspect.x 44
-XSizeHints.min_aspect.y 48
-XSizeHints.max_aspect.x 52
-XSizeHints.max_aspect.y 56
-XSizeHints.base_width 60
-XSizeHints.base_height 64
-XSizeHints.win_gravity 68
-XSizeHints 72
-XUnmapEvent.type 0
-XUnmapEvent.serial 4
-XUnmapEvent.send_event 8
-XUnmapEvent.display 12
-XUnmapEvent.event 16
-XUnmapEvent.window 20
-XUnmapEvent.from_configure 24
-XUnmapEvent 28
-awtImageData.Depth 0
-awtImageData.wsImageFormat 4
-awtImageData.clrdata 16
-awtImageData.convert 48
-awtImageData 304
-XkbStateNotifyEvent.type 0
-XkbStateNotifyEvent.serial 4
-XkbStateNotifyEvent.send_event 8
-XkbStateNotifyEvent.display 12
-XkbStateNotifyEvent.time 16
-XkbStateNotifyEvent.xkb_type 20
-XkbStateNotifyEvent.device 24
-XkbStateNotifyEvent.changed 28
-XkbStateNotifyEvent.group 32
-XkbStateNotifyEvent.base_group 36
-XkbStateNotifyEvent.latched_group 40
-XkbStateNotifyEvent.locked_group 44
-XkbStateNotifyEvent.mods 48
-XkbStateNotifyEvent.base_mods 52
-XkbStateNotifyEvent.latched_mods 56
-XkbStateNotifyEvent.locked_mods 60
-XkbStateNotifyEvent.compat_state 64
-XkbStateNotifyEvent.grab_mods 68
-XkbStateNotifyEvent.compat_grab_mods 69
-XkbStateNotifyEvent.lookup_mods 70
-XkbStateNotifyEvent.compat_lookup_mods 71
-XkbStateNotifyEvent.ptr_buttons 72
-XkbStateNotifyEvent.keycode 76
-XkbStateNotifyEvent.event_type 77
-XkbStateNotifyEvent.req_major 78
-XkbStateNotifyEvent.req_minor 79
-XkbStateNotifyEvent 80
-XExposeEvent.type 0
-XExposeEvent.serial 4
-XExposeEvent.send_event 8
-XExposeEvent.display 12
-XExposeEvent.window 16
-XExposeEvent.x 20
-XExposeEvent.y 24
-XExposeEvent.width 28
-XExposeEvent.height 32
-XExposeEvent.count 36
-XExposeEvent 40
-XkbMapNotifyEvent.type 0
-XkbMapNotifyEvent.serial 4
-XkbMapNotifyEvent.send_event 8
-XkbMapNotifyEvent.display 12
-XkbMapNotifyEvent.time 16
-XkbMapNotifyEvent.xkb_type 20
-XkbMapNotifyEvent.device 24
-XkbMapNotifyEvent.changed 28
-XkbMapNotifyEvent.flags 32
-XkbMapNotifyEvent.first_type 36
-XkbMapNotifyEvent.num_types 40
-XkbMapNotifyEvent.min_key_code 44
-XkbMapNotifyEvent.max_key_code 45
-XkbMapNotifyEvent.first_key_sym 46
-XkbMapNotifyEvent.first_key_act 47
-XkbMapNotifyEvent.first_key_behavior 48
-XkbMapNotifyEvent.first_key_explicit 49
-XkbMapNotifyEvent.first_modmap_key 50
-XkbMapNotifyEvent.first_vmodmap_key 51
-XkbMapNotifyEvent.num_key_syms 52
-XkbMapNotifyEvent.num_key_acts 56
-XkbMapNotifyEvent.num_key_behaviors 60
-XkbMapNotifyEvent.num_key_explicit 64
-XkbMapNotifyEvent.num_modmap_keys 68
-XkbMapNotifyEvent.num_vmodmap_keys 72
-XkbMapNotifyEvent.vmods 76
-XkbMapNotifyEvent 80
-XGCValues.function 0
-XGCValues.plane_mask 4
-XGCValues.foreground 8
-XGCValues.background 12
-XGCValues.line_width 16
-XGCValues.line_style 20
-XGCValues.cap_style 24
-XGCValues.join_style 28
-XGCValues.fill_style 32
-XGCValues.fill_rule 36
-XGCValues.arc_mode 40
-XGCValues.tile 44
-XGCValues.stipple 48
-XGCValues.ts_x_origin 52
-XGCValues.ts_y_origin 56
-XGCValues.font 60
-XGCValues.subwindow_mode 64
-XGCValues.graphics_exposures 68
-XGCValues.clip_x_origin 72
-XGCValues.clip_y_origin 76
-XGCValues.clip_mask 80
-XGCValues.dash_offset 84
-XGCValues.dashes 88
-XGCValues 92
-XFocusChangeEvent.type 0
-XFocusChangeEvent.serial 4
-XFocusChangeEvent.send_event 8
-XFocusChangeEvent.display 12
-XFocusChangeEvent.window 16
-XFocusChangeEvent.mode 20
-XFocusChangeEvent.detail 24
-XFocusChangeEvent 28
-XPixmapFormatValues.depth 0
-XPixmapFormatValues.bits_per_pixel 4
-XPixmapFormatValues.scanline_pad 8
-XPixmapFormatValues 12
-XMapEvent.type 0
-XMapEvent.serial 4
-XMapEvent.send_event 8
-XMapEvent.display 12
-XMapEvent.event 16
-XMapEvent.window 20
-XMapEvent.override_redirect 24
-XMapEvent 28
-XkbBellNotifyEvent.type 0
-XkbBellNotifyEvent.serial 4
-XkbBellNotifyEvent.send_event 8
-XkbBellNotifyEvent.display 12
-XkbBellNotifyEvent.time 16
-XkbBellNotifyEvent.xkb_type 20
-XkbBellNotifyEvent.device 24
-XkbBellNotifyEvent.percent 28
-XkbBellNotifyEvent.pitch 32
-XkbBellNotifyEvent.duration 36
-XkbBellNotifyEvent.bell_class 40
-XkbBellNotifyEvent.bell_id 44
-XkbBellNotifyEvent.name 48
-XkbBellNotifyEvent.window 52
-XkbBellNotifyEvent.event_only 56
-XkbBellNotifyEvent 60
-XIMStringConversionText.length 0
-XIMStringConversionText.feedback 4
-XIMStringConversionText.encoding_is_wchar 8
-XIMStringConversionText.string 12
-XIMStringConversionText 16
-XKeyboardState.key_click_percent 0
-XKeyboardState.bell_percent 4
-XKeyboardState.bell_pitch 8
-XKeyboardState.bell_duration 12
-XKeyboardState.led_mask 16
-XKeyboardState.global_auto_repeat 20
-XKeyboardState.auto_repeats 24
-XKeyboardState 56
-XkbEvent.type 0
-XkbEvent.any 0
-XkbEvent.new_kbd 0
-XkbEvent.map 0
-XkbEvent.state 0
-XkbEvent.ctrls 0
-XkbEvent.indicators 0
-XkbEvent.names 0
-XkbEvent.compat 0
-XkbEvent.bell 0
-XkbEvent.message 0
-XkbEvent.accessx 0
-XkbEvent.device 0
-XkbEvent.core 0
-XkbEvent 96
-XPoint.x 0
-XPoint.y 2
-XPoint 4
-XSegment.x1 0
-XSegment.y1 2
-XSegment.x2 4
-XSegment.y2 6
-XSegment 8
-XIconSize.min_width 0
-XIconSize.min_height 4
-XIconSize.max_width 8
-XIconSize.max_height 12
-XIconSize.width_inc 16
-XIconSize.height_inc 20
-XIconSize 24
-XIMCallback.client_data 0
-XIMCallback.callback 4
-XIMCallback 8
-XConfigureEvent.type 0
-XConfigureEvent.serial 4
-XConfigureEvent.send_event 8
-XConfigureEvent.display 12
-XConfigureEvent.event 16
-XConfigureEvent.window 20
-XConfigureEvent.x 24
-XConfigureEvent.y 28
-XConfigureEvent.width 32
-XConfigureEvent.height 36
-XConfigureEvent.border_width 40
-XConfigureEvent.above 44
-XConfigureEvent.override_redirect 48
-XConfigureEvent 52
-XRectangle.x 0
-XRectangle.y 2
-XRectangle.width 4
-XRectangle.height 6
-XRectangle 8
-XkbNamesNotifyEvent.type 0
-XkbNamesNotifyEvent.serial 4
-XkbNamesNotifyEvent.send_event 8
-XkbNamesNotifyEvent.display 12
-XkbNamesNotifyEvent.time 16
-XkbNamesNotifyEvent.xkb_type 20
-XkbNamesNotifyEvent.device 24
-XkbNamesNotifyEvent.changed 28
-XkbNamesNotifyEvent.first_type 32
-XkbNamesNotifyEvent.num_types 36
-XkbNamesNotifyEvent.first_lvl 40
-XkbNamesNotifyEvent.num_lvls 44
-XkbNamesNotifyEvent.num_aliases 48
-XkbNamesNotifyEvent.num_radio_groups 52
-XkbNamesNotifyEvent.changed_vmods 56
-XkbNamesNotifyEvent.changed_groups 60
-XkbNamesNotifyEvent.changed_indicators 64
-XkbNamesNotifyEvent.first_key 68
-XkbNamesNotifyEvent.num_keys 72
-XkbNamesNotifyEvent 76
-XCreateWindowEvent.type 0
-XCreateWindowEvent.serial 4
-XCreateWindowEvent.send_event 8
-XCreateWindowEvent.display 12
-XCreateWindowEvent.parent 16
-XCreateWindowEvent.window 20
-XCreateWindowEvent.x 24
-XCreateWindowEvent.y 28
-XCreateWindowEvent.width 32
-XCreateWindowEvent.height 36
-XCreateWindowEvent.border_width 40
-XCreateWindowEvent.override_redirect 44
-XCreateWindowEvent 48
-XVisibilityEvent.type 0
-XVisibilityEvent.serial 4
-XVisibilityEvent.send_event 8
-XVisibilityEvent.display 12
-XVisibilityEvent.window 16
-XVisibilityEvent.state 20
-XVisibilityEvent 24
-XWMHints.flags 0
-XWMHints.initial_state 8
-XWMHints.icon_pixmap 12
-XWMHints.icon_window 16
-XWMHints.icon_x 20
-XWMHints.icon_y 24
-XWMHints.icon_mask 28
-XWMHints.input 4
-XWMHints.window_group 32
-XWMHints 36
-XCrossingEvent.type 0
-XCrossingEvent.serial 4
-XCrossingEvent.send_event 8
-XCrossingEvent.display 12
-XCrossingEvent.window 16
-XCrossingEvent.root 20
-XCrossingEvent.subwindow 24
-XCrossingEvent.time 28
-XCrossingEvent.x 32
-XCrossingEvent.y 36
-XCrossingEvent.x_root 40
-XCrossingEvent.y_root 44
-XCrossingEvent.mode 48
-XCrossingEvent.detail 52
-XCrossingEvent.same_screen 56
-XCrossingEvent.focus 60
-XCrossingEvent.state 64
-XCrossingEvent 68
-XSelectionRequestEvent.type 0
-XSelectionRequestEvent.serial 4
-XSelectionRequestEvent.send_event 8
-XSelectionRequestEvent.display 12
-XSelectionRequestEvent.owner 16
-XSelectionRequestEvent.requestor 20
-XSelectionRequestEvent.selection 24
-XSelectionRequestEvent.target 28
-XSelectionRequestEvent.property 32
-XSelectionRequestEvent.time 36
-XSelectionRequestEvent 40
-XNoExposeEvent.type 0
-XNoExposeEvent.serial 4
-XNoExposeEvent.send_event 8
-XNoExposeEvent.display 12
-XNoExposeEvent.drawable 16
-XNoExposeEvent.major_code 20
-XNoExposeEvent.minor_code 24
-XNoExposeEvent 28
-XHostAddress.family 0
-XHostAddress.length 4
-XHostAddress.address 8
-XHostAddress 12
-XColormapEvent.type 0
-XColormapEvent.serial 4
-XColormapEvent.send_event 8
-XColormapEvent.display 12
-XColormapEvent.window 16
-XColormapEvent.colormap 20
-XColormapEvent.new 24
-XColormapEvent.state 28
-XColormapEvent 32
-ColorEntry.r 0
-ColorEntry.g 1
-ColorEntry.b 2
-ColorEntry.flags 3
-ColorEntry 4
-XResizeRequestEvent.type 0
-XResizeRequestEvent.serial 4
-XResizeRequestEvent.send_event 8
-XResizeRequestEvent.display 12
-XResizeRequestEvent.window 16
-XResizeRequestEvent.width 20
-XResizeRequestEvent.height 24
-XResizeRequestEvent 28
-Depth.depth 0
-Depth.nvisuals 4
-Depth.visuals 8
-Depth 12
-XPropertyEvent.type 0
-XPropertyEvent.serial 4
-XPropertyEvent.send_event 8
-XPropertyEvent.display 12
-XPropertyEvent.window 16
-XPropertyEvent.atom 20
-XPropertyEvent.time 24
-XPropertyEvent.state 28
-XPropertyEvent 32
-XDestroyWindowEvent.type 0
-XDestroyWindowEvent.serial 4
-XDestroyWindowEvent.send_event 8
-XDestroyWindowEvent.display 12
-XDestroyWindowEvent.event 16
-XDestroyWindowEvent.window 20
-XDestroyWindowEvent 24
-XStandardColormap.colormap 0
-XStandardColormap.red_max 4
-XStandardColormap.red_mult 8
-XStandardColormap.green_max 12
-XStandardColormap.green_mult 16
-XStandardColormap.blue_max 20
-XStandardColormap.blue_mult 24
-XStandardColormap.base_pixel 28
-XStandardColormap.visualid 32
-XStandardColormap.killid 36
-XStandardColormap 40
-XComposeStatus.compose_ptr 0
-XComposeStatus.chars_matched 4
-XComposeStatus 8
-AwtGraphicsConfigData.awt_depth 0
-AwtGraphicsConfigData.awt_cmap 4
-AwtGraphicsConfigData.awt_visInfo 8
-AwtGraphicsConfigData.awt_num_colors 48
-AwtGraphicsConfigData.awtImage 52
-AwtGraphicsConfigData.AwtColorMatch 56
-AwtGraphicsConfigData.monoImage 60
-AwtGraphicsConfigData.monoPixmap 64
-AwtGraphicsConfigData.monoPixmapWidth 68
-AwtGraphicsConfigData.monoPixmapHeight 72
-AwtGraphicsConfigData.monoPixmapGC 76
-AwtGraphicsConfigData.pixelStride 80
-AwtGraphicsConfigData.color_data 84
-AwtGraphicsConfigData.glxInfo 88
-AwtGraphicsConfigData.isTranslucencySupported 92
-AwtGraphicsConfigData.renderPictFormat 96
-AwtGraphicsConfigData 128
-XColor.pixel 0
-XColor.red 4
-XColor.green 6
-XColor.blue 8
-XColor.flags 10
-XColor.pad 11
-XColor 12
-XTextProperty.value 0
-XTextProperty.encoding 4
-XTextProperty.format 8
-XTextProperty.nitems 12
-XTextProperty 16
--- a/jdk/src/solaris/classes/sun/awt/X11/generator/sizes.64 Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1016 +0,0 @@
-long 8
-int 4
-short 2
-ptr 8
-Bool 4
-Atom 8
-Window 8
-XExtData.number 0
-XExtData.next 8
-XExtData.free_private 16
-XExtData.private_data 24
-XExtData 32
-XIMStringConversionCallbackStruct.position 0
-XIMStringConversionCallbackStruct.direction 4
-XIMStringConversionCallbackStruct.operation 8
-XIMStringConversionCallbackStruct.factor 10
-XIMStringConversionCallbackStruct.text 16
-XIMStringConversionCallbackStruct 24
-XkbNewKeyboardNotifyEvent.type 0
-XkbNewKeyboardNotifyEvent.serial 8
-XkbNewKeyboardNotifyEvent.send_event 16
-XkbNewKeyboardNotifyEvent.display 24
-XkbNewKeyboardNotifyEvent.time 32
-XkbNewKeyboardNotifyEvent.xkb_type 40
-XkbNewKeyboardNotifyEvent.device 44
-XkbNewKeyboardNotifyEvent.old_device 48
-XkbNewKeyboardNotifyEvent.min_key_code 52
-XkbNewKeyboardNotifyEvent.max_key_code 56
-XkbNewKeyboardNotifyEvent.old_min_key_code 60
-XkbNewKeyboardNotifyEvent.old_max_key_code 64
-XkbNewKeyboardNotifyEvent.changed 68
-XkbNewKeyboardNotifyEvent.req_major 72
-XkbNewKeyboardNotifyEvent.req_minor 73
-XkbNewKeyboardNotifyEvent 80
-XTimeCoord.time 0
-XTimeCoord.x 8
-XTimeCoord.y 10
-XTimeCoord 16
-XkbCompatMapNotifyEvent.type 0
-XkbCompatMapNotifyEvent.serial 8
-XkbCompatMapNotifyEvent.send_event 16
-XkbCompatMapNotifyEvent.display 24
-XkbCompatMapNotifyEvent.time 32
-XkbCompatMapNotifyEvent.xkb_type 40
-XkbCompatMapNotifyEvent.device 44
-XkbCompatMapNotifyEvent.changed_groups 48
-XkbCompatMapNotifyEvent.first_si 52
-XkbCompatMapNotifyEvent.num_si 56
-XkbCompatMapNotifyEvent.num_total_si 60
-XkbCompatMapNotifyEvent 64
-XIMStatusDrawCallbackStruct.type 0
-XIMStatusDrawCallbackStruct.data 8
-XIMStatusDrawCallbackStruct 16
-XKeyboardControl.key_click_percent 0
-XKeyboardControl.bell_percent 4
-XKeyboardControl.bell_pitch 8
-XKeyboardControl.bell_duration 12
-XKeyboardControl.led 16
-XKeyboardControl.led_mode 20
-XKeyboardControl.key 24
-XKeyboardControl.auto_repeat_mode 28
-XKeyboardControl 32
-XSelectionClearEvent.type 0
-XSelectionClearEvent.serial 8
-XSelectionClearEvent.send_event 16
-XSelectionClearEvent.display 24
-XSelectionClearEvent.window 32
-XSelectionClearEvent.selection 40
-XSelectionClearEvent.time 48
-XSelectionClearEvent 56
-XWindowChanges.x 0
-XWindowChanges.y 4
-XWindowChanges.width 8
-XWindowChanges.height 12
-XWindowChanges.border_width 16
-XWindowChanges.sibling 24
-XWindowChanges.stack_mode 32
-XWindowChanges 40
-XIMPreeditCaretCallbackStruct.position 0
-XIMPreeditCaretCallbackStruct.direction 4
-XIMPreeditCaretCallbackStruct.style 8
-XIMPreeditCaretCallbackStruct 12
-XOMCharSetList.charset_count 0
-XOMCharSetList.charset_list 8
-XOMCharSetList 16
-XOMFontInfo.num_font 0
-XOMFontInfo.font_struct_list 8
-XOMFontInfo.font_name_list 16
-XOMFontInfo 24
-AwtScreenData.numConfigs 0
-AwtScreenData.root 8
-AwtScreenData.whitepixel 16
-AwtScreenData.blackpixel 24
-AwtScreenData.defaultConfig 32
-AwtScreenData.configs 40
-AwtScreenData 48
-XIMHotKeyTrigger.keysym 0
-XIMHotKeyTrigger.modifier 8
-XIMHotKeyTrigger.modifier_mask 12
-XIMHotKeyTrigger 16
-XCirculateEvent.type 0
-XCirculateEvent.serial 8
-XCirculateEvent.send_event 16
-XCirculateEvent.display 24
-XCirculateEvent.event 32
-XCirculateEvent.window 40
-XCirculateEvent.place 48
-XCirculateEvent 56
-Screen.ext_data 0
-Screen.display 8
-Screen.root 16
-Screen.width 24
-Screen.height 28
-Screen.mwidth 32
-Screen.mheight 36
-Screen.ndepths 40
-Screen.depths 48
-Screen.root_depth 56
-Screen.root_visual 64
-Screen.default_gc 72
-Screen.cmap 80
-Screen.white_pixel 88
-Screen.black_pixel 96
-Screen.max_maps 104
-Screen.min_maps 108
-Screen.backing_store 112
-Screen.save_unders 116
-Screen.root_input_mask 120
-Screen 128
-XMapRequestEvent.type 0
-XMapRequestEvent.serial 8
-XMapRequestEvent.send_event 16
-XMapRequestEvent.display 24
-XMapRequestEvent.parent 32
-XMapRequestEvent.window 40
-XMapRequestEvent 48
-XIMText.length 0
-XIMText.feedback 8
-XIMText.encoding_is_wchar 16
-XIMText.string 24
-XIMText 32
-XGraphicsExposeEvent.type 0
-XGraphicsExposeEvent.serial 8
-XGraphicsExposeEvent.send_event 16
-XGraphicsExposeEvent.display 24
-XGraphicsExposeEvent.drawable 32
-XGraphicsExposeEvent.x 40
-XGraphicsExposeEvent.y 44
-XGraphicsExposeEvent.width 48
-XGraphicsExposeEvent.height 52
-XGraphicsExposeEvent.count 56
-XGraphicsExposeEvent.major_code 60
-XGraphicsExposeEvent.minor_code 64
-XGraphicsExposeEvent 72
-XEvent.type 0
-XEvent.xany 0
-XEvent.xkey 0
-XEvent.xbutton 0
-XEvent.xmotion 0
-XEvent.xcrossing 0
-XEvent.xfocus 0
-XEvent.xexpose 0
-XEvent.xgraphicsexpose 0
-XEvent.xnoexpose 0
-XEvent.xvisibility 0
-XEvent.xcreatewindow 0
-XEvent.xdestroywindow 0
-XEvent.xunmap 0
-XEvent.xmap 0
-XEvent.xmaprequest 0
-XEvent.xreparent 0
-XEvent.xconfigure 0
-XEvent.xgravity 0
-XEvent.xresizerequest 0
-XEvent.xconfigurerequest 0
-XEvent.xcirculate 0
-XEvent.xcirculaterequest 0
-XEvent.xproperty 0
-XEvent.xselectionclear 0
-XEvent.xselectionrequest 0
-XEvent.xselection 0
-XEvent.xcolormap 0
-XEvent.xclient 0
-XEvent.xmapping 0
-XEvent.xerror 0
-XEvent.xkeymap 0
-XEvent.pad 0
-XEvent 192
-XRenderDirectFormat.red 0
-XRenderDirectFormat.redMask 2
-XRenderDirectFormat.green 4
-XRenderDirectFormat.greenMask 6
-XRenderDirectFormat.blue 8
-XRenderDirectFormat.blueMask 10
-XRenderDirectFormat.alpha 12
-XRenderDirectFormat.alphaMask 14
-XRenderDirectFormat 16
-ColorData.awt_Colors 0
-ColorData.awt_numICMcolors 8
-ColorData.awt_icmLUT 16
-ColorData.awt_icmLUT2Colors 24
-ColorData.img_grays 32
-ColorData.img_clr_tbl 40
-ColorData.img_oda_red 48
-ColorData.img_oda_green 56
-ColorData.img_oda_blue 64
-ColorData.pGrayInverseLutData 72
-ColorData.screendata 80
-ColorData 88
-XFontStruct.ext_data 0
-XFontStruct.fid 8
-XFontStruct.direction 16
-XFontStruct.min_char_or_byte2 20
-XFontStruct.max_char_or_byte2 24
-XFontStruct.min_byte1 28
-XFontStruct.max_byte1 32
-XFontStruct.all_chars_exist 36
-XFontStruct.n_properties 44
-XFontStruct.properties 48
-XFontStruct.min_bounds 56
-XFontStruct.max_bounds 68
-XFontStruct.per_char 80
-XFontStruct.ascent 88
-XFontStruct.descent 92
-XFontStruct 96
-XExtCodes.extension 0
-XExtCodes.major_opcode 4
-XExtCodes.first_event 8
-XExtCodes.first_error 12
-XExtCodes 16
-XFontSetExtents.max_ink_extent 0
-XFontSetExtents.max_logical_extent 8
-XFontSetExtents 16
-XSelectionEvent.type 0
-XSelectionEvent.serial 8
-XSelectionEvent.send_event 16
-XSelectionEvent.display 24
-XSelectionEvent.requestor 32
-XSelectionEvent.selection 40
-XSelectionEvent.target 48
-XSelectionEvent.property 56
-XSelectionEvent.time 64
-XSelectionEvent 72
-XArc.x 0
-XArc.y 2
-XArc.width 4
-XArc.height 6
-XArc.angle1 8
-XArc.angle2 10
-XArc 12
-XErrorEvent.type 0
-XErrorEvent.display 8
-XErrorEvent.resourceid 16
-XErrorEvent.serial 24
-XErrorEvent.error_code 32
-XErrorEvent.request_code 33
-XErrorEvent.minor_code 34
-XErrorEvent 40
-XConfigureRequestEvent.type 0
-XConfigureRequestEvent.serial 8
-XConfigureRequestEvent.send_event 16
-XConfigureRequestEvent.display 24
-XConfigureRequestEvent.parent 32
-XConfigureRequestEvent.window 40
-XConfigureRequestEvent.x 48
-XConfigureRequestEvent.y 52
-XConfigureRequestEvent.width 56
-XConfigureRequestEvent.height 60
-XConfigureRequestEvent.border_width 64
-XConfigureRequestEvent.above 72
-XConfigureRequestEvent.detail 80
-XConfigureRequestEvent.value_mask 88
-XConfigureRequestEvent 96
-ScreenFormat.ext_data 0
-ScreenFormat.depth 8
-ScreenFormat.bits_per_pixel 12
-ScreenFormat.scanline_pad 16
-ScreenFormat 24
-XButtonEvent.type 0
-XButtonEvent.serial 8
-XButtonEvent.send_event 16
-XButtonEvent.display 24
-XButtonEvent.window 32
-XButtonEvent.root 40
-XButtonEvent.subwindow 48
-XButtonEvent.time 56
-XButtonEvent.x 64
-XButtonEvent.y 68
-XButtonEvent.x_root 72
-XButtonEvent.y_root 76
-XButtonEvent.state 80
-XButtonEvent.button 84
-XButtonEvent.same_screen 88
-XButtonEvent 96
-XFontProp.name 0
-XFontProp.card32 8
-XFontProp 16
-XIMValuesList.count_values 0
-XIMValuesList.supported_values 8
-XIMValuesList 16
-XKeymapEvent.type 0
-XKeymapEvent.serial 8
-XKeymapEvent.send_event 16
-XKeymapEvent.display 24
-XKeymapEvent.window 32
-XKeymapEvent.key_vector 40
-XKeymapEvent 72
-XTextItem16.chars 0
-XTextItem16.nchars 8
-XTextItem16.delta 12
-XTextItem16.font 16
-XTextItem16 24
-XIMPreeditDrawCallbackStruct.caret 0
-XIMPreeditDrawCallbackStruct.chg_first 4
-XIMPreeditDrawCallbackStruct.chg_length 8
-XIMPreeditDrawCallbackStruct.text 16
-XIMPreeditDrawCallbackStruct 24
-XVisualInfo.visual 0
-XVisualInfo.visualid 8
-XVisualInfo.screen 16
-XVisualInfo.depth 20
-XVisualInfo.class 24
-XVisualInfo.red_mask 32
-XVisualInfo.green_mask 40
-XVisualInfo.blue_mask 48
-XVisualInfo.colormap_size 56
-XVisualInfo.bits_per_rgb 60
-XVisualInfo 64
-XkbControlsNotifyEvent.type 0
-XkbControlsNotifyEvent.serial 8
-XkbControlsNotifyEvent.send_event 16
-XkbControlsNotifyEvent.display 24
-XkbControlsNotifyEvent.time 32
-XkbControlsNotifyEvent.xkb_type 40
-XkbControlsNotifyEvent.device 44
-XkbControlsNotifyEvent.changed_ctrls 48
-XkbControlsNotifyEvent.enabled_ctrls 52
-XkbControlsNotifyEvent.enabled_ctrl_changes 56
-XkbControlsNotifyEvent.num_groups 60
-XkbControlsNotifyEvent.keycode 64
-XkbControlsNotifyEvent.event_type 65
-XkbControlsNotifyEvent.req_major 66
-XkbControlsNotifyEvent.req_minor 67
-XkbControlsNotifyEvent 72
-PropMwmHints.flags 0
-PropMwmHints.functions 8
-PropMwmHints.decorations 16
-PropMwmHints.inputMode 24
-PropMwmHints.status 32
-PropMwmHints 40
-XClientMessageEvent.type 0
-XClientMessageEvent.serial 8
-XClientMessageEvent.send_event 16
-XClientMessageEvent.display 24
-XClientMessageEvent.window 32
-XClientMessageEvent.message_type 40
-XClientMessageEvent.format 48
-XClientMessageEvent.data 56
-XClientMessageEvent 96
-XAnyEvent.type 0
-XAnyEvent.serial 8
-XAnyEvent.send_event 16
-XAnyEvent.display 24
-XAnyEvent.window 32
-XAnyEvent 40
-XkbIndicatorNotifyEvent.type 0
-XkbIndicatorNotifyEvent.serial 8
-XkbIndicatorNotifyEvent.send_event 16
-XkbIndicatorNotifyEvent.display 24
-XkbIndicatorNotifyEvent.time 32
-XkbIndicatorNotifyEvent.xkb_type 40
-XkbIndicatorNotifyEvent.device 44
-XkbIndicatorNotifyEvent.changed 48
-XkbIndicatorNotifyEvent.state 52
-XkbIndicatorNotifyEvent 56
-XIMPreeditStateNotifyCallbackStruct.state 0
-XIMPreeditStateNotifyCallbackStruct 8
-XkbAnyEvent.type 0
-XkbAnyEvent.serial 8
-XkbAnyEvent.send_event 16
-XkbAnyEvent.display 24
-XkbAnyEvent.time 32
-XkbAnyEvent.xkb_type 40
-XkbAnyEvent.device 44
-XkbAnyEvent 48
-XMotionEvent.type 0
-XMotionEvent.serial 8
-XMotionEvent.send_event 16
-XMotionEvent.display 24
-XMotionEvent.window 32
-XMotionEvent.root 40
-XMotionEvent.subwindow 48
-XMotionEvent.time 56
-XMotionEvent.x 64
-XMotionEvent.y 68
-XMotionEvent.x_root 72
-XMotionEvent.y_root 76
-XMotionEvent.state 80
-XMotionEvent.is_hint 84
-XMotionEvent.same_screen 88
-XMotionEvent 96
-XIMHotKeyTriggers.num_hot_key 0
-XIMHotKeyTriggers.key 8
-XIMHotKeyTriggers 16
-XIMStyles.count_styles 0
-XIMStyles.supported_styles 8
-XIMStyles 16
-XkbExtensionDeviceNotifyEvent.type 0
-XkbExtensionDeviceNotifyEvent.serial 8
-XkbExtensionDeviceNotifyEvent.send_event 16
-XkbExtensionDeviceNotifyEvent.display 24
-XkbExtensionDeviceNotifyEvent.time 32
-XkbExtensionDeviceNotifyEvent.xkb_type 40
-XkbExtensionDeviceNotifyEvent.device 44
-XkbExtensionDeviceNotifyEvent.reason 48
-XkbExtensionDeviceNotifyEvent.supported 52
-XkbExtensionDeviceNotifyEvent.unsupported 56
-XkbExtensionDeviceNotifyEvent.first_btn 60
-XkbExtensionDeviceNotifyEvent.num_btns 64
-XkbExtensionDeviceNotifyEvent.leds_defined 68
-XkbExtensionDeviceNotifyEvent.led_state 72
-XkbExtensionDeviceNotifyEvent.led_class 76
-XkbExtensionDeviceNotifyEvent.led_id 80
-XkbExtensionDeviceNotifyEvent 88
-XwcTextItem.chars 0
-XwcTextItem.nchars 8
-XwcTextItem.delta 12
-XwcTextItem.font_set 16
-XwcTextItem 24
-XClassHint.res_name 0
-XClassHint.res_class 8
-XClassHint 16
-XChar2b.byte1 0
-XChar2b.byte2 1
-XChar2b 2
-XSetWindowAttributes.background_pixmap 0
-XSetWindowAttributes.background_pixel 8
-XSetWindowAttributes.border_pixmap 16
-XSetWindowAttributes.border_pixel 24
-XSetWindowAttributes.bit_gravity 32
-XSetWindowAttributes.win_gravity 36
-XSetWindowAttributes.backing_store 40
-XSetWindowAttributes.backing_planes 48
-XSetWindowAttributes.backing_pixel 56
-XSetWindowAttributes.save_under 64
-XSetWindowAttributes.event_mask 72
-XSetWindowAttributes.do_not_propagate_mask 80
-XSetWindowAttributes.override_redirect 88
-XSetWindowAttributes.colormap 96
-XSetWindowAttributes.cursor 104
-XSetWindowAttributes 112
-XRenderPictFormat.id 0
-XRenderPictFormat.type 8
-XRenderPictFormat.depth 12
-XRenderPictFormat.direct 16
-XRenderPictFormat.colormap 32
-XRenderPictFormat 40
-XReparentEvent.type 0
-XReparentEvent.serial 8
-XReparentEvent.send_event 16
-XReparentEvent.display 24
-XReparentEvent.event 32
-XReparentEvent.window 40
-XReparentEvent.parent 48
-XReparentEvent.x 56
-XReparentEvent.y 60
-XReparentEvent.override_redirect 64
-XReparentEvent 72
-XCirculateRequestEvent.type 0
-XCirculateRequestEvent.serial 8
-XCirculateRequestEvent.send_event 16
-XCirculateRequestEvent.display 24
-XCirculateRequestEvent.parent 32
-XCirculateRequestEvent.window 40
-XCirculateRequestEvent.place 48
-XCirculateRequestEvent 56
-XImage.width 0
-XImage.height 4
-XImage.xoffset 8
-XImage.format 12
-XImage.data 16
-XImage.byte_order 24
-XImage.bitmap_unit 28
-XImage.bitmap_bit_order 32
-XImage.bitmap_pad 36
-XImage.depth 40
-XImage.bytes_per_line 44
-XImage.bits_per_pixel 48
-XImage.red_mask 56
-XImage.green_mask 64
-XImage.blue_mask 72
-XImage.obdata 80
-XImage.f.create_image 88
-XImage.f.destroy_image 96
-XImage.f.get_pixel 104
-XImage.f.put_pixel 112
-XImage.f.sub_image 120
-XImage.f.add_pixel 128
-XImage 136
-XKeyEvent.type 0
-XKeyEvent.serial 8
-XKeyEvent.send_event 16
-XKeyEvent.display 24
-XKeyEvent.window 32
-XKeyEvent.root 40
-XKeyEvent.subwindow 48
-XKeyEvent.time 56
-XKeyEvent.x 64
-XKeyEvent.y 68
-XKeyEvent.x_root 72
-XKeyEvent.y_root 76
-XKeyEvent.state 80
-XKeyEvent.keycode 84
-XKeyEvent.same_screen 88
-XKeyEvent 96
-XkbActionMessageEvent.type 0
-XkbActionMessageEvent.serial 8
-XkbActionMessageEvent.send_event 16
-XkbActionMessageEvent.display 24
-XkbActionMessageEvent.time 32
-XkbActionMessageEvent.xkb_type 40
-XkbActionMessageEvent.device 44
-XkbActionMessageEvent.keycode 48
-XkbActionMessageEvent.press 52
-XkbActionMessageEvent.key_event_follows 56
-XkbActionMessageEvent.group 60
-XkbActionMessageEvent.mods 64
-XkbActionMessageEvent.message 68
-XkbActionMessageEvent 80
-XdbeSwapInfo.swap_window 0
-XdbeSwapInfo.swap_action 8
-XdbeSwapInfo 16
-XTextItem.chars 0
-XTextItem.nchars 8
-XTextItem.delta 12
-XTextItem.font 16
-XTextItem 24
-XModifierKeymap.max_keypermod 0
-XModifierKeymap.modifiermap 8
-XModifierKeymap 16
-XCharStruct.lbearing 0
-XCharStruct.rbearing 2
-XCharStruct.width 4
-XCharStruct.ascent 6
-XCharStruct.descent 8
-XCharStruct.attributes 10
-XCharStruct 12
-XGravityEvent.type 0
-XGravityEvent.serial 8
-XGravityEvent.send_event 16
-XGravityEvent.display 24
-XGravityEvent.event 32
-XGravityEvent.window 40
-XGravityEvent.x 48
-XGravityEvent.y 52
-XGravityEvent 56
-Visual.ext_data 0
-Visual.visualid 8
-Visual.class 16
-Visual.red_mask 24
-Visual.green_mask 32
-Visual.blue_mask 40
-Visual.bits_per_rgb 48
-Visual.map_entries 52
-Visual 56
-XOMOrientation.num_orientation 0
-XOMOrientation.orientation 8
-XOMOrientation 16
-XkbAccessXNotifyEvent.type 0
-XkbAccessXNotifyEvent.serial 8
-XkbAccessXNotifyEvent.send_event 16
-XkbAccessXNotifyEvent.display 24
-XkbAccessXNotifyEvent.time 32
-XkbAccessXNotifyEvent.xkb_type 40
-XkbAccessXNotifyEvent.device 44
-XkbAccessXNotifyEvent.detail 48
-XkbAccessXNotifyEvent.keycode 52
-XkbAccessXNotifyEvent.sk_delay 56
-XkbAccessXNotifyEvent.debounce_delay 60
-XkbAccessXNotifyEvent 64
-XWindowAttributes.x 0
-XWindowAttributes.y 4
-XWindowAttributes.width 8
-XWindowAttributes.height 12
-XWindowAttributes.border_width 16
-XWindowAttributes.depth 20
-XWindowAttributes.visual 24
-XWindowAttributes.root 32
-XWindowAttributes.class 40
-XWindowAttributes.bit_gravity 44
-XWindowAttributes.win_gravity 48
-XWindowAttributes.backing_store 52
-XWindowAttributes.backing_planes 56
-XWindowAttributes.backing_pixel 64
-XWindowAttributes.save_under 72
-XWindowAttributes.colormap 80
-XWindowAttributes.map_installed 88
-XWindowAttributes.map_state 92
-XWindowAttributes.all_event_masks 96
-XWindowAttributes.your_event_mask 104
-XWindowAttributes.do_not_propagate_mask 112
-XWindowAttributes.override_redirect 120
-XWindowAttributes.screen 128
-XWindowAttributes 136
-XmbTextItem.chars 0
-XmbTextItem.nchars 8
-XmbTextItem.delta 12
-XmbTextItem.font_set 16
-XmbTextItem 24
-XMappingEvent.type 0
-XMappingEvent.serial 8
-XMappingEvent.send_event 16
-XMappingEvent.display 24
-XMappingEvent.window 32
-XMappingEvent.request 40
-XMappingEvent.first_keycode 44
-XMappingEvent.count 48
-XMappingEvent 56
-XSizeHints.flags 0
-XSizeHints.x 8
-XSizeHints.y 12
-XSizeHints.width 16
-XSizeHints.height 20
-XSizeHints.min_width 24
-XSizeHints.min_height 28
-XSizeHints.max_width 32
-XSizeHints.max_height 36
-XSizeHints.width_inc 40
-XSizeHints.height_inc 44
-XSizeHints.min_aspect.x 48
-XSizeHints.min_aspect.y 52
-XSizeHints.max_aspect.x 56
-XSizeHints.max_aspect.y 60
-XSizeHints.base_width 64
-XSizeHints.base_height 68
-XSizeHints.win_gravity 72
-XSizeHints 80
-XUnmapEvent.type 0
-XUnmapEvent.serial 8
-XUnmapEvent.send_event 16
-XUnmapEvent.display 24
-XUnmapEvent.event 32
-XUnmapEvent.window 40
-XUnmapEvent.from_configure 48
-XUnmapEvent 56
-awtImageData.Depth 0
-awtImageData.wsImageFormat 4
-awtImageData.clrdata 16
-awtImageData.convert 48
-awtImageData 560
-XkbStateNotifyEvent.type 0
-XkbStateNotifyEvent.serial 8
-XkbStateNotifyEvent.send_event 16
-XkbStateNotifyEvent.display 24
-XkbStateNotifyEvent.time 32
-XkbStateNotifyEvent.xkb_type 40
-XkbStateNotifyEvent.device 44
-XkbStateNotifyEvent.changed 48
-XkbStateNotifyEvent.group 52
-XkbStateNotifyEvent.base_group 56
-XkbStateNotifyEvent.latched_group 60
-XkbStateNotifyEvent.locked_group 64
-XkbStateNotifyEvent.mods 68
-XkbStateNotifyEvent.base_mods 72
-XkbStateNotifyEvent.latched_mods 76
-XkbStateNotifyEvent.locked_mods 80
-XkbStateNotifyEvent.compat_state 84
-XkbStateNotifyEvent.grab_mods 88
-XkbStateNotifyEvent.compat_grab_mods 89
-XkbStateNotifyEvent.lookup_mods 90
-XkbStateNotifyEvent.compat_lookup_mods 91
-XkbStateNotifyEvent.ptr_buttons 92
-XkbStateNotifyEvent.keycode 96
-XkbStateNotifyEvent.event_type 97
-XkbStateNotifyEvent.req_major 98
-XkbStateNotifyEvent.req_minor 99
-XkbStateNotifyEvent 104
-XExposeEvent.type 0
-XExposeEvent.serial 8
-XExposeEvent.send_event 16
-XExposeEvent.display 24
-XExposeEvent.window 32
-XExposeEvent.x 40
-XExposeEvent.y 44
-XExposeEvent.width 48
-XExposeEvent.height 52
-XExposeEvent.count 56
-XExposeEvent 64
-XkbMapNotifyEvent.type 0
-XkbMapNotifyEvent.serial 8
-XkbMapNotifyEvent.send_event 16
-XkbMapNotifyEvent.display 24
-XkbMapNotifyEvent.time 32
-XkbMapNotifyEvent.xkb_type 40
-XkbMapNotifyEvent.device 44
-XkbMapNotifyEvent.changed 48
-XkbMapNotifyEvent.flags 52
-XkbMapNotifyEvent.first_type 56
-XkbMapNotifyEvent.num_types 60
-XkbMapNotifyEvent.min_key_code 64
-XkbMapNotifyEvent.max_key_code 65
-XkbMapNotifyEvent.first_key_sym 66
-XkbMapNotifyEvent.first_key_act 67
-XkbMapNotifyEvent.first_key_behavior 68
-XkbMapNotifyEvent.first_key_explicit 69
-XkbMapNotifyEvent.first_modmap_key 70
-XkbMapNotifyEvent.first_vmodmap_key 71
-XkbMapNotifyEvent.num_key_syms 72
-XkbMapNotifyEvent.num_key_acts 76
-XkbMapNotifyEvent.num_key_behaviors 80
-XkbMapNotifyEvent.num_key_explicit 84
-XkbMapNotifyEvent.num_modmap_keys 88
-XkbMapNotifyEvent.num_vmodmap_keys 92
-XkbMapNotifyEvent.vmods 96
-XkbMapNotifyEvent 104
-XGCValues.function 0
-XGCValues.plane_mask 8
-XGCValues.foreground 16
-XGCValues.background 24
-XGCValues.line_width 32
-XGCValues.line_style 36
-XGCValues.cap_style 40
-XGCValues.join_style 44
-XGCValues.fill_style 48
-XGCValues.fill_rule 52
-XGCValues.arc_mode 56
-XGCValues.tile 64
-XGCValues.stipple 72
-XGCValues.ts_x_origin 80
-XGCValues.ts_y_origin 84
-XGCValues.font 88
-XGCValues.subwindow_mode 96
-XGCValues.graphics_exposures 100
-XGCValues.clip_x_origin 104
-XGCValues.clip_y_origin 108
-XGCValues.clip_mask 112
-XGCValues.dash_offset 120
-XGCValues.dashes 124
-XGCValues 128
-XFocusChangeEvent.type 0
-XFocusChangeEvent.serial 8
-XFocusChangeEvent.send_event 16
-XFocusChangeEvent.display 24
-XFocusChangeEvent.window 32
-XFocusChangeEvent.mode 40
-XFocusChangeEvent.detail 44
-XFocusChangeEvent 48
-XPixmapFormatValues.depth 0
-XPixmapFormatValues.bits_per_pixel 4
-XPixmapFormatValues.scanline_pad 8
-XPixmapFormatValues 12
-XMapEvent.type 0
-XMapEvent.serial 8
-XMapEvent.send_event 16
-XMapEvent.display 24
-XMapEvent.event 32
-XMapEvent.window 40
-XMapEvent.override_redirect 48
-XMapEvent 56
-XkbBellNotifyEvent.type 0
-XkbBellNotifyEvent.serial 8
-XkbBellNotifyEvent.send_event 16
-XkbBellNotifyEvent.display 24
-XkbBellNotifyEvent.time 32
-XkbBellNotifyEvent.xkb_type 40
-XkbBellNotifyEvent.device 44
-XkbBellNotifyEvent.percent 48
-XkbBellNotifyEvent.pitch 52
-XkbBellNotifyEvent.duration 56
-XkbBellNotifyEvent.bell_class 60
-XkbBellNotifyEvent.bell_id 64
-XkbBellNotifyEvent.name 72
-XkbBellNotifyEvent.window 80
-XkbBellNotifyEvent.event_only 88
-XkbBellNotifyEvent 96
-XIMStringConversionText.length 0
-XIMStringConversionText.feedback 8
-XIMStringConversionText.encoding_is_wchar 16
-XIMStringConversionText.string 24
-XIMStringConversionText 32
-XKeyboardState.key_click_percent 0
-XKeyboardState.bell_percent 4
-XKeyboardState.bell_pitch 8
-XKeyboardState.bell_duration 12
-XKeyboardState.led_mask 16
-XKeyboardState.global_auto_repeat 24
-XKeyboardState.auto_repeats 28
-XKeyboardState 64
-XkbEvent.type 0
-XkbEvent.any 0
-XkbEvent.new_kbd 0
-XkbEvent.map 0
-XkbEvent.state 0
-XkbEvent.ctrls 0
-XkbEvent.indicators 0
-XkbEvent.names 0
-XkbEvent.compat 0
-XkbEvent.bell 0
-XkbEvent.message 0
-XkbEvent.accessx 0
-XkbEvent.device 0
-XkbEvent.core 0
-XkbEvent 192
-XPoint.x 0
-XPoint.y 2
-XPoint 4
-XSegment.x1 0
-XSegment.y1 2
-XSegment.x2 4
-XSegment.y2 6
-XSegment 8
-XIconSize.min_width 0
-XIconSize.min_height 4
-XIconSize.max_width 8
-XIconSize.max_height 12
-XIconSize.width_inc 16
-XIconSize.height_inc 20
-XIconSize 24
-XIMCallback.client_data 0
-XIMCallback.callback 8
-XIMCallback 16
-XConfigureEvent.type 0
-XConfigureEvent.serial 8
-XConfigureEvent.send_event 16
-XConfigureEvent.display 24
-XConfigureEvent.event 32
-XConfigureEvent.window 40
-XConfigureEvent.x 48
-XConfigureEvent.y 52
-XConfigureEvent.width 56
-XConfigureEvent.height 60
-XConfigureEvent.border_width 64
-XConfigureEvent.above 72
-XConfigureEvent.override_redirect 80
-XConfigureEvent 88
-XRectangle.x 0
-XRectangle.y 2
-XRectangle.width 4
-XRectangle.height 6
-XRectangle 8
-XkbNamesNotifyEvent.type 0
-XkbNamesNotifyEvent.serial 8
-XkbNamesNotifyEvent.send_event 16
-XkbNamesNotifyEvent.display 24
-XkbNamesNotifyEvent.time 32
-XkbNamesNotifyEvent.xkb_type 40
-XkbNamesNotifyEvent.device 44
-XkbNamesNotifyEvent.changed 48
-XkbNamesNotifyEvent.first_type 52
-XkbNamesNotifyEvent.num_types 56
-XkbNamesNotifyEvent.first_lvl 60
-XkbNamesNotifyEvent.num_lvls 64
-XkbNamesNotifyEvent.num_aliases 68
-XkbNamesNotifyEvent.num_radio_groups 72
-XkbNamesNotifyEvent.changed_vmods 76
-XkbNamesNotifyEvent.changed_groups 80
-XkbNamesNotifyEvent.changed_indicators 84
-XkbNamesNotifyEvent.first_key 88
-XkbNamesNotifyEvent.num_keys 92
-XkbNamesNotifyEvent 96
-XCreateWindowEvent.type 0
-XCreateWindowEvent.serial 8
-XCreateWindowEvent.send_event 16
-XCreateWindowEvent.display 24
-XCreateWindowEvent.parent 32
-XCreateWindowEvent.window 40
-XCreateWindowEvent.x 48
-XCreateWindowEvent.y 52
-XCreateWindowEvent.width 56
-XCreateWindowEvent.height 60
-XCreateWindowEvent.border_width 64
-XCreateWindowEvent.override_redirect 68
-XCreateWindowEvent 72
-XVisibilityEvent.type 0
-XVisibilityEvent.serial 8
-XVisibilityEvent.send_event 16
-XVisibilityEvent.display 24
-XVisibilityEvent.window 32
-XVisibilityEvent.state 40
-XVisibilityEvent 48
-XWMHints.flags 0
-XWMHints.initial_state 12
-XWMHints.icon_pixmap 16
-XWMHints.icon_window 24
-XWMHints.icon_x 32
-XWMHints.icon_y 36
-XWMHints.icon_mask 40
-XWMHints.input 8
-XWMHints.window_group 48
-XWMHints 56
-XCrossingEvent.type 0
-XCrossingEvent.serial 8
-XCrossingEvent.send_event 16
-XCrossingEvent.display 24
-XCrossingEvent.window 32
-XCrossingEvent.root 40
-XCrossingEvent.subwindow 48
-XCrossingEvent.time 56
-XCrossingEvent.x 64
-XCrossingEvent.y 68
-XCrossingEvent.x_root 72
-XCrossingEvent.y_root 76
-XCrossingEvent.mode 80
-XCrossingEvent.detail 84
-XCrossingEvent.same_screen 88
-XCrossingEvent.focus 92
-XCrossingEvent.state 96
-XCrossingEvent 104
-XSelectionRequestEvent.type 0
-XSelectionRequestEvent.serial 8
-XSelectionRequestEvent.send_event 16
-XSelectionRequestEvent.display 24
-XSelectionRequestEvent.owner 32
-XSelectionRequestEvent.requestor 40
-XSelectionRequestEvent.selection 48
-XSelectionRequestEvent.target 56
-XSelectionRequestEvent.property 64
-XSelectionRequestEvent.time 72
-XSelectionRequestEvent 80
-XNoExposeEvent.type 0
-XNoExposeEvent.serial 8
-XNoExposeEvent.send_event 16
-XNoExposeEvent.display 24
-XNoExposeEvent.drawable 32
-XNoExposeEvent.major_code 40
-XNoExposeEvent.minor_code 44
-XNoExposeEvent 48
-XHostAddress.family 0
-XHostAddress.length 4
-XHostAddress.address 8
-XHostAddress 16
-XColormapEvent.type 0
-XColormapEvent.serial 8
-XColormapEvent.send_event 16
-XColormapEvent.display 24
-XColormapEvent.window 32
-XColormapEvent.colormap 40
-XColormapEvent.new 48
-XColormapEvent.state 52
-XColormapEvent 56
-ColorEntry.r 0
-ColorEntry.g 1
-ColorEntry.b 2
-ColorEntry.flags 3
-ColorEntry 4
-XResizeRequestEvent.type 0
-XResizeRequestEvent.serial 8
-XResizeRequestEvent.send_event 16
-XResizeRequestEvent.display 24
-XResizeRequestEvent.window 32
-XResizeRequestEvent.width 40
-XResizeRequestEvent.height 44
-XResizeRequestEvent 48
-Depth.depth 0
-Depth.nvisuals 4
-Depth.visuals 8
-Depth 16
-XPropertyEvent.type 0
-XPropertyEvent.serial 8
-XPropertyEvent.send_event 16
-XPropertyEvent.display 24
-XPropertyEvent.window 32
-XPropertyEvent.atom 40
-XPropertyEvent.time 48
-XPropertyEvent.state 56
-XPropertyEvent 64
-XDestroyWindowEvent.type 0
-XDestroyWindowEvent.serial 8
-XDestroyWindowEvent.send_event 16
-XDestroyWindowEvent.display 24
-XDestroyWindowEvent.event 32
-XDestroyWindowEvent.window 40
-XDestroyWindowEvent 48
-XStandardColormap.colormap 0
-XStandardColormap.red_max 8
-XStandardColormap.red_mult 16
-XStandardColormap.green_max 24
-XStandardColormap.green_mult 32
-XStandardColormap.blue_max 40
-XStandardColormap.blue_mult 48
-XStandardColormap.base_pixel 56
-XStandardColormap.visualid 64
-XStandardColormap.killid 72
-XStandardColormap 80
-XComposeStatus.compose_ptr 0
-XComposeStatus.chars_matched 8
-XComposeStatus 16
-AwtGraphicsConfigData.awt_depth 0
-AwtGraphicsConfigData.awt_cmap 8
-AwtGraphicsConfigData.awt_visInfo 16
-AwtGraphicsConfigData.awt_num_colors 80
-AwtGraphicsConfigData.awtImage 88
-AwtGraphicsConfigData.AwtColorMatch 96
-AwtGraphicsConfigData.monoImage 104
-AwtGraphicsConfigData.monoPixmap 112
-AwtGraphicsConfigData.monoPixmapWidth 120
-AwtGraphicsConfigData.monoPixmapHeight 124
-AwtGraphicsConfigData.monoPixmapGC 128
-AwtGraphicsConfigData.pixelStride 136
-AwtGraphicsConfigData.color_data 144
-AwtGraphicsConfigData.glxInfo 152
-AwtGraphicsConfigData.isTranslucencySupported 160
-AwtGraphicsConfigData.renderPictFormat 168
-AwtGraphicsConfigData 208
-XColor.pixel 0
-XColor.red 8
-XColor.green 10
-XColor.blue 12
-XColor.flags 14
-XColor.pad 15
-XColor 16
-XTextProperty.value 0
-XTextProperty.encoding 8
-XTextProperty.format 16
-XTextProperty.nitems 24
-XTextProperty 32
--- a/jdk/src/solaris/classes/sun/awt/X11/generator/sizes.64-solaris-i386 Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1016 +0,0 @@
-long 8
-int 4
-short 2
-ptr 8
-Bool 4
-Atom 8
-Window 8
-XExtData.number 0
-XExtData.next 8
-XExtData.free_private 16
-XExtData.private_data 24
-XExtData 32
-XIMStringConversionCallbackStruct.position 0
-XIMStringConversionCallbackStruct.direction 4
-XIMStringConversionCallbackStruct.operation 8
-XIMStringConversionCallbackStruct.factor 10
-XIMStringConversionCallbackStruct.text 16
-XIMStringConversionCallbackStruct 24
-XkbNewKeyboardNotifyEvent.type 0
-XkbNewKeyboardNotifyEvent.serial 8
-XkbNewKeyboardNotifyEvent.send_event 16
-XkbNewKeyboardNotifyEvent.display 24
-XkbNewKeyboardNotifyEvent.time 32
-XkbNewKeyboardNotifyEvent.xkb_type 40
-XkbNewKeyboardNotifyEvent.device 44
-XkbNewKeyboardNotifyEvent.old_device 48
-XkbNewKeyboardNotifyEvent.min_key_code 52
-XkbNewKeyboardNotifyEvent.max_key_code 56
-XkbNewKeyboardNotifyEvent.old_min_key_code 60
-XkbNewKeyboardNotifyEvent.old_max_key_code 64
-XkbNewKeyboardNotifyEvent.changed 68
-XkbNewKeyboardNotifyEvent.req_major 72
-XkbNewKeyboardNotifyEvent.req_minor 73
-XkbNewKeyboardNotifyEvent 80
-XTimeCoord.time 0
-XTimeCoord.x 8
-XTimeCoord.y 10
-XTimeCoord 16
-XkbCompatMapNotifyEvent.type 0
-XkbCompatMapNotifyEvent.serial 8
-XkbCompatMapNotifyEvent.send_event 16
-XkbCompatMapNotifyEvent.display 24
-XkbCompatMapNotifyEvent.time 32
-XkbCompatMapNotifyEvent.xkb_type 40
-XkbCompatMapNotifyEvent.device 44
-XkbCompatMapNotifyEvent.changed_groups 48
-XkbCompatMapNotifyEvent.first_si 52
-XkbCompatMapNotifyEvent.num_si 56
-XkbCompatMapNotifyEvent.num_total_si 60
-XkbCompatMapNotifyEvent 64
-XIMStatusDrawCallbackStruct.type 0
-XIMStatusDrawCallbackStruct.data 8
-XIMStatusDrawCallbackStruct 16
-XKeyboardControl.key_click_percent 0
-XKeyboardControl.bell_percent 4
-XKeyboardControl.bell_pitch 8
-XKeyboardControl.bell_duration 12
-XKeyboardControl.led 16
-XKeyboardControl.led_mode 20
-XKeyboardControl.key 24
-XKeyboardControl.auto_repeat_mode 28
-XKeyboardControl 32
-XSelectionClearEvent.type 0
-XSelectionClearEvent.serial 8
-XSelectionClearEvent.send_event 16
-XSelectionClearEvent.display 24
-XSelectionClearEvent.window 32
-XSelectionClearEvent.selection 40
-XSelectionClearEvent.time 48
-XSelectionClearEvent 56
-XWindowChanges.x 0
-XWindowChanges.y 4
-XWindowChanges.width 8
-XWindowChanges.height 12
-XWindowChanges.border_width 16
-XWindowChanges.sibling 24
-XWindowChanges.stack_mode 32
-XWindowChanges 40
-XIMPreeditCaretCallbackStruct.position 0
-XIMPreeditCaretCallbackStruct.direction 4
-XIMPreeditCaretCallbackStruct.style 8
-XIMPreeditCaretCallbackStruct 12
-XOMCharSetList.charset_count 0
-XOMCharSetList.charset_list 8
-XOMCharSetList 16
-XOMFontInfo.num_font 0
-XOMFontInfo.font_struct_list 8
-XOMFontInfo.font_name_list 16
-XOMFontInfo 24
-AwtScreenData.numConfigs 0
-AwtScreenData.root 8
-AwtScreenData.whitepixel 16
-AwtScreenData.blackpixel 24
-AwtScreenData.defaultConfig 32
-AwtScreenData.configs 40
-AwtScreenData 48
-XIMHotKeyTrigger.keysym 0
-XIMHotKeyTrigger.modifier 8
-XIMHotKeyTrigger.modifier_mask 12
-XIMHotKeyTrigger 16
-XCirculateEvent.type 0
-XCirculateEvent.serial 8
-XCirculateEvent.send_event 16
-XCirculateEvent.display 24
-XCirculateEvent.event 32
-XCirculateEvent.window 40
-XCirculateEvent.place 48
-XCirculateEvent 56
-Screen.ext_data 0
-Screen.display 8
-Screen.root 16
-Screen.width 24
-Screen.height 28
-Screen.mwidth 32
-Screen.mheight 36
-Screen.ndepths 40
-Screen.depths 48
-Screen.root_depth 56
-Screen.root_visual 64
-Screen.default_gc 72
-Screen.cmap 80
-Screen.white_pixel 88
-Screen.black_pixel 96
-Screen.max_maps 104
-Screen.min_maps 108
-Screen.backing_store 112
-Screen.save_unders 116
-Screen.root_input_mask 120
-Screen 128
-XMapRequestEvent.type 0
-XMapRequestEvent.serial 8
-XMapRequestEvent.send_event 16
-XMapRequestEvent.display 24
-XMapRequestEvent.parent 32
-XMapRequestEvent.window 40
-XMapRequestEvent 48
-XIMText.length 0
-XIMText.feedback 8
-XIMText.encoding_is_wchar 16
-XIMText.string 24
-XIMText 32
-XGraphicsExposeEvent.type 0
-XGraphicsExposeEvent.serial 8
-XGraphicsExposeEvent.send_event 16
-XGraphicsExposeEvent.display 24
-XGraphicsExposeEvent.drawable 32
-XGraphicsExposeEvent.x 40
-XGraphicsExposeEvent.y 44
-XGraphicsExposeEvent.width 48
-XGraphicsExposeEvent.height 52
-XGraphicsExposeEvent.count 56
-XGraphicsExposeEvent.major_code 60
-XGraphicsExposeEvent.minor_code 64
-XGraphicsExposeEvent 72
-XEvent.type 0
-XEvent.xany 0
-XEvent.xkey 0
-XEvent.xbutton 0
-XEvent.xmotion 0
-XEvent.xcrossing 0
-XEvent.xfocus 0
-XEvent.xexpose 0
-XEvent.xgraphicsexpose 0
-XEvent.xnoexpose 0
-XEvent.xvisibility 0
-XEvent.xcreatewindow 0
-XEvent.xdestroywindow 0
-XEvent.xunmap 0
-XEvent.xmap 0
-XEvent.xmaprequest 0
-XEvent.xreparent 0
-XEvent.xconfigure 0
-XEvent.xgravity 0
-XEvent.xresizerequest 0
-XEvent.xconfigurerequest 0
-XEvent.xcirculate 0
-XEvent.xcirculaterequest 0
-XEvent.xproperty 0
-XEvent.xselectionclear 0
-XEvent.xselectionrequest 0
-XEvent.xselection 0
-XEvent.xcolormap 0
-XEvent.xclient 0
-XEvent.xmapping 0
-XEvent.xerror 0
-XEvent.xkeymap 0
-XEvent.pad 0
-XEvent 192
-XRenderDirectFormat.red 0
-XRenderDirectFormat.redMask 2
-XRenderDirectFormat.green 4
-XRenderDirectFormat.greenMask 6
-XRenderDirectFormat.blue 8
-XRenderDirectFormat.blueMask 10
-XRenderDirectFormat.alpha 12
-XRenderDirectFormat.alphaMask 14
-XRenderDirectFormat 16
-ColorData.awt_Colors 0
-ColorData.awt_numICMcolors 8
-ColorData.awt_icmLUT 16
-ColorData.awt_icmLUT2Colors 24
-ColorData.img_grays 32
-ColorData.img_clr_tbl 40
-ColorData.img_oda_red 48
-ColorData.img_oda_green 56
-ColorData.img_oda_blue 64
-ColorData.pGrayInverseLutData 72
-ColorData.screendata 80
-ColorData 88
-XFontStruct.ext_data 0
-XFontStruct.fid 8
-XFontStruct.direction 16
-XFontStruct.min_char_or_byte2 20
-XFontStruct.max_char_or_byte2 24
-XFontStruct.min_byte1 28
-XFontStruct.max_byte1 32
-XFontStruct.all_chars_exist 36
-XFontStruct.n_properties 44
-XFontStruct.properties 48
-XFontStruct.min_bounds 56
-XFontStruct.max_bounds 68
-XFontStruct.per_char 80
-XFontStruct.ascent 88
-XFontStruct.descent 92
-XFontStruct 96
-XExtCodes.extension 0
-XExtCodes.major_opcode 4
-XExtCodes.first_event 8
-XExtCodes.first_error 12
-XExtCodes 16
-XFontSetExtents.max_ink_extent 0
-XFontSetExtents.max_logical_extent 8
-XFontSetExtents 16
-XSelectionEvent.type 0
-XSelectionEvent.serial 8
-XSelectionEvent.send_event 16
-XSelectionEvent.display 24
-XSelectionEvent.requestor 32
-XSelectionEvent.selection 40
-XSelectionEvent.target 48
-XSelectionEvent.property 56
-XSelectionEvent.time 64
-XSelectionEvent 72
-XArc.x 0
-XArc.y 2
-XArc.width 4
-XArc.height 6
-XArc.angle1 8
-XArc.angle2 10
-XArc 12
-XErrorEvent.type 0
-XErrorEvent.display 8
-XErrorEvent.resourceid 16
-XErrorEvent.serial 24
-XErrorEvent.error_code 32
-XErrorEvent.request_code 33
-XErrorEvent.minor_code 34
-XErrorEvent 40
-XConfigureRequestEvent.type 0
-XConfigureRequestEvent.serial 8
-XConfigureRequestEvent.send_event 16
-XConfigureRequestEvent.display 24
-XConfigureRequestEvent.parent 32
-XConfigureRequestEvent.window 40
-XConfigureRequestEvent.x 48
-XConfigureRequestEvent.y 52
-XConfigureRequestEvent.width 56
-XConfigureRequestEvent.height 60
-XConfigureRequestEvent.border_width 64
-XConfigureRequestEvent.above 72
-XConfigureRequestEvent.detail 80
-XConfigureRequestEvent.value_mask 88
-XConfigureRequestEvent 96
-ScreenFormat.ext_data 0
-ScreenFormat.depth 8
-ScreenFormat.bits_per_pixel 12
-ScreenFormat.scanline_pad 16
-ScreenFormat 24
-XButtonEvent.type 0
-XButtonEvent.serial 8
-XButtonEvent.send_event 16
-XButtonEvent.display 24
-XButtonEvent.window 32
-XButtonEvent.root 40
-XButtonEvent.subwindow 48
-XButtonEvent.time 56
-XButtonEvent.x 64
-XButtonEvent.y 68
-XButtonEvent.x_root 72
-XButtonEvent.y_root 76
-XButtonEvent.state 80
-XButtonEvent.button 84
-XButtonEvent.same_screen 88
-XButtonEvent 96
-XFontProp.name 0
-XFontProp.card32 8
-XFontProp 16
-XIMValuesList.count_values 0
-XIMValuesList.supported_values 8
-XIMValuesList 16
-XKeymapEvent.type 0
-XKeymapEvent.serial 8
-XKeymapEvent.send_event 16
-XKeymapEvent.display 24
-XKeymapEvent.window 32
-XKeymapEvent.key_vector 40
-XKeymapEvent 72
-XTextItem16.chars 0
-XTextItem16.nchars 8
-XTextItem16.delta 12
-XTextItem16.font 16
-XTextItem16 24
-XIMPreeditDrawCallbackStruct.caret 0
-XIMPreeditDrawCallbackStruct.chg_first 4
-XIMPreeditDrawCallbackStruct.chg_length 8
-XIMPreeditDrawCallbackStruct.text 16
-XIMPreeditDrawCallbackStruct 24
-XVisualInfo.visual 0
-XVisualInfo.visualid 8
-XVisualInfo.screen 16
-XVisualInfo.depth 20
-XVisualInfo.class 24
-XVisualInfo.red_mask 32
-XVisualInfo.green_mask 40
-XVisualInfo.blue_mask 48
-XVisualInfo.colormap_size 56
-XVisualInfo.bits_per_rgb 60
-XVisualInfo 64
-XkbControlsNotifyEvent.type 0
-XkbControlsNotifyEvent.serial 8
-XkbControlsNotifyEvent.send_event 16
-XkbControlsNotifyEvent.display 24
-XkbControlsNotifyEvent.time 32
-XkbControlsNotifyEvent.xkb_type 40
-XkbControlsNotifyEvent.device 44
-XkbControlsNotifyEvent.changed_ctrls 48
-XkbControlsNotifyEvent.enabled_ctrls 52
-XkbControlsNotifyEvent.enabled_ctrl_changes 56
-XkbControlsNotifyEvent.num_groups 60
-XkbControlsNotifyEvent.keycode 64
-XkbControlsNotifyEvent.event_type 65
-XkbControlsNotifyEvent.req_major 66
-XkbControlsNotifyEvent.req_minor 67
-XkbControlsNotifyEvent 72
-PropMwmHints.flags 0
-PropMwmHints.functions 8
-PropMwmHints.decorations 16
-PropMwmHints.inputMode 24
-PropMwmHints.status 32
-PropMwmHints 40
-XClientMessageEvent.type 0
-XClientMessageEvent.serial 8
-XClientMessageEvent.send_event 16
-XClientMessageEvent.display 24
-XClientMessageEvent.window 32
-XClientMessageEvent.message_type 40
-XClientMessageEvent.format 48
-XClientMessageEvent.data 56
-XClientMessageEvent 96
-XAnyEvent.type 0
-XAnyEvent.serial 8
-XAnyEvent.send_event 16
-XAnyEvent.display 24
-XAnyEvent.window 32
-XAnyEvent 40
-XkbIndicatorNotifyEvent.type 0
-XkbIndicatorNotifyEvent.serial 8
-XkbIndicatorNotifyEvent.send_event 16
-XkbIndicatorNotifyEvent.display 24
-XkbIndicatorNotifyEvent.time 32
-XkbIndicatorNotifyEvent.xkb_type 40
-XkbIndicatorNotifyEvent.device 44
-XkbIndicatorNotifyEvent.changed 48
-XkbIndicatorNotifyEvent.state 52
-XkbIndicatorNotifyEvent 56
-XIMPreeditStateNotifyCallbackStruct.state 0
-XIMPreeditStateNotifyCallbackStruct 8
-XkbAnyEvent.type 0
-XkbAnyEvent.serial 8
-XkbAnyEvent.send_event 16
-XkbAnyEvent.display 24
-XkbAnyEvent.time 32
-XkbAnyEvent.xkb_type 40
-XkbAnyEvent.device 44
-XkbAnyEvent 48
-XMotionEvent.type 0
-XMotionEvent.serial 8
-XMotionEvent.send_event 16
-XMotionEvent.display 24
-XMotionEvent.window 32
-XMotionEvent.root 40
-XMotionEvent.subwindow 48
-XMotionEvent.time 56
-XMotionEvent.x 64
-XMotionEvent.y 68
-XMotionEvent.x_root 72
-XMotionEvent.y_root 76
-XMotionEvent.state 80
-XMotionEvent.is_hint 84
-XMotionEvent.same_screen 88
-XMotionEvent 96
-XIMHotKeyTriggers.num_hot_key 0
-XIMHotKeyTriggers.key 8
-XIMHotKeyTriggers 16
-XIMStyles.count_styles 0
-XIMStyles.supported_styles 8
-XIMStyles 16
-XkbExtensionDeviceNotifyEvent.type 0
-XkbExtensionDeviceNotifyEvent.serial 8
-XkbExtensionDeviceNotifyEvent.send_event 16
-XkbExtensionDeviceNotifyEvent.display 24
-XkbExtensionDeviceNotifyEvent.time 32
-XkbExtensionDeviceNotifyEvent.xkb_type 40
-XkbExtensionDeviceNotifyEvent.device 44
-XkbExtensionDeviceNotifyEvent.reason 48
-XkbExtensionDeviceNotifyEvent.supported 52
-XkbExtensionDeviceNotifyEvent.unsupported 56
-XkbExtensionDeviceNotifyEvent.first_btn 60
-XkbExtensionDeviceNotifyEvent.num_btns 64
-XkbExtensionDeviceNotifyEvent.leds_defined 68
-XkbExtensionDeviceNotifyEvent.led_state 72
-XkbExtensionDeviceNotifyEvent.led_class 76
-XkbExtensionDeviceNotifyEvent.led_id 80
-XkbExtensionDeviceNotifyEvent 88
-XwcTextItem.chars 0
-XwcTextItem.nchars 8
-XwcTextItem.delta 12
-XwcTextItem.font_set 16
-XwcTextItem 24
-XClassHint.res_name 0
-XClassHint.res_class 8
-XClassHint 16
-XChar2b.byte1 0
-XChar2b.byte2 1
-XChar2b 2
-XSetWindowAttributes.background_pixmap 0
-XSetWindowAttributes.background_pixel 8
-XSetWindowAttributes.border_pixmap 16
-XSetWindowAttributes.border_pixel 24
-XSetWindowAttributes.bit_gravity 32
-XSetWindowAttributes.win_gravity 36
-XSetWindowAttributes.backing_store 40
-XSetWindowAttributes.backing_planes 48
-XSetWindowAttributes.backing_pixel 56
-XSetWindowAttributes.save_under 64
-XSetWindowAttributes.event_mask 72
-XSetWindowAttributes.do_not_propagate_mask 80
-XSetWindowAttributes.override_redirect 88
-XSetWindowAttributes.colormap 96
-XSetWindowAttributes.cursor 104
-XSetWindowAttributes 112
-XRenderPictFormat.id 0
-XRenderPictFormat.type 8
-XRenderPictFormat.depth 12
-XRenderPictFormat.direct 16
-XRenderPictFormat.colormap 32
-XRenderPictFormat 40
-XReparentEvent.type 0
-XReparentEvent.serial 8
-XReparentEvent.send_event 16
-XReparentEvent.display 24
-XReparentEvent.event 32
-XReparentEvent.window 40
-XReparentEvent.parent 48
-XReparentEvent.x 56
-XReparentEvent.y 60
-XReparentEvent.override_redirect 64
-XReparentEvent 72
-XCirculateRequestEvent.type 0
-XCirculateRequestEvent.serial 8
-XCirculateRequestEvent.send_event 16
-XCirculateRequestEvent.display 24
-XCirculateRequestEvent.parent 32
-XCirculateRequestEvent.window 40
-XCirculateRequestEvent.place 48
-XCirculateRequestEvent 56
-XImage.width 0
-XImage.height 4
-XImage.xoffset 8
-XImage.format 12
-XImage.data 16
-XImage.byte_order 24
-XImage.bitmap_unit 28
-XImage.bitmap_bit_order 32
-XImage.bitmap_pad 36
-XImage.depth 40
-XImage.bytes_per_line 44
-XImage.bits_per_pixel 48
-XImage.red_mask 56
-XImage.green_mask 64
-XImage.blue_mask 72
-XImage.obdata 80
-XImage.f.create_image 88
-XImage.f.destroy_image 96
-XImage.f.get_pixel 104
-XImage.f.put_pixel 112
-XImage.f.sub_image 120
-XImage.f.add_pixel 128
-XImage 136
-XKeyEvent.type 0
-XKeyEvent.serial 8
-XKeyEvent.send_event 16
-XKeyEvent.display 24
-XKeyEvent.window 32
-XKeyEvent.root 40
-XKeyEvent.subwindow 48
-XKeyEvent.time 56
-XKeyEvent.x 64
-XKeyEvent.y 68
-XKeyEvent.x_root 72
-XKeyEvent.y_root 76
-XKeyEvent.state 80
-XKeyEvent.keycode 84
-XKeyEvent.same_screen 88
-XKeyEvent 96
-XkbActionMessageEvent.type 0
-XkbActionMessageEvent.serial 8
-XkbActionMessageEvent.send_event 16
-XkbActionMessageEvent.display 24
-XkbActionMessageEvent.time 32
-XkbActionMessageEvent.xkb_type 40
-XkbActionMessageEvent.device 44
-XkbActionMessageEvent.keycode 48
-XkbActionMessageEvent.press 52
-XkbActionMessageEvent.key_event_follows 56
-XkbActionMessageEvent.group 60
-XkbActionMessageEvent.mods 64
-XkbActionMessageEvent.message 68
-XkbActionMessageEvent 80
-XdbeSwapInfo.swap_window 0
-XdbeSwapInfo.swap_action 8
-XdbeSwapInfo 16
-XTextItem.chars 0
-XTextItem.nchars 8
-XTextItem.delta 12
-XTextItem.font 16
-XTextItem 24
-XModifierKeymap.max_keypermod 0
-XModifierKeymap.modifiermap 8
-XModifierKeymap 16
-XCharStruct.lbearing 0
-XCharStruct.rbearing 2
-XCharStruct.width 4
-XCharStruct.ascent 6
-XCharStruct.descent 8
-XCharStruct.attributes 10
-XCharStruct 12
-XGravityEvent.type 0
-XGravityEvent.serial 8
-XGravityEvent.send_event 16
-XGravityEvent.display 24
-XGravityEvent.event 32
-XGravityEvent.window 40
-XGravityEvent.x 48
-XGravityEvent.y 52
-XGravityEvent 56
-Visual.ext_data 0
-Visual.visualid 8
-Visual.class 16
-Visual.red_mask 24
-Visual.green_mask 32
-Visual.blue_mask 40
-Visual.bits_per_rgb 48
-Visual.map_entries 52
-Visual 56
-XOMOrientation.num_orientation 0
-XOMOrientation.orientation 8
-XOMOrientation 16
-XkbAccessXNotifyEvent.type 0
-XkbAccessXNotifyEvent.serial 8
-XkbAccessXNotifyEvent.send_event 16
-XkbAccessXNotifyEvent.display 24
-XkbAccessXNotifyEvent.time 32
-XkbAccessXNotifyEvent.xkb_type 40
-XkbAccessXNotifyEvent.device 44
-XkbAccessXNotifyEvent.detail 48
-XkbAccessXNotifyEvent.keycode 52
-XkbAccessXNotifyEvent.sk_delay 56
-XkbAccessXNotifyEvent.debounce_delay 60
-XkbAccessXNotifyEvent 64
-XWindowAttributes.x 0
-XWindowAttributes.y 4
-XWindowAttributes.width 8
-XWindowAttributes.height 12
-XWindowAttributes.border_width 16
-XWindowAttributes.depth 20
-XWindowAttributes.visual 24
-XWindowAttributes.root 32
-XWindowAttributes.class 40
-XWindowAttributes.bit_gravity 44
-XWindowAttributes.win_gravity 48
-XWindowAttributes.backing_store 52
-XWindowAttributes.backing_planes 56
-XWindowAttributes.backing_pixel 64
-XWindowAttributes.save_under 72
-XWindowAttributes.colormap 80
-XWindowAttributes.map_installed 88
-XWindowAttributes.map_state 92
-XWindowAttributes.all_event_masks 96
-XWindowAttributes.your_event_mask 104
-XWindowAttributes.do_not_propagate_mask 112
-XWindowAttributes.override_redirect 120
-XWindowAttributes.screen 128
-XWindowAttributes 136
-XmbTextItem.chars 0
-XmbTextItem.nchars 8
-XmbTextItem.delta 12
-XmbTextItem.font_set 16
-XmbTextItem 24
-XMappingEvent.type 0
-XMappingEvent.serial 8
-XMappingEvent.send_event 16
-XMappingEvent.display 24
-XMappingEvent.window 32
-XMappingEvent.request 40
-XMappingEvent.first_keycode 44
-XMappingEvent.count 48
-XMappingEvent 56
-XSizeHints.flags 0
-XSizeHints.x 8
-XSizeHints.y 12
-XSizeHints.width 16
-XSizeHints.height 20
-XSizeHints.min_width 24
-XSizeHints.min_height 28
-XSizeHints.max_width 32
-XSizeHints.max_height 36
-XSizeHints.width_inc 40
-XSizeHints.height_inc 44
-XSizeHints.min_aspect.x 48
-XSizeHints.min_aspect.y 52
-XSizeHints.max_aspect.x 56
-XSizeHints.max_aspect.y 60
-XSizeHints.base_width 64
-XSizeHints.base_height 68
-XSizeHints.win_gravity 72
-XSizeHints 80
-XUnmapEvent.type 0
-XUnmapEvent.serial 8
-XUnmapEvent.send_event 16
-XUnmapEvent.display 24
-XUnmapEvent.event 32
-XUnmapEvent.window 40
-XUnmapEvent.from_configure 48
-XUnmapEvent 56
-awtImageData.Depth 0
-awtImageData.wsImageFormat 4
-awtImageData.clrdata 16
-awtImageData.convert 48
-awtImageData 560
-XkbStateNotifyEvent.type 0
-XkbStateNotifyEvent.serial 8
-XkbStateNotifyEvent.send_event 16
-XkbStateNotifyEvent.display 24
-XkbStateNotifyEvent.time 32
-XkbStateNotifyEvent.xkb_type 40
-XkbStateNotifyEvent.device 44
-XkbStateNotifyEvent.changed 48
-XkbStateNotifyEvent.group 52
-XkbStateNotifyEvent.base_group 56
-XkbStateNotifyEvent.latched_group 60
-XkbStateNotifyEvent.locked_group 64
-XkbStateNotifyEvent.mods 68
-XkbStateNotifyEvent.base_mods 72
-XkbStateNotifyEvent.latched_mods 76
-XkbStateNotifyEvent.locked_mods 80
-XkbStateNotifyEvent.compat_state 84
-XkbStateNotifyEvent.grab_mods 88
-XkbStateNotifyEvent.compat_grab_mods 89
-XkbStateNotifyEvent.lookup_mods 90
-XkbStateNotifyEvent.compat_lookup_mods 91
-XkbStateNotifyEvent.ptr_buttons 92
-XkbStateNotifyEvent.keycode 96
-XkbStateNotifyEvent.event_type 97
-XkbStateNotifyEvent.req_major 98
-XkbStateNotifyEvent.req_minor 99
-XkbStateNotifyEvent 104
-XExposeEvent.type 0
-XExposeEvent.serial 8
-XExposeEvent.send_event 16
-XExposeEvent.display 24
-XExposeEvent.window 32
-XExposeEvent.x 40
-XExposeEvent.y 44
-XExposeEvent.width 48
-XExposeEvent.height 52
-XExposeEvent.count 56
-XExposeEvent 64
-XkbMapNotifyEvent.type 0
-XkbMapNotifyEvent.serial 8
-XkbMapNotifyEvent.send_event 16
-XkbMapNotifyEvent.display 24
-XkbMapNotifyEvent.time 32
-XkbMapNotifyEvent.xkb_type 40
-XkbMapNotifyEvent.device 44
-XkbMapNotifyEvent.changed 48
-XkbMapNotifyEvent.flags 52
-XkbMapNotifyEvent.first_type 56
-XkbMapNotifyEvent.num_types 60
-XkbMapNotifyEvent.min_key_code 64
-XkbMapNotifyEvent.max_key_code 65
-XkbMapNotifyEvent.first_key_sym 66
-XkbMapNotifyEvent.first_key_act 67
-XkbMapNotifyEvent.first_key_behavior 68
-XkbMapNotifyEvent.first_key_explicit 69
-XkbMapNotifyEvent.first_modmap_key 70
-XkbMapNotifyEvent.first_vmodmap_key 71
-XkbMapNotifyEvent.num_key_syms 72
-XkbMapNotifyEvent.num_key_acts 76
-XkbMapNotifyEvent.num_key_behaviors 80
-XkbMapNotifyEvent.num_key_explicit 84
-XkbMapNotifyEvent.num_modmap_keys 88
-XkbMapNotifyEvent.num_vmodmap_keys 92
-XkbMapNotifyEvent.vmods 96
-XkbMapNotifyEvent 104
-XGCValues.function 0
-XGCValues.plane_mask 8
-XGCValues.foreground 16
-XGCValues.background 24
-XGCValues.line_width 32
-XGCValues.line_style 36
-XGCValues.cap_style 40
-XGCValues.join_style 44
-XGCValues.fill_style 48
-XGCValues.fill_rule 52
-XGCValues.arc_mode 56
-XGCValues.tile 64
-XGCValues.stipple 72
-XGCValues.ts_x_origin 80
-XGCValues.ts_y_origin 84
-XGCValues.font 88
-XGCValues.subwindow_mode 96
-XGCValues.graphics_exposures 100
-XGCValues.clip_x_origin 104
-XGCValues.clip_y_origin 108
-XGCValues.clip_mask 112
-XGCValues.dash_offset 120
-XGCValues.dashes 124
-XGCValues 128
-XFocusChangeEvent.type 0
-XFocusChangeEvent.serial 8
-XFocusChangeEvent.send_event 16
-XFocusChangeEvent.display 24
-XFocusChangeEvent.window 32
-XFocusChangeEvent.mode 40
-XFocusChangeEvent.detail 44
-XFocusChangeEvent 48
-XPixmapFormatValues.depth 0
-XPixmapFormatValues.bits_per_pixel 4
-XPixmapFormatValues.scanline_pad 8
-XPixmapFormatValues 12
-XMapEvent.type 0
-XMapEvent.serial 8
-XMapEvent.send_event 16
-XMapEvent.display 24
-XMapEvent.event 32
-XMapEvent.window 40
-XMapEvent.override_redirect 48
-XMapEvent 56
-XkbBellNotifyEvent.type 0
-XkbBellNotifyEvent.serial 8
-XkbBellNotifyEvent.send_event 16
-XkbBellNotifyEvent.display 24
-XkbBellNotifyEvent.time 32
-XkbBellNotifyEvent.xkb_type 40
-XkbBellNotifyEvent.device 44
-XkbBellNotifyEvent.percent 48
-XkbBellNotifyEvent.pitch 52
-XkbBellNotifyEvent.duration 56
-XkbBellNotifyEvent.bell_class 60
-XkbBellNotifyEvent.bell_id 64
-XkbBellNotifyEvent.name 72
-XkbBellNotifyEvent.window 80
-XkbBellNotifyEvent.event_only 88
-XkbBellNotifyEvent 96
-XIMStringConversionText.length 0
-XIMStringConversionText.feedback 8
-XIMStringConversionText.encoding_is_wchar 16
-XIMStringConversionText.string 24
-XIMStringConversionText 32
-XKeyboardState.key_click_percent 0
-XKeyboardState.bell_percent 4
-XKeyboardState.bell_pitch 8
-XKeyboardState.bell_duration 12
-XKeyboardState.led_mask 16
-XKeyboardState.global_auto_repeat 24
-XKeyboardState.auto_repeats 28
-XKeyboardState 64
-XkbEvent.type 0
-XkbEvent.any 0
-XkbEvent.new_kbd 0
-XkbEvent.map 0
-XkbEvent.state 0
-XkbEvent.ctrls 0
-XkbEvent.indicators 0
-XkbEvent.names 0
-XkbEvent.compat 0
-XkbEvent.bell 0
-XkbEvent.message 0
-XkbEvent.accessx 0
-XkbEvent.device 0
-XkbEvent.core 0
-XkbEvent 192
-XPoint.x 0
-XPoint.y 2
-XPoint 4
-XSegment.x1 0
-XSegment.y1 2
-XSegment.x2 4
-XSegment.y2 6
-XSegment 8
-XIconSize.min_width 0
-XIconSize.min_height 4
-XIconSize.max_width 8
-XIconSize.max_height 12
-XIconSize.width_inc 16
-XIconSize.height_inc 20
-XIconSize 24
-XIMCallback.client_data 0
-XIMCallback.callback 8
-XIMCallback 16
-XConfigureEvent.type 0
-XConfigureEvent.serial 8
-XConfigureEvent.send_event 16
-XConfigureEvent.display 24
-XConfigureEvent.event 32
-XConfigureEvent.window 40
-XConfigureEvent.x 48
-XConfigureEvent.y 52
-XConfigureEvent.width 56
-XConfigureEvent.height 60
-XConfigureEvent.border_width 64
-XConfigureEvent.above 72
-XConfigureEvent.override_redirect 80
-XConfigureEvent 88
-XRectangle.x 0
-XRectangle.y 2
-XRectangle.width 4
-XRectangle.height 6
-XRectangle 8
-XkbNamesNotifyEvent.type 0
-XkbNamesNotifyEvent.serial 8
-XkbNamesNotifyEvent.send_event 16
-XkbNamesNotifyEvent.display 24
-XkbNamesNotifyEvent.time 32
-XkbNamesNotifyEvent.xkb_type 40
-XkbNamesNotifyEvent.device 44
-XkbNamesNotifyEvent.changed 48
-XkbNamesNotifyEvent.first_type 52
-XkbNamesNotifyEvent.num_types 56
-XkbNamesNotifyEvent.first_lvl 60
-XkbNamesNotifyEvent.num_lvls 64
-XkbNamesNotifyEvent.num_aliases 68
-XkbNamesNotifyEvent.num_radio_groups 72
-XkbNamesNotifyEvent.changed_vmods 76
-XkbNamesNotifyEvent.changed_groups 80
-XkbNamesNotifyEvent.changed_indicators 84
-XkbNamesNotifyEvent.first_key 88
-XkbNamesNotifyEvent.num_keys 92
-XkbNamesNotifyEvent 96
-XCreateWindowEvent.type 0
-XCreateWindowEvent.serial 8
-XCreateWindowEvent.send_event 16
-XCreateWindowEvent.display 24
-XCreateWindowEvent.parent 32
-XCreateWindowEvent.window 40
-XCreateWindowEvent.x 48
-XCreateWindowEvent.y 52
-XCreateWindowEvent.width 56
-XCreateWindowEvent.height 60
-XCreateWindowEvent.border_width 64
-XCreateWindowEvent.override_redirect 68
-XCreateWindowEvent 72
-XVisibilityEvent.type 0
-XVisibilityEvent.serial 8
-XVisibilityEvent.send_event 16
-XVisibilityEvent.display 24
-XVisibilityEvent.window 32
-XVisibilityEvent.state 40
-XVisibilityEvent 48
-XWMHints.flags 0
-XWMHints.initial_state 12
-XWMHints.icon_pixmap 16
-XWMHints.icon_window 24
-XWMHints.icon_x 32
-XWMHints.icon_y 36
-XWMHints.icon_mask 40
-XWMHints.input 8
-XWMHints.window_group 48
-XWMHints 56
-XCrossingEvent.type 0
-XCrossingEvent.serial 8
-XCrossingEvent.send_event 16
-XCrossingEvent.display 24
-XCrossingEvent.window 32
-XCrossingEvent.root 40
-XCrossingEvent.subwindow 48
-XCrossingEvent.time 56
-XCrossingEvent.x 64
-XCrossingEvent.y 68
-XCrossingEvent.x_root 72
-XCrossingEvent.y_root 76
-XCrossingEvent.mode 80
-XCrossingEvent.detail 84
-XCrossingEvent.same_screen 88
-XCrossingEvent.focus 92
-XCrossingEvent.state 96
-XCrossingEvent 104
-XSelectionRequestEvent.type 0
-XSelectionRequestEvent.serial 8
-XSelectionRequestEvent.send_event 16
-XSelectionRequestEvent.display 24
-XSelectionRequestEvent.owner 32
-XSelectionRequestEvent.requestor 40
-XSelectionRequestEvent.selection 48
-XSelectionRequestEvent.target 56
-XSelectionRequestEvent.property 64
-XSelectionRequestEvent.time 72
-XSelectionRequestEvent 80
-XNoExposeEvent.type 0
-XNoExposeEvent.serial 8
-XNoExposeEvent.send_event 16
-XNoExposeEvent.display 24
-XNoExposeEvent.drawable 32
-XNoExposeEvent.major_code 40
-XNoExposeEvent.minor_code 44
-XNoExposeEvent 48
-XHostAddress.family 0
-XHostAddress.length 4
-XHostAddress.address 8
-XHostAddress 16
-XColormapEvent.type 0
-XColormapEvent.serial 8
-XColormapEvent.send_event 16
-XColormapEvent.display 24
-XColormapEvent.window 32
-XColormapEvent.colormap 40
-XColormapEvent.new 48
-XColormapEvent.state 52
-XColormapEvent 56
-ColorEntry.r 0
-ColorEntry.g 1
-ColorEntry.b 2
-ColorEntry.flags 3
-ColorEntry 4
-XResizeRequestEvent.type 0
-XResizeRequestEvent.serial 8
-XResizeRequestEvent.send_event 16
-XResizeRequestEvent.display 24
-XResizeRequestEvent.window 32
-XResizeRequestEvent.width 40
-XResizeRequestEvent.height 44
-XResizeRequestEvent 48
-Depth.depth 0
-Depth.nvisuals 4
-Depth.visuals 8
-Depth 16
-XPropertyEvent.type 0
-XPropertyEvent.serial 8
-XPropertyEvent.send_event 16
-XPropertyEvent.display 24
-XPropertyEvent.window 32
-XPropertyEvent.atom 40
-XPropertyEvent.time 48
-XPropertyEvent.state 56
-XPropertyEvent 64
-XDestroyWindowEvent.type 0
-XDestroyWindowEvent.serial 8
-XDestroyWindowEvent.send_event 16
-XDestroyWindowEvent.display 24
-XDestroyWindowEvent.event 32
-XDestroyWindowEvent.window 40
-XDestroyWindowEvent 48
-XStandardColormap.colormap 0
-XStandardColormap.red_max 8
-XStandardColormap.red_mult 16
-XStandardColormap.green_max 24
-XStandardColormap.green_mult 32
-XStandardColormap.blue_max 40
-XStandardColormap.blue_mult 48
-XStandardColormap.base_pixel 56
-XStandardColormap.visualid 64
-XStandardColormap.killid 72
-XStandardColormap 80
-XComposeStatus.compose_ptr 0
-XComposeStatus.chars_matched 8
-XComposeStatus 16
-AwtGraphicsConfigData.awt_depth 0
-AwtGraphicsConfigData.awt_cmap 8
-AwtGraphicsConfigData.awt_visInfo 16
-AwtGraphicsConfigData.awt_num_colors 80
-AwtGraphicsConfigData.awtImage 88
-AwtGraphicsConfigData.AwtColorMatch 96
-AwtGraphicsConfigData.monoImage 104
-AwtGraphicsConfigData.monoPixmap 112
-AwtGraphicsConfigData.monoPixmapWidth 120
-AwtGraphicsConfigData.monoPixmapHeight 124
-AwtGraphicsConfigData.monoPixmapGC 128
-AwtGraphicsConfigData.pixelStride 136
-AwtGraphicsConfigData.color_data 144
-AwtGraphicsConfigData.glxInfo 152
-AwtGraphicsConfigData.isTranslucencySupported 160
-AwtGraphicsConfigData.renderPictFormat 168
-AwtGraphicsConfigData 208
-XColor.pixel 0
-XColor.red 8
-XColor.green 10
-XColor.blue 12
-XColor.flags 14
-XColor.pad 15
-XColor 16
-XTextProperty.value 0
-XTextProperty.encoding 8
-XTextProperty.format 16
-XTextProperty.nitems 24
-XTextProperty 32
--- a/jdk/src/solaris/classes/sun/awt/X11/generator/xlibtypes.txt Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1040 +0,0 @@
-//
-//
-// This file is used for automated generation of java classes to wrap native structures.
-// The detail on format of this file see WrapperGenerator.java
-//
-// WARNING: if you modified this file, you need to regenerate sizes.64-solaris-i386
-//
-
-XExtData
- number int
- next pointer XExtData
- free_private pointer
- private_data pointer
-XIMText
- length short
- feedback pointer
- encoding_is_wchar Bool
- string pointer
-XSetWindowAttributes
- background_pixmap long
- background_pixel long
- border_pixmap long
- border_pixel long
- bit_gravity int
- win_gravity int
- backing_store int
- backing_planes long
- backing_pixel long
- save_under Bool
- event_mask long
- do_not_propagate_mask long
- override_redirect Bool
- colormap long
- cursor long
-Visual
- ext_data pointer XExtData
- visualid long
- class int
- red_mask long
- green_mask long
- blue_mask long
- bits_per_rgb int
- map_entries int
-Depth
- depth int
- nvisuals int
- visuals pointer Visual
-XClassHint
- res_name pointer
- res_class pointer
-XIMPreeditCaretCallbackStruct
- position int
- direction int
- style int
-XmbTextItem
- chars pointer byte
- nchars int
- delta int
- font_set pointer
-XStandardColormap
- colormap long
- red_max long
- red_mult long
- green_max long
- green_mult long
- blue_max long
- blue_mult long
- base_pixel long
- visualid long
- killid long
-XIMCallback
- client_data pointer
- callback pointer
-XKeyboardState
- key_click_percent int
- bell_percent int
- bell_pitch int
- bell_duration int
- led_mask long
- global_auto_repeat int
- auto_repeats array byte 32
-XCirculateEvent
- type int
- serial long
- send_event Bool
- display long
- event long
- window long
- place int
-XWMHints
- flags long
- initial_state int
- icon_pixmap pointer
- icon_window long
- icon_x int
- icon_y int
- icon_mask long
- input Bool
- window_group long
-XCrossingEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- root long
- subwindow long
- time ulong
- x int
- y int
- x_root int
- y_root int
- mode int
- detail int
- same_screen Bool
- focus Bool
- state int
-XIMStringConversionText
- length short
- feedback pointer
- encoding_is_wchar Bool
- string pointer
-XKeymapEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- key_vector array byte 32
-XDestroyWindowEvent
- type int
- serial long
- send_event Bool
- display long
- event long
- window long
-XComposeStatus
- compose_ptr pointer
- chars_matched int
-XTextItem
- chars pointer
- nchars int
- delta int
- font long
-XIMStringConversionCallbackStruct
- position short
- direction int
- operation short
- factor short
- text pointer XIMStringConversionText
-XOMFontInfo
- num_font int
- font_struct_list pointer
- font_name_list pointer
-XClientMessageEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- message_type Atom
- format int
- data array long 5
-XMapRequestEvent
- type int
- serial long
- send_event Bool
- display long
- parent long
- window long
-XSelectionEvent
- type int
- serial long
- send_event Bool
- display long
- requestor long
- selection Atom
- target Atom
- property Atom
- time ulong
-XVisibilityEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- state int
-XConfigureRequestEvent
- type int
- serial long
- send_event Bool
- display long
- parent long
- window long
- x int
- y int
- width int
- height int
- border_width int
- above long
- detail int
- value_mask long
-Screen
- ext_data pointer XExtData
- display pointer
- root long
- width int
- height int
- mwidth int
- mheight int
- ndepths int
- depths pointer Depth
- root_depth int
- root_visual pointer Visual
- default_gc long
- cmap long
- white_pixel long
- black_pixel long
- max_maps int
- min_maps int
- backing_store int
- save_unders Bool
- root_input_mask long
-XTextProperty
- value pointer byte
- encoding long
- format int
- nitems long
-XWindowChanges
- x int
- y int
- width int
- height int
- border_width int
- sibling long
- stack_mode int
-XVisualInfo
- visual pointer
- visualid long
- screen int
- depth int
- class int
- red_mask long
- green_mask long
- blue_mask long
- colormap_size int
- bits_per_rgb int
-XRenderDirectFormat
- red short
- redMask short
- green short
- greenMask short
- blue short
- blueMask short
- alpha short
- alphaMask short
-XRenderPictFormat
- id long
- type int
- depth int
- direct struct XRenderDirectFormat
- colormap long
-XIMHotKeyTrigger
- keysym long
- modifier int
- modifier_mask int
-XIMHotKeyTriggers
- num_hot_key int
- key pointer XIMHotKeyTrigger
-XIMStyles
- count_styles short
- supported_styles pointer long
-XIMStatusDrawCallbackStruct
- type int
- data long
-XWindowAttributes
- x int
- y int
- width int
- height int
- border_width int
- depth int
- visual pointer Visual
- root long
- class int
- bit_gravity int
- win_gravity int
- backing_store int
- backing_planes long
- backing_pixel long
- save_under Bool
- colormap long
- map_installed Bool
- map_state int
- all_event_masks long
- your_event_mask long
- do_not_propagate_mask long
- override_redirect Bool
- screen pointer Screen
-XExtCodes
- extension int
- major_opcode int
- first_event int
- first_error int
-XPropertyEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- atom Atom
- time ulong
- state int
-
-XSizeHints
- flags long
- x int
- y int
- width int
- height int
- min_width int
- min_height int
- max_width int
- max_height int
- width_inc int
- height_inc int
- min_aspect.x int
- min_aspect.y int
- max_aspect.x int
- max_aspect.y int
- base_width int
- base_height int
- win_gravity int
-XIconSize
- min_width int
- min_height int
- max_width int
- max_height int
- width_inc int
- height_inc int
-XwcTextItem
- chars pointer
- nchars int
- delta int
- font_set pointer
-XIMPreeditDrawCallbackStruct
- caret int
- chg_first int
- chg_length int
- text pointer XIMText
-XErrorEvent
- type int
- display long
- resourceid long
- serial long
- error_code byte
- request_code byte
- minor_code byte
-XSelectionClearEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- selection Atom
- time ulong
-XKeyboardControl
- key_click_percent int
- bell_percent int
- bell_pitch int
- bell_duration int
- led int
- led_mode int
- key int
- auto_repeat_mode int
-XAnyEvent
- type int
- serial long
- send_event Bool
- display long
- window long
-XTimeCoord
- time ulong
- x short
- y short
-XGravityEvent
- type int
- serial long
- send_event Bool
- display long
- event long
- window long
- x int
- y int
-XCharStruct
- lbearing short
- rbearing short
- width short
- ascent short
- descent short
- attributes short
-XArc
- x short
- y short
- width short
- height short
- angle1 short
- angle2 short
-XPoint
- x short
- y short
-ScreenFormat
- ext_data pointer XExtData
- depth int
- bits_per_pixel int
- scanline_pad int
-XFocusChangeEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- mode int
- detail int
-XResizeRequestEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- width int
- height int
-
-XRectangle
- x short
- y short
- width short
- height short
-
-XMappingEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- request int
- first_keycode int
- count int
-XSegment
- x1 short
- y1 short
- x2 short
- y2 short
-XColor
- pixel long
- red short
- green short
- blue short
- flags byte
- pad byte
-XKeyEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- root long
- subwindow long
- time ulong
- x int
- y int
- x_root int
- y_root int
- state int
- keycode int
- same_screen Bool
-XReparentEvent
- type int
- serial long
- send_event Bool
- display long
- event long
- window long
- parent long
- x int
- y int
- override_redirect Bool
-XMotionEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- root long
- subwindow long
- time ulong
- x int
- y int
- x_root int
- y_root int
- state int
- is_hint byte
- same_screen Bool
-XButtonEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- root long
- subwindow long
- time ulong
- x int
- y int
- x_root int
- y_root int
- state int
- button int
- same_screen Bool
-XHostAddress
- family int
- length int
- address pointer
-XOMCharSetList
- charset_count int
- charset_list pointer
-XNoExposeEvent
- type int
- serial long
- send_event Bool
- display long
- drawable long
- major_code int
- minor_code int
-XSelectionRequestEvent
- type int
- serial long
- send_event Bool
- display long
- owner long
- requestor long
- selection Atom
- target Atom
- property Atom
- time ulong
-XGCValues
- function int
- plane_mask long
- foreground long
- background long
- line_width int
- line_style int
- cap_style int
- join_style int
- fill_style int
- fill_rule int
- arc_mode int
- tile long
- stipple long
- ts_x_origin int
- ts_y_origin int
- font long
- subwindow_mode int
- graphics_exposures Bool
- clip_x_origin int
- clip_y_origin int
- clip_mask long
- dash_offset int
- dashes byte
-XImage
- width int
- height int
- xoffset int
- format int
- data pointer byte
- byte_order int
- bitmap_unit int
- bitmap_bit_order int
- bitmap_pad int
- depth int
- bytes_per_line int
- bits_per_pixel int
- red_mask long
- green_mask long
- blue_mask long
- obdata pointer
- f.create_image pointer
- f.destroy_image pointer
- f.get_pixel pointer
- f.put_pixel pointer
- f.sub_image pointer
- f.add_pixel pointer
-XIMValuesList
- count_values short
- supported_values pointer
-XColormapEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- colormap long
- new Bool
- state int
-XIMPreeditStateNotifyCallbackStruct
- state long
-XCreateWindowEvent
- type int
- serial long
- send_event Bool
- display long
- parent long
- window long
- x int
- y int
- width int
- height int
- border_width int
- override_redirect Bool
-XConfigureEvent
- type int
- serial long
- send_event Bool
- display long
- event long
- window long
- x int
- y int
- width int
- height int
- border_width int
- above long
- override_redirect Bool
-XFontProp
- name long
- card32 long
-XModifierKeymap
- max_keypermod int
- modifiermap pointer
-XCirculateRequestEvent
- type int
- serial long
- send_event Bool
- display long
- parent long
- window long
- place int
-XChar2b
- byte1 byte
- byte2 byte
-XTextItem16
- chars pointer XChar2b
- nchars int
- delta int
- font long
-XOMOrientation
- num_orientation int
- orientation pointer int
-XGraphicsExposeEvent
- type int
- serial long
- send_event Bool
- display long
- drawable long
- x int
- y int
- width int
- height int
- count int
- major_code int
- minor_code int
-XFontStruct
- ext_data pointer XExtData
- fid long
- direction int
- min_char_or_byte2 int
- max_char_or_byte2 int
- min_byte1 int
- max_byte1 int
- all_chars_exist Bool
- n_properties int
- properties pointer XFontProp
- min_bounds struct XCharStruct
- max_bounds struct XCharStruct
- per_char pointer XCharStruct
- ascent int
- descent int
-XMapEvent
- type int
- serial long
- send_event Bool
- display long
- event long
- window long
- override_redirect int
-XExposeEvent
- type int
- serial long
- send_event Bool
- display long
- window long
- x int
- y int
- width int
- height int
- count int
-
-XFontSetExtents
- max_ink_extent struct XRectangle
- max_logical_extent struct XRectangle
-
-XUnmapEvent
- type int
- serial long
- send_event Bool
- display long
- event long
- window long
- from_configure Bool
-PropMwmHints
- flags long
- functions long
- decorations long
- inputMode long
- status long
-XPixmapFormatValues
- depth int
- bits_per_pixel int
- scanline_pad int
-awtImageData
- Depth int
- wsImageFormat struct XPixmapFormatValues
- clrdata pointer
- convert array pointer 32
-ColorEntry
- r byte
- g byte
- b byte
- flags byte
-ColorData
- awt_Colors pointer ColorEntry
- awt_numICMcolors int
- awt_icmLUT pointer int
- awt_icmLUT2Colors pointer byte
- img_grays pointer byte
- img_clr_tbl pointer byte
- img_oda_red pointer byte
- img_oda_green pointer byte
- img_oda_blue pointer byte
- pGrayInverseLutData pointer int
- screendata int
-
-AwtGraphicsConfigData
- awt_depth int
- awt_cmap long
- awt_visInfo struct XVisualInfo
- awt_num_colors int
- awtImage pointer awtImageData
- AwtColorMatch pointer
- monoImage pointer
- monoPixmap long
- monoPixmapWidth int
- monoPixmapHeight int
- monoPixmapGC long
- pixelStride int
- color_data pointer ColorData
- glxInfo pointer
- isTranslucencySupported int
- renderPictFormat struct XRenderPictFormat
-
-AwtScreenData
- numConfigs int
- root long
- whitepixel long
- blackpixel long
- defaultConfig pointer AwtGraphicsConfigData
- configs pointer // AwtGraphicsConfigDataPtr *configs;
-
-XdbeSwapInfo
- swap_window long
- swap_action int
-
-XEvent
- type int
- xany struct XAnyEvent
- xkey struct XKeyEvent
- xbutton struct XButtonEvent
- xmotion struct XMotionEvent
- xcrossing struct XCrossingEvent
- xfocus struct XFocusChangeEvent
- xexpose struct XExposeEvent
- xgraphicsexpose struct XGraphicsExposeEvent
- xnoexpose struct XNoExposeEvent
- xvisibility struct XVisibilityEvent
- xcreatewindow struct XCreateWindowEvent
- xdestroywindow struct XDestroyWindowEvent
- xunmap struct XUnmapEvent
- xmap struct XMapEvent
- xmaprequest struct XMapRequestEvent
- xreparent struct XReparentEvent
- xconfigure struct XConfigureEvent
- xgravity struct XGravityEvent
- xresizerequest struct XResizeRequestEvent
- xconfigurerequest struct XConfigureRequestEvent
- xcirculate struct XCirculateEvent
- xcirculaterequest struct XCirculateRequestEvent
- xproperty struct XPropertyEvent
- xselectionclear struct XSelectionClearEvent
- xselectionrequest struct XSelectionRequestEvent
- xselection struct XSelectionEvent
- xcolormap struct XColormapEvent
- xclient struct XClientMessageEvent
- xmapping struct XMappingEvent
- xerror struct XErrorEvent
- xkeymap struct XKeymapEvent
- pad array long 24
-
-XkbAnyEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
-
-XkbNewKeyboardNotifyEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
- old_device int
- min_key_code int
- max_key_code int
- old_min_key_code int
- old_max_key_code int
- changed int
- req_major byte
- req_minor byte
-
-XkbMapNotifyEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
- changed int
- flags int
- first_type int
- num_types int
- min_key_code int
- max_key_code int
- first_key_sym int
- first_key_act int
- first_key_behavior int
- first_key_explicit int
- first_modmap_key int
- first_vmodmap_key int
- num_key_syms int
- num_key_acts int
- num_key_behaviors int
- num_key_explicit int
- num_modmap_keys int
- num_vmodmap_keys int
- vmods int
-
-XkbStateNotifyEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
- changed int
- group int
- base_group int
- latched_group int
- locked_group int
- mods int
- base_mods int
- latched_mods int
- locked_mods int
- compat_state int
- grab_mods byte
- compat_grab_mods byte
- lookup_mods byte
- compat_lookup_mods byte
- ptr_buttons int
- keycode int
- event_type byte
- req_major byte
- req_minor byte
-
-XkbControlsNotifyEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
- changed_ctrls int
- enabled_ctrls int
- enabled_ctrl_changes int
- num_groups int
- keycode int
- event_type byte
- req_major byte
- req_minor byte
-
-XkbIndicatorNotifyEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
- changed int
- state int
-
-XkbNamesNotifyEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
- changed int
- first_type int
- num_types int
- first_lvl int
- num_lvls int
- num_aliases int
- num_radio_groups int
- changed_vmods int
- changed_groups int
- changed_indicators int
- first_key int
- num_keys int
-
-
-XkbCompatMapNotifyEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
- changed_groups int
- first_si int
- num_si int
- num_total_si int
-
-XkbBellNotifyEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
- percent int
- pitch int
- duration int
- bell_class int
- bell_id int
- name Atom
- window long
- event_only Bool
-
-XkbActionMessageEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
- keycode int
- press Bool
- key_event_follows Bool
- group int
- mods int
- message array byte 7 //XkbActionMessageLength+1
-
-XkbAccessXNotifyEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
- detail int
- keycode int
- sk_delay int
- debounce_delay int
-
-XkbExtensionDeviceNotifyEvent
- type int
- serial ulong
- send_event Bool
- display long
- time ulong
- xkb_type int
- device int
- reason int
- supported int
- unsupported int
- first_btn int
- num_btns int
- leds_defined int
- led_state int
- led_class int
- led_id int
-
-XkbEvent
- type int
- any struct XkbAnyEvent
- new_kbd struct XkbNewKeyboardNotifyEvent
- map struct XkbMapNotifyEvent
- state struct XkbStateNotifyEvent
- ctrls struct XkbControlsNotifyEvent
- indicators struct XkbIndicatorNotifyEvent
- names struct XkbNamesNotifyEvent
- compat struct XkbCompatMapNotifyEvent
- bell struct XkbBellNotifyEvent
- message struct XkbActionMessageEvent
- accessx struct XkbAccessXNotifyEvent
- device struct XkbExtensionDeviceNotifyEvent
- core struct XEvent
--- a/jdk/src/solaris/native/sun/management/LinuxOperatingSystem.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/solaris/native/sun/management/LinuxOperatingSystem.c Thu Feb 20 16:27:08 2014 -0800
@@ -35,6 +35,7 @@
#include <stdlib.h>
#include <dlfcn.h>
#include <pthread.h>
+#include <inttypes.h>
#include "sun_management_OperatingSystemImpl.h"
struct ticks {
@@ -57,7 +58,7 @@
ticks *cpus;
} counters;
-#define DEC_64 "%lld"
+#define DEC_64 "%"SCNd64
static void next_line(FILE *f) {
while (fgetc(f) != '\n');
--- a/jdk/src/solaris/native/sun/nio/fs/MacOSXNativeDispatcher.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/solaris/native/sun/nio/fs/MacOSXNativeDispatcher.c Thu Feb 20 16:27:08 2014 -0800
@@ -39,12 +39,15 @@
jint form)
{
jcharArray result = NULL;
- char chars_buf[(PATH_MAX + 1) * 2]; // utf16 + zero padding
+ char *chars;
CFMutableStringRef csref = CFStringCreateMutable(NULL, 0);
if (csref == NULL) {
JNU_ThrowOutOfMemoryError(env, "native heap");
- } else {
- char *chars = (char*)(*env)->GetPrimitiveArrayCritical(env, path, 0);
+ return NULL;
+ }
+ chars = (char*)(*env)->GetPrimitiveArrayCritical(env, path, 0);
+ if (chars != NULL) {
+ char chars_buf[(PATH_MAX + 1) * 2]; // utf16 + zero padding
jsize len = (*env)->GetArrayLength(env, path);
CFStringAppendCharacters(csref, (const UniChar*)chars, len);
(*env)->ReleasePrimitiveArrayCritical(env, path, chars, 0);
@@ -53,24 +56,26 @@
if (len < PATH_MAX) {
if (CFStringGetCString(csref, chars_buf, sizeof(chars_buf), kCFStringEncodingUTF16)) {
result = (*env)->NewCharArray(env, len);
- (*env)->SetCharArrayRegion(env, result, 0, len, (jchar*)&chars_buf);
+ if (result != NULL) {
+ (*env)->SetCharArrayRegion(env, result, 0, len, (jchar*)&chars_buf);
+ }
}
} else {
int ulen = (len + 1) * 2;
chars = malloc(ulen);
if (chars == NULL) {
- CFRelease(csref);
JNU_ThrowOutOfMemoryError(env, "native heap");
- return result;
} else {
if (CFStringGetCString(csref, chars, ulen, kCFStringEncodingUTF16)) {
result = (*env)->NewCharArray(env, len);
- (*env)->SetCharArrayRegion(env, result, 0, len, (jchar*)chars);
+ if (result != NULL) {
+ (*env)->SetCharArrayRegion(env, result, 0, len, (jchar*)chars);
+ }
}
free(chars);
}
}
- CFRelease(csref);
}
+ CFRelease(csref);
return result;
}
--- a/jdk/src/solaris/native/sun/nio/fs/genSolarisConstants.c Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#include <stdio.h>
-#include <errno.h>
-#include <unistd.h>
-#include <sys/acl.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-/**
- * Generates sun.nio.fs.SolarisConstants
- */
-
-static void out(char* s) {
- printf("%s\n", s);
-}
-
-static void emit(char* name, int value) {
- printf(" static final int %s = %d;\n", name, value);
-}
-
-static void emitX(char* name, int value) {
- printf(" static final int %s = 0x%x;\n", name, value);
-}
-
-#define DEF(X) emit(#X, X);
-#define DEFX(X) emitX(#X, X);
-
-int main(int argc, const char* argv[]) {
- out("// AUTOMATICALLY GENERATED FILE - DO NOT EDIT ");
- out("package sun.nio.fs; ");
- out("class SolarisConstants { ");
- out(" private SolarisConstants() { } ");
-
- // extended attributes
- DEFX(O_XATTR);
- DEF(_PC_XATTR_ENABLED);
-
- // ACL configuration
- DEF(_PC_ACL_ENABLED);
- DEFX(_ACL_ACE_ENABLED);
-
- // ACL commands
- DEFX(ACE_GETACL);
- DEFX(ACE_SETACL);
-
- // ACL mask/flags/types
- emitX("ACE_ACCESS_ALLOWED_ACE_TYPE", 0x0000);
- emitX("ACE_ACCESS_DENIED_ACE_TYPE", 0x0001);
- emitX("ACE_SYSTEM_AUDIT_ACE_TYPE", 0x0002);
- emitX("ACE_SYSTEM_ALARM_ACE_TYPE", 0x0003);
- emitX("ACE_READ_DATA", 0x00000001);
- emitX("ACE_LIST_DIRECTORY", 0x00000001);
- emitX("ACE_WRITE_DATA", 0x00000002);
- emitX("ACE_ADD_FILE", 0x00000002);
- emitX("ACE_APPEND_DATA", 0x00000004);
- emitX("ACE_ADD_SUBDIRECTORY", 0x00000004);
- emitX("ACE_READ_NAMED_ATTRS", 0x00000008);
- emitX("ACE_WRITE_NAMED_ATTRS", 0x00000010);
- emitX("ACE_EXECUTE", 0x00000020);
- emitX("ACE_DELETE_CHILD", 0x00000040);
- emitX("ACE_READ_ATTRIBUTES", 0x00000080);
- emitX("ACE_WRITE_ATTRIBUTES", 0x00000100);
- emitX("ACE_DELETE", 0x00010000);
- emitX("ACE_READ_ACL", 0x00020000);
- emitX("ACE_WRITE_ACL", 0x00040000);
- emitX("ACE_WRITE_OWNER", 0x00080000);
- emitX("ACE_SYNCHRONIZE", 0x00100000);
- emitX("ACE_FILE_INHERIT_ACE", 0x0001);
- emitX("ACE_DIRECTORY_INHERIT_ACE", 0x0002);
- emitX("ACE_NO_PROPAGATE_INHERIT_ACE", 0x0004);
- emitX("ACE_INHERIT_ONLY_ACE", 0x0008);
- emitX("ACE_SUCCESSFUL_ACCESS_ACE_FLAG", 0x0010);
- emitX("ACE_FAILED_ACCESS_ACE_FLAG", 0x0020);
- emitX("ACE_IDENTIFIER_GROUP", 0x0040);
- emitX("ACE_OWNER", 0x1000);
- emitX("ACE_GROUP", 0x2000);
- emitX("ACE_EVERYONE", 0x4000);
-
- out("} ");
- return 0;
-}
--- a/jdk/src/solaris/native/sun/nio/fs/genUnixConstants.c Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*
- * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#include <stdio.h>
-#include <errno.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-/**
- * Generates sun.nio.fs.UnixConstants
- */
-
-static void out(char* s) {
- printf("%s\n", s);
-}
-
-static void emit(char* name, int value) {
- printf(" static final int %s = %d;\n", name, value);
-}
-
-static void emitX(char* name, int value) {
- printf(" static final int %s = 0x%x;\n", name, value);
-}
-
-#define DEF(X) emit(#X, X);
-#define DEFX(X) emitX(#X, X);
-
-int main(int argc, const char* argv[]) {
- out("// AUTOMATICALLY GENERATED FILE - DO NOT EDIT ");
- out("package sun.nio.fs; ");
- out("class UnixConstants { ");
- out(" private UnixConstants() { } ");
-
- // open flags
- DEF(O_RDONLY);
- DEF(O_WRONLY);
- DEF(O_RDWR);
- DEFX(O_APPEND);
- DEFX(O_CREAT);
- DEFX(O_EXCL);
- DEFX(O_TRUNC);
- DEFX(O_SYNC);
-#ifndef O_DSYNC
- // At least FreeBSD doesn't define O_DSYNC
- emit("O_DSYNC", O_SYNC);
-#else
- DEFX(O_DSYNC);
-#endif
-#ifdef O_NOFOLLOW
- DEFX(O_NOFOLLOW);
-#else
- // not supported (dummy values will not be used at runtime).
- emitX("O_NOFOLLOW", 0x0);
-#endif
-
- // mode masks
- emitX("S_IAMB",
- (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH));
- DEF(S_IRUSR);
- DEF(S_IWUSR);
- DEF(S_IXUSR);
- DEF(S_IRGRP);
- DEF(S_IWGRP);
- DEF(S_IXGRP);
- DEF(S_IROTH);
- DEF(S_IWOTH);
- DEF(S_IXOTH);
- DEFX(S_IFMT);
- DEFX(S_IFREG);
- DEFX(S_IFDIR);
- DEFX(S_IFLNK);
- DEFX(S_IFCHR);
- DEFX(S_IFBLK);
- DEFX(S_IFIFO);
-
- // access modes
- DEF(R_OK);
- DEF(W_OK);
- DEF(X_OK);
- DEF(F_OK);
-
- // errors
- DEF(ENOENT);
- DEF(EACCES);
- DEF(EEXIST);
- DEF(ENOTDIR);
- DEF(EINVAL);
- DEF(EXDEV);
- DEF(EISDIR);
- DEF(ENOTEMPTY);
- DEF(ENOSPC);
- DEF(EAGAIN);
- DEF(ENOSYS);
- DEF(ELOOP);
- DEF(EROFS);
-#ifndef ENODATA
- // Only used in Linux java source, provide any value so it compiles
- emit("ENODATA", ELAST);
-#else
- DEF(ENODATA);
-#endif
- DEF(ERANGE);
- DEF(EMFILE);
-
- // flags used with openat/unlinkat/etc.
-#if defined(AT_SYMLINK_NOFOLLOW) && defined(AT_REMOVEDIR)
- DEFX(AT_SYMLINK_NOFOLLOW)
- DEFX(AT_REMOVEDIR);
-#else
- // not supported (dummy values will not be used at runtime).
- emitX("AT_SYMLINK_NOFOLLOW", 0x0);
- emitX("AT_REMOVEDIR", 0x0);
-#endif
-
- out("} ");
-
- return 0;
-}
--- a/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c Thu Feb 20 16:27:08 2014 -0800
@@ -32,6 +32,7 @@
#include <jni_util.h>
#include "j2secmod.h"
+#include "wrapper/pkcs11wrapper.h"
void *findFunction(JNIEnv *env, jlong jHandle, const char *functionName) {
void *hModule = (void*)jlong_to_ptr(jHandle);
--- a/jdk/src/solaris/native/sun/security/pkcs11/wrapper/p11_md.h Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/solaris/native/sun/security/pkcs11/wrapper/p11_md.h Thu Feb 20 16:27:08 2014 -0800
@@ -56,6 +56,9 @@
/* defines for UNIX platforms *************************************************/
+#ifndef _P11_MD_H
+#define _P11_MD_H 1
+
#define CK_PTR *
#define CK_DEFINE_FUNCTION(returnType, name) returnType name
#define CK_DECLARE_FUNCTION(returnType, name) returnType name
@@ -83,3 +86,5 @@
};
typedef struct ModuleData ModuleData;
+
+#endif /* _P11_MD_H */
--- a/jdk/src/windows/native/common/jdk_util_md.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/windows/native/common/jdk_util_md.c Thu Feb 20 16:27:08 2014 -0800
@@ -42,7 +42,6 @@
JNIEXPORT HMODULE JDK_LoadSystemLibrary(const char* name) {
HMODULE handle = NULL;
char path[MAX_PATH];
- int ret;
if (GetSystemDirectory(path, sizeof(path)) != 0) {
strcat(path, "\\");
--- a/jdk/src/windows/native/java/io/WinNTFileSystem_md.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/windows/native/java/io/WinNTFileSystem_md.c Thu Feb 20 16:27:08 2014 -0800
@@ -360,7 +360,6 @@
jobject file)
{
jint rv = 0;
- jint pathlen;
WCHAR *pathbuf = fileToNTPath(env, file, ids.path);
if (pathbuf == NULL)
--- a/jdk/src/windows/native/java/lang/ProcessImpl_md.c Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/src/windows/native/java/lang/ProcessImpl_md.c Thu Feb 20 16:27:08 2014 -0800
@@ -79,7 +79,7 @@
/*Good suggestion about 2-bytes-per-symbol in localized error reports*/
char utf8_javaMessage[MESSAGE_LENGTH*2];
const int errnum = (int)GetLastError();
- int n = os_error_message(errnum, utf16_OSErrorMsg, ARRAY_SIZE(utf16_OSErrorMsg));
+ size_t n = os_error_message(errnum, utf16_OSErrorMsg, ARRAY_SIZE(utf16_OSErrorMsg));
n = (n > 0)
? swprintf(utf16_javaMessage, MESSAGE_LENGTH, L"%s error=%d, %s", functionName, errnum, utf16_OSErrorMsg)
: swprintf(utf16_javaMessage, MESSAGE_LENGTH, L"%s failed, error=%d", functionName, errnum);
--- a/jdk/test/com/sun/corba/5036554/TestCorbaBug.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/com/sun/corba/5036554/TestCorbaBug.sh Thu Feb 20 16:27:08 2014 -0800
@@ -83,7 +83,7 @@
${TESTJAVA}${FS}bin${FS}javac -d . bug${FS}*.java
-${TESTJAVA}${FS}bin${FS}java -cp . bug/JavaBug > test.out 2>&1
+${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -cp . bug/JavaBug > test.out 2>&1
grep "NullPointerException" test.out
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/com/sun/jndi/dns/Parser.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,143 @@
+/*
+ * Copyright (c) 2014, Red Hat, Inc.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8035105
+ * @summary DNS resource record parsing
+ */
+
+import com.sun.jndi.dns.ResourceRecord;
+import javax.naming.CommunicationException;
+import javax.naming.InvalidNameException;;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+import java.io.IOException;
+
+import static java.nio.charset.StandardCharsets.ISO_8859_1;
+
+public class Parser {
+ static Constructor<ResourceRecord> rrConstructor;
+ static {
+ try {
+ rrConstructor = ResourceRecord.class.getDeclaredConstructor(
+ byte[].class, int.class, int.class, boolean.class,
+ boolean.class);
+ rrConstructor.setAccessible(true);
+ } catch (Exception e) {
+ throw new AssertionError(e);
+ }
+ }
+
+ static ResourceRecord parse(String data, int offset, boolean qSection)
+ throws Throwable {
+ byte[] bytes = data.getBytes(ISO_8859_1);
+ try {
+ return rrConstructor.newInstance(
+ bytes, bytes.length, offset, qSection, !qSection);
+ } catch (InvocationTargetException e) {
+ throw e.getCause();
+ }
+ }
+
+ public static void main(String[] args) throws Throwable {
+ ResourceRecord rr;
+
+ rr = parse("\003www\007example\003com\000\000\002\000\001",
+ 0, true);
+ if (!rr.getName().toString().equals("www.example.com."))
+ throw new AssertionError(rr.getName().toString());
+ if (rr.getRrclass() != 1)
+ throw new AssertionError("RCLASS: " + rr.getRrclass());
+ if (rr.getType() != 2)
+ throw new AssertionError("RTYPE: " + rr.getType());
+
+ String longLabel = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" +
+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
+
+ rr = parse("\077" + longLabel + "\077" + longLabel +
+ "\077" + longLabel + "\061" + longLabel.substring(0, 49) +
+ "\007example\003com\000\000\002\000\001",
+ 0, true);
+ if (!rr.getName().toString().equals(longLabel +
+ '.' + longLabel + '.' + longLabel +
+ '.' + longLabel.substring(0, 49) + ".example.com."))
+ throw new AssertionError(rr.getName().toString());
+ if (rr.getRrclass() != 1)
+ throw new AssertionError("RCLASS: " + rr.getRrclass());
+ if (rr.getType() != 2)
+ throw new AssertionError("RTYPE: " + rr.getType());
+
+ rr = parse("1-2-3-4-5-6-" +
+ "\003www\007example\003com\000\000\002\000\001" +
+ "\300\014\000\002\000\001\000\001\121\200" +
+ "\000\005\002ns\300\020",
+ 33, false);
+ if (!rr.getName().toString().equals("www.example.com."))
+ throw new AssertionError(rr.getName().toString());
+ if (rr.getRrclass() != 1)
+ throw new AssertionError("RCLASS: " + rr.getRrclass());
+ if (rr.getType() != 2)
+ throw new AssertionError("RTYPE: " + rr.getType());
+ if (!rr.getRdata().toString().equals("ns.example.com."))
+ throw new AssertionError("RDATA: " + rr.getRdata());
+
+ try {
+ parse("1-2-3-4-5-6-" +
+ "\003www\007example\003com\000\000\002\000\001" +
+ "\300\014\000\002\000\001\300\051\300\047" +
+ "\000\005\002ns\300\051",
+ 33, false);
+ throw new AssertionError();
+ } catch (CommunicationException e) {
+ if (!e.getMessage().equals("DNS error: malformed packet")
+ || e.getCause().getClass() != IOException.class
+ || !e.getCause().getMessage().equals(
+ "Too many compression references"))
+ throw e;
+ }
+
+ try {
+ String longLabel62 = "\076" + longLabel.substring(1);
+ parse(longLabel62 + longLabel62 + longLabel62 + longLabel62 +
+ "\002XX\000\000\002\000\001", 0, true);
+ throw new AssertionError();
+ } catch (CommunicationException e) {
+ if (!e.getMessage().equals("DNS error: malformed packet")
+ || e.getCause().getClass() != InvalidNameException.class
+ || !e.getCause().getMessage().equals("Name too long"))
+ throw e;
+ }
+ try {
+ parse("\100Y" + longLabel + "\000\000\002\000\001", 0, true);
+ throw new AssertionError();
+ } catch (CommunicationException e) {
+ if (!e.getMessage().equals("DNS error: malformed packet")
+ || e.getCause().getClass() != IOException.class
+ || !e.getCause().getMessage().equals("Invalid label type: 64"))
+ throw e;
+ }
+ }
+}
--- a/jdk/test/com/sun/net/httpserver/bugs/6725892/Test.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/com/sun/net/httpserver/bugs/6725892/Test.java Thu Feb 20 16:27:08 2014 -0800
@@ -68,7 +68,7 @@
try {
InetSocketAddress addr = new InetSocketAddress (0);
- s1 = HttpServer.create (addr, 0);
+ s1 = HttpServer.create (addr, 100);
HttpHandler h = new Handler ();
HttpContext c1 = s1.createContext ("/", h);
s1.setExecutor(exec);
--- a/jdk/test/demo/jvmti/hprof/CpuOldTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/demo/jvmti/hprof/CpuOldTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@
DemoRun hprof;
/* Run JVMTI hprof agent with cpu=old */
- hprof = new DemoRun("hprof", "cpu=old");
+ hprof = new DemoRun("hprof", "cpu=old,file=cpuold.txt");
hprof.runit(args[0]);
/* Make sure patterns in output look ok */
--- a/jdk/test/demo/jvmti/hprof/CpuSamplesTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/demo/jvmti/hprof/CpuSamplesTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@
DemoRun hprof;
/* Run JVMTI hprof agent with cpu=samples */
- hprof = new DemoRun("hprof", "cpu=samples");
+ hprof = new DemoRun("hprof", "cpu=samples,file=cpusamples.txt");
hprof.runit(args[0]);
/* Make sure patterns in output look ok */
--- a/jdk/test/demo/jvmti/hprof/CpuTimesDefineClassTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/demo/jvmti/hprof/CpuTimesDefineClassTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,7 +39,7 @@
DemoRun hprof;
/* Run JVMTI hprof agent with cpu=times */
- hprof = new DemoRun("hprof", "cpu=times");
+ hprof = new DemoRun("hprof", "cpu=times,file=cputimedefineclass.txt");
hprof.runit(args[0]);
/* Make sure patterns in output look ok */
--- a/jdk/test/demo/jvmti/hprof/CpuTimesTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/demo/jvmti/hprof/CpuTimesTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@
DemoRun hprof;
/* Run JVMTI hprof agent with cpu=times */
- hprof = new DemoRun("hprof", "cpu=times");
+ hprof = new DemoRun("hprof", "cpu=times,file=cputimes.txt");
hprof.runit(args[0]);
/* Make sure patterns in output look ok */
--- a/jdk/test/demo/jvmti/hprof/HeapAllTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/demo/jvmti/hprof/HeapAllTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@
DemoRun hprof;
/* Run JVMTI hprof agent with heap=all */
- hprof = new DemoRun("hprof", "heap=all");
+ hprof = new DemoRun("hprof", "heap=all,file=heapall.txt");
hprof.runit(args[0]);
/* Make sure patterns in output look ok */
--- a/jdk/test/demo/jvmti/hprof/HeapBinaryFormatTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/demo/jvmti/hprof/HeapBinaryFormatTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@
DemoRun hprof;
/* Run JVMTI hprof agent to get binary format dump */
- hprof = new DemoRun("hprof", "heap=dump,format=b,logflags=4");
+ hprof = new DemoRun("hprof", "heap=dump,format=b,logflags=4,file=heapbinaryformat.txt");
hprof.runit(args[0]);
/* Make sure patterns in output look ok */
--- a/jdk/test/demo/jvmti/hprof/HeapDumpTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/demo/jvmti/hprof/HeapDumpTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@
DemoRun hprof;
/* Run JVMTI hprof agent with heap=dump */
- hprof = new DemoRun("hprof", "heap=dump");
+ hprof = new DemoRun("hprof", "heap=dump,file=heapdump.txt");
hprof.runit(args[0]);
/* Make sure patterns in output look ok */
--- a/jdk/test/demo/jvmti/hprof/HeapSitesTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/demo/jvmti/hprof/HeapSitesTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@
DemoRun hprof;
/* Run JVMTI hprof agent with heap=sites */
- hprof = new DemoRun("hprof", "heap=sites");
+ hprof = new DemoRun("hprof", "heap=sites,file=heapsites.txt");
hprof.runit(args[0]);
/* Make sure patterns in output look ok */
--- a/jdk/test/demo/jvmti/hprof/MonitorTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/demo/jvmti/hprof/MonitorTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,7 @@
DemoRun hprof;
/* Run JVMTI hprof agent with monitor=y */
- hprof = new DemoRun("hprof", "monitor=y");
+ hprof = new DemoRun("hprof", "monitor=y,file=monitor.txt");
hprof.runit(args[0]);
/* Make sure patterns in output look ok */
--- a/jdk/test/demo/jvmti/hprof/OptionsTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/demo/jvmti/hprof/OptionsTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,10 +39,10 @@
DemoRun hprof;
List<String> options = new LinkedList<String>();
- options.add("cpu=samples,depth=0");
- options.add("cpu=times,depth=0");
- options.add("cpu=old,depth=0");
- options.add("depth=0");
+ options.add("cpu=samples,depth=0,file=options0.txt");
+ options.add("cpu=times,depth=0,file=options1.txt");
+ options.add("cpu=old,depth=0,file=options2.txt");
+ options.add("depth=0,file=options3.txt");
for(String option: options) {
/* Run JVMTI hprof agent with various options */
--- a/jdk/test/demo/jvmti/hprof/StackMapTableTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/demo/jvmti/hprof/StackMapTableTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -40,10 +40,10 @@
DemoRun hprof;
List<String> options = new LinkedList<String>();
- options.add("cpu=samples");
- options.add("cpu=times");
- options.add("heap=sites");
- options.add("");
+ options.add("cpu=samples,file=stackmaptable0.txt");
+ options.add("cpu=times,file=stackmaptable1.txt");
+ options.add("heap=sites,file=stackmaptable2.txt");
+ options.add("file=stackmaptable3.txt");
for(String option: options) {
/* Run JVMTI hprof agent with various options */
--- a/jdk/test/java/awt/FontClass/CreateFont/DeleteFont.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/awt/FontClass/CreateFont/DeleteFont.sh Thu Feb 20 16:27:08 2014 -0800
@@ -47,7 +47,7 @@
cd ${TESTCLASSES}
numfiles0=`ls ${TESTCLASSES} | wc -l`
-${TESTJAVA}/bin/java -Djava.io.tmpdir=${TESTCLASSES} DeleteFont
+${TESTJAVA}/bin/java ${TESTVMOPTS} -Djava.io.tmpdir=${TESTCLASSES} DeleteFont
if [ $? -ne 0 ]
then
--- a/jdk/test/java/awt/JAWT/JAWT.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/awt/JAWT/JAWT.sh Thu Feb 20 16:27:08 2014 -0800
@@ -165,7 +165,7 @@
${JAVAC} -d . ${TESTSRC}${FS}MyCanvas.java
${JAVAH} -jni -classpath . -d . MyCanvas
${MAKE} -f ${MAKEFILE}
-${JAVA} -classpath . MyCanvas
+${JAVA} ${TESTVMOPTS} -classpath . MyCanvas
exit $?
--- a/jdk/test/java/awt/PrintJob/Text/stringwidth.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/awt/PrintJob/Text/stringwidth.sh Thu Feb 20 16:27:08 2014 -0800
@@ -58,7 +58,7 @@
JAVA_HOME=$TESTJAVA
fi
- $JAVA_HOME/bin/java -cp "${CP}" StringWidth
+ $JAVA_HOME/bin/java ${TESTVMOPTS} -cp "${CP}" StringWidth
checkstatus
exit 0
--- a/jdk/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/awt/Toolkit/AutoShutdown/ShowExitTest/ShowExitTest.sh Thu Feb 20 16:27:08 2014 -0800
@@ -175,7 +175,7 @@
# pass, you should be able to cut and paste it into here and it will
# run with the test harness.
-${TESTJAVA}/bin/java ShowExitTest
+${TESTJAVA}/bin/java ${TESTVMOPTS} ShowExitTest
############### END YOUR TEST CODE !!!!! ############
#Be sure the last command executed above this line returns 0 for success,
--- a/jdk/test/java/awt/Toolkit/BadDisplayTest/BadDisplayTest.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/awt/Toolkit/BadDisplayTest/BadDisplayTest.sh Thu Feb 20 16:27:08 2014 -0800
@@ -28,10 +28,10 @@
OS=`uname -s`
case "$OS" in
SunOS )
- ${TESTJAVA}/bin/java BadDisplayTest
+ ${TESTJAVA}/bin/java ${TESTVMOPTS} BadDisplayTest
;;
Linux )
- ${TESTJAVA}/bin/java BadDisplayTest
+ ${TESTJAVA}/bin/java ${TESTVMOPTS} BadDisplayTest
;;
* )
echo "Unsupported System: ${OS}"
--- a/jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/awt/Toolkit/Headless/WrappedToolkitTest/WrappedToolkitTest.sh Thu Feb 20 16:27:08 2014 -0800
@@ -146,13 +146,13 @@
case "$OS" in
Windows* | CYGWIN* )
- ${TESTJAVA}/bin/java -Djava.awt.headless=true \
+ ${TESTJAVA}/bin/java ${TESTVMOPTS} -Djava.awt.headless=true \
TestWrapped sun.awt.windows.WToolkit
status=$?
if [ ! $status -eq "0" ]; then
fail "Test FAILED: toolkit wrapped into HeadlessToolkit is not an instance of sun.awt.windows.WToolkit";
fi
- ${TESTJAVA}/bin/java -Djava.awt.headless=true \
+ ${TESTJAVA}/bin/java ${TESTVMOPTS} -Djava.awt.headless=true \
-Dawt.toolkit=sun.awt.windows.WToolkit \
TestWrapped sun.awt.windows.WToolkit
status=$?
@@ -162,14 +162,15 @@
;;
SunOS | Linux )
- ${TESTJAVA}/bin/java -Djava.awt.headless=true \
+ ${TESTJAVA}/bin/java ${TESTVMOPTS} -Djava.awt.headless=true \
-Dawt.toolkit=sun.awt.X11.XToolkit \
TestWrapped sun.awt.X11.XToolkit
status=$?
if [ ! $status -eq "0" ]; then
fail "Test FAILED: toolkit wrapped into HeadlessToolkit is not an instance of sun.awt.xawt.XToolkit";
fi
- AWT_TOOLKIT=XToolkit ${TESTJAVA}/bin/java -Djava.awt.headless=true \
+ AWT_TOOLKIT=XToolkit ${TESTJAVA}/bin/java ${TESTVMOPTS} \
+ -Djava.awt.headless=true \
TestWrapped sun.awt.X11.XToolkit
status=$?
if [ ! $status -eq "0" ]; then
@@ -178,13 +179,13 @@
;;
Darwin)
- ${TESTJAVA}/bin/java -Djava.awt.headless=true \
+ ${TESTJAVA}/bin/java ${TESTVMOPTS} -Djava.awt.headless=true \
TestWrapped sun.lwawt.macosx.LWCToolkit
status=$?
if [ ! $status -eq "0" ]; then
fail "Test FAILED: toolkit wrapped into HeadlessToolkit is not an instance of sun.lwawt.macosx.LWCToolkit";
fi
- ${TESTJAVA}/bin/java -Djava.awt.headless=true \
+ ${TESTJAVA}/bin/java ${TESTVMOPTS} -Djava.awt.headless=true \
-Dawt.toolkit=sun.lwawt.macosx.LWCToolkit \
TestWrapped sun.lwawt.macosx.LWCToolkit
status=$?
--- a/jdk/test/java/net/Authenticator/B4769350.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/net/Authenticator/B4769350.java Thu Feb 20 16:27:08 2014 -0800
@@ -66,14 +66,15 @@
this.allowerror = allowerror;
}
+ @Override
public void run () {
try {
URI u = new URI ("http", authority, path, null, null);
URL url = u.toURL();
URLConnection urlc = url.openConnection();
- InputStream is = urlc.getInputStream();
- read (is);
- is.close();
+ try (InputStream is = urlc.getInputStream()) {
+ read (is);
+ }
} catch (URISyntaxException e) {
System.out.println (e);
error = true;
@@ -91,8 +92,6 @@
class Server implements AutoCloseable {
HttpServer server;
Executor executor;
- CyclicBarrier t1Cond1;
- CyclicBarrier t1Cond2;
public String getAddress() {
return server.getAddress().getHostName();
@@ -126,8 +125,7 @@
new AuthenticationHandlerT3bc());
server.createContext("/test/realm4/t3c",
new AuthenticationHandlerT3bc());
- t1Cond1 = new CyclicBarrier(2);
- t1Cond2 = new CyclicBarrier(2);
+ t1Cond1 = new CyclicBarrier(3);
server.start();
}
@@ -135,6 +133,7 @@
return server.getAddress().getPort();
}
+ @Override
public void close() {
if (executor != null)
((ExecutorService)executor).shutdownNow();
@@ -163,7 +162,6 @@
break;
case 1:
t1Cond1.await();
- t1cond2latch.await();
AuthenticationHandler.okReply(exchange);
break;
default:
@@ -192,8 +190,6 @@
break;
case 1:
t1Cond1.await();
- t1cond1latch.countDown();
- t1cond2latch.await();
AuthenticationHandler.okReply(exchange);
break;
default:
@@ -216,13 +212,6 @@
case 0:
AuthenticationHandler.errorReply(exchange,
"Basic realm=\"realm1\"");
- try {
- t1Cond2.await();
- } catch (InterruptedException |
- BrokenBarrierException e)
- {
- throw new RuntimeException(e);
- }
break;
case 1:
AuthenticationHandler.okReply(exchange);
@@ -244,14 +233,6 @@
case 0:
AuthenticationHandler.errorReply(exchange,
"Basic realm=\"realm2\"");
- try {
- t1Cond2.await();
- } catch (InterruptedException |
- BrokenBarrierException e)
- {
- throw new RuntimeException(e);
- }
- t1cond2latch.countDown();
break;
case 1:
AuthenticationHandler.okReply(exchange);
@@ -377,9 +358,9 @@
exchange.getResponseHeaders().add("Connection", "close");
String response = "Hello .";
exchange.sendResponseHeaders(200, response.getBytes().length);
- OutputStream os = exchange.getResponseBody();
- os.write(response.getBytes());
- os.close();
+ try (OutputStream os = exchange.getResponseBody()) {
+ os.write(response.getBytes());
+ }
exchange.close();
}
}
@@ -391,10 +372,9 @@
static Client c1,c2,c3,c4,c5,c6,c7,c8,c9;
- static CountDownLatch t1cond1latch;
- static CountDownLatch t1cond2latch;
static CountDownLatch t2condlatch;
static CountDownLatch t3cond1;
+ static CyclicBarrier t1Cond1;
static void doServerTests (String authority, Server server) throws Exception
{
@@ -404,10 +384,8 @@
c2 = new Client (authority, "/test/realm2/t1b", false);
c3 = new Client (authority, "/test/realm1/t1c", false);
c4 = new Client (authority, "/test/realm2/t1d", false);
- t1cond1latch = new CountDownLatch(1);
- t1cond2latch = new CountDownLatch(1);
c1.start(); c2.start();
- t1cond1latch.await();
+ t1Cond1.await();
c3.start(); c4.start();
c1.join(); c2.join(); c3.join(); c4.join();
--- a/jdk/test/java/net/URLPermission/nstest/lookup.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/net/URLPermission/nstest/lookup.sh Thu Feb 20 16:27:08 2014 -0800
@@ -56,4 +56,7 @@
};
POLICY
-${TESTJAVA}/bin/java -Djava.security.policy=file:./policy -Dsun.net.spi.nameservice.provider.1=simple,sun -cp ${TESTCLASSES}${PS}${TESTSRC} LookupTest -runtest ${port}
+${TESTJAVA}/bin/java ${TESTVMOPTS} \
+ -Djava.security.policy=file:./policy \
+ -Dsun.net.spi.nameservice.provider.1=simple,sun \
+ -cp ${TESTCLASSES}${PS}${TESTSRC} LookupTest -runtest ${port}
--- a/jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/run_tests.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/nio/channels/spi/SelectorProvider/inheritedChannel/run_tests.sh Thu Feb 20 16:27:08 2014 -0800
@@ -109,7 +109,7 @@
go() {
echo ''
- sh -xc "$JAVA $DFLAG $1 $2 $3 $4 $5 $6 $7 $8" 2>&1
+ sh -xc "$JAVA ${TESTVMOPTS} $DFLAG $1 $2 $3 $4 $5 $6 $7 $8" 2>&1
if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
}
--- a/jdk/test/java/rmi/MarshalledObject/compare/NullReference.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/rmi/MarshalledObject/compare/NullReference.java Thu Feb 20 16:27:08 2014 -0800
@@ -24,7 +24,9 @@
/*
* @test
* @bug 4105900
- * @summary MarshalledObject with null throws NullPointerException
+ * @summary MarshalledObject with null throws NullPointerException.
+ * This test does not affect VM global state, so othervm
+ * is not required.
* @author Ken Arnold
*
* @run main NullReference
--- a/jdk/test/java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/rmi/activation/Activatable/shutdownGracefully/ShutdownGracefully.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,7 @@
*/
/* @test
- * @bug 4183169
+ * @bug 4183169 8032050
* @summary Minor problem with the way ReliableLog handles IOExceptions.
*
* @author Laird Dornin; code borrowed from Ann Wollrath
@@ -36,6 +36,7 @@
import java.rmi.activation.*;
import java.rmi.*;
import java.util.Properties;
+import java.util.concurrent.TimeoutException;
/**
* The test creates an rmid with a special security manager. After
@@ -51,7 +52,7 @@
* (after that time, the test will fail).
*/
public class ShutdownGracefully
- extends Activatable implements Runnable, RegisteringActivatable
+ extends Activatable implements RegisteringActivatable
{
private static RegisteringActivatable registering = null;
@@ -61,6 +62,8 @@
RMID rmid = null;
+ // Save exception if there is a exception or expected behavior
+ Exception exception = null;
System.err.println("\nRegression test for bug/rfe 4183169\n");
try {
@@ -132,101 +135,37 @@
desc = new ActivationDesc(secondGroupID,
"ShutdownGracefully", null, null);
+ /*
+ * registration request is expected to be failed. succeeded case
+ * should be recorded. And raise error after clean up rmid.
+ */
try {
registering = (RegisteringActivatable)
Activatable.register(desc);
-
- System.err.println("second activate and deactivate " +
- "object via method call");
+ System.err.println("The registration request succeeded unexpectedly");
+ exception = new RuntimeException("The registration request succeeded unexpectedly");
} catch (ActivationException e) {
System.err.println("received exception from registration " +
"call that should have failed...");
- }
-
- /*
- * no longer needed because the security manager
- * throws an exception during snapshot
- */
- /*
- try {
- registering.shutdown();
-
- System.err.println("received exception from remote " +
- "call that should have failed...");
- } catch (RemoteException e) {
- }
- */
-
- } catch (Exception e) {
- TestLibrary.bomb("\nfailure: unexpected exception ", e);
- } finally {
- try {
- Thread.sleep(4000);
- } catch (InterruptedException e) {
- }
-
- registering = null;
-
- // Need to make sure that rmid goes away by itself
- JavaVM rmidProcess = rmid;
- if (rmidProcess != null) {
+ // Need wait rmid process terminates.
try {
- Runnable waitThread =
- new ShutdownDetectThread(rmidProcess);
-
- synchronized (waitThread) {
- (new Thread(waitThread)).start();
- waitThread.wait(SHUTDOWN_TIMEOUT);
- System.err.println("rmid has shutdown");
-
- if (!rmidDone) {
- // ensure that this rmid does not infect
- // other tests.
- rmidProcess.destroy();
- TestLibrary.bomb("rmid did not shutdown " +
- "gracefully in time");
- }
- }
- } catch (Exception e) {
- TestLibrary.bomb("exception waiting for rmid " +
- "to shut down");
+ int exitCode = rmid.waitFor(SHUTDOWN_TIMEOUT);
+ System.err.println("RMID has exited gracefully with exitcode:" + exitCode);
+ rmid = null;
+ } catch (TimeoutException te) {
+ System.err.println("RMID process has not exited in given time");
+ exception = te;
}
}
- // else rmid should be down
- }
-
- System.err.println
- ("\nsuccess: ShutdownGracefully test passed ");
- }
-
- private static boolean rmidDone = false;
-
- /**
- * class that waits for rmid to exit
- */
- private static class ShutdownDetectThread implements Runnable {
- private JavaVM rmidProcess = null;
-
- ShutdownDetectThread(JavaVM rmidProcess) {
- this.rmidProcess = rmidProcess;
+ } catch (Exception e) {
+ System.err.println("Exception thrown:" + e);
+ exception = e;
+ } finally {
+ if (rmid != null)
+ rmid.destroy();
}
- public void run() {
- System.err.println("waiting for rmid to shutdown");
-
- try {
- rmidProcess.waitFor();
- } catch (InterruptedException e) {
- // should not happen
- }
-
- synchronized (this) {
- // notify parent thread when rmid has exited
- this.notify();
- rmidDone = true;
- }
-
- RMID.removeLog();
- }
+ if (exception != null)
+ TestLibrary.bomb("\nexception thrown in test: ", exception);
}
/**
@@ -240,23 +179,12 @@
}
/**
- * Spawns a thread to deactivate the object.
+ * Deactivates the object. We need to unexport forcibly because this call
+ * in-progress on this object, which is the same object that we are trying
+ * to deactivate.
*/
public void shutdown() throws Exception {
- (new Thread(this, "ShutdownGracefully")).start();
- }
-
- /**
- * Thread to deactivate object. First attempts to make object
- * inactive (via the inactive method). If that fails (the
- * object may still have pending/executing calls), then
- * unexport the object forcibly.
- */
- public void run() {
- try {
- Thread.sleep(50 * 1000);
- } catch (InterruptedException e) {
- }
+ Activatable.unexportObject(this, true);
ActivationLibrary.deactivate(this, getID());
}
}
--- a/jdk/test/java/rmi/server/Unmarshal/PrimitiveClasses.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/rmi/server/Unmarshal/PrimitiveClasses.java Thu Feb 20 16:27:08 2014 -0800
@@ -24,7 +24,8 @@
/* @test
* @bug 4442373
* @summary Verify that RMI can successfully unmarshal Class objects for
- * primitive types.
+ * primitive types. This test does not affect VM global state,
+ * so othervm is not required.
* @run main PrimitiveClasses
*/
--- a/jdk/test/java/rmi/testlibrary/JavaVM.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/rmi/testlibrary/JavaVM.java Thu Feb 20 16:27:08 2014 -0800
@@ -26,6 +26,7 @@
import java.io.OutputStream;
import java.util.Arrays;
import java.util.StringTokenizer;
+import java.util.concurrent.TimeoutException;
/**
* RMI regression test utility class that uses Runtime.exec to spawn a
@@ -173,6 +174,40 @@
}
/**
+ * Causes the current thread to wait the vm process to exit, if necessary,
+ * wait until the vm process has terminated, or the specified waiting time
+ * elapses. Release allocated input/output after vm process has terminated.
+ * @param timeout the maximum milliseconds to wait.
+ * @return exit value for vm process.
+ * @throws InterruptedException if the current thread is interrupted
+ * while waiting.
+ * @throws TimeoutException if subprocess does not end after timeout
+ * milliseconds passed
+ */
+ public int waitFor(long timeout)
+ throws InterruptedException, TimeoutException {
+ if (vm == null)
+ throw new IllegalStateException("can't wait for JavaVM that isn't running");
+ long startTime = System.currentTimeMillis();
+ long rem = timeout;
+
+ do {
+ try {
+ int status = vm.exitValue();
+ outPipe.join();
+ errPipe.join();
+ return status;
+ } catch (IllegalThreadStateException ex) {
+ if (rem > 0) {
+ Thread.sleep(Math.min(rem, 100));
+ }
+ }
+ rem = timeout - (System.currentTimeMillis() - startTime);
+ } while (rem > 0);
+ throw new TimeoutException();
+ }
+
+ /**
* Starts the subprocess, waits for it to exit, and returns its exit status.
*/
public int execute() throws IOException, InterruptedException {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/security/cert/CertPathBuilder/akiExt/AKISerialNumber.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8025708
+ * @summary make sure a PKIX CertPathBuilder can build a path when an
+ * intermediate CA certificate contains an AKI extension with a key
+ * identifier and no serial number and the end-entity certificate contains
+ * an AKI extension with both a key identifier and a serial number.
+ */
+
+import java.io.ByteArrayInputStream;
+import java.security.cert.*;
+import java.util.ArrayList;
+import java.util.Base64;
+import java.util.Collections;
+
+public class AKISerialNumber {
+
+ private static final String ROOT_CERT =
+ "MIICfTCCAeagAwIBAgIBATANBgkqhkiG9w0BAQUFADB3MQ0wCwYDVQQDEwRSb290\n" +
+ "MRYwFAYDVQQLEw1UZXN0IE9yZyBVbml0MREwDwYDVQQKEwhUZXN0IE9yZzEWMBQG\n" +
+ "A1UEBxMNVGVzdCBMb2NhbGl0eTEWMBQGA1UECBMNTWFzc2FjaHVzZXR0czELMAkG\n" +
+ "A1UEBhMCVVMwHhcNMTQwMjAxMDUwMDAwWhcNMjQwMjAxMDUwMDAwWjB3MQ0wCwYD\n" +
+ "VQQDEwRSb290MRYwFAYDVQQLEw1UZXN0IE9yZyBVbml0MREwDwYDVQQKEwhUZXN0\n" +
+ "IE9yZzEWMBQGA1UEBxMNVGVzdCBMb2NhbGl0eTEWMBQGA1UECBMNTWFzc2FjaHVz\n" +
+ "ZXR0czELMAkGA1UEBhMCVVMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJvL\n" +
+ "cZu6Rzf9IrduEDjJxEFv5uBvUNMlIAph7NhfmFH9puPW3Ksci4a5yTCzxI9VeVf3\n" +
+ "oYZ/UrZdF+mNZmS23RUh71X5tjMO+xew196M1xNpCRLbjcZ6i4tNdZYkdRIe8ejN\n" +
+ "sbBoD7OAvPbQqTygeG4jYjK6ODofSrba3BndNoFxAgMBAAGjGTAXMBUGA1UdEwEB\n" +
+ "/wQLMAkBAf8CBH////8wDQYJKoZIhvcNAQEFBQADgYEATvCqn69pNHv0zLiZAXk7\n" +
+ "3AKwAoza0wa+1S2rVuZGfBWbV7CxmBHbgcDDbU7/I8pQVkCwOHNkVFnBgNpMuAvU\n" +
+ "aDyrHSNS/av5d1yk5WAuGX2B9mSwZdhnAvtz2fsV1q9NptdF54EkIiKtQQmTGnr9\n" +
+ "TID8CFEk/qje+AB272B1UJw=\n";
+
+ /**
+ * This certificate contains an AuthorityKeyIdentifier with only the
+ * keyIdentifier field filled in.
+ */
+ private static final String INT_CERT_WITH_KEYID_AKI =
+ "MIICqTCCAhKgAwIBAgIBAjANBgkqhkiG9w0BAQUFADB3MQ0wCwYDVQQDEwRSb290\n" +
+ "MRYwFAYDVQQLEw1UZXN0IE9yZyBVbml0MREwDwYDVQQKEwhUZXN0IE9yZzEWMBQG\n" +
+ "A1UEBxMNVGVzdCBMb2NhbGl0eTEWMBQGA1UECBMNTWFzc2FjaHVzZXR0czELMAkG\n" +
+ "A1UEBhMCVVMwHhcNMTQwMjAxMDUwMDAwWhcNMjQwMjAxMDUwMDAwWjCBhDEaMBgG\n" +
+ "A1UEAxMRSW50ZXJtZWRpYXRlIENBIDIxFjAUBgNVBAsTDVRlc3QgT3JnIFVuaXQx\n" +
+ "ETAPBgNVBAoTCFRlc3QgT3JnMRYwFAYDVQQHEw1UZXN0IExvY2FsaXR5MRYwFAYD\n" +
+ "VQQIEw1NYXNzYWNodXNldHRzMQswCQYDVQQGEwJVUzCBnzANBgkqhkiG9w0BAQEF\n" +
+ "AAOBjQAwgYkCgYEAwKTZekCqb9F9T54s2IXjkQbmLIjQamMpkUlZNrpjjNq9CpTT\n" +
+ "POkfxv2UPwzTz3Ij4XFL/kJFBLm8NUOsS5xPJ62pGoZBPw9R0iMTsTce+Fpukqnr\n" +
+ "I+8jTRaAvr0tR3pqrE6uHKg7dWYN2SsWesDia/LHhwEN38yyWtSuTTLo4hcCAwEA\n" +
+ "AaM3MDUwHwYDVR0jBBgwFoAU6gZP1pO8v7+i8gsFf1gWTf/j3PkwEgYDVR0TAQH/\n" +
+ "BAgwBgEB/wIBADANBgkqhkiG9w0BAQUFAAOBgQAQxeQruav4AqQM4gmEfrHr5hOq\n" +
+ "mB2CNJ1ZqVfpDZ8GHijncKTpjNoXzzQtV23Ge+39JHOVBNWtk+aghB3iu6xGq7Qn\n" +
+ "HlBhg9meqHFqd3igDDD/jhABL2/bEo/M9rv6saYWDFZ8nCIEE6iTLTpRRko4W2Xb\n" +
+ "DyzMzMsO1kPNrJaxRg==\n";
+
+ /**
+ * This certificate contains an AuthorityKeyIdentifier with all 3 fields
+ * (keyIdentifier, authorityCertIssuer, and authorityCertSerialNumber)
+ * filled in.
+ */
+ private static final String EE_CERT_WITH_FULL_AKI =
+ "MIIDLjCCApegAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBhDEaMBgGA1UEAxMRSW50\n" +
+ "ZXJtZWRpYXRlIENBIDIxFjAUBgNVBAsTDVRlc3QgT3JnIFVuaXQxETAPBgNVBAoT\n" +
+ "CFRlc3QgT3JnMRYwFAYDVQQHEw1UZXN0IExvY2FsaXR5MRYwFAYDVQQIEw1NYXNz\n" +
+ "YWNodXNldHRzMQswCQYDVQQGEwJVUzAeFw0xNDAyMDEwNTAwMDBaFw0yNDAyMDEw\n" +
+ "NTAwMDBaMH0xEzARBgNVBAMTCkVuZCBFbnRpdHkxFjAUBgNVBAsTDVRlc3QgT3Jn\n" +
+ "IFVuaXQxETAPBgNVBAoTCFRlc3QgT3JnMRYwFAYDVQQHEw1UZXN0IExvY2FsaXR5\n" +
+ "MRYwFAYDVQQIEw1NYXNzYWNodXNldHRzMQswCQYDVQQGEwJVUzCBnzANBgkqhkiG\n" +
+ "9w0BAQEFAAOBjQAwgYkCgYEAqady46PdwlKHVP1iaP11CxVyL6cDlPjpwhHCcIUv\n" +
+ "nKHbzdamqmHebDcWVBNN/I0TLNCl3ga7n8KyygSN379fG7haU8SNjpy4IDAXM0/x\n" +
+ "mwTWNTbKfJEkSoiqx1WUy2JTzRUMhgYPguQNECPxBXAdQrthZ7wQosv6Ro2ySP9O\n" +
+ "YqsCAwEAAaOBtTCBsjCBoQYDVR0jBIGZMIGWgBQdeoKxTvlTgW2KgprD69vgHV4X\n" +
+ "kKF7pHkwdzENMAsGA1UEAxMEUm9vdDEWMBQGA1UECxMNVGVzdCBPcmcgVW5pdDER\n" +
+ "MA8GA1UEChMIVGVzdCBPcmcxFjAUBgNVBAcTDVRlc3QgTG9jYWxpdHkxFjAUBgNV\n" +
+ "BAgTDU1hc3NhY2h1c2V0dHMxCzAJBgNVBAYTAlVTggECMAwGA1UdEwEB/wQCMAAw\n" +
+ "DQYJKoZIhvcNAQEFBQADgYEAuG4mM1nLF7STQWwmceELZEl49ntapH/RVoekknmd\n" +
+ "aNzcL4XQf6BTl8KFUXuThHaukQnGIzFbSZV0hrpSQ5fTN2cSZgD4Fji+HuNURmmd\n" +
+ "+Kayl0piHyO1FSbrty0TFhlVNvzKXjmMp6Jdn42KyGOSCoROQcvUWN6xkV3Hvrei\n" +
+ "0ZE=\n";
+
+ private static Base64.Decoder b64Decoder = Base64.getMimeDecoder();
+ private static CertificateFactory cf;
+
+ public static void main(String[] args) throws Exception {
+
+ cf = CertificateFactory.getInstance("X.509");
+
+ X509Certificate rootCert = getCertFromMimeEncoding(ROOT_CERT);
+ TrustAnchor anchor = new TrustAnchor(rootCert, null);
+
+ X509Certificate eeCert = getCertFromMimeEncoding(EE_CERT_WITH_FULL_AKI);
+ X509Certificate intCert = getCertFromMimeEncoding(INT_CERT_WITH_KEYID_AKI);
+
+ X509CertSelector sel = new X509CertSelector();
+ sel.setCertificate(eeCert);
+ PKIXBuilderParameters params = new PKIXBuilderParameters
+ (Collections.singleton(anchor), sel);
+ params.setRevocationEnabled(false);
+
+ ArrayList<X509Certificate> certs = new ArrayList<>();
+ certs.add(intCert);
+ certs.add(eeCert);
+ CollectionCertStoreParameters ccsp =
+ new CollectionCertStoreParameters(certs);
+ CertStore cs = CertStore.getInstance("Collection", ccsp);
+ params.addCertStore(cs);
+
+ CertPathBuilder cpb = CertPathBuilder.getInstance("PKIX");
+ CertPathBuilderResult res = cpb.build(params);
+ }
+
+ private static X509Certificate getCertFromMimeEncoding(String encoded)
+ throws CertificateException
+ {
+ byte[] bytes = b64Decoder.decode(encoded);
+ ByteArrayInputStream stream = new ByteArrayInputStream(bytes);
+ return (X509Certificate)cf.generateCertificate(stream);
+ }
+}
--- a/jdk/test/java/util/Locale/LocaleProviders.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/util/Locale/LocaleProviders.java Thu Feb 20 16:27:08 2014 -0800
@@ -68,6 +68,10 @@
bug8013903Test();
break;
+ case "bug8027289Test":
+ bug8027289Test(args[1]);
+ break;
+
default:
throw new RuntimeException("Test method '"+methodName+"' not found.");
}
@@ -232,4 +236,14 @@
}
}
}
+
+ static void bug8027289Test(String expectedCodePoint) {
+ char[] expectedSymbol = Character.toChars(Integer.valueOf(expectedCodePoint, 16));
+ NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.CHINA);
+ char formatted = nf.format(7000).charAt(0);
+ System.out.println("returned: " + formatted + ", expected: " + expectedSymbol[0]);
+ if (formatted != expectedSymbol[0]) {
+ throw new RuntimeException("Unexpected Chinese currency symbol. returned: " + formatted + ", expected: " + expectedSymbol[0]);
+ }
+ }
}
--- a/jdk/test/java/util/Locale/LocaleProviders.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/util/Locale/LocaleProviders.sh Thu Feb 20 16:27:08 2014 -0800
@@ -314,4 +314,22 @@
PARAM3=
runTest
+# testing 8027289 fix, if the platform format default is zh_CN
+# this assumes Windows' currency symbol for zh_CN is \u00A5, the yen
+# (yuan) sign.
+if [ "${DEFFMTLANG}" = "zh" ] && [ "${DEFFMTCTRY}" = "CN" ]; then
+ METHODNAME=bug8027289Test
+ PREFLIST=JRE,HOST
+ PARAM1=FFE5
+ PARAM2=
+ PARAM3=
+ runTest
+ METHODNAME=bug8027289Test
+ PREFLIST=HOST
+ PARAM1=00A5
+ PARAM2=
+ PARAM3=
+ runTest
+fi
+
exit $result
--- a/jdk/test/java/util/regex/RegExTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/java/util/regex/RegExTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -32,7 +32,7 @@
* 6358731 6178785 6284152 6231989 6497148 6486934 6233084 6504326 6635133
* 6350801 6676425 6878475 6919132 6931676 6948903 6990617 7014645 7039066
* 7067045 7014640 7189363 8007395 8013252 8013254 8012646 8023647 6559590
- * 8027645
+ * 8027645 8035076
*/
import java.util.regex.*;
--- a/jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatTest.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatTest.sh Thu Feb 20 16:27:08 2014 -0800
@@ -211,7 +211,8 @@
# split application classes and test plugin classes
mv ./UserPluginMetadataFormatTest*.class ./test_classes
-$TESTJAVA/bin/java MetadataFormatTest test_classes UserPluginMetadataFormatTest
+$TESTJAVA/bin/java ${TESTVMOPTS} \
+ MetadataFormatTest test_classes UserPluginMetadataFormatTest
############### END YOUR TEST CODE !!!!! ############
status=$?
--- a/jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatThreadTest.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/javax/imageio/metadata/IIOMetadataFormat/runMetadataFormatThreadTest.sh Thu Feb 20 16:27:08 2014 -0800
@@ -212,7 +212,8 @@
# split application classes and test plugin classes
mv ./UserPluginMetadataFormatTest*.class ./test_classes
-$TESTJAVA/bin/java MetadataFormatThreadTest test_classes UserPluginMetadataFormatTest
+$TESTJAVA/bin/java ${TESTVMOPTS} \
+ MetadataFormatThreadTest test_classes UserPluginMetadataFormatTest
############### END YOUR TEST CODE !!!!! ############
status=$?
--- a/jdk/test/javax/imageio/stream/StreamCloserLeak/run_test.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/javax/imageio/stream/StreamCloserLeak/run_test.sh Thu Feb 20 16:27:08 2014 -0800
@@ -198,14 +198,15 @@
fi
# Verify that all classoladers are destroyed
-${TESTJAVA}/bin/java -cp Test.jar test.Main
+${TESTJAVA}/bin/java ${TESTVMOPTS} -cp Test.jar test.Main
if [ $? -ne 0 ] ; then
fail "Test FAILED: some classloaders weren't destroyed."
fi
# Verify that ImageIO shutdown hook works correcly
-${TESTJAVA}/bin/java -cp Test.jar -DforgetSomeStreams=true test.Main
+${TESTJAVA}/bin/java ${TESTVMOPTS} \
+ -cp Test.jar -DforgetSomeStreams=true test.Main
if [ $? -ne 0 ] ; then
fail "Test FAILED: some classloaders weren't destroyed of shutdown hook failed."
fi
--- a/jdk/test/javax/print/PrintSE/PrintSE.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/javax/print/PrintSE/PrintSE.sh Thu Feb 20 16:27:08 2014 -0800
@@ -46,6 +46,9 @@
createJavaPolicyFile
-${TESTJAVA}/bin/java -Djava.security.manager -Djava.security.policy=${TESTCLASSES}/print.policy -cp ${TESTCLASSES} PrintSE
+${TESTJAVA}/bin/java ${TESTVMOPTS} \
+ -Djava.security.manager \
+ -Djava.security.policy=${TESTCLASSES}/print.policy \
+ -cp ${TESTCLASSES} PrintSE
exit $?
--- a/jdk/test/javax/rmi/ssl/SocketFactoryTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/javax/rmi/ssl/SocketFactoryTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -25,6 +25,8 @@
* @test
* @bug 4932837 6582235
* @summary Test SslRMI[Client|Server]SocketFactory equals() and hashCode().
+ * This test does not affect VM global state, so othervm is
+ * not required.
* @author Daniel Fuchs
*
* @run main SocketFactoryTest
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/xml/jaxp/datatype/8033980/CalendarDuration1097Test.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8033980
+ * @summary verify that offset in minutes in getTimeZone is converted correctly
+ * Note that JDK did not have this bug.
+ * @run main CalendarDuration1097Test
+ */
+
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ *
+ * @author Joe Wang huizhe.wang@oracle.com
+ */
+public class CalendarDuration1097Test {
+
+ /**
+ * main method.
+ *
+ * @param args Standard args.
+ */
+ public static void main(String[] args) {
+ try {
+ String dateTimeString = "0001-01-01T00:00:00.0000000-05:00";
+ DatatypeFactory dtf = DatatypeFactory.newInstance();
+ XMLGregorianCalendar cal = dtf.newXMLGregorianCalendar( dateTimeString );
+ System.out.println( "Expected: 0001-01-01T00:00:00.0000000-05:00");
+ System.out.println( "Actual:" + cal.toString() );
+ System.out.println( "toXMLFormat:" + cal.toXMLFormat() );
+ String test = cal.toString();
+ if (test.indexOf("E-7") > -1) {
+ throw new RuntimeException("Expected: 0001-01-01T00:00:00.0000000-05:00");
+ }
+ } catch (DatatypeConfigurationException ex) {
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/xml/jaxp/datatype/8033980/CalendarDuration1243Test.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8033980
+ * @summary verify that offset in minutes in getTimeZone is converted correctly
+ * @run main CalendarDuration1243Test
+ */
+
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ *
+ * @author Joe Wang huizhe.wang@oracle.com
+ */
+public class CalendarDuration1243Test {
+
+ /**
+ * main method.
+ *
+ * @param args Standard args.
+ */
+ public static void main(String[] args) {
+ try {
+ String dateTimeString = "2006-11-22T00:00:00.0+01:02";
+ DatatypeFactory dtf = DatatypeFactory.newInstance();
+ XMLGregorianCalendar cal = dtf.newXMLGregorianCalendar( dateTimeString );
+ System.out.println( "XMLGregCal:" + cal.toString() );
+ System.out.println( "GregCal:" + cal.toGregorianCalendar() );
+ String toGCal = cal.toGregorianCalendar().toString();
+ if (toGCal.indexOf("GMT+12:00") > -1) {
+ throw new RuntimeException("Expected GMT+01:02");
+ }
+ } catch (DatatypeConfigurationException ex) {
+ throw new RuntimeException(ex.getMessage());
+ }
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/xml/jaxp/datatype/8033980/CalendarDuration1416Test.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8033980
+ * @summary test that invalid durations are caught
+ * @run main CalendarDuration1416Test
+ */
+
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+
+
+/**
+ *
+ * @author Joe Wang huizhe.wang@oracle.com
+ */
+public class CalendarDuration1416Test {
+
+ /**
+ * main method.
+ *
+ * @param args Standard args.
+ */
+ public static void main(String[] args) {
+ test1416("PT1D1H");
+ test1416("PT1D1H30M");
+ test1416("PT1D1H30S");
+ }
+
+ static void test1416(String d) {
+ try
+ {
+ DatatypeFactory dtf = DatatypeFactory.newInstance();
+ dtf.newDuration(d);
+ throw new Error("no bug for " + d);
+ } catch (DatatypeConfigurationException ex) {
+ fail(ex.getMessage());
+ }
+ catch (NullPointerException e) {
+ fail("NPE bug ! " + d);
+
+ }
+ catch(IllegalArgumentException e)
+ {
+ System.out.println("OK, BUG FIXED for " + d);
+ }
+
+ }
+
+ static void fail(String errMessage) {
+ throw new RuntimeException(errMessage);
+ }
+}
Binary file jdk/test/javax/xml/jaxp/datatype/8033980/JDK6_Duration.ser has changed
Binary file jdk/test/javax/xml/jaxp/datatype/8033980/JDK6_XMLGregorianCalendar.ser has changed
Binary file jdk/test/javax/xml/jaxp/datatype/8033980/JDK7_Duration.ser has changed
Binary file jdk/test/javax/xml/jaxp/datatype/8033980/JDK7_XMLGregorianCalendar.ser has changed
Binary file jdk/test/javax/xml/jaxp/datatype/8033980/JDK8_Duration.ser has changed
Binary file jdk/test/javax/xml/jaxp/datatype/8033980/JDK8_XMLGregorianCalendar.ser has changed
Binary file jdk/test/javax/xml/jaxp/datatype/8033980/JDK9_Duration.ser has changed
Binary file jdk/test/javax/xml/jaxp/datatype/8033980/JDK9_XMLGregorianCalendar.ser has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/xml/jaxp/datatype/8033980/SerializationTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,184 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8033980
+ * @summary verify serialization compatibility for XMLGregorianCalendar and Duration
+ * @run main SerializationTest read
+ */
+
+import java.io.*;
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.Duration;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+/**
+ * use "read" to test compatibility
+ * SerializationTest read
+ *
+ * use "write" to create test files
+ * SerializationTest write javaVersion
+ * where javaVersion is 6, 7, 8, or 9
+ *
+ * @author huizhe.wang@oracle.com</a>
+ */
+public class SerializationTest {
+
+ final String FILENAME_CAL = "_XMLGregorianCalendar.ser";
+ final String FILENAME_DURATION = "_Duration.ser";
+ String filePath;
+
+ {
+ filePath = System.getProperty("test.src");
+ if (filePath == null) {
+ //current directory
+ filePath = System.getProperty("user.dir");
+ }
+ filePath += File.separator;
+ }
+ final String EXPECTED_CAL = "0001-01-01T00:00:00.0000000-05:00";
+ final String EXPECTED_DURATION = "P1Y1M1DT1H1M1S";
+ static String[] JDK = {"JDK6", "JDK7", "JDK8", "JDK9"};
+
+ public static void main(String[] args) {
+ SerializationTest test = new SerializationTest();
+
+ if (args[0].equalsIgnoreCase("read")) {
+ test.testReadCal();
+ test.testReadDuration();
+ test.report();
+ } else {
+ int ver = Integer.valueOf(args[1]).intValue();
+ test.createTestFile(JDK[ver - 6]);
+ }
+
+ }
+
+ public void testReadCal() {
+ try {
+ for (String javaVersion : JDK) {
+ XMLGregorianCalendar d1 = (XMLGregorianCalendar) fromFile(
+ javaVersion + FILENAME_CAL);
+ if (!d1.toString().equalsIgnoreCase(EXPECTED_CAL)) {
+ fail("Java version: " + javaVersion
+ + "\nExpected: " + EXPECTED_CAL
+ + "\nActual: " + d1.toString());
+ } else {
+ success("testReadCal: read " + javaVersion + " serialized file, passed.");
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ fail("testReadCal: " + ex.getMessage());
+ } catch (IOException ex) {
+ fail("testReadCal: " + ex.getMessage());
+ }
+ }
+
+ public void testReadDuration() {
+ try {
+ for (String javaVersion : JDK) {
+ Duration d1 = (Duration) fromFile(
+ javaVersion + FILENAME_DURATION);
+ if (!d1.toString().equalsIgnoreCase(EXPECTED_DURATION)) {
+ fail("Java version: " + javaVersion
+ + "\nExpected: " + EXPECTED_DURATION
+ + "\nActual: " + d1.toString());
+ } else {
+ success("testReadDuration: read " + javaVersion + " serialized file, passed.");
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ fail("testReadDuration: " + ex.getMessage());
+ } catch (IOException ex) {
+ fail("testReadDuration: " + ex.getMessage());
+ }
+ }
+
+ /**
+ * Create test files
+ *
+ * @param javaVersion JDK version
+ */
+ public void createTestFile(String javaVersion) {
+ try {
+ DatatypeFactory dtf = DatatypeFactory.newInstance();
+ XMLGregorianCalendar c = dtf.newXMLGregorianCalendar(EXPECTED_CAL);
+ Duration d = dtf.newDuration(EXPECTED_DURATION);
+ toFile((Serializable) c, filePath + javaVersion + FILENAME_CAL);
+ toFile((Serializable) d, filePath + javaVersion + FILENAME_DURATION);
+ } catch (Exception e) {
+ fail(e.getMessage());
+ }
+ }
+
+ /**
+ * Read the object from a file.
+ */
+ private static Object fromFile(String filePath) throws IOException,
+ ClassNotFoundException {
+ InputStream streamIn = SerializationTest.class.getResourceAsStream(
+ filePath);
+ ObjectInputStream objectinputstream = new ObjectInputStream(streamIn);
+ Object o = objectinputstream.readObject();
+ return o;
+ }
+
+ /**
+ * Write the object to a file.
+ */
+ private static void toFile(Serializable o, String filePath) throws IOException {
+ FileOutputStream fout = new FileOutputStream(filePath, true);
+ ObjectOutputStream oos = new ObjectOutputStream(fout);
+ oos.writeObject(o);
+ oos.close();
+ }
+
+ static String errMessage;
+ int passed = 0, failed = 0;
+
+ void fail(String errMsg) {
+ if (errMessage == null) {
+ errMessage = errMsg;
+ } else {
+ errMessage = errMessage + "\n" + errMsg;
+ }
+ failed++;
+ }
+
+ void success(String msg) {
+ passed++;
+ System.out.println(msg);
+ }
+
+ public void report() {
+
+ System.out.println("\nNumber of tests passed: " + passed);
+ System.out.println("Number of tests failed: " + failed + "\n");
+
+ if (errMessage != null) {
+ throw new RuntimeException(errMessage);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/xml/jaxp/parsers/8027359/FragmentScannerBufferLimitTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2014, SAP AG. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8034087 8027359
+ * @summary XML parser may overwrite element content if that content falls onto the border of an entity scanner buffer
+ * @run main FragmentScannerBufferLimitTest
+ */
+import java.io.*;
+
+import javax.xml.parsers.*;
+import javax.xml.transform.*;
+import org.w3c.dom.*;
+import org.xml.sax.*;
+
+/**
+ * Test for overwriting of XML element content by the XML parser when reading over buffer
+ * limits.
+ *
+ * We create a simple XML document of the form:
+ *
+ * <?xml version=\"1.1\"?>
+ * <ROOT>
+ * <FILLER>ffffffff...fffff</FILLER>
+ * <TEST>content</TEST><TEST2>content2</TEST2>
+ * <FILLER>ffffffff...fffffffff</FILLER>
+ * </ROOT>
+ *
+ * What's important here is, that the test content is at the border of an entity scanner
+ * buffer (XMLEntityScanner uses 8192 byte buffers). That's why there are filler elements
+ * of sufficient length that ensure there is a buffer break inside the test content
+ * and there is enough to read to require another buffer read after the content has been
+ * read.
+ *
+ * With the faulty implementation, the test content gets overwritten with characters
+ * read from the next buffer, i.e. 'f's.
+ *
+ * @author steffen.schreiber@sap.com
+ */
+public class FragmentScannerBufferLimitTest {
+
+ static int errCount = 0;
+
+ /**
+ * Check the test content.
+ */
+ public static void main(String[] args) throws ParserConfigurationException,
+ SAXException, IOException, TransformerConfigurationException,
+ TransformerException, TransformerFactoryConfigurationError {
+
+ String testString = "<TEST>content</TEST><TEST2>content2</TEST2>";
+
+ for (int i = 0; i < testString.length(); i++) {
+ test(createDocument(testString.toString(), i), ""+ i);
+ }
+
+ if (errCount == 0) {
+ System.out.println("OK");
+ }
+ else {
+ System.out.println("ERROR");
+ throw new RuntimeException("Parsing error: element content has been overwritten");
+ }
+ }
+
+ /**
+ * Create the test XML document.
+ * @param testString the test content string
+ * @param bufferLimitPosition the position in the string where the buffer should break
+ * @return the document
+ */
+ private static String createDocument(String testString, int bufferLimitPosition) throws UnsupportedEncodingException {
+ StringBuilder result = new StringBuilder();
+ result.append("<?xml version=\"1.1\"?>");
+ result.append("<ROOT>");
+
+ int fillerLength = 8192 - bufferLimitPosition;
+ createFiller(result, fillerLength);
+
+ result.append(testString);
+
+ createFiller(result, 9000);
+ result.append("</ROOT>");
+ return result.toString();
+ }
+
+ /**
+ * Create the filler element of the given length.
+ * @param buffer the output buffer
+ * @param length the required length of the element, including the element tags
+ */
+ private static void createFiller(StringBuilder buffer, int length) {
+ buffer.append("<FILLER>");
+ int fillLength = length - "<FILLER></FILLER>".length();
+ for (int i=0; i<fillLength; i++) {
+ buffer.append('f');
+ }
+ buffer.append("</FILLER>");
+ }
+
+
+ private static void test(String document, String testName) throws SAXException, IOException, ParserConfigurationException {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+
+ Document doc = builder.parse(new ByteArrayInputStream(document.getBytes("UTF-8")));
+
+ // check that there is the root node
+ NodeList roots = doc.getElementsByTagName("ROOT");
+ assert roots.getLength() == 1;
+ Node root = roots.item(0);
+
+ // check that root has children "FILLER" and "TEST"
+ NodeList children = root.getChildNodes();
+ assert children.getLength() == 4;
+ assert children.item(0).getNodeName().equals("FILLER");
+ assert children.item(1).getNodeName().equals("TEST");
+ assert children.item(2).getNodeName().equals("TEST2");
+ assert children.item(3).getNodeName().equals("FILLER");
+
+ // check that the test node has content "content"
+ checkContent(children.item(1).getTextContent(), "content", document);
+ checkContent(children.item(2).getTextContent(), "content2", document);
+ }
+
+ private static void checkContent(String found, String expected, String document) {
+ if (! (found.equals(expected))) {
+ errCount++;
+ int bufferStart = "<?xml version=\"1.1\"?><ROOT>".length() +1;
+ int bufferStart2 = bufferStart + 8192;
+ System.err.println("\nError:: expected \"" + expected
+ + "\", but found \"" + found + "\"!");
+ System.err.println("Buffer was (probably): [ ... "
+ + document.substring(bufferStart2 - 20, bufferStart2) + "] ["
+ + document.substring(bufferStart2, bufferStart2 + 30) + " ... ]");
+ }
+ }
+}
--- a/jdk/test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh Thu Feb 20 16:27:08 2014 -0800
@@ -41,7 +41,7 @@
J2D_PIXMAPS=shared
export NO_J2D_DGA J2D_PIXMAPS
-${TESTJAVA}/bin/java SharedMemoryPixmapsTest
+${TESTJAVA}/bin/java ${TESTVMOPTS} SharedMemoryPixmapsTest
if [ $? -ne 0 ]; then
echo "Test failed!"
--- a/jdk/test/sun/management/jmxremote/startstop/JMXStartStopTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/sun/management/jmxremote/startstop/JMXStartStopTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -25,6 +25,7 @@
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.ConnectException;
+import java.net.ServerSocket;
import java.rmi.NoSuchObjectException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
@@ -255,26 +256,23 @@
private static List<Failure> failures = new ArrayList<>();
public static void main(String args[]) throws Exception {
- for (int i=0;i<3;i++) {
- System.out.println("=== PASS " + i + " ===");
- for (Method m : JMXStartStopTest.class.getDeclaredMethods()) {
- if (m.getName().startsWith("test_")) {
- try {
- m.invoke(null);
- System.out.println("=== PASSED\n");
- } catch (Throwable e) {
- failures.add(new Failure(e, m.getName() + " failed"));
- }
+ for (Method m : JMXStartStopTest.class.getDeclaredMethods()) {
+ if (m.getName().startsWith("test_")) {
+ try {
+ m.invoke(null);
+ System.out.println("=== PASSED\n");
+ } catch (Throwable e) {
+ failures.add(new Failure(e, m.getName() + " failed"));
}
}
+ }
- if (!failures.isEmpty()) {
- for(Failure f : failures) {
- System.err.println(f.getMsg());
- f.getCause().printStackTrace(System.err);
- }
- throw new Error();
+ if (!failures.isEmpty()) {
+ for(Failure f : failures) {
+ System.err.println(f.getMsg());
+ f.getCause().printStackTrace(System.err);
}
+ throw new Error();
}
}
@@ -371,6 +369,7 @@
));
pbArgs.addAll(Arrays.asList(args));
pbArgs.add("JMXStartStopDoSomething");
+
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
pbArgs.toArray(new String[pbArgs.size()])
);
@@ -596,14 +595,16 @@
jcmd(CMD_STOP);
jcmd(CMD_STOP);
+ ServerSocket ss = new ServerSocket(0);
+
jcmd(
line -> {
- if (line.contains("Port already in use: 22")) {
+ if (line.contains("Port already in use: " + ss.getLocalPort())) {
checks[2] = true;
}
},
CMD_START,
- "jmxremote.port=22",
+ "jmxremote.port=" + ss.getLocalPort(),
"jmxremote.rmi.port=" + port2,
"jmxremote.authenticate=false",
"jmxremote.ssl=false");
@@ -616,7 +617,7 @@
"report an invalid agent state");
}
if (!checks[2]) {
- throw new Exception("Starting agent on port 22 should " +
+ throw new Exception("Starting agent on port " + ss.getLocalPort() + " should " +
"report port in use");
}
} finally {
@@ -627,7 +628,7 @@
private static void test_07() throws Exception {
// Run an app without JMX enabled, but with some properties set
// in command line.
- // make sure these properties overriden corectly
+ // make sure these properties overridden corectly
System.out.println("**** Test seven ****");
@@ -654,7 +655,7 @@
// Run an app with JMX enabled and with some properties set
// in command line.
// stop JMX agent and then start it again with different property values
- // make sure these properties overriden corectly
+ // make sure these properties overridden corectly
System.out.println("**** Test eight ****");
@@ -690,7 +691,7 @@
// stop JMX agent and then start it again with different property values
// specifing some property in management config file and some of them
// in command line
- // make sure these properties overriden corectly
+ // make sure these properties overridden corectly
System.out.println("**** Test nine ****");
@@ -725,7 +726,7 @@
// in command line.
// stop JMX agent and then start it again with different property values
// stop JMX agent again and then start it without property value
- // make sure these properties overriden corectly
+ // make sure these properties overridden corectly
System.out.println("**** Test ten ****");
@@ -800,7 +801,7 @@
// Run an app with -javaagent make sure it works as expected -
// system properties are ignored
- System.out.println("**** Test fourteen ****");
+ System.out.println("**** Test thirteen ****");
String agent = TEST_JDK + "/jre/lib/management-agent.jar";
if (!new File(agent).exists()) {
--- a/jdk/test/sun/misc/ClassLoaderUtil/Test.java Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/* @test
- * @bug 6349735
- * @summary Internal API for closing jar files belonging to URLClassLoader instances
- */
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-public class Test {
-
- static File copy (File src, String destDir) throws Exception {
- FileInputStream fis = new FileInputStream (src);
- File dest = new File (destDir, src.getName());
- FileOutputStream fos = new FileOutputStream (dest);
- byte buf[] = new byte [1024];
- int c;
- while ((c=fis.read(buf)) != -1) {
- fos.write (buf, 0, c);
- }
- fis.close();
- fos.close();
- return dest;
- }
-
- public static void main(String[] args) throws Exception {
- String srcPath = System.getProperty("test.src");
- String destPath = System.getProperty("test.classes");
- if (destPath == null || "".equals(destPath)) {
- throw new RuntimeException ("Not running test");
- }
- File file = new File (srcPath, "test.jar");
- file = copy (file, destPath);
- URL url = file.toURL();
- URLClassLoader loader = new URLClassLoader (new URL [] {url});
- Class clazz = Class.forName ("Foo", true, loader);
- Object obj = clazz.newInstance();
- List<String> jarsclosed = new LinkedList<String>();
- sun.misc.ClassLoaderUtil.releaseLoader (loader, jarsclosed);
- for (String jar: jarsclosed) {
- System.out.println ("Successfully closed " + jar);
- }
- if (!file.delete()) {
- throw new RuntimeException ("failed to delete jar file");
- }
- }
-}
--- a/jdk/test/sun/misc/JarIndex/metaInfFilenames/Basic.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/sun/misc/JarIndex/metaInfFilenames/Basic.java Thu Feb 20 16:27:08 2014 -0800
@@ -24,7 +24,7 @@
/*
* @test
* @bug 6887710
- * @summary Verify the impact of sun.misc.JarIndex.metaInfFilenames on Service loaders
+ * @summary Verify the impact of sun.misc.JarIndex.metaInfFilenames on ServiceLoader
* @run main/othervm Basic
*/
@@ -48,9 +48,8 @@
import com.sun.net.httpserver.HttpServer;
/**
- * Verifies the impact of sun.misc.JarIndex.metaInfFilenames on service loaders
- * (sun.misc.Service & java.util.ServiceLoader), as well as finding resources
- * through Class.getResouce.
+ * Verifies the impact of sun.misc.JarIndex.metaInfFilenames on ServiceLoader
+ * and on finding resources via Class.getResource.
*
* 1) Compile the test sources:
* jarA:
@@ -214,23 +213,13 @@
int failed = 0;
- // Tests using sun.misc.Service
- if (!sunMiscServiceTest(baseURL, messageService, true, false, true)) {
- System.out.println("Test: sun.misc.Service looking for " + messageService + ", failed");
- failed++;
- }
- if (!sunMiscServiceTest(baseURL, unknownService, false, false, false)) {
- System.out.println("Test: sun.misc.Service looking for " + unknownService + " failed");
- failed++;
- }
-
// Tests using java.util.SerivceLoader
if (!javaUtilServiceLoaderTest(baseURL, messageService, true, false, true)) {
- System.out.println("Test: sun.misc.Service looking for " + messageService + ", failed");
+ System.out.println("Test: ServiceLoader looking for " + messageService + ", failed");
failed++;
}
if (!javaUtilServiceLoaderTest(baseURL, unknownService, false, false, false)) {
- System.out.println("Test: sun.misc.Service looking for " + unknownService + " failed");
+ System.out.println("Test: ServiceLoader looking for " + unknownService + " failed");
failed++;
}
@@ -248,48 +237,6 @@
throw new RuntimeException("Failed: " + failed + " tests");
}
- static boolean sunMiscServiceTest(URL baseURL,
- String serviceClass,
- boolean expectToFind,
- boolean expectbDotJar,
- boolean expectcDotJar) throws IOException {
- debug("----------------------------------");
- debug("Running test with sun.misc.Service looking for " + serviceClass);
- URLClassLoader loader = getLoader(baseURL);
- httpServer.reset();
-
- Class<?> messageServiceClass = null;
- try {
- messageServiceClass = loader.loadClass(serviceClass);
- } catch (ClassNotFoundException cnfe) {
- System.err.println(cnfe);
- throw new RuntimeException("Error in test: " + cnfe);
- }
-
- Iterator<?> iterator = sun.misc.Service.providers(messageServiceClass, loader);
- if (expectToFind && !iterator.hasNext()) {
- debug(messageServiceClass + " NOT found.");
- return false;
- }
-
- while (iterator.hasNext()) {
- debug("found " + iterator.next() + " " + messageService);
- }
-
- debug("HttpServer: " + httpServer);
-
- if (!expectbDotJar && httpServer.bDotJar > 0) {
- debug("Unexpeced request sent to the httpserver for b.jar");
- return false;
- }
- if (!expectcDotJar && httpServer.cDotJar > 0) {
- debug("Unexpeced request sent to the httpserver for c.jar");
- return false;
- }
-
- return true;
- }
-
static boolean javaUtilServiceLoaderTest(URL baseURL,
String serviceClass,
boolean expectToFind,
--- a/jdk/test/sun/rmi/log/ReliableLog/LogAlignmentTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/sun/rmi/log/ReliableLog/LogAlignmentTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -25,7 +25,7 @@
* @bug 4094889
* @summary rmid can have a corrupted log
*
- * @run main LogAlignmentTest
+ * @run main/othervm LogAlignmentTest
*/
/* Fault: ReliableLog used RandomAccessFile.skipBytes() to seek past the end
--- a/jdk/test/sun/rmi/log/ReliableLog/SnapshotSize.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/sun/rmi/log/ReliableLog/SnapshotSize.java Thu Feb 20 16:27:08 2014 -0800
@@ -26,7 +26,7 @@
* @summary Verify that ReliableLog.snapshotSize() returns correct snapshot
* file size even if LogHandler doesn't flush.
*
- * @run main SnapshotSize
+ * @run main/othervm SnapshotSize
*/
import java.io.ByteArrayOutputStream;
--- a/jdk/test/sun/rmi/rmic/classpath/RMICClassPathTest.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/sun/rmi/rmic/classpath/RMICClassPathTest.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,9 +26,10 @@
*/
/* @test
- * @bug 6610897
+ * @bug 6610897 8030844
* @summary New constructor in sun.tools.java.ClassPath builds a path using
- * File.separator instead of File.pathSeparator
+ * File.separator instead of File.pathSeparator. This test does
+ * not affect VM global state, so othervm is not required.
* @run main RMICClassPathTest
*/
@@ -37,12 +38,13 @@
import sun.rmi.rmic.BatchEnvironment;
public class RMICClassPathTest {
+ private final static String SRC_PATH = System.getProperty("test.src", ".");
public static void main(String[] args) throws Exception {
- String sysPath = "/home/~user/jdk/jre/lib/rt.jar";
+ String sysPath = SRC_PATH + "/jdk/jre/lib/rt.jar";
String extDir = "";
- String clPath = "/home/~user/user.jar" + File.pathSeparator +
- "/home/~user/user2.jar" + File.pathSeparator +
- "/home/~user/user3.jar";
+ String clPath = SRC_PATH + "/user.jar" + File.pathSeparator +
+ SRC_PATH + "/user2.jar" + File.pathSeparator +
+ SRC_PATH + "/user3.jar";
String cpStr = BatchEnvironment.createClassPath(clPath, sysPath, extDir).toString();
--- a/jdk/test/sun/security/krb5/ConfPlusProp.java Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/*
- * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-/*
- * @test
- * @bug 6857795
- * @bug 6858589
- * @bug 6972005
- * @compile -XDignore.symbol.file ConfPlusProp.java
- * @run main/othervm ConfPlusProp
- * @summary krb5.conf ignored if system properties on realm and kdc are provided
- */
-
-import sun.security.krb5.Config;
-
-public class ConfPlusProp {
- Config config;
- public static void main(String[] args) throws Exception {
- new ConfPlusProp().run();
- }
-
- void refresh() throws Exception {
- Config.refresh();
- config = Config.getInstance();
- }
-
- void checkDefaultRealm(String r) throws Exception {
- try {
- if (!config.getDefaultRealm().equals(r)) {
- throw new AssertionError("Default realm error");
- }
- } catch (Exception e) {
- if (r != null) throw e;
- }
- }
-
- void check(String r, String k) throws Exception {
- try {
- if (!config.getKDCList(r).equals(k)) {
- throw new AssertionError(r + " kdc not " + k);
- }
- } catch (Exception e) {
- if (k != null) throw e;
- }
- }
-
- void run() throws Exception {
-
- // No prop, only conf
-
- // Point to a file with existing default_realm
- System.setProperty("java.security.krb5.conf",
- System.getProperty("test.src", ".") +"/confplusprop.conf");
- refresh();
-
- checkDefaultRealm("R1");
- check("R1", "k1");
- check("R2", "old");
- check("R3", null);
- if (!config.get("libdefaults", "forwardable").equals("well")) {
- throw new Exception("Extra config error");
- }
-
- // Point to a file with no libdefaults
- System.setProperty("java.security.krb5.conf",
- System.getProperty("test.src", ".") +"/confplusprop2.conf");
- refresh();
-
- checkDefaultRealm(null);
- check("R1", "k12");
- check("R2", "old");
- check("R3", null);
-
- int version = System.getProperty("java.version").charAt(2) - '0';
- System.out.println("JDK version is " + version);
-
- // Zero-config is supported since 1.7
- if (version >= 7) {
- // Point to a non-existing file
- System.setProperty("java.security.krb5.conf", "i-am-not-a file");
- refresh();
-
- // Default realm might come from DNS
- //checkDefaultRealm(null);
- check("R1", null);
- check("R2", null);
- check("R3", null);
- if (config.get("libdefaults", "forwardable") != null) {
- throw new Exception("Extra config error");
- }
- }
-
- // Add prop
- System.setProperty("java.security.krb5.realm", "R2");
- System.setProperty("java.security.krb5.kdc", "k2");
-
- // Point to a file with existing default_realm
- System.setProperty("java.security.krb5.conf",
- System.getProperty("test.src", ".") +"/confplusprop.conf");
- refresh();
-
- checkDefaultRealm("R2");
- check("R1", "k1");
- check("R2", "k2");
- check("R3", "k2");
- if (!config.get("libdefaults", "forwardable").equals("well")) {
- throw new Exception("Extra config error");
- }
-
- // Point to a file with no libdefaults
- System.setProperty("java.security.krb5.conf",
- System.getProperty("test.src", ".") +"/confplusprop2.conf");
- refresh();
-
- checkDefaultRealm("R2");
- check("R1", "k12");
- check("R2", "k2");
- check("R3", "k2");
-
- // Point to a non-existing file
- System.setProperty("java.security.krb5.conf", "i-am-not-a file");
- refresh();
-
- checkDefaultRealm("R2");
- check("R1", "k2");
- check("R2", "k2");
- check("R3", "k2");
- if (config.get("libdefaults", "forwardable") != null) {
- throw new Exception("Extra config error");
- }
- }
-}
--- a/jdk/test/sun/security/krb5/ConfigWithQuotations.java Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-/*
- * @test
- * @bug 6714845
- * @run main/othervm ConfigWithQuotations
- * @summary Quotes in Kerberos configuration file are included in the values
- */
-
-import sun.security.krb5.Config;
-
-public class ConfigWithQuotations {
- public static void main(String[] args) throws Exception {
- // This config file is generated using Kerberos.app on a Mac
- System.setProperty("java.security.krb5.conf",
- System.getProperty("test.src", ".") +"/edu.mit.Kerberos");
- Config config = Config.getInstance();
-
- System.out.println(config);
-
- if (!config.getDefaultRealm().equals("MAC.LOCAL")) {
- throw new Exception("Realm error");
- }
- if (!config.getKDCList("MAC.LOCAL").equals("kdc.mac.local:88")) {
- throw new Exception("KDC error");
- }
- }
-}
--- a/jdk/test/sun/security/krb5/DnsFallback.java Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-/*
- * @test
- * @bug 6673164
- * @bug 6552334
- * @run main/othervm DnsFallback
- * @summary fix dns_fallback parse error, and use dns by default
- */
-
-import java.io.*;
-import java.lang.reflect.Method;
-import sun.security.krb5.Config;
-
-public class DnsFallback {
-
- static Method useDNS_Realm;
-
- public static void main(String[] args) throws Exception {
-
- useDNS_Realm = Config.class.getDeclaredMethod("useDNS_Realm");
- useDNS_Realm.setAccessible(true);
-
-
- // for 6673164
- check("true", "true", true);
- check("false", "true", false);
- check("true", "false", true);
- check("false", "false", false);
- check("true", null, true);
- check("false", null, false);
- check(null, "true", true);
- check(null, "false", false);
-
- // for 6552334
- check(null, null, true);
- }
-
- static void check(String realm, String fallback, boolean output)
- throws Exception {
-
- try (PrintStream ps =
- new PrintStream(new FileOutputStream("dnsfallback.conf"))) {
- ps.println("[libdefaults]\n");
- if (realm != null) {
- ps.println("dns_lookup_realm=" + realm);
- }
- if (fallback != null) {
- ps.println("dns_fallback=" + fallback);
- }
- }
-
- System.setProperty("java.security.krb5.conf", "dnsfallback.conf");
- Config.refresh();
- System.out.println("Testing " + realm + ", " + fallback + ", " + output);
-
- if (!useDNS_Realm.invoke(Config.getInstance()).equals(output)) {
- throw new Exception("Fail");
- }
- }
-}
-
--- a/jdk/test/sun/security/krb5/ParseCAPaths.java Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-/*
- * @test
- * @bug 6789935 8012615
- * @run main/othervm ParseCAPaths
- * @summary cross-realm capath search error
- */
-
-import java.util.Arrays;
-import sun.security.krb5.Realm;
-
-public class ParseCAPaths {
- static Exception failed = null;
- public static void main(String[] args) throws Exception {
- System.setProperty("java.security.krb5.conf",
- System.getProperty("test.src", ".") +"/krb5-capaths.conf");
-
- // MIT
- check("ANL.GOV", "TEST.ANL.GOV", "ANL.GOV");
- check("ANL.GOV", "ES.NET", "ANL.GOV");
- check("ANL.GOV", "PNL.GOV", "ANL.GOV", "ES.NET");
- check("ANL.GOV", "NERSC.GOV", "ANL.GOV", "ES.NET");
- check("NERSC.GOV", "TEST.ANL.GOV", "NERSC.GOV", "ES.NET", "ANL.GOV");
-
- // RedHat
- // 3.6.2.1. Configuring a Shared Hierarchy of Names
- check("AA.EXAMPLE.COM", "BB.EXAMPLE.COM",
- "AA.EXAMPLE.COM", "EXAMPLE.COM");
- check("SITE1.SALES.EXAMPLE.COM", "EVERYWHERE.EXAMPLE.COM",
- "SITE1.SALES.EXAMPLE.COM", "SALES.EXAMPLE.COM",
- "EXAMPLE.COM");
- check("DEVEL.EXAMPLE.COM", "PROD.EXAMPLE.ORG",
- "DEVEL.EXAMPLE.COM", "EXAMPLE.COM", "COM",
- "ORG", "EXAMPLE.ORG");
- // 3.6.2.2. Configuring Paths in krb5.conf
- check("A.EXAMPLE.COM", "B.EXAMPLE.COM", "A.EXAMPLE.COM");
- check("A.EXAMPLE.COM", "C.EXAMPLE.COM",
- "A.EXAMPLE.COM", "B.EXAMPLE.COM");
- check("A.EXAMPLE.COM", "D.EXAMPLE.COM",
- "A.EXAMPLE.COM", "B.EXAMPLE.COM", "C.EXAMPLE.COM");
-
- // The original JDK example
- check("TIVOLI.COM", "IBM.COM", "TIVOLI.COM", "LDAPCENTRAL.NET",
- "IBM_LDAPCENTRAL.COM", "MOONLITE.ORG");
-
- // Hierachical
- check("N1.N.COM", "N2.N.COM", "N1.N.COM", "N.COM");
- check("N1.N.COM", "N2.N3.COM", "N1.N.COM", "N.COM",
- "COM", "N3.COM");
- check("N1.COM", "N2.COM", "N1.COM", "COM");
- check("N1", "N2", "N1");
- check("N1.COM", "N2.ORG", "N1.COM", "COM", "ORG");
- check("N1.N.COM", "N.COM", "N1.N.COM");
- check("X.N1.N.COM", "N.COM", "X.N1.N.COM", "N1.N.COM");
- check("N.COM", "N1.N.COM", "N.COM");
- check("N.COM", "X.N1.N.COM", "N.COM", "N1.N.COM");
- check("A.B.C", "D.E.F", "A.B.C", "B.C", "C", "F", "E.F");
-
- // Full path
- check("A1.COM", "A2.COM", "A1.COM");
- check("A1.COM", "A3.COM", "A1.COM", "A2.COM");
- check("A1.COM", "A4.COM", "A1.COM", "A2.COM", "A3.COM");
-
- // Shortest path
- check("B1.COM", "B2.COM", "B1.COM");
- check("B1.COM", "B3.COM", "B1.COM", "B2.COM");
- check("B1.COM", "B4.COM", "B1.COM", "B2.COM", "B3.COM");
-
- // Missing is "."
- check("C1.COM", "C2.COM", "C1.COM", "COM");
- check("C1.COM", "C3.COM", "C1.COM", "C2.COM");
-
- // cRealm = .
- check("D1.COM", "D2.COM", "D1.COM");
-
- // Bad cases
- check("E1.COM", "E2.COM", "E1.COM");
- check("E1.COM", "E3.COM", "E1.COM", "E4.COM");
- check("G1.COM", "G3.COM", "G1.COM", "G2.COM");
- check("I1.COM", "I4.COM", "I1.COM", "I5.COM");
-
- // 7019384
- check("A9.PRAGUE.XXX.CZ", "SERVIS.XXX.CZ",
- "A9.PRAGUE.XXX.CZ", "PRAGUE.XXX.CZ", "ROOT.XXX.CZ");
-
- if (failed != null) {
- throw failed;
- }
- }
-
- static void check(String from, String to, String... paths) {
- try {
- check2(from, to, paths);
- } catch (Exception e) {
- System.out.println(" " + e.getMessage());
- failed = e;
- }
- }
-
- static void check2(String from, String to, String... paths)
- throws Exception {
- System.out.println(from + " -> " + to);
- System.out.println(" expected: " + Arrays.toString(paths));
- String[] result = Realm.getRealmsList(from, to);
- if (result == null || result.length == 0) {
- throw new Exception("There is always a valid path.");
- } else if(result.length != paths.length) {
- throw new Exception("Length of path not correct");
- } else {
- for (int i=0; i<result.length; i++) {
- if (!result[i].equals(paths[i])) {
- System.out.println(" result: " + Arrays.toString(result));
- throw new Exception("Path not same");
- }
- }
- }
- }
-}
--- a/jdk/test/sun/security/krb5/ParseConfig.java Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-/*
- * @test
- * @bug 6319046
- * @compile -XDignore.symbol.file ParseConfig.java
- * @run main/othervm ParseConfig
- * @summary Problem with parsing krb5.conf
- */
-
-import sun.security.krb5.Config;
-
-public class ParseConfig {
- public static void main(String[] args) throws Exception {
- System.setProperty("java.security.krb5.conf", System.getProperty("test.src", ".") +"/krb5.conf");
- Config config = Config.getInstance();
- config.listTable();
-
- String sample = "kdc.example.com kdc2.example.com";
- for ( int i = 0; i < 4; i++ ) {
- String expected = config.getAll("realms", "EXAMPLE_" + i + ".COM", "kdc");
- if (!sample.equals(expected)) {
- throw new Exception("krb5.conf: unexpected kdc value \"" +
- expected + "\"");
- }
- }
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/ConfPlusProp.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,151 @@
+/*
+ * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6857795
+ * @bug 6858589
+ * @bug 6972005
+ * @compile -XDignore.symbol.file ConfPlusProp.java
+ * @run main/othervm ConfPlusProp
+ * @summary krb5.conf ignored if system properties on realm and kdc are provided
+ */
+
+import sun.security.krb5.Config;
+
+public class ConfPlusProp {
+ Config config;
+ public static void main(String[] args) throws Exception {
+ new ConfPlusProp().run();
+ }
+
+ void refresh() throws Exception {
+ Config.refresh();
+ config = Config.getInstance();
+ }
+
+ void checkDefaultRealm(String r) throws Exception {
+ try {
+ if (!config.getDefaultRealm().equals(r)) {
+ throw new AssertionError("Default realm error");
+ }
+ } catch (Exception e) {
+ if (r != null) throw e;
+ }
+ }
+
+ void check(String r, String k) throws Exception {
+ try {
+ if (!config.getKDCList(r).equals(k)) {
+ throw new AssertionError(r + " kdc not " + k);
+ }
+ } catch (Exception e) {
+ if (k != null) throw e;
+ }
+ }
+
+ void run() throws Exception {
+
+ // No prop, only conf
+
+ // Point to a file with existing default_realm
+ System.setProperty("java.security.krb5.conf",
+ System.getProperty("test.src", ".") +"/confplusprop.conf");
+ refresh();
+
+ checkDefaultRealm("R1");
+ check("R1", "k1");
+ check("R2", "old");
+ check("R3", null);
+ if (!config.get("libdefaults", "forwardable").equals("well")) {
+ throw new Exception("Extra config error");
+ }
+
+ // Point to a file with no libdefaults
+ System.setProperty("java.security.krb5.conf",
+ System.getProperty("test.src", ".") +"/confplusprop2.conf");
+ refresh();
+
+ checkDefaultRealm(null);
+ check("R1", "k12");
+ check("R2", "old");
+ check("R3", null);
+
+ int version = System.getProperty("java.version").charAt(2) - '0';
+ System.out.println("JDK version is " + version);
+
+ // Zero-config is supported since 1.7
+ if (version >= 7) {
+ // Point to a non-existing file
+ System.setProperty("java.security.krb5.conf", "i-am-not-a file");
+ refresh();
+
+ // Default realm might come from DNS
+ //checkDefaultRealm(null);
+ check("R1", null);
+ check("R2", null);
+ check("R3", null);
+ if (config.get("libdefaults", "forwardable") != null) {
+ throw new Exception("Extra config error");
+ }
+ }
+
+ // Add prop
+ System.setProperty("java.security.krb5.realm", "R2");
+ System.setProperty("java.security.krb5.kdc", "k2");
+
+ // Point to a file with existing default_realm
+ System.setProperty("java.security.krb5.conf",
+ System.getProperty("test.src", ".") +"/confplusprop.conf");
+ refresh();
+
+ checkDefaultRealm("R2");
+ check("R1", "k1");
+ check("R2", "k2");
+ check("R3", "k2");
+ if (!config.get("libdefaults", "forwardable").equals("well")) {
+ throw new Exception("Extra config error");
+ }
+
+ // Point to a file with no libdefaults
+ System.setProperty("java.security.krb5.conf",
+ System.getProperty("test.src", ".") +"/confplusprop2.conf");
+ refresh();
+
+ checkDefaultRealm("R2");
+ check("R1", "k12");
+ check("R2", "k2");
+ check("R3", "k2");
+
+ // Point to a non-existing file
+ System.setProperty("java.security.krb5.conf", "i-am-not-a file");
+ refresh();
+
+ checkDefaultRealm("R2");
+ check("R1", "k2");
+ check("R2", "k2");
+ check("R3", "k2");
+ if (config.get("libdefaults", "forwardable") != null) {
+ throw new Exception("Extra config error");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/ConfigWithQuotations.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6714845
+ * @run main/othervm ConfigWithQuotations
+ * @summary Quotes in Kerberos configuration file are included in the values
+ */
+
+import sun.security.krb5.Config;
+
+public class ConfigWithQuotations {
+ public static void main(String[] args) throws Exception {
+ // This config file is generated using Kerberos.app on a Mac
+ System.setProperty("java.security.krb5.conf",
+ System.getProperty("test.src", ".") +"/edu.mit.Kerberos");
+ Config config = Config.getInstance();
+
+ System.out.println(config);
+
+ if (!config.getDefaultRealm().equals("MAC.LOCAL")) {
+ throw new Exception("Realm error");
+ }
+ if (!config.getKDCList("MAC.LOCAL").equals("kdc.mac.local:88")) {
+ throw new Exception("KDC error");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/DnsFallback.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6673164
+ * @bug 6552334
+ * @run main/othervm DnsFallback
+ * @summary fix dns_fallback parse error, and use dns by default
+ */
+
+import java.io.*;
+import java.lang.reflect.Method;
+import sun.security.krb5.Config;
+
+public class DnsFallback {
+
+ static Method useDNS_Realm;
+
+ public static void main(String[] args) throws Exception {
+
+ useDNS_Realm = Config.class.getDeclaredMethod("useDNS_Realm");
+ useDNS_Realm.setAccessible(true);
+
+
+ // for 6673164
+ check("true", "true", true);
+ check("false", "true", false);
+ check("true", "false", true);
+ check("false", "false", false);
+ check("true", null, true);
+ check("false", null, false);
+ check(null, "true", true);
+ check(null, "false", false);
+
+ // for 6552334
+ check(null, null, true);
+ }
+
+ static void check(String realm, String fallback, boolean output)
+ throws Exception {
+
+ try (PrintStream ps =
+ new PrintStream(new FileOutputStream("dnsfallback.conf"))) {
+ ps.println("[libdefaults]\n");
+ if (realm != null) {
+ ps.println("dns_lookup_realm=" + realm);
+ }
+ if (fallback != null) {
+ ps.println("dns_fallback=" + fallback);
+ }
+ }
+
+ System.setProperty("java.security.krb5.conf", "dnsfallback.conf");
+ Config.refresh();
+ System.out.println("Testing " + realm + ", " + fallback + ", " + output);
+
+ if (!useDNS_Realm.invoke(Config.getInstance()).equals(output)) {
+ throw new Exception("Fail");
+ }
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/ParseCAPaths.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,139 @@
+/*
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6789935 8012615
+ * @run main/othervm ParseCAPaths
+ * @summary cross-realm capath search error
+ */
+
+import java.util.Arrays;
+import sun.security.krb5.Realm;
+
+public class ParseCAPaths {
+ static Exception failed = null;
+ public static void main(String[] args) throws Exception {
+ System.setProperty("java.security.krb5.conf",
+ System.getProperty("test.src", ".") +"/krb5-capaths.conf");
+
+ // MIT
+ check("ANL.GOV", "TEST.ANL.GOV", "ANL.GOV");
+ check("ANL.GOV", "ES.NET", "ANL.GOV");
+ check("ANL.GOV", "PNL.GOV", "ANL.GOV", "ES.NET");
+ check("ANL.GOV", "NERSC.GOV", "ANL.GOV", "ES.NET");
+ check("NERSC.GOV", "TEST.ANL.GOV", "NERSC.GOV", "ES.NET", "ANL.GOV");
+
+ // RedHat
+ // 3.6.2.1. Configuring a Shared Hierarchy of Names
+ check("AA.EXAMPLE.COM", "BB.EXAMPLE.COM",
+ "AA.EXAMPLE.COM", "EXAMPLE.COM");
+ check("SITE1.SALES.EXAMPLE.COM", "EVERYWHERE.EXAMPLE.COM",
+ "SITE1.SALES.EXAMPLE.COM", "SALES.EXAMPLE.COM",
+ "EXAMPLE.COM");
+ check("DEVEL.EXAMPLE.COM", "PROD.EXAMPLE.ORG",
+ "DEVEL.EXAMPLE.COM", "EXAMPLE.COM", "COM",
+ "ORG", "EXAMPLE.ORG");
+ // 3.6.2.2. Configuring Paths in krb5.conf
+ check("A.EXAMPLE.COM", "B.EXAMPLE.COM", "A.EXAMPLE.COM");
+ check("A.EXAMPLE.COM", "C.EXAMPLE.COM",
+ "A.EXAMPLE.COM", "B.EXAMPLE.COM");
+ check("A.EXAMPLE.COM", "D.EXAMPLE.COM",
+ "A.EXAMPLE.COM", "B.EXAMPLE.COM", "C.EXAMPLE.COM");
+
+ // The original JDK example
+ check("TIVOLI.COM", "IBM.COM", "TIVOLI.COM", "LDAPCENTRAL.NET",
+ "IBM_LDAPCENTRAL.COM", "MOONLITE.ORG");
+
+ // Hierachical
+ check("N1.N.COM", "N2.N.COM", "N1.N.COM", "N.COM");
+ check("N1.N.COM", "N2.N3.COM", "N1.N.COM", "N.COM",
+ "COM", "N3.COM");
+ check("N1.COM", "N2.COM", "N1.COM", "COM");
+ check("N1", "N2", "N1");
+ check("N1.COM", "N2.ORG", "N1.COM", "COM", "ORG");
+ check("N1.N.COM", "N.COM", "N1.N.COM");
+ check("X.N1.N.COM", "N.COM", "X.N1.N.COM", "N1.N.COM");
+ check("N.COM", "N1.N.COM", "N.COM");
+ check("N.COM", "X.N1.N.COM", "N.COM", "N1.N.COM");
+ check("A.B.C", "D.E.F", "A.B.C", "B.C", "C", "F", "E.F");
+
+ // Full path
+ check("A1.COM", "A2.COM", "A1.COM");
+ check("A1.COM", "A3.COM", "A1.COM", "A2.COM");
+ check("A1.COM", "A4.COM", "A1.COM", "A2.COM", "A3.COM");
+
+ // Shortest path
+ check("B1.COM", "B2.COM", "B1.COM");
+ check("B1.COM", "B3.COM", "B1.COM", "B2.COM");
+ check("B1.COM", "B4.COM", "B1.COM", "B2.COM", "B3.COM");
+
+ // Missing is "."
+ check("C1.COM", "C2.COM", "C1.COM", "COM");
+ check("C1.COM", "C3.COM", "C1.COM", "C2.COM");
+
+ // cRealm = .
+ check("D1.COM", "D2.COM", "D1.COM");
+
+ // Bad cases
+ check("E1.COM", "E2.COM", "E1.COM");
+ check("E1.COM", "E3.COM", "E1.COM", "E4.COM");
+ check("G1.COM", "G3.COM", "G1.COM", "G2.COM");
+ check("I1.COM", "I4.COM", "I1.COM", "I5.COM");
+
+ // 7019384
+ check("A9.PRAGUE.XXX.CZ", "SERVIS.XXX.CZ",
+ "A9.PRAGUE.XXX.CZ", "PRAGUE.XXX.CZ", "ROOT.XXX.CZ");
+
+ if (failed != null) {
+ throw failed;
+ }
+ }
+
+ static void check(String from, String to, String... paths) {
+ try {
+ check2(from, to, paths);
+ } catch (Exception e) {
+ System.out.println(" " + e.getMessage());
+ failed = e;
+ }
+ }
+
+ static void check2(String from, String to, String... paths)
+ throws Exception {
+ System.out.println(from + " -> " + to);
+ System.out.println(" expected: " + Arrays.toString(paths));
+ String[] result = Realm.getRealmsList(from, to);
+ if (result == null || result.length == 0) {
+ throw new Exception("There is always a valid path.");
+ } else if(result.length != paths.length) {
+ throw new Exception("Length of path not correct");
+ } else {
+ for (int i=0; i<result.length; i++) {
+ if (!result[i].equals(paths[i])) {
+ System.out.println(" result: " + Arrays.toString(result));
+ throw new Exception("Path not same");
+ }
+ }
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/ParseConfig.java Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/*
+ * @test
+ * @bug 6319046
+ * @compile -XDignore.symbol.file ParseConfig.java
+ * @run main/othervm ParseConfig
+ * @summary Problem with parsing krb5.conf
+ */
+
+import sun.security.krb5.Config;
+
+public class ParseConfig {
+ public static void main(String[] args) throws Exception {
+ System.setProperty("java.security.krb5.conf", System.getProperty("test.src", ".") +"/krb5.conf");
+ Config config = Config.getInstance();
+ config.listTable();
+
+ String sample = "kdc.example.com kdc2.example.com";
+ for ( int i = 0; i < 4; i++ ) {
+ String expected = config.getAll("realms", "EXAMPLE_" + i + ".COM", "kdc");
+ if (!sample.equals(expected)) {
+ throw new Exception("krb5.conf: unexpected kdc value \"" +
+ expected + "\"");
+ }
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/confplusprop.conf Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,12 @@
+[libdefaults]
+default_realm = R1
+forwardable = well
+dns_lookup_realm = false
+
+[realms]
+R1 = {
+ kdc = k1
+}
+R2 = {
+ kdc = old
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/confplusprop2.conf Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,10 @@
+[libdefaults]
+dns_lookup_realm = false
+
+[realms]
+R1 = {
+ kdc = k12
+}
+R2 = {
+ kdc = old
+}
--- a/jdk/test/sun/security/krb5/config/dns.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/sun/security/krb5/config/dns.sh Thu Feb 20 16:27:08 2014 -0800
@@ -40,5 +40,5 @@
$COMPILEJAVA/bin/javac ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d . \
${TESTSRC}/NamingManager.java ${TESTSRC}/DNS.java
-$TESTJAVA/bin/java -Xbootclasspath/p:. DNS
+$TESTJAVA/bin/java ${TESTVMOPTS} -Xbootclasspath/p:. DNS
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/edu.mit.Kerberos Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,15 @@
+[domain_realm]
+
+[libdefaults]
+ default_realm = "MAC.LOCAL"
+ dns_fallback = "no"
+
+[logging]
+ admin_server = "FILE:/var/log/krb5kdc/kadmin.log"
+ kdc = "FILE:/var/log/krb5kdc/kdc.log"
+
+[realms]
+ MAC.LOCAL = {
+ kdc = "kdc.mac.local:88"
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/krb5-capaths.conf Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,102 @@
+[capaths]
+
+# http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-admin/capaths.html
+
+ANL.GOV = {
+ TEST.ANL.GOV = .
+ PNL.GOV = ES.NET
+ NERSC.GOV = ES.NET
+ ES.NET = .
+}
+TEST.ANL.GOV = {
+ ANL.GOV = .
+}
+PNL.GOV = {
+ ANL.GOV = ES.NET
+}
+#NERSC.GOV = {
+# ANL.GOV = ES.NET
+#}
+ES.NET = {
+ ANL.GOV = .
+}
+NERSC.GOV = {
+ ANL.GOV = ES.NET
+ TEST.ANL.GOV = ES.NET
+ TEST.ANL.GOV = ANL.GOV
+ PNL.GOV = ES.NET
+ ES.NET = .
+}
+
+# The original JDK example
+
+TIVOLI.COM = {
+ IBM.COM = IBM_LDAPCENTRAL.COM MOONLITE.ORG
+ IBM_LDAPCENTRAL.COM = LDAPCENTRAL.NET
+ LDAPCENTRAL.NET = .
+}
+
+# https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Smart_Cards/Setting_Up_Cross_Realm_Authentication.html
+
+A.EXAMPLE.COM = {
+ B.EXAMPLE.COM = .
+ C.EXAMPLE.COM = B.EXAMPLE.COM
+ D.EXAMPLE.COM = B.EXAMPLE.COM
+ D.EXAMPLE.COM = C.EXAMPLE.COM
+}
+
+# Full path
+
+A1.COM = {
+ A2.COM = .
+ A3.COM = A2.COM
+ A4.COM = A2.COM
+ A4.COM = A3.COM
+}
+
+# Shortest path
+
+B1.COM = {
+ B2.COM = .
+ B3.COM = B2.COM
+ B4.COM = B3.COM
+}
+
+# If no sRealm key, fallback to hierarchy
+
+C1.COM = {
+ C3.COM = C2.COM
+}
+
+# cRealm is "."
+
+D1.COM = {
+ D2.COM=D1.COM
+}
+
+# Bad cases
+
+E1.COM = {
+ E2.COM = E2.COM
+ E3.COM = E4.COM
+ E3.COM = .
+}
+
+G1.COM = {
+ G2.COM = G3.COM
+ G3.COM = G2.COM
+}
+
+I1.COM = {
+ I2.COM = I3.COM
+ I3.COM = I2.COM
+ I4.COM = I5.COM
+}
+
+# 7019384
+
+A9.PRAGUE.XXX.CZ = {
+ PRAGUE.XXX.CZ = .
+ ROOT.XXX.CZ = PRAGUE.XXX.CZ
+ SERVIS.XXX.CZ = ROOT.XXX.CZ
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/krb5/config/krb5.conf Thu Feb 20 16:27:08 2014 -0800
@@ -0,0 +1,29 @@
+[realms]
+ EXAMPLE_0.COM = {
+ kdc = kdc.example.com
+ kdc = kdc2.example.com
+ }
+
+ EXAMPLE_1.COM =
+ {
+ kdc = kdc.example.com
+ kdc = kdc2.example.com
+ }
+
+ EXAMPLE_2.COM = {
+ kdc = kdc.example.com
+ kdc = kdc2.example.com
+ inner = {
+ aaa = nnn
+ }
+ }
+
+ EXAMPLE_3.COM = {
+ kdc = kdc.example.com
+ kdc = kdc2.example.com
+ inner =
+ {
+ aaa = nnn
+ }
+ }
+
--- a/jdk/test/sun/security/krb5/confplusprop.conf Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-[libdefaults]
-default_realm = R1
-forwardable = well
-dns_lookup_realm = false
-
-[realms]
-R1 = {
- kdc = k1
-}
-R2 = {
- kdc = old
-}
--- a/jdk/test/sun/security/krb5/confplusprop2.conf Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-[libdefaults]
-dns_lookup_realm = false
-
-[realms]
-R1 = {
- kdc = k12
-}
-R2 = {
- kdc = old
-}
--- a/jdk/test/sun/security/krb5/edu.mit.Kerberos Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-[domain_realm]
-
-[libdefaults]
- default_realm = "MAC.LOCAL"
- dns_fallback = "no"
-
-[logging]
- admin_server = "FILE:/var/log/krb5kdc/kadmin.log"
- kdc = "FILE:/var/log/krb5kdc/kdc.log"
-
-[realms]
- MAC.LOCAL = {
- kdc = "kdc.mac.local:88"
- }
-
--- a/jdk/test/sun/security/krb5/krb5-capaths.conf Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-[capaths]
-
-# http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-admin/capaths.html
-
-ANL.GOV = {
- TEST.ANL.GOV = .
- PNL.GOV = ES.NET
- NERSC.GOV = ES.NET
- ES.NET = .
-}
-TEST.ANL.GOV = {
- ANL.GOV = .
-}
-PNL.GOV = {
- ANL.GOV = ES.NET
-}
-#NERSC.GOV = {
-# ANL.GOV = ES.NET
-#}
-ES.NET = {
- ANL.GOV = .
-}
-NERSC.GOV = {
- ANL.GOV = ES.NET
- TEST.ANL.GOV = ES.NET
- TEST.ANL.GOV = ANL.GOV
- PNL.GOV = ES.NET
- ES.NET = .
-}
-
-# The original JDK example
-
-TIVOLI.COM = {
- IBM.COM = IBM_LDAPCENTRAL.COM MOONLITE.ORG
- IBM_LDAPCENTRAL.COM = LDAPCENTRAL.NET
- LDAPCENTRAL.NET = .
-}
-
-# https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Managing_Smart_Cards/Setting_Up_Cross_Realm_Authentication.html
-
-A.EXAMPLE.COM = {
- B.EXAMPLE.COM = .
- C.EXAMPLE.COM = B.EXAMPLE.COM
- D.EXAMPLE.COM = B.EXAMPLE.COM
- D.EXAMPLE.COM = C.EXAMPLE.COM
-}
-
-# Full path
-
-A1.COM = {
- A2.COM = .
- A3.COM = A2.COM
- A4.COM = A2.COM
- A4.COM = A3.COM
-}
-
-# Shortest path
-
-B1.COM = {
- B2.COM = .
- B3.COM = B2.COM
- B4.COM = B3.COM
-}
-
-# If no sRealm key, fallback to hierarchy
-
-C1.COM = {
- C3.COM = C2.COM
-}
-
-# cRealm is "."
-
-D1.COM = {
- D2.COM=D1.COM
-}
-
-# Bad cases
-
-E1.COM = {
- E2.COM = E2.COM
- E3.COM = E4.COM
- E3.COM = .
-}
-
-G1.COM = {
- G2.COM = G3.COM
- G3.COM = G2.COM
-}
-
-I1.COM = {
- I2.COM = I3.COM
- I3.COM = I2.COM
- I4.COM = I5.COM
-}
-
-# 7019384
-
-A9.PRAGUE.XXX.CZ = {
- PRAGUE.XXX.CZ = .
- ROOT.XXX.CZ = PRAGUE.XXX.CZ
- SERVIS.XXX.CZ = ROOT.XXX.CZ
-}
--- a/jdk/test/sun/security/krb5/krb5.conf Thu Feb 20 16:23:45 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-[realms]
- EXAMPLE_0.COM = {
- kdc = kdc.example.com
- kdc = kdc2.example.com
- }
-
- EXAMPLE_1.COM =
- {
- kdc = kdc.example.com
- kdc = kdc2.example.com
- }
-
- EXAMPLE_2.COM = {
- kdc = kdc.example.com
- kdc = kdc2.example.com
- inner = {
- aaa = nnn
- }
- }
-
- EXAMPLE_3.COM = {
- kdc = kdc.example.com
- kdc = kdc2.example.com
- inner =
- {
- aaa = nnn
- }
- }
-
--- a/jdk/test/sun/security/tools/keytool/autotest.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/sun/security/tools/keytool/autotest.sh Thu Feb 20 16:27:08 2014 -0800
@@ -106,7 +106,7 @@
chmod u+w key3.db
chmod u+w cert8.db
-echo | ${TESTJAVA}${FS}bin${FS}java -Dnss \
+echo | ${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -Dnss \
-Dnss.lib=${LIBNAME} \
KeyToolTest
status=$?
--- a/jdk/test/sun/tools/jconsole/ResourceCheckTest.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/sun/tools/jconsole/ResourceCheckTest.sh Thu Feb 20 16:27:08 2014 -0800
@@ -102,7 +102,7 @@
"${TESTSRC}"/"${TARGETCLASS}".java
#
#Run the test class, again with the classpath we need:
-${TESTJAVA}/bin/java ${CP} ${TARGETCLASS}
+${TESTJAVA}/bin/java ${TESTVMOPTS} ${CP} ${TARGETCLASS}
status=$?
echo "test status was: $status"
if [ $status -eq "0" ];
--- a/jdk/test/sun/tools/native2ascii/NativeErrors.java Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/sun/tools/native2ascii/NativeErrors.java Thu Feb 20 16:27:08 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 1999, 2014 Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,13 +24,17 @@
/*
* @test
* @bug 4136352
+ * @library /lib/testlibrary
* @summary Test Native2ASCII error messages
*
*/
-import java.io.*;
-import sun.tools.native2ascii.*;
-import java.util.*;
+import java.io.File;
+import java.util.ResourceBundle;
+import java.util.MissingResourceException;
+import jdk.testlibrary.OutputAnalyzer;
+import jdk.testlibrary.JDKToolLauncher;
+import jdk.testlibrary.ProcessTools;
public class NativeErrors {
@@ -45,30 +49,18 @@
}
}
- public static void main(String args[]) throws Exception {
- String[] command;
- Process p = null;
- BufferedReader in = null;
+ public static void main(String args[]) throws Throwable {
+ // Execute command in another vm. Verify stdout for expected err msg.
- // Construct a command that runs the test in other vm
- // Exec another vm to run test in
- // Read the result to determine if test failed
-
- command = getComString("-encoding");
- p = Runtime.getRuntime().exec(command);
- in = new BufferedReader(new InputStreamReader(p.getInputStream()));
- checkResult(in, "err.bad.arg");
+ // Test with no input file given.
+ checkResult(executeCmd("-encoding"), "err.bad.arg");
File f0 = new File(System.getProperty("test.src", "."), "test123");
String path0 = f0.getPath();
if ( f0.exists() ) {
throw new Error("Input file should not exist: " + path0);
}
-
- command = getComString(path0);
- p = Runtime.getRuntime().exec(command);
- in = new BufferedReader(new InputStreamReader(p.getInputStream()));
- checkResult(in, "err.cannot.read");
+ checkResult(executeCmd(path0), "err.cannot.read");
File f1 = new File(System.getProperty("test.src", "."), "test1");
File f2 = File.createTempFile("test2", ".tmp");
@@ -81,71 +73,38 @@
throw new Error("Output file cannot be made read only: " + path2);
}
f2.deleteOnExit();
-
- command = getComString(path1, path2);
- p = Runtime.getRuntime().exec(command);
- in = new BufferedReader(new InputStreamReader(p.getInputStream()));
- checkResult(in, "err.cannot.write");
- }
-
-
- private static void checkResult(BufferedReader in, String errorExpected)
- throws Exception {
- String errorReceived;
- errorReceived = in.readLine();
- assert errorReceived != null : "First readline cannot be null";
- errorExpected = rsrc.getString(errorExpected);
- assert errorExpected != null : "Expected message cannot be null";
- StringBuffer error = new StringBuffer(errorExpected);
- int start = errorExpected.indexOf("{0}");
- if (start >= 0) {
- error.delete(start, start+3);
- errorExpected = error.toString();
- }
- //System.out.println("received: " + errorReceived);
- //System.out.println("expected: " + errorExpected);
- if (!errorReceived.endsWith(errorExpected))
- throw new RuntimeException("Native2ascii bad arg error broken.");
+ checkResult(executeCmd(path1, path2), "err.cannot.write");
}
- private static String[] getComString(String arg2) {
- String[] coms = new String[2];
- coms[0] = getPathString();
- coms[1] = arg2;
- return coms;
- }
-
- private static String[] getComString(String arg2, String arg3) {
- String[] coms = new String[3];
- coms[0] = getPathString();
- coms[1] = arg2;
- coms[2] = arg3;
- return coms;
+ private static String executeCmd(String... toolArgs) throws Throwable {
+ JDKToolLauncher cmd = JDKToolLauncher.createUsingTestJDK("native2ascii");
+ for (String s : toolArgs) {
+ cmd.addToolArg(s);
+ }
+ OutputAnalyzer output = ProcessTools.executeProcess(cmd.getCommand());
+ if (output == null || output.getStdout() == null) {
+ throw new Exception("Output was null. Process did not finish correctly.");
+ }
+ if (output.getExitValue() == 0) {
+ throw new Exception("Process exit code was 0, but error was expected.");
+ }
+ return output.getStdout();
}
- /*
- * Search for path to native2ascii
- */
- private static String getPathString() {
- String path = System.getProperty("java.home") + File.separator +
- "bin" + File.separator + "native2ascii";
- if (File.separatorChar == '\\') {
- path = path + ".exe";
+ private static void checkResult(
+ String errorReceived, String errorKey) throws Exception {
+ String errorExpected = rsrc.getString(errorKey);
+ if (errorExpected == null) {
+ throw new Exception("No error message for key: " + errorKey);
}
- File f = new File(path);
- if (!f.exists()) {
- System.out.println("Cannot find native2ascii at "+path);
- path = System.getProperty("java.home") + File.separator + ".." +
- File.separator + "bin" + File.separator + "native2ascii";
- if (File.separatorChar == '\\') {
- path = path + ".exe";
- }
- f = new File(path);
- if (!f.exists())
- throw new RuntimeException("Cannot find native2ascii at "+path);
- System.out.println("Using native2ascii at "+path);
+ // Remove template tag from error message.
+ errorExpected = errorExpected.replaceAll("\\{0\\}", "");
+
+ System.out.println("received: " + errorReceived);
+ System.out.println("expected: " + errorExpected);
+ if (errorReceived.indexOf(errorExpected) < 0) {
+ throw new RuntimeException("Native2ascii bad arg error broken.");
}
- return path;
}
}
--- a/jdk/test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh Thu Feb 20 16:23:45 2014 -0800
+++ b/jdk/test/sun/tools/native2ascii/resources/ImmutableResourceTest.sh Thu Feb 20 16:27:08 2014 -0800
@@ -104,7 +104,7 @@
"${TESTSRC}"/"${TARGETCLASS}".java
#
#Run the test class, again with the classpath we need:
-${TESTJAVA}/bin/java ${CP} ${TARGETCLASS}
+${TESTJAVA}/bin/java ${TESTVMOPTS} ${CP} ${TARGETCLASS}
status=$?
echo "test status was: $status"
if [ $status -eq "0" ];