Wed, 12 Jun 2013 14:47:09 +0100
8013021: Rebase 8005432 & 8003542 against the latest jdk8/jaxws
8003542: Improve processing of MTOM attachments
8005432: Update access to JAX-WS
Reviewed-by: mullan
1.1 --- a/src/share/jaxws_classes/com/oracle/webservices/internal/api/databinding/DatabindingModeFeature.java Thu May 30 10:58:13 2013 -0700 1.2 +++ b/src/share/jaxws_classes/com/oracle/webservices/internal/api/databinding/DatabindingModeFeature.java Wed Jun 12 14:47:09 2013 +0100 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -30,7 +30,7 @@ 1.11 1.12 import javax.xml.ws.WebServiceFeature; 1.13 1.14 -public class DatabindingModeFeature extends WebServiceFeature { 1.15 +public class DatabindingModeFeature extends WebServiceFeature implements com.sun.xml.internal.ws.api.ServiceSharedFeatureMarker { 1.16 /** 1.17 * Constant value identifying the DatabindingFeature 1.18 */
2.1 --- a/src/share/jaxws_classes/com/oracle/webservices/internal/api/databinding/ExternalMetadataFeature.java Thu May 30 10:58:13 2013 -0700 2.2 +++ b/src/share/jaxws_classes/com/oracle/webservices/internal/api/databinding/ExternalMetadataFeature.java Wed Jun 12 14:47:09 2013 +0100 2.3 @@ -52,6 +52,7 @@ 2.4 2.5 private List<String> resourceNames; 2.6 private List<File> files; 2.7 + private MetadataReader reader; 2.8 2.9 private ExternalMetadataFeature() { 2.10 } 2.11 @@ -88,6 +89,7 @@ 2.12 } 2.13 2.14 public MetadataReader getMetadataReader(ClassLoader classLoader, boolean disableSecureXmlProcessing) { 2.15 + if (reader != null && enabled) return reader; 2.16 return enabled ? new ExternalMetadataReader(files, resourceNames, classLoader, true, disableSecureXmlProcessing) : null; 2.17 } 2.18 2.19 @@ -153,5 +155,9 @@ 2.20 return this; 2.21 } 2.22 2.23 + public Builder setReader( MetadataReader r ) { 2.24 + o.reader = r; 2.25 + return this; 2.26 + } 2.27 } 2.28 }
3.1 --- a/src/share/jaxws_classes/com/oracle/webservices/internal/api/message/BaseDistributedPropertySet.java Thu May 30 10:58:13 2013 -0700 3.2 +++ b/src/share/jaxws_classes/com/oracle/webservices/internal/api/message/BaseDistributedPropertySet.java Wed Jun 12 14:47:09 2013 +0100 3.3 @@ -22,6 +22,7 @@ 3.4 * or visit www.oracle.com if you need additional information or have any 3.5 * questions. 3.6 */ 3.7 + 3.8 package com.oracle.webservices.internal.api.message; 3.9 3.10 import com.sun.istack.internal.NotNull;
4.1 --- a/src/share/jaxws_classes/com/oracle/webservices/internal/impl/encoding/StreamDecoderImpl.java Thu May 30 10:58:13 2013 -0700 4.2 +++ b/src/share/jaxws_classes/com/oracle/webservices/internal/impl/encoding/StreamDecoderImpl.java Wed Jun 12 14:47:09 2013 +0100 4.3 @@ -22,6 +22,7 @@ 4.4 * or visit www.oracle.com if you need additional information or have any 4.5 * questions. 4.6 */ 4.7 + 4.8 package com.oracle.webservices.internal.impl.encoding; 4.9 4.10 import java.io.IOException;
5.1 --- a/src/share/jaxws_classes/com/oracle/xmlns/internal/webservices/jaxws_databinding/package-info.java Thu May 30 10:58:13 2013 -0700 5.2 +++ b/src/share/jaxws_classes/com/oracle/xmlns/internal/webservices/jaxws_databinding/package-info.java Wed Jun 12 14:47:09 2013 +0100 5.3 @@ -23,7 +23,6 @@ 5.4 * questions. 5.5 */ 5.6 5.7 - 5.8 // 5.9 // This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.6-SNAPSHOT 5.10 // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
6.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle.properties Thu May 30 10:58:13 2013 -0700 6.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle.properties Wed Jun 12 14:47:09 2013 +0100 6.3 @@ -30,10 +30,10 @@ 6.4 Non-existent directory: {0} 6.5 6.6 VERSION = \ 6.7 - schemagen 2.2.7-b63 6.8 + schemagen 2.2.8-b01 6.9 6.10 FULLVERSION = \ 6.11 - schemagen full version "2.2.7-b63" 6.12 + schemagen full version "2.2.8-b01" 6.13 6.14 USAGE = \ 6.15 Usage: schemagen [-options ...] <java files> \n\
7.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_de.properties Thu May 30 10:58:13 2013 -0700 7.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_de.properties Wed Jun 12 14:47:09 2013 +0100 7.3 @@ -27,8 +27,8 @@ 7.4 7.5 BASEDIR_DOESNT_EXIST = Nicht vorhandenes Verzeichnis: {0} 7.6 7.7 -VERSION = schemagen 2.2.7-b63 7.8 +VERSION = schemagen 2.2.8-b01 7.9 7.10 -FULLVERSION = schemagen vollst\u00E4ndige Version "2.2.7-b63" 7.11 +FULLVERSION = schemagen vollst\u00E4ndige Version "2.2.8-b01" 7.12 7.13 USAGE = Verwendung: schemagen [-options ...] <java files> \nOptionen: \n\\ \\ \\ \\ -d <path> : Gibt an, wo die von Prozessor und javac generierten Klassendateien gespeichert werden sollen\n\\ \\ \\ \\ -cp <path> : Gibt an, wo die vom Benutzer angegebenen Dateien gespeichert sind\n\\ \\ \\ \\ -classpath <path> : Gibt an, wo die vom Benutzer angegebenen Dateien gespeichert sind\n\\ \\ \\ \\ -encoding <encoding> : Gibt die Codierung f\u00FCr die Annotationsverarbeitung/den javac-Aufruf an \n\\ \\ \\ \\ -episode <file> : Generiert Episodendatei f\u00FCr separate Kompilierung\n\\ \\ \\ \\ -version : Zeigt Versionsinformation an\n\\ \\ \\ \\ -fullversion : Zeigt vollst\u00E4ndige Versionsinformationen an\n\\ \\ \\ \\ -help : Zeigt diese Verwendungsmeldung an
8.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_es.properties Thu May 30 10:58:13 2013 -0700 8.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_es.properties Wed Jun 12 14:47:09 2013 +0100 8.3 @@ -27,8 +27,8 @@ 8.4 8.5 BASEDIR_DOESNT_EXIST = Directorio no existente: {0} 8.6 8.7 -VERSION = schemagen 2.2.7-b63 8.8 +VERSION = schemagen 2.2.8-b01 8.9 8.10 -FULLVERSION = versi\u00F3n completa de schemagen "2.2.7-b63" 8.11 +FULLVERSION = versi\u00F3n completa de schemagen "2.2.8-b01" 8.12 8.13 USAGE = Sintaxis: schemagen [-options ...] <archivos java> \nOpciones: \n\\ \\ \\ \\ -d <ruta de acceso> : especifique d\u00F3nde se colocan los archivos de clase generados por javac y el procesador\n\\ \\ \\ \\ -cp <ruta de acceso> : especifique d\u00F3nde se encuentran los archivos especificados por el usuario\n\\ \\ \\ \\ -encoding <codificaci\u00F3n> : especifique la codificaci\u00F3n que se va a utilizar para el procesamiento de anotaciones/llamada de javac\n\\ \\ \\ \\ -episode <archivo> : genera un archivo de episodio para una compilaci\u00F3n diferente\n\\ \\ \\ \\ -version : muestra la informaci\u00F3n de la versi\u00F3n\n\\ \\ \\ \\ -fullversion : muestra la informaci\u00F3n completa de la versi\u00F3n\n\\ \\ \\ \\ -help : muestra este mensaje de sintaxis
9.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_fr.properties Thu May 30 10:58:13 2013 -0700 9.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_fr.properties Wed Jun 12 14:47:09 2013 +0100 9.3 @@ -27,8 +27,8 @@ 9.4 9.5 BASEDIR_DOESNT_EXIST = R\u00E9pertoire {0} inexistant 9.6 9.7 -VERSION = schemagen 2.2.7-b63 9.8 +VERSION = schemagen 2.2.8-b01 9.9 9.10 -FULLVERSION = version compl\u00E8te de schemagen "2.2.7-b63" 9.11 +FULLVERSION = version compl\u00E8te de schemagen "2.2.8-b01" 9.12 9.13 USAGE = Syntaxe : schemagen [-options ...] <java files> \nOptions : \n\ \ \ \ -d <path> : indiquez o\u00F9 placer les fichiers de classe g\u00E9n\u00E9r\u00E9s par le processeur et le compilateur javac\n\ \ \ \ -cp <path> : indiquez o\u00F9 trouver les fichiers sp\u00E9cifi\u00E9s par l'utilisateur\n\ \ \ \ -classpath <path> : indiquez o\u00F9 trouver les fichiers sp\u00E9cifi\u00E9s par l'utilisateur\n\ \ \ \ -encoding <encoding> : indiquez l'encodage \u00E0 utiliser pour l'appel de javac/traitement de l'annotation \n\ \ \ \ -episode <file> : g\u00E9n\u00E9rez un fichier d'\u00E9pisode pour la compilation s\u00E9par\u00E9e\n\ \ \ \ -version : affichez les informations de version\n\ \ \ \ -fullversion : affichez les informations compl\u00E8tes de version\n\ \ \ \ -help : affichez ce message de syntaxe
10.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_it.properties Thu May 30 10:58:13 2013 -0700 10.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_it.properties Wed Jun 12 14:47:09 2013 +0100 10.3 @@ -27,8 +27,8 @@ 10.4 10.5 BASEDIR_DOESNT_EXIST = Directory non esistente: {0} 10.6 10.7 -VERSION = schemagen 2.2.7-b63 10.8 +VERSION = schemagen 2.2.8-b01 10.9 10.10 -FULLVERSION = versione completa schemagen "2.2.7-b63" 10.11 +FULLVERSION = versione completa schemagen "2.2.8-b01" 10.12 10.13 USAGE = Uso: schemagen [-options ...] <java files> \nOpzioni: \n\ \ \ \ -d <path> : specifica dove posizionare il processore e i file della classe generata javac\n\ \ \ \ -cp <path> : specifica dove trovare i file specificati dall'utente\n\ \ \ \ -classpath <path> : specifica dove trovare i file specificati dall'utente\n\ \ \ \ -encoding <encoding> : specifica la codifica da usare per l'elaborazione dell'annotazione/richiamo javac \n\ \ \ \ -episode <file> : genera il file di episodio per la compilazione separata\n\ \ \ \ -version : visualizza le informazioni sulla versione\n\ \ \ \ -fullversion : visualizza le informazioni sulla versione completa\n\ \ \ \ -help : visualizza questo messaggio sull'uso
11.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_ja.properties Thu May 30 10:58:13 2013 -0700 11.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_ja.properties Wed Jun 12 14:47:09 2013 +0100 11.3 @@ -27,8 +27,8 @@ 11.4 11.5 BASEDIR_DOESNT_EXIST = \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304C\u5B58\u5728\u3057\u307E\u305B\u3093: {0} 11.6 11.7 -VERSION = schemagen 2.2.7-b63 11.8 +VERSION = schemagen 2.2.8-b01 11.9 11.10 -FULLVERSION = schemagen\u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3"2.2.7-b63" 11.11 +FULLVERSION = schemagen\u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3"2.2.8-b01" 11.12 11.13 USAGE = \u4F7F\u7528\u65B9\u6CD5: schemagen [-options ...] <java files> \n\u30AA\u30D7\u30B7\u30E7\u30F3: \n\ \ \ \ -d <path> : \u30D7\u30ED\u30BB\u30C3\u30B5\u304A\u3088\u3073javac\u304C\u751F\u6210\u3057\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -cp <path> : \u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -classpath <path> : \u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -encoding <encoding> : \u6CE8\u91C8\u51E6\u7406/javac\u547C\u51FA\u3057\u306B\u4F7F\u7528\u3059\u308B\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3092\u6307\u5B9A\u3057\u307E\u3059\n\ \ \ \ -episode <file> : \u30B3\u30F3\u30D1\u30A4\u30EB\u3054\u3068\u306B\u30A8\u30D4\u30BD\u30FC\u30C9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3057\u307E\u3059\n\ \ \ \ -version : \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\n\ \ \ \ -fullversion : \u30D5\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\n\ \ \ \ -help : \u3053\u306E\u4F7F\u7528\u4F8B\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3057\u307E\u3059
12.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_ko.properties Thu May 30 10:58:13 2013 -0700 12.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_ko.properties Wed Jun 12 14:47:09 2013 +0100 12.3 @@ -27,8 +27,8 @@ 12.4 12.5 BASEDIR_DOESNT_EXIST = \uC874\uC7AC\uD558\uC9C0 \uC54A\uB294 \uB514\uB809\uD1A0\uB9AC: {0} 12.6 12.7 -VERSION = schemagen 2.2.7-b63 12.8 +VERSION = schemagen 2.2.8-b01 12.9 12.10 -FULLVERSION = schemagen \uC815\uC2DD \uBC84\uC804 "2.2.7-b63" 12.11 +FULLVERSION = schemagen \uC815\uC2DD \uBC84\uC804 "2.2.8-b01" 12.12 12.13 USAGE = \uC0AC\uC6A9\uBC95: schemagen [-options ...] <java files> \n\uC635\uC158: \n\ \ \ \ -d <path> : \uD504\uB85C\uC138\uC11C \uBC0F javac\uC5D0\uC11C \uC0DD\uC131\uD55C \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uBC30\uCE58\uD560 \uC704\uCE58\uB97C \uC9C0\uC815\uD569\uB2C8\uB2E4.\n\ \ \ \ -cp <path> : \uC0AC\uC6A9\uC790\uAC00 \uC9C0\uC815\uD55C \uD30C\uC77C\uC744 \uCC3E\uC744 \uC704\uCE58\uB97C \uC9C0\uC815\uD569\uB2C8\uB2E4.\n\ \ \ \ -classpath <path> : \uC0AC\uC6A9\uC790\uAC00 \uC9C0\uC815\uD55C \uD30C\uC77C\uC744 \uCC3E\uC744 \uC704\uCE58\uB97C \uC9C0\uC815\uD569\uB2C8\uB2E4.\n\ \ \ \ -encoding <encoding> : \uC8FC\uC11D \uCC98\uB9AC/javac \uD638\uCD9C\uC5D0 \uC0AC\uC6A9\uD560 \uC778\uCF54\uB529\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4. \n\ \ \ \ -episode <file> : \uBCC4\uB3C4 \uCEF4\uD30C\uC77C\uC744 \uC704\uD574 episode \uD30C\uC77C\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n\ \ \ \ -version : \uBC84\uC804 \uC815\uBCF4\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n\ \ \ \ -fullversion : \uC815\uC2DD \uBC84\uC804 \uC815\uBCF4\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n\ \ \ \ -help : \uC774 \uC0AC\uC6A9\uBC95 \uBA54\uC2DC\uC9C0\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4.
13.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_pt_BR.properties Thu May 30 10:58:13 2013 -0700 13.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_pt_BR.properties Wed Jun 12 14:47:09 2013 +0100 13.3 @@ -27,8 +27,8 @@ 13.4 13.5 BASEDIR_DOESNT_EXIST = Diret\u00F3rio n\u00E3o existente: {0} 13.6 13.7 -VERSION = gera\u00E7\u00E3o do esquema 2.2.7-b63 13.8 +VERSION = gera\u00E7\u00E3o do esquema 2.2.8-b01 13.9 13.10 -FULLVERSION = vers\u00E3o completa da gera\u00E7\u00E3o do esquema "2.2.7-b63" 13.11 +FULLVERSION = vers\u00E3o completa da gera\u00E7\u00E3o do esquema "2.2.8-b01" 13.12 13.13 USAGE = Uso: gera\u00E7\u00E3o do esquema [-options ...] <java files> \nOp\u00E7\u00F5es: \n\\ \\ \\ \\ -d <path> : especificar onde colocar o processador e os arquivos da classe gerados por javac\n\\ \\ \\ \\ -cp <path> : especificar onde localizar arquivos especificados pelo usu\u00E1rio\n\\ \\ \\ \\ -classpath <path> : especificar onde localizar os arquivos especificados pelo usu\u00E1rio\n\\ \\ \\ \\ -encoding <encoding> : especificar codifica\u00E7\u00E3o a ser usada para processamento de anota\u00E7\u00E3o/chamada javac \n\\ \\ \\ \\ -episode <file> : gerar arquivo do epis\u00F3dio para compila\u00E7\u00E3o separada\n\\ \\ \\ \\ -version : exibir informa\u00E7\u00F5es da vers\u00E3o\n\\ \\ \\ \\ -fullversion : exibir informa\u00E7\u00F5es da vers\u00E3o completa\n\\ \\ \\ \\ -help : exibir esta mensagem de uso
14.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_zh_CN.properties Thu May 30 10:58:13 2013 -0700 14.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_zh_CN.properties Wed Jun 12 14:47:09 2013 +0100 14.3 @@ -27,8 +27,8 @@ 14.4 14.5 BASEDIR_DOESNT_EXIST = \u4E0D\u5B58\u5728\u7684\u76EE\u5F55: {0} 14.6 14.7 -VERSION = schemagen 2.2.7-b63 14.8 +VERSION = schemagen 2.2.8-b01 14.9 14.10 -FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.2.7-b63" 14.11 +FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.2.8-b01" 14.12 14.13 USAGE = \u7528\u6CD5: schemagen [-options ...] <java files> \n\u9009\u9879: \n\ \ \ \ -d <path> : \u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u548C javac \u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n\ \ \ \ -cp <path> : \u6307\u5B9A\u67E5\u627E\u7528\u6237\u6307\u5B9A\u6587\u4EF6\u7684\u4F4D\u7F6E\n\ \ \ \ -classpath <path> : \u6307\u5B9A\u67E5\u627E\u7528\u6237\u6307\u5B9A\u6587\u4EF6\u7684\u4F4D\u7F6E\n\ \ \ \ -encoding <encoding> : \u6307\u5B9A\u7528\u4E8E\u6CE8\u91CA\u5904\u7406/javac \u8C03\u7528\u7684\u7F16\u7801\n\ \ \ \ -episode <file> : \u751F\u6210\u7247\u6BB5\u6587\u4EF6\u4EE5\u4F9B\u5355\u72EC\u7F16\u8BD1\n\ \ \ \ -version : \u663E\u793A\u7248\u672C\u4FE1\u606F\n\ \ \ \ -fullversion : \u663E\u793A\u5B8C\u6574\u7684\u7248\u672C\u4FE1\u606F\n\ \ \ \ -help : \u663E\u793A\u6B64\u7528\u6CD5\u6D88\u606F
15.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_zh_TW.properties Thu May 30 10:58:13 2013 -0700 15.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_zh_TW.properties Wed Jun 12 14:47:09 2013 +0100 15.3 @@ -27,8 +27,8 @@ 15.4 15.5 BASEDIR_DOESNT_EXIST = \u4E0D\u5B58\u5728\u7684\u76EE\u9304: {0} 15.6 15.7 -VERSION = schemagen 2.2.7-b63 15.8 +VERSION = schemagen 2.2.8-b01 15.9 15.10 -FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.2.7-b63" 15.11 +FULLVERSION = schemagen \u5B8C\u6574\u7248\u672C "2.2.8-b01" 15.12 15.13 USAGE = \u7528\u6CD5: schemagen [-options ...] <java files> \n\u9078\u9805: \n\\ \\ \\ \\ -d <path> : \u6307\u5B9A\u8655\u7406\u5668\u4EE5\u53CA javac \u7522\u751F\u7684\u985E\u5225\u6A94\u6848\u653E\u7F6E\u4F4D\u7F6E\n\\ \\ \\ \\ -cp <path> : \u6307\u5B9A\u8981\u5C0B\u627E\u4F7F\u7528\u8005\u6307\u5B9A\u6A94\u6848\u7684\u4F4D\u7F6E\n\\ \\ \\ \\ -classpath <path> : \u6307\u5B9A\u8981\u5C0B\u627E\u4F7F\u7528\u8005\u6307\u5B9A\u6A94\u6848\u7684\u4F4D\u7F6E\n\\ \\ \\ \\ -encoding <encoding> : \u6307\u5B9A\u8981\u7528\u65BC\u8A3B\u89E3\u8655\u7406/javac \u547C\u53EB\u7684\u7DE8\u78BC \n\\ \\ \\ \\ -episode <file> : \u7522\u751F\u7368\u7ACB\u7DE8\u8B6F\u7684\u4E8B\u4EF6 (episode) \u6A94\u6848\n\\ \\ \\ \\ -version : \u986F\u793A\u7248\u672C\u8CC7\u8A0A\n\\ \\ \\ \\ -fullversion : \u986F\u793A\u5B8C\u6574\u7248\u672C\u8CC7\u8A0A\n\\ \\ \\ \\ -help : \u986F\u793A\u6B64\u7528\u6CD5\u8A0A\u606F
16.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/gen/config/Classes.java Thu May 30 10:58:13 2013 -0700 16.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/gen/config/Classes.java Wed Jun 12 14:47:09 2013 +0100 16.3 @@ -78,11 +78,6 @@ 16.4 $localName = $__local; 16.5 $qname = $__qname; 16.6 switch($_ngcc_current_state) { 16.7 - case 0: 16.8 - { 16.9 - revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs); 16.10 - } 16.11 - break; 16.12 case 4: 16.13 { 16.14 $_ngcc_current_state = 3; 16.15 @@ -112,6 +107,11 @@ 16.16 } 16.17 } 16.18 break; 16.19 + case 0: 16.20 + { 16.21 + revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs); 16.22 + } 16.23 + break; 16.24 case 12: 16.25 { 16.26 if(($__uri.equals("") && $__local.equals("classes"))) { 16.27 @@ -137,11 +137,17 @@ 16.28 $localName = $__local; 16.29 $qname = $__qname; 16.30 switch($_ngcc_current_state) { 16.31 - case 8: 16.32 + case 4: 16.33 { 16.34 - if(($__uri.equals("") && $__local.equals("includes"))) { 16.35 + $_ngcc_current_state = 3; 16.36 + $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname); 16.37 + } 16.38 + break; 16.39 + case 3: 16.40 + { 16.41 + if(($__uri.equals("") && $__local.equals("excludes"))) { 16.42 $runtime.onLeaveElementConsumed($__uri, $__local, $__qname); 16.43 - $_ngcc_current_state = 2; 16.44 + $_ngcc_current_state = 1; 16.45 } 16.46 else { 16.47 unexpectedLeaveElement($__qname); 16.48 @@ -159,22 +165,11 @@ 16.49 } 16.50 } 16.51 break; 16.52 - case 0: 16.53 + case 8: 16.54 { 16.55 - revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname); 16.56 - } 16.57 - break; 16.58 - case 4: 16.59 - { 16.60 - $_ngcc_current_state = 3; 16.61 - $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname); 16.62 - } 16.63 - break; 16.64 - case 3: 16.65 - { 16.66 - if(($__uri.equals("") && $__local.equals("excludes"))) { 16.67 + if(($__uri.equals("") && $__local.equals("includes"))) { 16.68 $runtime.onLeaveElementConsumed($__uri, $__local, $__qname); 16.69 - $_ngcc_current_state = 1; 16.70 + $_ngcc_current_state = 2; 16.71 } 16.72 else { 16.73 unexpectedLeaveElement($__qname); 16.74 @@ -187,6 +182,11 @@ 16.75 $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname); 16.76 } 16.77 break; 16.78 + case 0: 16.79 + { 16.80 + revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname); 16.81 + } 16.82 + break; 16.83 default: 16.84 { 16.85 unexpectedLeaveElement($__qname); 16.86 @@ -201,11 +201,6 @@ 16.87 $localName = $__local; 16.88 $qname = $__qname; 16.89 switch($_ngcc_current_state) { 16.90 - case 0: 16.91 - { 16.92 - revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname); 16.93 - } 16.94 - break; 16.95 case 4: 16.96 { 16.97 $_ngcc_current_state = 3; 16.98 @@ -218,6 +213,11 @@ 16.99 $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname); 16.100 } 16.101 break; 16.102 + case 0: 16.103 + { 16.104 + revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname); 16.105 + } 16.106 + break; 16.107 default: 16.108 { 16.109 unexpectedEnterAttribute($__qname); 16.110 @@ -232,11 +232,6 @@ 16.111 $localName = $__local; 16.112 $qname = $__qname; 16.113 switch($_ngcc_current_state) { 16.114 - case 0: 16.115 - { 16.116 - revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname); 16.117 - } 16.118 - break; 16.119 case 4: 16.120 { 16.121 $_ngcc_current_state = 3; 16.122 @@ -249,6 +244,11 @@ 16.123 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname); 16.124 } 16.125 break; 16.126 + case 0: 16.127 + { 16.128 + revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname); 16.129 + } 16.130 + break; 16.131 default: 16.132 { 16.133 unexpectedLeaveAttribute($__qname); 16.134 @@ -260,25 +260,6 @@ 16.135 public void text(String $value) throws SAXException { 16.136 int $ai; 16.137 switch($_ngcc_current_state) { 16.138 - case 9: 16.139 - { 16.140 - include_content = $value; 16.141 - $_ngcc_current_state = 8; 16.142 - action2(); 16.143 - } 16.144 - break; 16.145 - case 8: 16.146 - { 16.147 - include_content = $value; 16.148 - $_ngcc_current_state = 8; 16.149 - action2(); 16.150 - } 16.151 - break; 16.152 - case 0: 16.153 - { 16.154 - revertToParentFromText(this, super._cookie, $value); 16.155 - } 16.156 - break; 16.157 case 4: 16.158 { 16.159 exclude_content = $value; 16.160 @@ -293,6 +274,20 @@ 16.161 action0(); 16.162 } 16.163 break; 16.164 + case 9: 16.165 + { 16.166 + include_content = $value; 16.167 + $_ngcc_current_state = 8; 16.168 + action2(); 16.169 + } 16.170 + break; 16.171 + case 10: 16.172 + { 16.173 + __text = $value; 16.174 + $_ngcc_current_state = 9; 16.175 + action3(); 16.176 + } 16.177 + break; 16.178 case 6: 16.179 { 16.180 __text = $value; 16.181 @@ -300,17 +295,22 @@ 16.182 action1(); 16.183 } 16.184 break; 16.185 + case 8: 16.186 + { 16.187 + include_content = $value; 16.188 + $_ngcc_current_state = 8; 16.189 + action2(); 16.190 + } 16.191 + break; 16.192 case 2: 16.193 { 16.194 $_ngcc_current_state = 1; 16.195 $runtime.sendText(super._cookie, $value); 16.196 } 16.197 break; 16.198 - case 10: 16.199 + case 0: 16.200 { 16.201 - __text = $value; 16.202 - $_ngcc_current_state = 9; 16.203 - action3(); 16.204 + revertToParentFromText(this, super._cookie, $value); 16.205 } 16.206 break; 16.207 }
17.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/gen/config/Config.java Thu May 30 10:58:13 2013 -0700 17.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/gen/config/Config.java Wed Jun 12 14:47:09 2013 +0100 17.3 @@ -74,31 +74,16 @@ 17.4 $localName = $__local; 17.5 $qname = $__qname; 17.6 switch($_ngcc_current_state) { 17.7 - case 1: 17.8 + case 2: 17.9 { 17.10 if(($__uri.equals("") && $__local.equals("schema"))) { 17.11 - NGCCHandler h = new Schema(this, super._source, $runtime, 31, baseDir); 17.12 + NGCCHandler h = new Schema(this, super._source, $runtime, 16, baseDir); 17.13 spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs); 17.14 } 17.15 else { 17.16 - unexpectedEnterElement($__qname); 17.17 - } 17.18 - } 17.19 - break; 17.20 - case 0: 17.21 - { 17.22 - revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs); 17.23 - } 17.24 - break; 17.25 - case 7: 17.26 - { 17.27 - if(($ai = $runtime.getAttributeIndex("","baseDir"))>=0) { 17.28 - $runtime.consumeAttribute($ai); 17.29 + $_ngcc_current_state = 1; 17.30 $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs); 17.31 } 17.32 - else { 17.33 - unexpectedEnterElement($__qname); 17.34 - } 17.35 } 17.36 break; 17.37 case 8: 17.38 @@ -112,22 +97,26 @@ 17.39 } 17.40 } 17.41 break; 17.42 - case 2: 17.43 + case 4: 17.44 { 17.45 - if(($__uri.equals("") && $__local.equals("schema"))) { 17.46 - NGCCHandler h = new Schema(this, super._source, $runtime, 32, baseDir); 17.47 + if(($__uri.equals("") && $__local.equals("classes"))) { 17.48 + NGCCHandler h = new Classes(this, super._source, $runtime, 18); 17.49 spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs); 17.50 } 17.51 else { 17.52 - $_ngcc_current_state = 1; 17.53 - $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs); 17.54 + unexpectedEnterElement($__qname); 17.55 } 17.56 } 17.57 break; 17.58 - case 4: 17.59 + case 0: 17.60 { 17.61 - if(($__uri.equals("") && $__local.equals("classes"))) { 17.62 - NGCCHandler h = new Classes(this, super._source, $runtime, 34); 17.63 + revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs); 17.64 + } 17.65 + break; 17.66 + case 1: 17.67 + { 17.68 + if(($__uri.equals("") && $__local.equals("schema"))) { 17.69 + NGCCHandler h = new Schema(this, super._source, $runtime, 15, baseDir); 17.70 spawnChildFromEnterElement(h, $__uri, $__local, $__qname, $attrs); 17.71 } 17.72 else { 17.73 @@ -135,6 +124,17 @@ 17.74 } 17.75 } 17.76 break; 17.77 + case 7: 17.78 + { 17.79 + if(($ai = $runtime.getAttributeIndex("","baseDir"))>=0) { 17.80 + $runtime.consumeAttribute($ai); 17.81 + $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs); 17.82 + } 17.83 + else { 17.84 + unexpectedEnterElement($__qname); 17.85 + } 17.86 + } 17.87 + break; 17.88 default: 17.89 { 17.90 unexpectedEnterElement($__qname); 17.91 @@ -149,6 +149,17 @@ 17.92 $localName = $__local; 17.93 $qname = $__qname; 17.94 switch($_ngcc_current_state) { 17.95 + case 2: 17.96 + { 17.97 + $_ngcc_current_state = 1; 17.98 + $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname); 17.99 + } 17.100 + break; 17.101 + case 0: 17.102 + { 17.103 + revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname); 17.104 + } 17.105 + break; 17.106 case 1: 17.107 { 17.108 if(($__uri.equals("") && $__local.equals("config"))) { 17.109 @@ -160,11 +171,6 @@ 17.110 } 17.111 } 17.112 break; 17.113 - case 0: 17.114 - { 17.115 - revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname); 17.116 - } 17.117 - break; 17.118 case 7: 17.119 { 17.120 if(($ai = $runtime.getAttributeIndex("","baseDir"))>=0) { 17.121 @@ -176,12 +182,6 @@ 17.122 } 17.123 } 17.124 break; 17.125 - case 2: 17.126 - { 17.127 - $_ngcc_current_state = 1; 17.128 - $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname); 17.129 - } 17.130 - break; 17.131 default: 17.132 { 17.133 unexpectedLeaveElement($__qname); 17.134 @@ -196,6 +196,12 @@ 17.135 $localName = $__local; 17.136 $qname = $__qname; 17.137 switch($_ngcc_current_state) { 17.138 + case 2: 17.139 + { 17.140 + $_ngcc_current_state = 1; 17.141 + $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname); 17.142 + } 17.143 + break; 17.144 case 0: 17.145 { 17.146 revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname); 17.147 @@ -211,12 +217,6 @@ 17.148 } 17.149 } 17.150 break; 17.151 - case 2: 17.152 - { 17.153 - $_ngcc_current_state = 1; 17.154 - $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname); 17.155 - } 17.156 - break; 17.157 default: 17.158 { 17.159 unexpectedEnterAttribute($__qname); 17.160 @@ -231,11 +231,6 @@ 17.161 $localName = $__local; 17.162 $qname = $__qname; 17.163 switch($_ngcc_current_state) { 17.164 - case 0: 17.165 - { 17.166 - revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname); 17.167 - } 17.168 - break; 17.169 case 2: 17.170 { 17.171 $_ngcc_current_state = 1; 17.172 @@ -252,6 +247,11 @@ 17.173 } 17.174 } 17.175 break; 17.176 + case 0: 17.177 + { 17.178 + revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname); 17.179 + } 17.180 + break; 17.181 default: 17.182 { 17.183 unexpectedLeaveAttribute($__qname); 17.184 @@ -263,9 +263,10 @@ 17.185 public void text(String $value) throws SAXException { 17.186 int $ai; 17.187 switch($_ngcc_current_state) { 17.188 - case 0: 17.189 + case 2: 17.190 { 17.191 - revertToParentFromText(this, super._cookie, $value); 17.192 + $_ngcc_current_state = 1; 17.193 + $runtime.sendText(super._cookie, $value); 17.194 } 17.195 break; 17.196 case 6: 17.197 @@ -275,6 +276,11 @@ 17.198 action1(); 17.199 } 17.200 break; 17.201 + case 0: 17.202 + { 17.203 + revertToParentFromText(this, super._cookie, $value); 17.204 + } 17.205 + break; 17.206 case 7: 17.207 { 17.208 if(($ai = $runtime.getAttributeIndex("","baseDir"))>=0) { 17.209 @@ -283,31 +289,25 @@ 17.210 } 17.211 } 17.212 break; 17.213 - case 2: 17.214 - { 17.215 - $_ngcc_current_state = 1; 17.216 - $runtime.sendText(super._cookie, $value); 17.217 - } 17.218 - break; 17.219 } 17.220 } 17.221 17.222 public void onChildCompleted(Object result, int cookie, boolean needAttCheck)throws SAXException { 17.223 switch(cookie) { 17.224 - case 31: 17.225 + case 16: 17.226 { 17.227 this._schema = ((Schema)result); 17.228 action0(); 17.229 $_ngcc_current_state = 1; 17.230 } 17.231 break; 17.232 - case 34: 17.233 + case 18: 17.234 { 17.235 this.classes = ((Classes)result); 17.236 $_ngcc_current_state = 2; 17.237 } 17.238 break; 17.239 - case 32: 17.240 + case 15: 17.241 { 17.242 this._schema = ((Schema)result); 17.243 action0();
18.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/jxc/gen/config/Schema.java Thu May 30 10:58:13 2013 -0700 18.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/jxc/gen/config/Schema.java Wed Jun 12 14:47:09 2013 +0100 18.3 @@ -67,6 +67,23 @@ 18.4 $localName = $__local; 18.5 $qname = $__qname; 18.6 switch($_ngcc_current_state) { 18.7 + case 0: 18.8 + { 18.9 + revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs); 18.10 + } 18.11 + break; 18.12 + case 6: 18.13 + { 18.14 + if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) { 18.15 + $runtime.consumeAttribute($ai); 18.16 + $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs); 18.17 + } 18.18 + else { 18.19 + $_ngcc_current_state = 2; 18.20 + $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs); 18.21 + } 18.22 + } 18.23 + break; 18.24 case 2: 18.25 { 18.26 if(($ai = $runtime.getAttributeIndex("","location"))>=0) { 18.27 @@ -90,23 +107,6 @@ 18.28 } 18.29 } 18.30 break; 18.31 - case 0: 18.32 - { 18.33 - revertToParentFromEnterElement(this, super._cookie, $__uri, $__local, $__qname, $attrs); 18.34 - } 18.35 - break; 18.36 - case 6: 18.37 - { 18.38 - if(($ai = $runtime.getAttributeIndex("","namespace"))>=0) { 18.39 - $runtime.consumeAttribute($ai); 18.40 - $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs); 18.41 - } 18.42 - else { 18.43 - $_ngcc_current_state = 2; 18.44 - $runtime.sendEnterElement(super._cookie, $__uri, $__local, $__qname, $attrs); 18.45 - } 18.46 - } 18.47 - break; 18.48 default: 18.49 { 18.50 unexpectedEnterElement($__qname); 18.51 @@ -121,29 +121,6 @@ 18.52 $localName = $__local; 18.53 $qname = $__qname; 18.54 switch($_ngcc_current_state) { 18.55 - case 1: 18.56 - { 18.57 - if(($__uri.equals("") && $__local.equals("schema"))) { 18.58 - $runtime.onLeaveElementConsumed($__uri, $__local, $__qname); 18.59 - $_ngcc_current_state = 0; 18.60 - } 18.61 - else { 18.62 - unexpectedLeaveElement($__qname); 18.63 - } 18.64 - } 18.65 - break; 18.66 - case 2: 18.67 - { 18.68 - if(($ai = $runtime.getAttributeIndex("","location"))>=0) { 18.69 - $runtime.consumeAttribute($ai); 18.70 - $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname); 18.71 - } 18.72 - else { 18.73 - $_ngcc_current_state = 1; 18.74 - $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname); 18.75 - } 18.76 - } 18.77 - break; 18.78 case 0: 18.79 { 18.80 revertToParentFromLeaveElement(this, super._cookie, $__uri, $__local, $__qname); 18.81 @@ -161,6 +138,29 @@ 18.82 } 18.83 } 18.84 break; 18.85 + case 2: 18.86 + { 18.87 + if(($ai = $runtime.getAttributeIndex("","location"))>=0) { 18.88 + $runtime.consumeAttribute($ai); 18.89 + $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname); 18.90 + } 18.91 + else { 18.92 + $_ngcc_current_state = 1; 18.93 + $runtime.sendLeaveElement(super._cookie, $__uri, $__local, $__qname); 18.94 + } 18.95 + } 18.96 + break; 18.97 + case 1: 18.98 + { 18.99 + if(($__uri.equals("") && $__local.equals("schema"))) { 18.100 + $runtime.onLeaveElementConsumed($__uri, $__local, $__qname); 18.101 + $_ngcc_current_state = 0; 18.102 + } 18.103 + else { 18.104 + unexpectedLeaveElement($__qname); 18.105 + } 18.106 + } 18.107 + break; 18.108 default: 18.109 { 18.110 unexpectedLeaveElement($__qname); 18.111 @@ -175,17 +175,6 @@ 18.112 $localName = $__local; 18.113 $qname = $__qname; 18.114 switch($_ngcc_current_state) { 18.115 - case 2: 18.116 - { 18.117 - if(($__uri.equals("") && $__local.equals("location"))) { 18.118 - $_ngcc_current_state = 4; 18.119 - } 18.120 - else { 18.121 - $_ngcc_current_state = 1; 18.122 - $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname); 18.123 - } 18.124 - } 18.125 - break; 18.126 case 0: 18.127 { 18.128 revertToParentFromEnterAttribute(this, super._cookie, $__uri, $__local, $__qname); 18.129 @@ -202,6 +191,17 @@ 18.130 } 18.131 } 18.132 break; 18.133 + case 2: 18.134 + { 18.135 + if(($__uri.equals("") && $__local.equals("location"))) { 18.136 + $_ngcc_current_state = 4; 18.137 + } 18.138 + else { 18.139 + $_ngcc_current_state = 1; 18.140 + $runtime.sendEnterAttribute(super._cookie, $__uri, $__local, $__qname); 18.141 + } 18.142 + } 18.143 + break; 18.144 default: 18.145 { 18.146 unexpectedEnterAttribute($__qname); 18.147 @@ -216,10 +216,9 @@ 18.148 $localName = $__local; 18.149 $qname = $__qname; 18.150 switch($_ngcc_current_state) { 18.151 - case 2: 18.152 + case 0: 18.153 { 18.154 - $_ngcc_current_state = 1; 18.155 - $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname); 18.156 + revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname); 18.157 } 18.158 break; 18.159 case 7: 18.160 @@ -232,6 +231,12 @@ 18.161 } 18.162 } 18.163 break; 18.164 + case 6: 18.165 + { 18.166 + $_ngcc_current_state = 2; 18.167 + $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname); 18.168 + } 18.169 + break; 18.170 case 3: 18.171 { 18.172 if(($__uri.equals("") && $__local.equals("location"))) { 18.173 @@ -242,14 +247,9 @@ 18.174 } 18.175 } 18.176 break; 18.177 - case 0: 18.178 + case 2: 18.179 { 18.180 - revertToParentFromLeaveAttribute(this, super._cookie, $__uri, $__local, $__qname); 18.181 - } 18.182 - break; 18.183 - case 6: 18.184 - { 18.185 - $_ngcc_current_state = 2; 18.186 + $_ngcc_current_state = 1; 18.187 $runtime.sendLeaveAttribute(super._cookie, $__uri, $__local, $__qname); 18.188 } 18.189 break; 18.190 @@ -264,25 +264,6 @@ 18.191 public void text(String $value) throws SAXException { 18.192 int $ai; 18.193 switch($_ngcc_current_state) { 18.194 - case 2: 18.195 - { 18.196 - if(($ai = $runtime.getAttributeIndex("","location"))>=0) { 18.197 - $runtime.consumeAttribute($ai); 18.198 - $runtime.sendText(super._cookie, $value); 18.199 - } 18.200 - else { 18.201 - $_ngcc_current_state = 1; 18.202 - $runtime.sendText(super._cookie, $value); 18.203 - } 18.204 - } 18.205 - break; 18.206 - case 4: 18.207 - { 18.208 - loc = $value; 18.209 - $_ngcc_current_state = 3; 18.210 - action0(); 18.211 - } 18.212 - break; 18.213 case 8: 18.214 { 18.215 namespace = $value; 18.216 @@ -306,6 +287,25 @@ 18.217 } 18.218 } 18.219 break; 18.220 + case 4: 18.221 + { 18.222 + loc = $value; 18.223 + $_ngcc_current_state = 3; 18.224 + action0(); 18.225 + } 18.226 + break; 18.227 + case 2: 18.228 + { 18.229 + if(($ai = $runtime.getAttributeIndex("","location"))>=0) { 18.230 + $runtime.consumeAttribute($ai); 18.231 + $runtime.sendText(super._cookie, $value); 18.232 + } 18.233 + else { 18.234 + $_ngcc_current_state = 1; 18.235 + $runtime.sendText(super._cookie, $value); 18.236 + } 18.237 + } 18.238 + break; 18.239 } 18.240 } 18.241
19.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/ws/version.properties Thu May 30 10:58:13 2013 -0700 19.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/ws/version.properties Wed Jun 12 14:47:09 2013 +0100 19.3 @@ -23,7 +23,7 @@ 19.4 # questions. 19.5 # 19.6 19.7 -build-id=2.2.9-b13941 19.8 -build-version=JAX-WS RI 2.2.9-b13941 19.9 +build-id=2.2.9-b14027 19.10 +build-version=JAX-WS RI 2.2.9-b14027 19.11 major-version=2.2.9 19.12 -svn-revision=unknown 19.13 +svn-revision=14027
20.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle.properties Thu May 30 10:58:13 2013 -0700 20.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle.properties Wed Jun 12 14:47:09 2013 +0100 20.3 @@ -171,23 +171,23 @@ 20.4 Driver.FailedToGenerateCode = \ 20.5 Failed to produce code. 20.6 20.7 -# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter> 20.8 +# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter> 20.9 Driver.FilePrologComment = \ 20.10 - This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7-b63 \n\ 20.11 + This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b01 \n\ 20.12 See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\ 20.13 Any modifications to this file will be lost upon recompilation of the source schema. \n\ 20.14 Generated on: {0} \n 20.15 20.16 Driver.Version = \ 20.17 - xjc 2.2.7-b63 20.18 + xjc 2.2.8-b01 20.19 20.20 Driver.FullVersion = \ 20.21 - xjc full version "2.2.7-b63-b19" 20.22 + xjc full version "2.2.8-b01-b28" 20.23 20.24 -Driver.BuildID = 2.2.7-b63 20.25 +Driver.BuildID = 2.2.8-b01 20.26 20.27 # for JDK integration - include version in source zip 20.28 -jaxb.jdk.version=2.2.7-b63 20.29 +jaxb.jdk.version=2.2.8-b01 20.30 20.31 # see java.text.SimpleDateFormat for format syntax 20.32 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
21.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_de.properties Thu May 30 10:58:13 2013 -0700 21.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_de.properties Wed Jun 12 14:47:09 2013 +0100 21.3 @@ -96,17 +96,17 @@ 21.4 21.5 Driver.FailedToGenerateCode = Code konnte nicht erzeugt werden. 21.6 21.7 -# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter> 21.8 -Driver.FilePrologComment = Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7-b63 generiert \nSiehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u00c4nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren. \nGeneriert: {0} \n 21.9 +# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter> 21.10 +Driver.FilePrologComment = Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b01 generiert \nSiehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u00c4nderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren. \nGeneriert: {0} \n 21.11 21.12 -Driver.Version = xjc 2.2.7-b63 21.13 +Driver.Version = xjc 2.2.8-b01 21.14 21.15 -Driver.FullVersion = xjc vollst\u00e4ndige Version "2.2.7-b63-b19" 21.16 +Driver.FullVersion = xjc vollst\u00e4ndige Version "2.2.8-b01-b28" 21.17 21.18 -Driver.BuildID = 2.2.7-b63 21.19 +Driver.BuildID = 2.2.8-b01 21.20 21.21 # for JDK integration - include version in source zip 21.22 -jaxb.jdk.version=2.2.7-b63 21.23 +jaxb.jdk.version=2.2.8-b01 21.24 21.25 # see java.text.SimpleDateFormat for format syntax 21.26 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
22.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_es.properties Thu May 30 10:58:13 2013 -0700 22.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_es.properties Wed Jun 12 14:47:09 2013 +0100 22.3 @@ -96,17 +96,17 @@ 22.4 22.5 Driver.FailedToGenerateCode = Fallo al producir c\u00f3digo. 22.6 22.7 -# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter> 22.8 -Driver.FilePrologComment = Este archivo ha sido generado por la arquitectura JavaTM para la implantaci\u00f3n de la referencia de enlace (JAXB) XML v2.2.7-b63 \nVisite <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nTodas las modificaciones realizadas en este archivo se perder\u00e1n si se vuelve a compilar el esquema de origen. \nGenerado el: {0} \n 22.9 +# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter> 22.10 +Driver.FilePrologComment = Este archivo ha sido generado por la arquitectura JavaTM para la implantaci\u00f3n de la referencia de enlace (JAXB) XML v2.2.8-b01 \nVisite <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nTodas las modificaciones realizadas en este archivo se perder\u00e1n si se vuelve a compilar el esquema de origen. \nGenerado el: {0} \n 22.11 22.12 -Driver.Version = xjc 2.2.7-b63 22.13 +Driver.Version = xjc 2.2.8-b01 22.14 22.15 -Driver.FullVersion = versi\u00f3n completa de xjc "2.2.7-b63-b19" 22.16 +Driver.FullVersion = versi\u00f3n completa de xjc "2.2.8-b01-b28" 22.17 22.18 -Driver.BuildID = 2.2.7-b63 22.19 +Driver.BuildID = 2.2.8-b01 22.20 22.21 # for JDK integration - include version in source zip 22.22 -jaxb.jdk.version=2.2.7-b63 22.23 +jaxb.jdk.version=2.2.8-b01 22.24 22.25 # see java.text.SimpleDateFormat for format syntax 22.26 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
23.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_fr.properties Thu May 30 10:58:13 2013 -0700 23.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_fr.properties Wed Jun 12 14:47:09 2013 +0100 23.3 @@ -96,17 +96,17 @@ 23.4 23.5 Driver.FailedToGenerateCode = Echec de la production du code. 23.6 23.7 -# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter> 23.8 -Driver.FilePrologComment = Ce fichier a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9 par l''impl\u00e9mentation de r\u00e9f\u00e9rence JavaTM Architecture for XML Binding (JAXB), v2.2.7-b63 \nVoir <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nToute modification apport\u00e9e \u00e0 ce fichier sera perdue lors de la recompilation du sch\u00e9ma source. \nG\u00e9n\u00e9r\u00e9 le : {0} \n 23.9 +# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter> 23.10 +Driver.FilePrologComment = Ce fichier a \u00e9t\u00e9 g\u00e9n\u00e9r\u00e9 par l''impl\u00e9mentation de r\u00e9f\u00e9rence JavaTM Architecture for XML Binding (JAXB), v2.2.8-b01 \nVoir <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nToute modification apport\u00e9e \u00e0 ce fichier sera perdue lors de la recompilation du sch\u00e9ma source. \nG\u00e9n\u00e9r\u00e9 le : {0} \n 23.11 23.12 -Driver.Version = xjc 2.2.7-b63 23.13 +Driver.Version = xjc 2.2.8-b01 23.14 23.15 -Driver.FullVersion = version compl\u00e8te xjc "2.2.7-b63-b19" 23.16 +Driver.FullVersion = version compl\u00e8te xjc "2.2.8-b01-b28" 23.17 23.18 -Driver.BuildID = 2.2.7-b63 23.19 +Driver.BuildID = 2.2.8-b01 23.20 23.21 # for JDK integration - include version in source zip 23.22 -jaxb.jdk.version=2.2.7-b63 23.23 +jaxb.jdk.version=2.2.8-b01 23.24 23.25 # see java.text.SimpleDateFormat for format syntax 23.26 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
24.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_it.properties Thu May 30 10:58:13 2013 -0700 24.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_it.properties Wed Jun 12 14:47:09 2013 +0100 24.3 @@ -96,17 +96,17 @@ 24.4 24.5 Driver.FailedToGenerateCode = Produzione del codice non riuscita. 24.6 24.7 -# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter> 24.8 -Driver.FilePrologComment = Questo file \u00e8 stato generato dall''architettura JavaTM per XML Binding (JAXB) Reference Implementation, v2.2.7-b63 \nVedere <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nQualsiasi modifica a questo file andr\u00e0 persa durante la ricompilazione dello schema di origine. \nGenerato il: {0} \n 24.9 +# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter> 24.10 +Driver.FilePrologComment = Questo file \u00e8 stato generato dall''architettura JavaTM per XML Binding (JAXB) Reference Implementation, v2.2.8-b01 \nVedere <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nQualsiasi modifica a questo file andr\u00e0 persa durante la ricompilazione dello schema di origine. \nGenerato il: {0} \n 24.11 24.12 -Driver.Version = xjc 2.2.7-b63 24.13 +Driver.Version = xjc 2.2.8-b01 24.14 24.15 -Driver.FullVersion = versione completa xjc "2.2.7-b63-b19" 24.16 +Driver.FullVersion = versione completa xjc "2.2.8-b01-b28" 24.17 24.18 -Driver.BuildID = 2.2.7-b63 24.19 +Driver.BuildID = 2.2.8-b01 24.20 24.21 # for JDK integration - include version in source zip 24.22 -jaxb.jdk.version=2.2.7-b63 24.23 +jaxb.jdk.version=2.2.8-b01 24.24 24.25 # see java.text.SimpleDateFormat for format syntax 24.26 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
25.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_ja.properties Thu May 30 10:58:13 2013 -0700 25.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_ja.properties Wed Jun 12 14:47:09 2013 +0100 25.3 @@ -96,17 +96,17 @@ 25.4 25.5 Driver.FailedToGenerateCode = \u30b3\u30fc\u30c9\u306e\u751f\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002 25.6 25.7 -# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter> 25.8 -Driver.FilePrologComment = \u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u3001JavaTM Architecture for XML Binding(JAXB) Reference Implementation\u3001v2.2.7-b63\u306b\u3088\u3063\u3066\u751f\u6210\u3055\u308c\u307e\u3057\u305f \n<a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044 \n\u30bd\u30fc\u30b9\u30fb\u30b9\u30ad\u30fc\u30de\u306e\u518d\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u5909\u66f4\u306f\u5931\u308f\u308c\u307e\u3059\u3002 \n\u751f\u6210\u65e5: {0} \n 25.9 +# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter> 25.10 +Driver.FilePrologComment = \u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u3001JavaTM Architecture for XML Binding(JAXB) Reference Implementation\u3001v2.2.8-b01\u306b\u3088\u3063\u3066\u751f\u6210\u3055\u308c\u307e\u3057\u305f \n<a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044 \n\u30bd\u30fc\u30b9\u30fb\u30b9\u30ad\u30fc\u30de\u306e\u518d\u30b3\u30f3\u30d1\u30a4\u30eb\u6642\u306b\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u5909\u66f4\u306f\u5931\u308f\u308c\u307e\u3059\u3002 \n\u751f\u6210\u65e5: {0} \n 25.11 25.12 -Driver.Version = xjc 2.2.7-b63 25.13 +Driver.Version = xjc 2.2.8-b01 25.14 25.15 -Driver.FullVersion = xjc\u30d5\u30eb\u30fb\u30d0\u30fc\u30b8\u30e7\u30f3"2.2.7-b63-b19" 25.16 +Driver.FullVersion = xjc\u30d5\u30eb\u30fb\u30d0\u30fc\u30b8\u30e7\u30f3"2.2.8-b01-b28" 25.17 25.18 -Driver.BuildID = 2.2.7-b63 25.19 +Driver.BuildID = 2.2.8-b01 25.20 25.21 # for JDK integration - include version in source zip 25.22 -jaxb.jdk.version=2.2.7-b63 25.23 +jaxb.jdk.version=2.2.8-b01 25.24 25.25 # see java.text.SimpleDateFormat for format syntax 25.26 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
26.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_ko.properties Thu May 30 10:58:13 2013 -0700 26.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_ko.properties Wed Jun 12 14:47:09 2013 +0100 26.3 @@ -96,17 +96,17 @@ 26.4 26.5 Driver.FailedToGenerateCode = \ucf54\ub4dc \uc0dd\uc131\uc744 \uc2e4\ud328\ud588\uc2b5\ub2c8\ub2e4. 26.6 26.7 -# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter> 26.8 -Driver.FilePrologComment = \uc774 \ud30c\uc77c\uc740 JAXB(JavaTM Architecture for XML Binding) \ucc38\uc870 \uad6c\ud604 2.2.7-b63 \ubc84\uc804\uc744 \ud1b5\ud574 \uc0dd\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \n<a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624. \n\uc774 \ud30c\uc77c\uc744 \uc218\uc815\ud558\uba74 \uc18c\uc2a4 \uc2a4\ud0a4\ub9c8\ub97c \uc7ac\ucef4\ud30c\uc77c\ud560 \ub54c \uc218\uc815 \uc0ac\ud56d\uc774 \uc190\uc2e4\ub429\ub2c8\ub2e4. \n\uc0dd\uc131 \ub0a0\uc9dc: {0} \n 26.9 +# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter> 26.10 +Driver.FilePrologComment = \uc774 \ud30c\uc77c\uc740 JAXB(JavaTM Architecture for XML Binding) \ucc38\uc870 \uad6c\ud604 2.2.8-b01 \ubc84\uc804\uc744 \ud1b5\ud574 \uc0dd\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \n<a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>\ub97c \ucc38\uc870\ud558\uc2ed\uc2dc\uc624. \n\uc774 \ud30c\uc77c\uc744 \uc218\uc815\ud558\uba74 \uc18c\uc2a4 \uc2a4\ud0a4\ub9c8\ub97c \uc7ac\ucef4\ud30c\uc77c\ud560 \ub54c \uc218\uc815 \uc0ac\ud56d\uc774 \uc190\uc2e4\ub429\ub2c8\ub2e4. \n\uc0dd\uc131 \ub0a0\uc9dc: {0} \n 26.11 26.12 -Driver.Version = XJC 2.2.7-b63 26.13 +Driver.Version = XJC 2.2.8-b01 26.14 26.15 -Driver.FullVersion = XJC \uc815\uc2dd \ubc84\uc804 "2.2.7-b63-b19" 26.16 +Driver.FullVersion = XJC \uc815\uc2dd \ubc84\uc804 "2.2.8-b01-b28" 26.17 26.18 -Driver.BuildID = 2.2.7-b63 26.19 +Driver.BuildID = 2.2.8-b01 26.20 26.21 # for JDK integration - include version in source zip 26.22 -jaxb.jdk.version=2.2.7-b63 26.23 +jaxb.jdk.version=2.2.8-b01 26.24 26.25 # see java.text.SimpleDateFormat for format syntax 26.26 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
27.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_pt_BR.properties Thu May 30 10:58:13 2013 -0700 27.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_pt_BR.properties Wed Jun 12 14:47:09 2013 +0100 27.3 @@ -96,17 +96,17 @@ 27.4 27.5 Driver.FailedToGenerateCode = Falha ao produzir o c\u00f3digo. 27.6 27.7 -# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter> 27.8 -Driver.FilePrologComment = Este arquivo foi gerado pela Arquitetura JavaTM para Implementa\u00e7\u00e3o de Refer\u00eancia (JAXB) de Bind XML, v2.2.7-b63 \nConsulte <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nTodas as modifica\u00e7\u00f5es neste arquivo ser\u00e3o perdidas ap\u00f3s a recompila\u00e7\u00e3o do esquema de origem. \nGerado em: {0} \n 27.9 +# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter> 27.10 +Driver.FilePrologComment = Este arquivo foi gerado pela Arquitetura JavaTM para Implementa\u00e7\u00e3o de Refer\u00eancia (JAXB) de Bind XML, v2.2.8-b01 \nConsulte <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \nTodas as modifica\u00e7\u00f5es neste arquivo ser\u00e3o perdidas ap\u00f3s a recompila\u00e7\u00e3o do esquema de origem. \nGerado em: {0} \n 27.11 27.12 -Driver.Version = xjc 2.2.7-b63 27.13 +Driver.Version = xjc 2.2.8-b01 27.14 27.15 -Driver.FullVersion = vers\u00e3o completa de xjc "2.2.7-b63-b19" 27.16 +Driver.FullVersion = vers\u00e3o completa de xjc "2.2.8-b01-b28" 27.17 27.18 -Driver.BuildID = 2.2.7-b63 27.19 +Driver.BuildID = 2.2.8-b01 27.20 27.21 # for JDK integration - include version in source zip 27.22 -jaxb.jdk.version=2.2.7-b63 27.23 +jaxb.jdk.version=2.2.8-b01 27.24 27.25 # see java.text.SimpleDateFormat for format syntax 27.26 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
28.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_zh_CN.properties Thu May 30 10:58:13 2013 -0700 28.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_zh_CN.properties Wed Jun 12 14:47:09 2013 +0100 28.3 @@ -96,17 +96,17 @@ 28.4 28.5 Driver.FailedToGenerateCode = \u65e0\u6cd5\u751f\u6210\u4ee3\u7801\u3002 28.6 28.7 -# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter> 28.8 -Driver.FilePrologComment = \u6b64\u6587\u4ef6\u662f\u7531 JavaTM Architecture for XML Binding (JAXB) \u5f15\u7528\u5b9e\u73b0 v2.2.7-b63 \u751f\u6210\u7684\n\u8bf7\u8bbf\u95ee <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u5728\u91cd\u65b0\u7f16\u8bd1\u6e90\u6a21\u5f0f\u65f6, \u5bf9\u6b64\u6587\u4ef6\u7684\u6240\u6709\u4fee\u6539\u90fd\u5c06\u4e22\u5931\u3002\n\u751f\u6210\u65f6\u95f4: {0} \n 28.9 +# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter> 28.10 +Driver.FilePrologComment = \u6b64\u6587\u4ef6\u662f\u7531 JavaTM Architecture for XML Binding (JAXB) \u5f15\u7528\u5b9e\u73b0 v2.2.8-b01 \u751f\u6210\u7684\n\u8bf7\u8bbf\u95ee <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u5728\u91cd\u65b0\u7f16\u8bd1\u6e90\u6a21\u5f0f\u65f6, \u5bf9\u6b64\u6587\u4ef6\u7684\u6240\u6709\u4fee\u6539\u90fd\u5c06\u4e22\u5931\u3002\n\u751f\u6210\u65f6\u95f4: {0} \n 28.11 28.12 -Driver.Version = xjc 2.2.7-b63 28.13 +Driver.Version = xjc 2.2.8-b01 28.14 28.15 -Driver.FullVersion = xjc \u5b8c\u6574\u7248\u672c "2.2.7-b63-b19" 28.16 +Driver.FullVersion = xjc \u5b8c\u6574\u7248\u672c "2.2.8-b01-b28" 28.17 28.18 -Driver.BuildID = 2.2.7-b63 28.19 +Driver.BuildID = 2.2.8-b01 28.20 28.21 # for JDK integration - include version in source zip 28.22 -jaxb.jdk.version=2.2.7-b63 28.23 +jaxb.jdk.version=2.2.8-b01 28.24 28.25 # see java.text.SimpleDateFormat for format syntax 28.26 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
29.1 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_zh_TW.properties Thu May 30 10:58:13 2013 -0700 29.2 +++ b/src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_zh_TW.properties Wed Jun 12 14:47:09 2013 +0100 29.3 @@ -96,17 +96,17 @@ 29.4 29.5 Driver.FailedToGenerateCode = \u7121\u6cd5\u7522\u751f\u7a0b\u5f0f\u78bc. 29.6 29.7 -# DO NOT localize the 2.2.7-b63 string - it is a token for an ant <replaceFilter> 29.8 -Driver.FilePrologComment = \u6b64\u6a94\u6848\u662f\u7531 JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7-b63 \u6240\u7522\u751f \n\u8acb\u53c3\u95b1 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u4e00\u65e6\u91cd\u65b0\u7de8\u8b6f\u4f86\u6e90\u7db1\u8981, \u5c0d\u6b64\u6a94\u6848\u6240\u505a\u7684\u4efb\u4f55\u4fee\u6539\u90fd\u5c07\u6703\u907a\u5931. \n\u7522\u751f\u6642\u9593: {0} \n 29.9 +# DO NOT localize the 2.2.8-b01 string - it is a token for an ant <replaceFilter> 29.10 +Driver.FilePrologComment = \u6b64\u6a94\u6848\u662f\u7531 JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b01 \u6240\u7522\u751f \n\u8acb\u53c3\u95b1 <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> \n\u4e00\u65e6\u91cd\u65b0\u7de8\u8b6f\u4f86\u6e90\u7db1\u8981, \u5c0d\u6b64\u6a94\u6848\u6240\u505a\u7684\u4efb\u4f55\u4fee\u6539\u90fd\u5c07\u6703\u907a\u5931. \n\u7522\u751f\u6642\u9593: {0} \n 29.11 29.12 -Driver.Version = xjc 2.2.7-b63 29.13 +Driver.Version = xjc 2.2.8-b01 29.14 29.15 -Driver.FullVersion = xjc \u5b8c\u6574\u7248\u672c "2.2.7-b63-b19" 29.16 +Driver.FullVersion = xjc \u5b8c\u6574\u7248\u672c "2.2.8-b01-b28" 29.17 29.18 -Driver.BuildID = 2.2.7-b63 29.19 +Driver.BuildID = 2.2.8-b01 29.20 29.21 # for JDK integration - include version in source zip 29.22 -jaxb.jdk.version=2.2.7-b63 29.23 +jaxb.jdk.version=2.2.8-b01 29.24 29.25 # see java.text.SimpleDateFormat for format syntax 29.26 # DO NOT LOCALIZE, Format should not be changed, English locale is used to transform this string into a real date.
30.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java Thu May 30 10:58:13 2013 -0700 30.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java Wed Jun 12 14:47:09 2013 +0100 30.3 @@ -289,12 +289,23 @@ 30.4 String pkg = nav.getPackageName(clazz); 30.5 if (!registries.containsKey(pkg)) { 30.6 // insert the package's object factory 30.7 - C c = nav.findClass(pkg + ".ObjectFactory", clazz); 30.8 + C c = loadObjectFactory(clazz, pkg); 30.9 if (c != null) 30.10 addRegistry(c, p); 30.11 } 30.12 } 30.13 30.14 + private C loadObjectFactory(C clazz, String pkg) { 30.15 + C c; 30.16 + try { 30.17 + c = nav.findClass(pkg + ".ObjectFactory", clazz); 30.18 + } catch (SecurityException ignored) { 30.19 + // treat SecurityException in same way as ClassNotFoundException in this case 30.20 + c = null; 30.21 + } 30.22 + return c; 30.23 + } 30.24 + 30.25 /** 30.26 * Getting parametrized classes of {@code JAXBElement<...>} property 30.27 * @param p property which parametrized types we will try to get
31.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/JAXBContextImpl.java Thu May 30 10:58:13 2013 -0700 31.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/JAXBContextImpl.java Wed Jun 12 14:47:09 2013 +0100 31.3 @@ -1,5 +1,5 @@ 31.4 /* 31.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 31.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 31.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 31.8 * 31.9 * This code is free software; you can redistribute it and/or modify it 31.10 @@ -894,19 +894,6 @@ 31.11 } 31.12 } 31.13 31.14 - /** 31.15 - * Used for testing. 31.16 - */ 31.17 - public SchemaOutputResolver createTestResolver() { 31.18 - return new SchemaOutputResolver() { 31.19 - public Result createOutput(String namespaceUri, String suggestedFileName) { 31.20 - SAXResult r = new SAXResult(new DefaultHandler()); 31.21 - r.setSystemId(suggestedFileName); 31.22 - return r; 31.23 - } 31.24 - }; 31.25 - } 31.26 - 31.27 @Override 31.28 public <T> Binder<T> createBinder(Class<T> domType) { 31.29 if(domType==Node.class)
32.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/schemagen/XmlSchemaGenerator.java Thu May 30 10:58:13 2013 -0700 32.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/schemagen/XmlSchemaGenerator.java Wed Jun 12 14:47:09 2013 +0100 32.3 @@ -1,5 +1,5 @@ 32.4 /* 32.5 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 32.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 32.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 32.8 * 32.9 * This code is free software; you can redistribute it and/or modify it 32.10 @@ -278,6 +278,7 @@ 32.11 public void add( ElementInfo<T,C> elem ) { 32.12 assert elem!=null; 32.13 32.14 + @SuppressWarnings("UnusedAssignment") 32.15 boolean nillable = false; // default value 32.16 32.17 QName name = elem.getElementName(); 32.18 @@ -1162,9 +1163,8 @@ 32.19 return true; 32.20 } 32.21 32.22 - // there's a circular reference from an anonymous subtype to a global element 32.23 - if ((ci != null) && ((targetTagName != null) && (te.getScope() == null))) { 32.24 - if (targetTagName.getLocalPart().equals(tn.getLocalPart())) { 32.25 + if ((ci != null) && ((targetTagName != null) && (te.getScope() == null) && (targetTagName.getNamespaceURI() == null))) { 32.26 + if (targetTagName.equals(tn)) { 32.27 return true; 32.28 } 32.29 }
33.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/CommonResourceBundle.java Thu May 30 10:58:13 2013 -0700 33.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/CommonResourceBundle.java Wed Jun 12 14:47:09 2013 +0100 33.3 @@ -1,5 +1,5 @@ 33.4 /* 33.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 33.6 + * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. 33.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 33.8 * 33.9 * This code is free software; you can redistribute it and/or modify it 33.10 @@ -35,7 +35,7 @@ 33.11 public class CommonResourceBundle extends AbstractResourceBundle { 33.12 33.13 public static final String BASE_NAME = "com.sun.xml.internal.fastinfoset.resources.ResourceBundle"; 33.14 - private static CommonResourceBundle instance = null; 33.15 + private static volatile CommonResourceBundle instance = null; 33.16 private static Locale locale = null; 33.17 private ResourceBundle bundle = null; 33.18 33.19 @@ -56,8 +56,7 @@ 33.20 //**need to know where to get the locale 33.21 //String localeString = CommonProperties.getInstance() 33.22 // .getProperty("omar.common.locale"); 33.23 - String localeString = null; 33.24 - locale = parseLocale(localeString); 33.25 + locale = parseLocale(/*localeString*/null); 33.26 } 33.27 } 33.28
34.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/Decoder.java Thu May 30 10:58:13 2013 -0700 34.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/Decoder.java Wed Jun 12 14:47:09 2013 +0100 34.3 @@ -1,5 +1,5 @@ 34.4 /* 34.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 34.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 34.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 34.8 * 34.9 * This code is free software; you can redistribute it and/or modify it 34.10 @@ -431,7 +431,7 @@ 34.11 final int noOfItems = decodeNumberOfItemsOfSequence(); 34.12 34.13 for (int i = 0; i < noOfItems; i++) { 34.14 - String URI = decodeNonEmptyOctetStringOnSecondBitAsUtf8String(); 34.15 + /*String URI = */decodeNonEmptyOctetStringOnSecondBitAsUtf8String(); 34.16 34.17 decodeNonEmptyOctetStringLengthOnSecondBit(); 34.18 ensureOctetBufferSize(); 34.19 @@ -1817,7 +1817,7 @@ 34.20 second.getChars(0, l2, _charBuffer, l1 + 1); 34.21 return new String(_charBuffer, 0, total); 34.22 } else { 34.23 - StringBuffer b = new StringBuffer(new String(first)); 34.24 + StringBuilder b = new StringBuilder(new String(first)); 34.25 b.append(':'); 34.26 b.append(second); 34.27 return b.toString(); 34.28 @@ -1992,10 +1992,12 @@ 34.29 static public boolean isFastInfosetDocument(InputStream s) throws IOException { 34.30 // TODO 34.31 // Check for <?xml declaration with 'finf' encoding 34.32 + final int headerSize = 4; 34.33 34.34 - final byte[] header = new byte[4]; 34.35 - s.read(header); 34.36 - if (header[0] != EncodingConstants.BINARY_HEADER[0] || 34.37 + final byte[] header = new byte[headerSize]; 34.38 + final int readBytesCount = s.read(header); 34.39 + if (readBytesCount < headerSize || 34.40 + header[0] != EncodingConstants.BINARY_HEADER[0] || 34.41 header[1] != EncodingConstants.BINARY_HEADER[1] || 34.42 header[2] != EncodingConstants.BINARY_HEADER[2] || 34.43 header[3] != EncodingConstants.BINARY_HEADER[3]) {
35.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/BASE64EncodingAlgorithm.java Thu May 30 10:58:13 2013 -0700 35.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/BASE64EncodingAlgorithm.java Wed Jun 12 14:47:09 2013 +0100 35.3 @@ -1,5 +1,5 @@ 35.4 /* 35.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 35.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 35.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 35.8 * 35.9 * This code is free software; you can redistribute it and/or modify it 35.10 @@ -137,7 +137,7 @@ 35.11 return new byte[0]; 35.12 } 35.13 35.14 - StringBuffer encodedValue = removeWhitespace(ch, start, length); 35.15 + StringBuilder encodedValue = removeWhitespace(ch, start, length); 35.16 int encodedLength = encodedValue.length(); 35.17 if (encodedLength == 0) { 35.18 return new byte[0];
36.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/BooleanEncodingAlgorithm.java Thu May 30 10:58:13 2013 -0700 36.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/BooleanEncodingAlgorithm.java Wed Jun 12 14:47:09 2013 +0100 36.3 @@ -1,5 +1,5 @@ 36.4 /* 36.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 36.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 36.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 36.8 * 36.9 * This code is free software; you can redistribute it and/or modify it 36.10 @@ -259,7 +259,7 @@ 36.11 * @param array The array 36.12 * 36.13 */ 36.14 - private final boolean[] generateArrayFromList(List array) { 36.15 + private boolean[] generateArrayFromList(List array) { 36.16 boolean[] bdata = new boolean[array.size()]; 36.17 for (int i = 0; i < bdata.length; i++) { 36.18 bdata[i] = ((Boolean)array.get(i)).booleanValue();
37.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/BuiltInEncodingAlgorithm.java Thu May 30 10:58:13 2013 -0700 37.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/BuiltInEncodingAlgorithm.java Wed Jun 12 14:47:09 2013 +0100 37.3 @@ -1,5 +1,5 @@ 37.4 /* 37.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 37.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 37.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 37.8 * 37.9 * This code is free software; you can redistribute it and/or modify it 37.10 @@ -61,8 +61,8 @@ 37.11 wl.word(i, cb.length()); 37.12 } 37.13 37.14 - public StringBuffer removeWhitespace(char[] ch, int start, int length) { 37.15 - StringBuffer buf = new StringBuffer(); 37.16 + public StringBuilder removeWhitespace(char[] ch, int start, int length) { 37.17 + StringBuilder buf = new StringBuilder(); 37.18 int firstNonWS = 0; 37.19 int idx = 0; 37.20 for (; idx < length; ++idx) {
38.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/FloatEncodingAlgorithm.java Thu May 30 10:58:13 2013 -0700 38.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/FloatEncodingAlgorithm.java Wed Jun 12 14:47:09 2013 +0100 38.3 @@ -1,5 +1,5 @@ 38.4 /* 38.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 38.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 38.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 38.8 * 38.9 * This code is free software; you can redistribute it and/or modify it
39.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/HexadecimalEncodingAlgorithm.java Thu May 30 10:58:13 2013 -0700 39.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/HexadecimalEncodingAlgorithm.java Wed Jun 12 14:47:09 2013 +0100 39.3 @@ -1,5 +1,5 @@ 39.4 /* 39.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 39.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 39.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 39.8 * 39.9 * This code is free software; you can redistribute it and/or modify it 39.10 @@ -88,7 +88,7 @@ 39.11 return new byte[0]; 39.12 } 39.13 39.14 - StringBuffer encodedValue = removeWhitespace(ch, start, length); 39.15 + StringBuilder encodedValue = removeWhitespace(ch, start, length); 39.16 int encodedLength = encodedValue.length(); 39.17 if (encodedLength == 0) { 39.18 return new byte[0];
40.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/dom/DOMDocumentParser.java Thu May 30 10:58:13 2013 -0700 40.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/dom/DOMDocumentParser.java Wed Jun 12 14:47:09 2013 +0100 40.3 @@ -1,5 +1,5 @@ 40.4 /* 40.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 40.6 + * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. 40.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 40.8 * 40.9 * This code is free software; you can redistribute it and/or modify it 40.10 @@ -272,7 +272,7 @@ 40.11 } 40.12 40.13 if ((_b & EncodingConstants.DOCUMENT_CHARACTER_ENCODING_SCHEME) > 0) { 40.14 - String version = decodeCharacterEncodingScheme(); 40.15 + /*String version = */decodeCharacterEncodingScheme(); 40.16 /* 40.17 * TODO 40.18 * how to report the character encoding scheme? 40.19 @@ -280,7 +280,7 @@ 40.20 } 40.21 40.22 if ((_b & EncodingConstants.DOCUMENT_STANDALONE_FLAG) > 0) { 40.23 - boolean standalone = (read() > 0) ? true : false ; 40.24 + /*boolean standalone = (*/read()/* > 0) ? true : false*/ ; 40.25 /* 40.26 * TODO 40.27 * how to report the standalone flag?
41.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/resources/ResourceBundle.properties Thu May 30 10:58:13 2013 -0700 41.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/resources/ResourceBundle.properties Wed Jun 12 14:47:09 2013 +0100 41.3 @@ -1,5 +1,5 @@ 41.4 # 41.5 -# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. 41.6 +# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. 41.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 41.8 # 41.9 # This code is free software; you can redistribute it and/or modify it
42.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/sax/AttributesHolder.java Thu May 30 10:58:13 2013 -0700 42.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/sax/AttributesHolder.java Wed Jun 12 14:47:09 2013 +0100 42.3 @@ -1,5 +1,5 @@ 42.4 /* 42.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 42.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 42.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 42.8 * 42.9 * This code is free software; you can redistribute it and/or modify it
43.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/sax/SAXDocumentParser.java Thu May 30 10:58:13 2013 -0700 43.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/sax/SAXDocumentParser.java Wed Jun 12 14:47:09 2013 +0100 43.3 @@ -1,5 +1,5 @@ 43.4 /* 43.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 43.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 43.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 43.8 * 43.9 * This code is free software; you can redistribute it and/or modify it 43.10 @@ -850,7 +850,7 @@ 43.11 } 43.12 43.13 if ((_b & EncodingConstants.DOCUMENT_CHARACTER_ENCODING_SCHEME) > 0) { 43.14 - String characterEncodingScheme = decodeCharacterEncodingScheme(); 43.15 + /*String characterEncodingScheme = */decodeCharacterEncodingScheme(); 43.16 /* 43.17 * TODO 43.18 * how to report the character encoding scheme? 43.19 @@ -858,7 +858,7 @@ 43.20 } 43.21 43.22 if ((_b & EncodingConstants.DOCUMENT_STANDALONE_FLAG) > 0) { 43.23 - boolean standalone = (read() > 0) ? true : false ; 43.24 + /*boolean standalone = (*/read()/* > 0) ? true : false*/ ; 43.25 /* 43.26 * TODO 43.27 * how to report the standalone flag?
44.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/StAXDocumentParser.java Thu May 30 10:58:13 2013 -0700 44.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/StAXDocumentParser.java Wed Jun 12 14:47:09 2013 +0100 44.3 @@ -1,5 +1,5 @@ 44.4 /* 44.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 44.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 44.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 44.8 * 44.9 * This code is free software; you can redistribute it and/or modify it 44.10 @@ -499,7 +499,7 @@ 44.11 } 44.12 } 44.13 44.14 - private final void popStack() { 44.15 + private void popStack() { 44.16 // Pop information off the stack 44.17 _qualifiedName = _qNameStack[_stackCount]; 44.18 _currentNamespaceAIIsStart = _namespaceAIIsStartStack[_stackCount]; 44.19 @@ -522,8 +522,6 @@ 44.20 throw new XMLStreamException(CommonResourceBundle.getInstance().getString("message.namespaceURINotMatch", new Object[]{namespaceURI})); 44.21 if(localName != null && !localName.equals(getLocalName())) 44.22 throw new XMLStreamException(CommonResourceBundle.getInstance().getString("message.localNameNotMatch", new Object[]{localName})); 44.23 - 44.24 - return; 44.25 } 44.26 44.27 /** Reads the content of a text-only element. Precondition: 44.28 @@ -551,7 +549,7 @@ 44.29 CommonResourceBundle.getInstance().getString("message.mustBeOnSTARTELEMENT"), getLocation()); 44.30 } 44.31 int eventType = getEventType(); 44.32 - StringBuffer content = new StringBuffer(); 44.33 + StringBuilder content = new StringBuilder(); 44.34 while(eventType != END_ELEMENT ) { 44.35 if(eventType == CHARACTERS 44.36 || eventType == CDATA 44.37 @@ -1624,6 +1622,11 @@ 44.38 ? decodeIdentifyingNonEmptyStringOnFirstBit(_v.otherURI) : ""; 44.39 String public_identifier = ((b & EncodingConstants.UNEXPANDED_ENTITY_PUBLIC_IDENTIFIER_FLAG) > 0) 44.40 ? decodeIdentifyingNonEmptyStringOnFirstBit(_v.otherURI) : ""; 44.41 + 44.42 + if (logger.isLoggable(Level.FINEST)) { 44.43 + logger.log(Level.FINEST, "processUnexpandedEntityReference: entity_reference_name={0} system_identifier={1}public_identifier={2}", 44.44 + new Object[]{entity_reference_name, system_identifier, public_identifier}); 44.45 + } 44.46 } 44.47 44.48 protected final void processCIIEncodingAlgorithm(boolean addToTable) throws FastInfosetException, IOException {
45.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/events/StartElementEvent.java Thu May 30 10:58:13 2013 -0700 45.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/events/StartElementEvent.java Wed Jun 12 14:47:09 2013 +0100 45.3 @@ -1,5 +1,5 @@ 45.4 /* 45.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 45.6 + * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. 45.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 45.8 * 45.9 * This code is free software; you can redistribute it and/or modify it 45.10 @@ -187,14 +187,16 @@ 45.11 } 45.12 45.13 public String toString() { 45.14 - String s = "<" + nameAsString(); 45.15 + final StringBuilder sb = new StringBuilder(64); 45.16 + 45.17 + sb.append('<').append(nameAsString()); 45.18 45.19 if(_attributes != null){ 45.20 Iterator it = this.getAttributes(); 45.21 Attribute attr = null; 45.22 while(it.hasNext()){ 45.23 attr = (Attribute)it.next(); 45.24 - s = s + " " + attr.toString(); 45.25 + sb.append(' ').append(attr.toString()); 45.26 } 45.27 } 45.28 45.29 @@ -203,11 +205,11 @@ 45.30 Namespace attr = null; 45.31 while(it.hasNext()){ 45.32 attr = (Namespace)it.next(); 45.33 - s = s + " " + attr.toString(); 45.34 + sb.append(' ').append(attr.toString()); 45.35 } 45.36 } 45.37 - s = s + ">"; 45.38 - return s; 45.39 + sb.append('>'); 45.40 + return sb.toString(); 45.41 } 45.42 45.43 /** Return this event as String
46.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/factory/StAXOutputFactory.java Thu May 30 10:58:13 2013 -0700 46.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/factory/StAXOutputFactory.java Wed Jun 12 14:47:09 2013 +0100 46.3 @@ -1,5 +1,5 @@ 46.4 /* 46.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 46.6 + * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. 46.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 46.8 * 46.9 * This code is free software; you can redistribute it and/or modify it 46.10 @@ -69,28 +69,53 @@ 46.11 } 46.12 46.13 public XMLStreamWriter createXMLStreamWriter(Result result) throws XMLStreamException { 46.14 - if(result instanceof StreamResult){ 46.15 - StreamResult streamResult = (StreamResult)result; 46.16 - if( streamResult.getWriter() != null){ 46.17 + if (result instanceof StreamResult) { 46.18 + StreamResult streamResult = (StreamResult) result; 46.19 + if (streamResult.getWriter() != null) { 46.20 return createXMLStreamWriter(streamResult.getWriter()); 46.21 - }else if(streamResult.getOutputStream() != null ){ 46.22 + } else if (streamResult.getOutputStream() != null) { 46.23 return createXMLStreamWriter(streamResult.getOutputStream()); 46.24 - }else if(streamResult.getSystemId()!= null){ 46.25 - try{ 46.26 - FileWriter writer = new FileWriter(new File(streamResult.getSystemId())); 46.27 - return createXMLStreamWriter(writer); 46.28 - }catch(IOException ie){ 46.29 + } else if (streamResult.getSystemId() != null) { 46.30 + FileWriter writer = null; 46.31 + boolean isError = true; 46.32 + 46.33 + try { 46.34 + writer = new FileWriter(new File(streamResult.getSystemId())); 46.35 + final XMLStreamWriter streamWriter = createXMLStreamWriter(writer); 46.36 + isError = false; 46.37 + 46.38 + return streamWriter; 46.39 + } catch (IOException ie) { 46.40 throw new XMLStreamException(ie); 46.41 + } finally { 46.42 + if (isError && writer != null) { 46.43 + try { 46.44 + writer.close(); 46.45 + } catch (IOException ignored) { 46.46 + } 46.47 + } 46.48 } 46.49 } 46.50 - } 46.51 - else { 46.52 - try{ 46.53 + } else { 46.54 + FileWriter writer = null; 46.55 + boolean isError = true; 46.56 + 46.57 + try { 46.58 //xxx: should we be using FileOutputStream - nb. 46.59 - FileWriter writer = new FileWriter(new File(result.getSystemId())); 46.60 - return createXMLStreamWriter(writer); 46.61 - }catch(IOException ie){ 46.62 + writer = new FileWriter(new File(result.getSystemId())); 46.63 + final XMLStreamWriter streamWriter = createXMLStreamWriter(writer); 46.64 + isError = false; 46.65 + 46.66 + return streamWriter; 46.67 + } catch (IOException ie) { 46.68 throw new XMLStreamException(ie); 46.69 + } finally { 46.70 + if (isError && writer != null) { 46.71 + try { 46.72 + writer.close(); 46.73 + } catch (IOException ignored) { 46.74 + } 46.75 + } 46.76 } 46.77 } 46.78 throw new java.lang.UnsupportedOperationException();
47.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/tools/SAXEventSerializer.java Thu May 30 10:58:13 2013 -0700 47.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/tools/SAXEventSerializer.java Wed Jun 12 14:47:09 2013 +0100 47.3 @@ -1,5 +1,5 @@ 47.4 /* 47.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 47.6 + * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. 47.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 47.8 * 47.9 * This code is free software; you can redistribute it and/or modify it 47.10 @@ -397,11 +397,27 @@ 47.11 public int compareTo(Object o) { 47.12 try { 47.13 return qName.compareTo(((AttributeValueHolder) o).qName); 47.14 - } 47.15 - catch (Exception e) { 47.16 + } catch (Exception e) { 47.17 throw new RuntimeException(CommonResourceBundle.getInstance().getString("message.AttributeValueHolderExpected")); 47.18 } 47.19 } 47.20 + 47.21 + @Override 47.22 + public boolean equals(Object o) { 47.23 + try { 47.24 + return (o instanceof AttributeValueHolder) && 47.25 + qName.equals(((AttributeValueHolder) o).qName); 47.26 + } catch (Exception e) { 47.27 + throw new RuntimeException(CommonResourceBundle.getInstance().getString("message.AttributeValueHolderExpected")); 47.28 + } 47.29 + } 47.30 + 47.31 + @Override 47.32 + public int hashCode() { 47.33 + int hash = 7; 47.34 + hash = 97 * hash + (this.qName != null ? this.qName.hashCode() : 0); 47.35 + return hash; 47.36 + } 47.37 } 47.38 47.39 }
48.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/tools/TransformInputOutput.java Thu May 30 10:58:13 2013 -0700 48.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/tools/TransformInputOutput.java Wed Jun 12 14:47:09 2013 +0100 48.3 @@ -1,5 +1,5 @@ 48.4 /* 48.5 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. 48.6 + * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. 48.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 48.8 * 48.9 * This code is free software; you can redistribute it and/or modify it 48.10 @@ -115,7 +115,7 @@ 48.11 String[] fileSplit = fileStr.split("/"); 48.12 48.13 int diff; 48.14 - for(diff = 0; diff<oldwdSplit.length & diff<fileSplit.length; diff++) { 48.15 + for (diff = 0; diff < oldwdSplit.length && diff < fileSplit.length; diff++) { 48.16 if (!oldwdSplit[diff].equals(fileSplit[diff])) { 48.17 break; 48.18 }
49.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/DataHead.java Thu May 30 10:58:13 2013 -0700 49.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/DataHead.java Wed Jun 12 14:47:09 2013 +0100 49.3 @@ -1,5 +1,5 @@ 49.4 /* 49.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 49.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 49.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 49.8 * 49.9 * This code is free software; you can redistribute it and/or modify it 49.10 @@ -103,8 +103,8 @@ 49.11 } 49.12 49.13 void close() { 49.14 + head = tail = null; 49.15 if (dataFile != null) { 49.16 - head = tail = null; 49.17 dataFile.close(); 49.18 } 49.19 }
50.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java Thu May 30 10:58:13 2013 -0700 50.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java Wed Jun 12 14:47:09 2013 +0100 50.3 @@ -1,5 +1,5 @@ 50.4 /* 50.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 50.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 50.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 50.8 * 50.9 * This code is free software; you can redistribute it and/or modify it 50.10 @@ -78,20 +78,22 @@ 50.11 try { 50.12 String prefix = config.getTempFilePrefix(); 50.13 String suffix = config.getTempFileSuffix(); 50.14 - File dir = config.getTempDir(); 50.15 - File tempFile = (dir == null) 50.16 - ? File.createTempFile(prefix, suffix) 50.17 - : File.createTempFile(prefix, suffix, dir); 50.18 + File tempFile = TempFiles.createTempFile(prefix, suffix, config.getTempDir()); 50.19 + // delete the temp file when VM exits as a last resort for file clean up 50.20 + tempFile.deleteOnExit(); 50.21 + if (LOGGER.isLoggable(Level.FINE)) { 50.22 + LOGGER.log(Level.FINE, "Created temp file = {0}", tempFile); 50.23 + } 50.24 // delete the temp file when VM exits as a last resort for file clean up 50.25 tempFile.deleteOnExit(); 50.26 if (LOGGER.isLoggable(Level.FINE)) {LOGGER.log(Level.FINE, "Created temp file = {0}", tempFile);} 50.27 dataHead.dataFile = new DataFile(tempFile); 50.28 - } catch(IOException ioe) { 50.29 + } catch (IOException ioe) { 50.30 throw new MIMEParsingException(ioe); 50.31 } 50.32 50.33 if (dataHead.head != null) { 50.34 - for(Chunk c=dataHead.head; c != null; c=c.next) { 50.35 + for (Chunk c = dataHead.head; c != null; c = c.next) { 50.36 long pointer = c.data.writeTo(dataHead.dataFile); 50.37 c.data = new FileData(dataHead.dataFile, pointer, len); 50.38 } 50.39 @@ -101,4 +103,5 @@ 50.40 return new MemoryData(buf, config); 50.41 } 50.42 } 50.43 + 50.44 }
51.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 51.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java Wed Jun 12 14:47:09 2013 +0100 51.3 @@ -0,0 +1,144 @@ 51.4 +/* 51.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. 51.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 51.7 + * 51.8 + * This code is free software; you can redistribute it and/or modify it 51.9 + * under the terms of the GNU General Public License version 2 only, as 51.10 + * published by the Free Software Foundation. Oracle designates this 51.11 + * particular file as subject to the "Classpath" exception as provided 51.12 + * by Oracle in the LICENSE file that accompanied this code. 51.13 + * 51.14 + * This code is distributed in the hope that it will be useful, but WITHOUT 51.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 51.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 51.17 + * version 2 for more details (a copy is included in the LICENSE file that 51.18 + * accompanied this code). 51.19 + * 51.20 + * You should have received a copy of the GNU General Public License version 51.21 + * 2 along with this work; if not, write to the Free Software Foundation, 51.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 51.23 + * 51.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 51.25 + * or visit www.oracle.com if you need additional information or have any 51.26 + * questions. 51.27 + */ 51.28 + 51.29 +package com.sun.xml.internal.org.jvnet.mimepull; 51.30 + 51.31 +import java.io.File; 51.32 +import java.io.IOException; 51.33 +import java.lang.reflect.Array; 51.34 +import java.lang.reflect.InvocationTargetException; 51.35 +import java.lang.reflect.Method; 51.36 +import java.util.logging.Level; 51.37 +import java.util.logging.Logger; 51.38 + 51.39 +/** 51.40 + * Helper utility to support jdk <= jdk1.6. After jdk1.6 EOL reflection can be removed and API can be used directly. 51.41 + */ 51.42 +class TempFiles { 51.43 + 51.44 + private static final Logger LOGGER = Logger.getLogger(TempFiles.class.getName()); 51.45 + 51.46 + private static final Class<?> CLASS_FILES; 51.47 + private static final Class<?> CLASS_PATH; 51.48 + private static final Class<?> CLASS_FILE_ATTRIBUTE; 51.49 + private static final Class<?> CLASS_FILE_ATTRIBUTES; 51.50 + private static final Method METHOD_FILE_TO_PATH; 51.51 + private static final Method METHOD_FILES_CREATE_TEMP_FILE; 51.52 + private static final Method METHOD_FILES_CREATE_TEMP_FILE_WITHPATH; 51.53 + 51.54 + private static final Method METHOD_PATH_TO_FILE; 51.55 + 51.56 + private static boolean useJdk6API; 51.57 + 51.58 + static { 51.59 + useJdk6API = isJdk6(); 51.60 + 51.61 + CLASS_FILES = safeGetClass("java.nio.file.Files"); 51.62 + CLASS_PATH = safeGetClass("java.nio.file.Path"); 51.63 + CLASS_FILE_ATTRIBUTE = safeGetClass("java.nio.file.attribute.FileAttribute"); 51.64 + CLASS_FILE_ATTRIBUTES = safeGetClass("[Ljava.nio.file.attribute.FileAttribute;"); 51.65 + METHOD_FILE_TO_PATH = safeGetMethod(File.class, "toPath"); 51.66 + METHOD_FILES_CREATE_TEMP_FILE = safeGetMethod(CLASS_FILES, "createTempFile", String.class, String.class, CLASS_FILE_ATTRIBUTES); 51.67 + METHOD_FILES_CREATE_TEMP_FILE_WITHPATH = safeGetMethod(CLASS_FILES, "createTempFile", CLASS_PATH, String.class, String.class, CLASS_FILE_ATTRIBUTES); 51.68 + METHOD_PATH_TO_FILE = safeGetMethod(CLASS_PATH, "toFile"); 51.69 + } 51.70 + 51.71 + private static boolean isJdk6() { 51.72 + String javaVersion = System.getProperty("java.version"); 51.73 + LOGGER.log(Level.FINEST, "Detected java version = {0}", javaVersion); 51.74 + return javaVersion.startsWith("1.6."); 51.75 + } 51.76 + 51.77 + private static Class<?> safeGetClass(String className) { 51.78 + // it is jdk 6 or something failed already before 51.79 + if (useJdk6API) return null; 51.80 + try { 51.81 + return Class.forName(className); 51.82 + } catch (ClassNotFoundException e) { 51.83 + LOGGER.log(Level.SEVERE, "Exception cought", e); 51.84 + LOGGER.log(Level.WARNING, "Class {0} not found. Temp files will be created using old java.io API.", className); 51.85 + useJdk6API = true; 51.86 + return null; 51.87 + } 51.88 + } 51.89 + 51.90 + private static Method safeGetMethod(Class<?> clazz, String methodName, Class<?>... parameterTypes) { 51.91 + // it is jdk 6 or something failed already before 51.92 + if (useJdk6API) return null; 51.93 + try { 51.94 + return clazz.getMethod(methodName, parameterTypes); 51.95 + } catch (NoSuchMethodException e) { 51.96 + LOGGER.log(Level.SEVERE, "Exception cought", e); 51.97 + LOGGER.log(Level.WARNING, "Method {0} not found. Temp files will be created using old java.io API.", methodName); 51.98 + useJdk6API = true; 51.99 + return null; 51.100 + } 51.101 + } 51.102 + 51.103 + 51.104 + static Object toPath(File f) throws InvocationTargetException, IllegalAccessException { 51.105 + return METHOD_FILE_TO_PATH.invoke(f); 51.106 + } 51.107 + 51.108 + static File toFile(Object path) throws InvocationTargetException, IllegalAccessException { 51.109 + return (File) METHOD_PATH_TO_FILE.invoke(path); 51.110 + } 51.111 + 51.112 + static File createTempFile(String prefix, String suffix, File dir) throws IOException { 51.113 + 51.114 + if (useJdk6API) { 51.115 + LOGGER.log(Level.FINEST, "Jdk6 detected, temp file (prefix:{0}, suffix:{1}) being created using old java.io API.", new Object[]{prefix, suffix}); 51.116 + return File.createTempFile(prefix, suffix, dir); 51.117 + 51.118 + } else { 51.119 + 51.120 + try { 51.121 + if (dir != null) { 51.122 + Object path = toPath(dir); 51.123 + LOGGER.log(Level.FINEST, "Temp file (path: {0}, prefix:{1}, suffix:{2}) being created using NIO API.", new Object[]{dir.getAbsolutePath(), prefix, suffix}); 51.124 + return toFile(METHOD_FILES_CREATE_TEMP_FILE_WITHPATH.invoke(null, path, prefix, suffix, Array.newInstance(CLASS_FILE_ATTRIBUTE, 0))); 51.125 + } else { 51.126 + LOGGER.log(Level.FINEST, "Temp file (prefix:{0}, suffix:{1}) being created using NIO API.", new Object[]{prefix, suffix}); 51.127 + return toFile(METHOD_FILES_CREATE_TEMP_FILE.invoke(null, prefix, suffix, Array.newInstance(CLASS_FILE_ATTRIBUTE, 0))); 51.128 + } 51.129 + 51.130 + } catch (IllegalAccessException e) { 51.131 + LOGGER.log(Level.SEVERE, "Exception caught", e); 51.132 + LOGGER.log(Level.WARNING, "Error invoking java.nio API, temp file (path: {0}, prefix:{1}, suffix:{2}) being created using old java.io API.", 51.133 + new Object[]{dir != null ? dir.getAbsolutePath() : null, prefix, suffix}); 51.134 + return File.createTempFile(prefix, suffix, dir); 51.135 + 51.136 + } catch (InvocationTargetException e) { 51.137 + LOGGER.log(Level.SEVERE, "Exception caught", e); 51.138 + LOGGER.log(Level.WARNING, "Error invoking java.nio API, temp file (path: {0}, prefix:{1}, suffix:{2}) being created using old java.io API.", 51.139 + new Object[]{dir != null ? dir.getAbsolutePath() : null, prefix, suffix}); 51.140 + return File.createTempFile(prefix, suffix, dir); 51.141 + } 51.142 + } 51.143 + 51.144 + } 51.145 + 51.146 + 51.147 +}
52.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/api/databinding/DatabindingConfig.java Thu May 30 10:58:13 2013 -0700 52.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/api/databinding/DatabindingConfig.java Wed Jun 12 14:47:09 2013 +0100 52.3 @@ -1,5 +1,5 @@ 52.4 /* 52.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 52.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 52.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 52.8 * 52.9 * This code is free software; you can redistribute it and/or modify it 52.10 @@ -52,18 +52,10 @@ 52.11 protected Class contractClass; 52.12 protected Class endpointClass; 52.13 protected Set<Class> additionalValueTypes = new HashSet<Class>(); 52.14 -// protected Set<SchemaInfo> schemaInfo; 52.15 -// protected MappingInfo defaultMappingInfo = new MappingInfo(); 52.16 -// protected MappingInfo overrideMappingInfo = new MappingInfo(); 52.17 protected MappingInfo mappingInfo = new MappingInfo(); 52.18 -// protected Definition wsdl; 52.19 protected URL wsdlURL; 52.20 protected ClassLoader classLoader; 52.21 -// protected QName serviceName; 52.22 -// protected BindingID bindingId; 52.23 protected Iterable<WebServiceFeature> features; 52.24 - //TODO WSBinding isn't it BindingID + features? 52.25 - //On the EndpointFactory.createEndpoint path, WSBinding could be created from DeploymentDescriptorParser.createBinding 52.26 protected WSBinding wsBinding; 52.27 protected WSDLPort wsdlPort; 52.28 protected MetadataReader metadataReader; 52.29 @@ -71,19 +63,6 @@ 52.30 protected Source wsdlSource; 52.31 protected EntityResolver entityResolver; 52.32 52.33 -// public MappingInfo getDefaultMappingInfo() { 52.34 -// return defaultMappingInfo; 52.35 -// } 52.36 -// public void setDefaultMappingInfo(MappingInfo defaultMappingInfo) { 52.37 -// this.defaultMappingInfo = defaultMappingInfo; 52.38 -// } 52.39 -// public MappingInfo getOverrideMappingInfo() { 52.40 -// return overrideMappingInfo; 52.41 -// } 52.42 -// public void setOverrideMappingInfo(MappingInfo overrideMappingInfo) { 52.43 -// this.overrideMappingInfo = overrideMappingInfo; 52.44 -// } 52.45 - 52.46 public Class getContractClass() { 52.47 return contractClass; 52.48 } 52.49 @@ -114,19 +93,8 @@ 52.50 public void setClassLoader(ClassLoader classLoader) { 52.51 this.classLoader = classLoader; 52.52 } 52.53 -// public QName getServiceName() { 52.54 -// return serviceName; 52.55 -// } 52.56 -// public void setServiceName(QName serviceName) { 52.57 -// this.serviceName = serviceName; 52.58 -// } 52.59 -// public BindingID getBindingId() { 52.60 -// return bindingId; 52.61 -// } 52.62 -// public void setBindingId(BindingID bindingId) { 52.63 -// this.bindingId = bindingId; 52.64 -// } 52.65 public Iterable<WebServiceFeature> getFeatures() { 52.66 + if (features == null && wsBinding != null) return wsBinding.getFeatures(); 52.67 return features; 52.68 } 52.69 public void setFeatures(WebServiceFeature[] features) {
53.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/api/message/saaj/SAAJFactory.java Thu May 30 10:58:13 2013 -0700 53.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/api/message/saaj/SAAJFactory.java Wed Jun 12 14:47:09 2013 +0100 53.3 @@ -1,5 +1,5 @@ 53.4 /* 53.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 53.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 53.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 53.8 * 53.9 * This code is free software; you can redistribute it and/or modify it 53.10 @@ -173,7 +173,13 @@ 53.11 * @throws SOAPException if SAAJ processing fails 53.12 */ 53.13 public static SAAJMessage read(Packet packet) throws SOAPException { 53.14 - for (SAAJFactory s : ServiceFinder.find(SAAJFactory.class)) { 53.15 + // Use the Component from the Packet if it exists. Note the logic 53.16 + // in the ServiceFinder is such that find(Class) is not equivalent 53.17 + // to find (Class, null), so the ternary operator is needed. 53.18 + ServiceFinder<SAAJFactory> factories = (packet.component != null ? 53.19 + ServiceFinder.find(SAAJFactory.class, packet.component) : 53.20 + ServiceFinder.find(SAAJFactory.class)); 53.21 + for (SAAJFactory s : factories) { 53.22 SAAJMessage msg = s.readAsSAAJ(packet); 53.23 if (msg != null) return msg; 53.24 }
54.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/api/pipe/Fiber.java Thu May 30 10:58:13 2013 -0700 54.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/api/pipe/Fiber.java Wed Jun 12 14:47:09 2013 +0100 54.3 @@ -1027,12 +1027,12 @@ 54.4 } 54.5 54.6 try { 54.7 - boolean needsToReenter = false; 54.8 + boolean needsToReenter; 54.9 do { 54.10 // if interceptors are set, go through the interceptors. 54.11 if (ints == null) { 54.12 this.next = next; 54.13 - if (__doRun(isRequireUnlock, ints)) { 54.14 + if (__doRun(isRequireUnlock, null /*ints*/)) { 54.15 return true; 54.16 } 54.17 } else { 54.18 @@ -1357,6 +1357,7 @@ 54.19 */ 54.20 public static 54.21 @NotNull 54.22 + @SuppressWarnings({"null", "ConstantConditions"}) 54.23 Fiber current() { 54.24 Fiber fiber = CURRENT_FIBER.get(); 54.25 if (fiber == null)
55.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/XMLStreamWriterFactory.java Thu May 30 10:58:13 2013 -0700 55.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/XMLStreamWriterFactory.java Wed Jun 12 14:47:09 2013 +0100 55.3 @@ -1,5 +1,5 @@ 55.4 /* 55.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 55.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 55.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 55.8 * 55.9 * This code is free software; you can redistribute it and/or modify it 55.10 @@ -42,6 +42,7 @@ 55.11 import java.io.StringWriter; 55.12 import java.lang.reflect.InvocationTargetException; 55.13 import java.lang.reflect.Method; 55.14 +import java.util.logging.Level; 55.15 import java.util.logging.Logger; 55.16 55.17 /** 55.18 @@ -53,6 +54,7 @@ 55.19 * 55.20 * @author Kohsuke Kawaguchi 55.21 */ 55.22 +@SuppressWarnings("StaticNonFinalUsedInInitialization") 55.23 public abstract class XMLStreamWriterFactory { 55.24 55.25 private static final Logger LOGGER = Logger.getLogger(XMLStreamWriterFactory.class.getName()); 55.26 @@ -80,8 +82,19 @@ 55.27 55.28 // this system property can be used to disable the pooling altogether, 55.29 // in case someone hits an issue with pooling in the production system. 55.30 - if(!Boolean.getBoolean(XMLStreamWriterFactory.class.getName()+".noPool")) 55.31 - f = Zephyr.newInstance(xof); 55.32 + if (!Boolean.getBoolean(XMLStreamWriterFactory.class.getName()+".noPool")) { 55.33 + try { 55.34 + Class<?> clazz = xof.createXMLStreamWriter(new StringWriter()).getClass(); 55.35 + if (clazz.getName().startsWith("com.sun.xml.internal.stream.")) { 55.36 + f = new Zephyr(xof,clazz); 55.37 + } 55.38 + } catch (XMLStreamException ex) { 55.39 + Logger.getLogger(XMLStreamWriterFactory.class.getName()).log(Level.INFO, null, ex); 55.40 + } catch (NoSuchMethodException ex) { 55.41 + Logger.getLogger(XMLStreamWriterFactory.class.getName()).log(Level.INFO, null, ex); 55.42 + } 55.43 + } 55.44 + 55.45 if(f==null) { 55.46 // is this Woodstox? 55.47 if(xof.getClass().getName().equals("com.ctc.wstx.stax.WstxOutputFactory")) 55.48 @@ -91,7 +104,9 @@ 55.49 f = new Default(xof); 55.50 55.51 theInstance = f; 55.52 - LOGGER.fine("XMLStreamWriterFactory instance is = "+theInstance); 55.53 + if (LOGGER.isLoggable(Level.FINE)) { 55.54 + LOGGER.log(Level.FINE, "XMLStreamWriterFactory instance is = {0}", f); 55.55 + } 55.56 } 55.57 55.58 /** 55.59 @@ -165,6 +180,7 @@ 55.60 * @param f 55.61 * must not be null. 55.62 */ 55.63 + @SuppressWarnings({"null", "ConstantConditions"}) 55.64 public static void set(@NotNull XMLStreamWriterFactory f) { 55.65 if(f==null) throw new IllegalArgumentException(); 55.66 theInstance = f; 55.67 @@ -220,10 +236,12 @@ 55.68 this.xof = xof; 55.69 } 55.70 55.71 + @Override 55.72 public XMLStreamWriter doCreate(OutputStream out) { 55.73 return doCreate(out,"UTF-8"); 55.74 } 55.75 55.76 + @Override 55.77 public synchronized XMLStreamWriter doCreate(OutputStream out, String encoding) { 55.78 try { 55.79 XMLStreamWriter writer = xof.createXMLStreamWriter(out,encoding); 55.80 @@ -233,6 +251,7 @@ 55.81 } 55.82 } 55.83 55.84 + @Override 55.85 public void doRecycle(XMLStreamWriter r) { 55.86 // no recycling 55.87 } 55.88 @@ -284,10 +303,12 @@ 55.89 return sr; 55.90 } 55.91 55.92 + @Override 55.93 public XMLStreamWriter doCreate(OutputStream out) { 55.94 return doCreate(out,"UTF-8"); 55.95 } 55.96 55.97 + @Override 55.98 public XMLStreamWriter doCreate(OutputStream out, String encoding) { 55.99 XMLStreamWriter xsw = fetch(); 55.100 if(xsw!=null) { 55.101 @@ -311,6 +332,7 @@ 55.102 return new HasEncodingWriter(xsw, encoding); 55.103 } 55.104 55.105 + @Override 55.106 public void doRecycle(XMLStreamWriter r) { 55.107 if (r instanceof HasEncodingWriter) { 55.108 r = ((HasEncodingWriter)r).getWriter(); 55.109 @@ -340,10 +362,12 @@ 55.110 this.xof = xof; 55.111 } 55.112 55.113 + @Override 55.114 public XMLStreamWriter doCreate(OutputStream out) { 55.115 return doCreate(out, SOAPBindingCodec.UTF8_ENCODING); 55.116 } 55.117 55.118 + @Override 55.119 public XMLStreamWriter doCreate(OutputStream out, String encoding) { 55.120 try { 55.121 XMLStreamWriter writer = xof.createXMLStreamWriter(out,encoding); 55.122 @@ -353,6 +377,7 @@ 55.123 } 55.124 } 55.125 55.126 + @Override 55.127 public void doRecycle(XMLStreamWriter r) { 55.128 // no recycling 55.129 } 55.130 @@ -367,6 +392,7 @@ 55.131 this.encoding = encoding; 55.132 } 55.133 55.134 + @Override 55.135 public String getEncoding() { 55.136 return encoding; 55.137 }
56.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/assembler/MetroConfigLoader.java Thu May 30 10:58:13 2013 -0700 56.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/assembler/MetroConfigLoader.java Wed Jun 12 14:47:09 2013 +0100 56.3 @@ -42,10 +42,13 @@ 56.4 import javax.xml.stream.XMLInputFactory; 56.5 import javax.xml.ws.WebServiceException; 56.6 import java.lang.reflect.Method; 56.7 +import java.lang.reflect.ReflectPermission; 56.8 import java.net.MalformedURLException; 56.9 import java.net.URI; 56.10 import java.net.URISyntaxException; 56.11 import java.net.URL; 56.12 +import java.security.*; 56.13 +import java.util.PropertyPermission; 56.14 import java.util.logging.Level; 56.15 56.16 /** 56.17 @@ -235,7 +238,7 @@ 56.18 private static MetroConfig loadMetroConfig(@NotNull URL resourceUrl) { 56.19 MetroConfig result = null; 56.20 try { 56.21 - JAXBContext jaxbContext = JAXBContext.newInstance(MetroConfig.class.getPackage().getName()); 56.22 + JAXBContext jaxbContext = createJAXBContext(); 56.23 Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); 56.24 XMLInputFactory factory = XmlUtil.newXMLInputFactory(true); 56.25 final JAXBElement<MetroConfig> configElement = unmarshaller.unmarshal(factory.createXMLStreamReader(resourceUrl.openStream()), MetroConfig.class); 56.26 @@ -246,6 +249,38 @@ 56.27 return result; 56.28 } 56.29 56.30 + private static JAXBContext createJAXBContext() throws Exception { 56.31 + if (isJDKInternal()) { 56.32 + // since jdk classes are repackaged, extra privilege is necessary to create JAXBContext 56.33 + return AccessController.doPrivileged( 56.34 + new PrivilegedExceptionAction<JAXBContext>() { 56.35 + @Override 56.36 + public JAXBContext run() throws Exception { 56.37 + return JAXBContext.newInstance(MetroConfig.class.getPackage().getName()); 56.38 + } 56.39 + }, createSecurityContext() 56.40 + ); 56.41 + } else { 56.42 + // usage from JAX-WS/Metro/Glassfish 56.43 + return JAXBContext.newInstance(MetroConfig.class.getPackage().getName()); 56.44 + } 56.45 + } 56.46 + 56.47 + private static AccessControlContext createSecurityContext() { 56.48 + PermissionCollection perms = new Permissions(); 56.49 + perms.add(new RuntimePermission("accessClassInPackage.com" + ".sun.xml.internal.ws.runtime.config")); // avoid repackaging 56.50 + perms.add(new ReflectPermission("suppressAccessChecks")); 56.51 + return new AccessControlContext( 56.52 + new ProtectionDomain[]{ 56.53 + new ProtectionDomain(null, perms), 56.54 + }); 56.55 + } 56.56 + 56.57 + private static boolean isJDKInternal() { 56.58 + // avoid "string repackaging" 56.59 + return MetroConfigLoader.class.getName().startsWith("com." + "sun.xml.internal.ws"); 56.60 + } 56.61 + 56.62 private static class MetroConfigUrlLoader extends ResourceLoader { 56.63 56.64 Container container; // TODO remove the field together with the code path using it (see below)
57.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/assembler/TubeCreator.java Thu May 30 10:58:13 2013 -0700 57.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/assembler/TubeCreator.java Wed Jun 12 14:47:09 2013 +0100 57.3 @@ -1,5 +1,5 @@ 57.4 /* 57.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 57.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 57.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 57.8 * 57.9 * This code is free software; you can redistribute it and/or modify it 57.10 @@ -45,11 +45,17 @@ 57.11 private final String msgDumpPropertyBase; 57.12 57.13 TubeCreator(TubeFactoryConfig config, ClassLoader tubeFactoryClassLoader) { 57.14 + String className = config.getClassName(); 57.15 try { 57.16 - Class<?> factoryClass = Class.forName(config.getClassName(), true, tubeFactoryClassLoader); 57.17 + Class<?> factoryClass; 57.18 + if (isJDKInternal(className)) { 57.19 + factoryClass = Class.forName(className, true, null); 57.20 + } else { 57.21 + factoryClass = Class.forName(className, true, tubeFactoryClassLoader); 57.22 + } 57.23 if (TubeFactory.class.isAssignableFrom(factoryClass)) { 57.24 + // We can suppress "unchecked" warning here as we are checking for the correct type in the if statement above 57.25 @SuppressWarnings("unchecked") 57.26 - // We can suppress "unchecked" warning here as we are checking for the correct type in the if statement above 57.27 Class<TubeFactory> typedClass = (Class<TubeFactory>) factoryClass; 57.28 this.factory = typedClass.newInstance(); 57.29 this.msgDumpPropertyBase = this.factory.getClass().getName() + ".dump"; 57.30 @@ -57,11 +63,11 @@ 57.31 throw new RuntimeException(TubelineassemblyMessages.MASM_0015_CLASS_DOES_NOT_IMPLEMENT_INTERFACE(factoryClass.getName(), TubeFactory.class.getName())); 57.32 } 57.33 } catch (InstantiationException ex) { 57.34 - throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(config.getClassName()), ex), true); 57.35 + throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(className), ex), true); 57.36 } catch (IllegalAccessException ex) { 57.37 - throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(config.getClassName()), ex), true); 57.38 + throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0016_UNABLE_TO_INSTANTIATE_TUBE_FACTORY(className), ex), true); 57.39 } catch (ClassNotFoundException ex) { 57.40 - throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS(config.getClassName()), ex), true); 57.41 + throw LOGGER.logSevereException(new RuntimeException(TubelineassemblyMessages.MASM_0017_UNABLE_TO_LOAD_TUBE_FACTORY_CLASS(className), ex), true); 57.42 } 57.43 } 57.44 57.45 @@ -90,4 +96,10 @@ 57.46 String getMessageDumpPropertyBase() { 57.47 return msgDumpPropertyBase; 57.48 } 57.49 + 57.50 + private boolean isJDKInternal(String className) { 57.51 + // avoid repackaging 57.52 + return className.startsWith("com." + "sun.xml.internal.ws"); 57.53 + } 57.54 + 57.55 }
58.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/client/MonitorRootClient.java Thu May 30 10:58:13 2013 -0700 58.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/client/MonitorRootClient.java Wed Jun 12 14:47:09 2013 +0100 58.3 @@ -1,5 +1,5 @@ 58.4 /* 58.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 58.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 58.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 58.8 * 58.9 * This code is free software; you can redistribute it and/or modify it 58.10 @@ -27,20 +27,12 @@ 58.11 58.12 import com.sun.xml.internal.ws.api.server.Container; 58.13 import com.sun.xml.internal.ws.model.wsdl.WSDLServiceImpl; 58.14 -import java.net.URL; 58.15 -import java.util.HashMap; 58.16 import java.util.Map; 58.17 import javax.xml.namespace.QName; 58.18 -import com.sun.org.glassfish.external.amx.AMXGlassfish; 58.19 import com.sun.org.glassfish.gmbal.AMXMetadata; 58.20 import com.sun.org.glassfish.gmbal.Description; 58.21 -import com.sun.org.glassfish.gmbal.InheritedAttribute; 58.22 -import com.sun.org.glassfish.gmbal.InheritedAttributes; 58.23 import com.sun.org.glassfish.gmbal.ManagedAttribute; 58.24 -import com.sun.org.glassfish.gmbal.ManagedData; 58.25 import com.sun.org.glassfish.gmbal.ManagedObject; 58.26 -import com.sun.org.glassfish.gmbal.ManagedObjectManager; 58.27 -import com.sun.org.glassfish.gmbal.ManagedObjectManagerFactory; 58.28 import java.net.URL; 58.29 58.30 /**
59.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/client/SEIPortInfo.java Thu May 30 10:58:13 2013 -0700 59.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/client/SEIPortInfo.java Wed Jun 12 14:47:09 2013 +0100 59.3 @@ -1,5 +1,5 @@ 59.4 /* 59.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 59.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 59.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 59.8 * 59.9 * This code is free software; you can redistribute it and/or modify it 59.10 @@ -33,6 +33,8 @@ 59.11 import com.sun.xml.internal.ws.binding.WebServiceFeatureList; 59.12 import com.sun.xml.internal.ws.model.SOAPSEIModel; 59.13 59.14 +import javax.xml.ws.WebServiceFeature; 59.15 + 59.16 /** 59.17 * {@link PortInfo} that has {@link SEIModel}. 59.18 * 59.19 @@ -46,27 +48,37 @@ 59.20 * @author Kohsuke Kawaguchi 59.21 */ 59.22 public final class SEIPortInfo extends PortInfo { 59.23 + 59.24 public final Class sei; 59.25 + 59.26 /** 59.27 * Model of {@link #sei}. 59.28 */ 59.29 public final SOAPSEIModel model; 59.30 59.31 public SEIPortInfo(WSServiceDelegate owner, Class sei, SOAPSEIModel model, @NotNull WSDLPort portModel) { 59.32 - super(owner,portModel); 59.33 + super(owner, portModel); 59.34 this.sei = sei; 59.35 this.model = model; 59.36 - assert sei!=null && model!=null; 59.37 + assert sei != null && model != null; 59.38 + } 59.39 + 59.40 + @Override 59.41 + public BindingImpl createBinding(WebServiceFeature[] webServiceFeatures, Class<?> portInterface) { 59.42 + BindingImpl binding = super.createBinding(webServiceFeatures, portInterface); 59.43 + return setKnownHeaders(binding); 59.44 } 59.45 59.46 public BindingImpl createBinding(WebServiceFeatureList webServiceFeatures, Class<?> portInterface) { 59.47 // not to pass in (BindingImpl) model.getWSBinding() 59.48 - BindingImpl bindingImpl = super.createBinding(webServiceFeatures, portInterface, null); 59.49 - if(bindingImpl instanceof SOAPBindingImpl) { 59.50 - ((SOAPBindingImpl)bindingImpl).setPortKnownHeaders(model.getKnownHeaders()); 59.51 + BindingImpl binding = super.createBinding(webServiceFeatures, portInterface, null); 59.52 + return setKnownHeaders(binding); 59.53 + } 59.54 + 59.55 + private BindingImpl setKnownHeaders(BindingImpl binding) { 59.56 + if (binding instanceof SOAPBindingImpl) { 59.57 + ((SOAPBindingImpl) binding).setPortKnownHeaders(model.getKnownHeaders()); 59.58 } 59.59 - //Not needed as set above in super.createBinding() call 59.60 - //bindingImpl.setFeatures(webServiceFeatures); 59.61 - return bindingImpl; 59.62 + return binding; 59.63 } 59.64 }
60.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java Thu May 30 10:58:13 2013 -0700 60.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java Wed Jun 12 14:47:09 2013 +0100 60.3 @@ -91,8 +91,7 @@ 60.4 import java.lang.reflect.Proxy; 60.5 import java.net.MalformedURLException; 60.6 import java.net.URL; 60.7 -import java.security.AccessController; 60.8 -import java.security.PrivilegedAction; 60.9 +import java.security.*; 60.10 import java.util.Collection; 60.11 import java.util.HashMap; 60.12 import java.util.HashSet; 60.13 @@ -187,7 +186,7 @@ 60.14 * Multiple {@link ServiceInterceptor}s are aggregated into one. 60.15 */ 60.16 /*package*/ final @NotNull ServiceInterceptor serviceInterceptor; 60.17 - 60.18 + private URL wsdlURL; 60.19 60.20 public WSServiceDelegate(URL wsdlDocumentLocation, QName serviceName, Class<? extends Service> serviceClass, WebServiceFeature... features) { 60.21 this(wsdlDocumentLocation, serviceName, serviceClass, new WebServiceFeatureList(features)); 60.22 @@ -197,6 +196,7 @@ 60.23 this( 60.24 wsdlDocumentLocation==null ? null : new StreamSource(wsdlDocumentLocation.toExternalForm()), 60.25 serviceName,serviceClass, features); 60.26 + wsdlURL = wsdlDocumentLocation; 60.27 } 60.28 60.29 /** 60.30 @@ -699,6 +699,39 @@ 60.31 60.32 } 60.33 60.34 + private <T> T createProxy(final Class<T> portInterface, final InvocationHandler pis) { 60.35 + 60.36 + // When creating the proxy, use a ClassLoader that can load classes 60.37 + // from both the interface class and also from this classes 60.38 + // classloader. This is necessary when this code is used in systems 60.39 + // such as OSGi where the class loader for the interface class may 60.40 + // not be able to load internal JAX-WS classes like 60.41 + // "WSBindingProvider", but the class loader for this class may not 60.42 + // be able to load the interface class. 60.43 + final ClassLoader loader = getDelegatingLoader(portInterface.getClassLoader(), 60.44 + WSServiceDelegate.class.getClassLoader()); 60.45 + 60.46 + // accessClassInPackage privilege needs to be granted ... 60.47 + RuntimePermission perm = new RuntimePermission("accessClassInPackage.com.sun." + "xml.internal.*"); 60.48 + PermissionCollection perms = perm.newPermissionCollection(); 60.49 + perms.add(perm); 60.50 + 60.51 + return AccessController.doPrivileged( 60.52 + new PrivilegedAction<T>() { 60.53 + @Override 60.54 + public T run() { 60.55 + Object proxy = Proxy.newProxyInstance(loader, 60.56 + new Class[]{portInterface, WSBindingProvider.class, Closeable.class}, pis); 60.57 + return portInterface.cast(proxy); 60.58 + } 60.59 + }, 60.60 + new AccessControlContext( 60.61 + new ProtectionDomain[]{ 60.62 + new ProtectionDomain(null, perms) 60.63 + }) 60.64 + ); 60.65 + } 60.66 + 60.67 private WSDLServiceImpl getWSDLModelfromSEI(final Class sei) { 60.68 WebService ws = AccessController.doPrivileged(new PrivilegedAction<WebService>() { 60.69 public WebService run() { 60.70 @@ -750,7 +783,7 @@ 60.71 } 60.72 } 60.73 60.74 - private <T> T createEndpointIFBaseProxy(@Nullable WSEndpointReference epr,QName portName, Class<T> portInterface, 60.75 + private <T> T createEndpointIFBaseProxy(@Nullable WSEndpointReference epr, QName portName, Class<T> portInterface, 60.76 WebServiceFeatureList webServiceFeatures, SEIPortInfo eif) { 60.77 //fail if service doesnt have WSDL 60.78 if (wsdlService == null) { 60.79 @@ -762,21 +795,11 @@ 60.80 ClientMessages.INVALID_PORT_NAME(portName,buildWsdlPortNames())); 60.81 } 60.82 60.83 - BindingImpl binding = eif.createBinding(webServiceFeatures,portInterface); 60.84 + BindingImpl binding = eif.createBinding(webServiceFeatures, portInterface); 60.85 InvocationHandler pis = getStubHandler(binding, eif, epr); 60.86 60.87 - // When creating the proxy, use a ClassLoader that can load classes 60.88 - // from both the interface class and also from this classes 60.89 - // classloader. This is necessary when this code is used in systems 60.90 - // such as OSGi where the class loader for the interface class may 60.91 - // not be able to load internal JAX-WS classes like 60.92 - // "WSBindingProvider", but the class loader for this class may not 60.93 - // be able to load the interface class. 60.94 - ClassLoader loader = 60.95 - getDelegatingLoader(portInterface.getClassLoader(), 60.96 - WSServiceDelegate.class.getClassLoader()); 60.97 - T proxy = portInterface.cast(Proxy.newProxyInstance(loader, 60.98 - new Class[]{portInterface, WSBindingProvider.class, Closeable.class}, pis)); 60.99 + T proxy = createProxy(portInterface, pis); 60.100 + 60.101 if (serviceInterceptor != null) { 60.102 serviceInterceptor.postCreateProxy((WSBindingProvider)proxy, portInterface); 60.103 } 60.104 @@ -841,7 +864,7 @@ 60.105 config.setFeatures(features); 60.106 config.setClassLoader(portInterface.getClassLoader()); 60.107 config.getMappingInfo().setPortName(portName); 60.108 - 60.109 + config.setWsdlURL(wsdlURL); 60.110 // if ExternalMetadataFeature present, ExternalMetadataReader will be created ... 60.111 config.setMetadataReader(getMetadadaReader(features, portInterface.getClassLoader())); 60.112
61.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/client/dispatch/DispatchImpl.java Thu May 30 10:58:13 2013 -0700 61.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/client/dispatch/DispatchImpl.java Wed Jun 12 14:47:09 2013 +0100 61.3 @@ -386,8 +386,10 @@ 61.4 endpoint = (String) requestContext.get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY); 61.5 } 61.6 // This is existing before packetTakesPriorityOverRequestContext so leaving in place. 61.7 - if (endpoint == null) 61.8 + if (endpoint == null) { 61.9 + if (message.endpointAddress == null) throw new WebServiceException(DispatchMessages.INVALID_NULLARG_URI()); 61.10 endpoint = message.endpointAddress.toString(); 61.11 + } 61.12 61.13 String pathInfo = null; 61.14 String queryString = null;
62.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/SEIStub.java Thu May 30 10:58:13 2013 -0700 62.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/SEIStub.java Wed Jun 12 14:47:09 2013 +0100 62.3 @@ -1,5 +1,5 @@ 62.4 /* 62.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 62.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 62.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 62.8 * 62.9 * This code is free software; you can redistribute it and/or modify it 62.10 @@ -88,7 +88,7 @@ 62.11 // first fill in sychronized versions 62.12 for (JavaMethodImpl m : seiModel.getJavaMethods()) { 62.13 if (!m.getMEP().isAsync) { 62.14 - SyncMethodHandler handler = new SyncMethodHandler(this, m.getMethod()); 62.15 + SyncMethodHandler handler = new SyncMethodHandler(this, m); 62.16 syncs.put(m.getOperation(), m); 62.17 methodHandlers.put(m.getMethod(), handler); 62.18 }
63.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/SyncMethodHandler.java Thu May 30 10:58:13 2013 -0700 63.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/SyncMethodHandler.java Wed Jun 12 14:47:09 2013 +0100 63.3 @@ -1,5 +1,5 @@ 63.4 /* 63.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 63.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 63.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 63.8 * 63.9 * This code is free software; you can redistribute it and/or modify it 63.10 @@ -32,10 +32,13 @@ 63.11 import com.sun.xml.internal.ws.client.ResponseContextReceiver; 63.12 import com.sun.xml.internal.ws.encoding.soap.DeserializationException; 63.13 import com.sun.xml.internal.ws.message.jaxb.JAXBMessage; 63.14 +import com.sun.xml.internal.ws.model.JavaMethodImpl; 63.15 +import com.sun.xml.internal.ws.resources.DispatchMessages; 63.16 63.17 import javax.xml.bind.JAXBException; 63.18 import javax.xml.stream.XMLStreamException; 63.19 import javax.xml.ws.Holder; 63.20 +import javax.xml.ws.WebServiceException; 63.21 63.22 import java.lang.reflect.Method; 63.23 63.24 @@ -60,18 +63,16 @@ 63.25 * @author Kohsuke Kawaguchi 63.26 */ 63.27 final class SyncMethodHandler extends MethodHandler { 63.28 -// private ResponseBuilder responseBuilder; 63.29 - 63.30 - SyncMethodHandler(SEIStub owner, Method m) { 63.31 - super(owner, m); 63.32 -// responseBuilder = buildResponseBuilder(method, ValueSetterFactory.SYNC); 63.33 + final boolean isVoid; 63.34 + final boolean isOneway; 63.35 + final JavaMethodImpl javaMethod; 63.36 + SyncMethodHandler(SEIStub owner, JavaMethodImpl jm) { 63.37 + super(owner, jm.getMethod()); 63.38 + javaMethod = jm; 63.39 + isVoid = void.class.equals(jm.getMethod().getReturnType()); 63.40 + isOneway = jm.getMEP().isOneWay(); 63.41 } 63.42 63.43 -// SyncMethodHandler(SEIStub owner, JavaMethodImpl method) { 63.44 -// super(owner, method); 63.45 -// responseBuilder = buildResponseBuilder(method, ValueSetterFactory.SYNC); 63.46 -// } 63.47 - 63.48 Object invoke(Object proxy, Object[] args) throws Throwable { 63.49 return invoke(proxy,args,owner.requestContext,owner); 63.50 } 63.51 @@ -87,37 +88,32 @@ 63.52 */ 63.53 Object invoke(Object proxy, Object[] args, RequestContext rc, ResponseContextReceiver receiver) throws Throwable { 63.54 JavaCallInfo call = owner.databinding.createJavaCallInfo(method, args); 63.55 -// Packet req = new Packet(createRequestMessage(args)); 63.56 Packet req = (Packet) owner.databinding.serializeRequest(call); 63.57 // process the message 63.58 Packet reply = owner.doProcess(req,rc,receiver); 63.59 63.60 Message msg = reply.getMessage(); 63.61 - if(msg ==null) 63.62 - // no reply. must have been one-way 63.63 + if(msg == null) { 63.64 + if (!isOneway || !isVoid) { 63.65 + throw new WebServiceException(DispatchMessages.INVALID_RESPONSE()); 63.66 + } 63.67 return null; 63.68 + } 63.69 63.70 try { 63.71 -// return dbHandler.readResponse(reply, call).getReturnValue(); 63.72 call = owner.databinding.deserializeResponse(reply, call); 63.73 if (call.getException() != null) { 63.74 throw call.getException(); 63.75 } else { 63.76 return call.getReturnValue(); 63.77 } 63.78 -// if(msg.isFault()) { 63.79 -// SOAPFaultBuilder faultBuilder = SOAPFaultBuilder.create(msg); 63.80 -// throw faultBuilder.createException(checkedExceptions); 63.81 -// } else { 63.82 -// return responseBuilder.readResponse(msg,args); 63.83 -// } 63.84 } catch (JAXBException e) { 63.85 - throw new DeserializationException("failed.to.read.response",e); 63.86 + throw new DeserializationException(DispatchMessages.INVALID_RESPONSE_DESERIALIZATION(), e); 63.87 } catch (XMLStreamException e) { 63.88 - throw new DeserializationException("failed.to.read.response",e); 63.89 + throw new DeserializationException(DispatchMessages.INVALID_RESPONSE_DESERIALIZATION(),e); 63.90 } finally { 63.91 - if (reply.transportBackChannel != null) 63.92 - reply.transportBackChannel.close(); 63.93 + if (reply.transportBackChannel != null) 63.94 + reply.transportBackChannel.close(); 63.95 } 63.96 } 63.97
64.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/db/DatabindingFactoryImpl.java Thu May 30 10:58:13 2013 -0700 64.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/db/DatabindingFactoryImpl.java Wed Jun 12 14:47:09 2013 +0100 64.3 @@ -42,6 +42,7 @@ 64.4 import com.oracle.webservices.internal.api.databinding.Databinding; 64.5 import com.oracle.webservices.internal.api.databinding.Databinding.Builder; 64.6 import com.oracle.webservices.internal.api.databinding.WSDLGenerator; 64.7 +import com.oracle.webservices.internal.api.databinding.DatabindingModeFeature; 64.8 import com.sun.xml.internal.ws.api.BindingID; 64.9 import com.sun.xml.internal.ws.api.WSBinding; 64.10 import com.sun.xml.internal.ws.api.databinding.DatabindingConfig; 64.11 @@ -58,13 +59,10 @@ 64.12 */ 64.13 public class DatabindingFactoryImpl extends DatabindingFactory { 64.14 64.15 -// static final String WsRuntimeFactoryProperties = DatabindingProvider.class.getName() + ".properties"; 64.16 static final String WsRuntimeFactoryDefaultImpl = "com.sun.xml.internal.ws.db.DatabindingProviderImpl"; 64.17 64.18 protected Map<String, Object> properties = new HashMap<String, Object>(); 64.19 protected DatabindingProvider defaultRuntimeFactory; 64.20 -// protected Map<String, DatabindingProvider> runtimeFactories = new HashMap<String, DatabindingProvider>(); 64.21 -// protected Properties wsRuntimeFactoryMap; 64.22 protected List<DatabindingProvider> providers; 64.23 64.24 static private List<DatabindingProvider> providers() { 64.25 @@ -97,11 +95,6 @@ 64.26 if (p.isFor(mode)) 64.27 provider = p; 64.28 } if (provider == null) { 64.29 - // if (defaultRuntimeFactory == null) { 64.30 - // defaultRuntimeFactory = 64.31 - // newRuntimeFactory(WsRuntimeFactoryDefaultImpl); 64.32 - // } 64.33 - // provider = defaultRuntimeFactory; 64.34 provider = new DatabindingProviderImpl(); 64.35 } 64.36 return provider; 64.37 @@ -117,33 +110,14 @@ 64.38 return provider.wsdlGen(config); 64.39 } 64.40 64.41 -// DatabindingProvider newRuntimeFactory(String name) { 64.42 -// ClassLoader classLoader = classLoader(); 64.43 -// DatabindingProvider factory = null; 64.44 -// try { 64.45 -// Class cls = (classLoader != null) ? classLoader.loadClass(name) : Class.forName(name); 64.46 -// factory = DatabindingProvider.class.cast(cls.newInstance()); 64.47 -// } catch (Exception e) { 64.48 -// throw new DatabindingException("Unknown DatabindingFactory: " + name, e); 64.49 -// } 64.50 -// factory.init(properties); 64.51 -// return factory; 64.52 -// } 64.53 - 64.54 String databindingMode(DatabindingConfig config) { 64.55 -// if ( config.getOverrideMappingInfo() != null && 64.56 -// config.getOverrideMappingInfo().getDatabindingMode() != null) 64.57 -// return config.getOverrideMappingInfo().getDatabindingMode(); 64.58 -// if ( config.getDefaultMappingInfo() != null && 64.59 -// config.getDefaultMappingInfo().getDatabindingMode() != null) 64.60 -// return config.getDefaultMappingInfo().getDatabindingMode(); 64.61 - 64.62 if ( config.getMappingInfo() != null && 64.63 config.getMappingInfo().getDatabindingMode() != null) 64.64 return config.getMappingInfo().getDatabindingMode(); 64.65 if ( config.getFeatures() != null) for (WebServiceFeature f : config.getFeatures()) { 64.66 - if (f instanceof com.oracle.webservices.internal.api.databinding.DatabindingModeFeature) { 64.67 - com.oracle.webservices.internal.api.databinding.DatabindingModeFeature dmf = (com.oracle.webservices.internal.api.databinding.DatabindingModeFeature) f; 64.68 + if (f instanceof DatabindingModeFeature) { 64.69 + DatabindingModeFeature dmf = (DatabindingModeFeature) f; 64.70 + config.properties().putAll(dmf.getProperties()); 64.71 return dmf.getMode(); 64.72 } 64.73 }
65.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/db/DatabindingImpl.java Thu May 30 10:58:13 2013 -0700 65.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/db/DatabindingImpl.java Wed Jun 12 14:47:09 2013 +0100 65.3 @@ -66,58 +66,77 @@ 65.4 * 65.5 * @author shih-chang.chen@oracle.com 65.6 */ 65.7 -public class DatabindingImpl implements Databinding { 65.8 +public final class DatabindingImpl implements Databinding { 65.9 65.10 AbstractSEIModelImpl seiModel; 65.11 - Map<Method, StubHandler> stubHandlers; 65.12 + Map<Method, StubHandler> stubHandlers; 65.13 // QNameMap<TieHandler> wsdlOpMap = new QNameMap<TieHandler>(); 65.14 - Map<JavaMethodImpl, TieHandler> wsdlOpMap = new HashMap<JavaMethodImpl, TieHandler>(); 65.15 - Map<Method, TieHandler> tieHandlers = new HashMap<Method, TieHandler>(); 65.16 + Map<JavaMethodImpl, TieHandler> wsdlOpMap = new HashMap<JavaMethodImpl, TieHandler>(); 65.17 + Map<Method, TieHandler> tieHandlers = new HashMap<Method, TieHandler>(); 65.18 OperationDispatcher operationDispatcher; 65.19 OperationDispatcher operationDispatcherNoWsdl; 65.20 boolean clientConfig = false; 65.21 Codec codec; 65.22 MessageContextFactory packetFactory = null; 65.23 65.24 - public DatabindingImpl(DatabindingProviderImpl p, DatabindingConfig config) { 65.25 - RuntimeModeler modeler = new RuntimeModeler(config); 65.26 - modeler.setClassLoader(config.getClassLoader()); 65.27 - seiModel = modeler.buildRuntimeModel(); 65.28 - WSDLPort wsdlport = config.getWsdlPort(); 65.29 - packetFactory = new MessageContextFactory(seiModel.getWSBinding().getFeatures()); 65.30 - clientConfig = isClientConfig(config); 65.31 - if ( clientConfig ) initStubHandlers(); 65.32 - seiModel.setDatabinding(this); 65.33 - if (wsdlport != null) freeze(wsdlport); 65.34 - if (operationDispatcher == null) operationDispatcherNoWsdl = new OperationDispatcher(null, seiModel.getWSBinding(), seiModel); 65.35 + public DatabindingImpl(DatabindingProviderImpl p, DatabindingConfig config) { 65.36 + RuntimeModeler modeler = new RuntimeModeler(config); 65.37 + modeler.setClassLoader(config.getClassLoader()); 65.38 + seiModel = modeler.buildRuntimeModel(); 65.39 + WSDLPort wsdlport = config.getWsdlPort(); 65.40 + packetFactory = new MessageContextFactory(seiModel.getWSBinding().getFeatures()); 65.41 + clientConfig = isClientConfig(config); 65.42 + if (clientConfig) { 65.43 + initStubHandlers(); 65.44 + } 65.45 + seiModel.setDatabinding(this); 65.46 + if (wsdlport != null) { 65.47 + freeze(wsdlport); 65.48 + } 65.49 + if (operationDispatcher == null) { 65.50 + operationDispatcherNoWsdl = new OperationDispatcher(null, seiModel.getWSBinding(), seiModel); 65.51 + } 65.52 // if(!clientConfig) { 65.53 - for(JavaMethodImpl jm: seiModel.getJavaMethods()) if (!jm.isAsync()) { 65.54 - TieHandler th = new TieHandler(jm, seiModel.getWSBinding(), packetFactory); 65.55 - wsdlOpMap.put(jm, th); 65.56 - tieHandlers.put(th.getMethod(), th); 65.57 + for (JavaMethodImpl jm : seiModel.getJavaMethods()) { 65.58 + if (!jm.isAsync()) { 65.59 + TieHandler th = new TieHandler(jm, seiModel.getWSBinding(), packetFactory); 65.60 + wsdlOpMap.put(jm, th); 65.61 + tieHandlers.put(th.getMethod(), th); 65.62 + } 65.63 } 65.64 // } 65.65 + } 65.66 + 65.67 + //TODO isClientConfig 65.68 + private boolean isClientConfig(DatabindingConfig config) { 65.69 + if (config.getContractClass() == null) { 65.70 + return false; 65.71 } 65.72 + if (!config.getContractClass().isInterface()) { 65.73 + return false; 65.74 + } 65.75 + return (config.getEndpointClass() == null || config.getEndpointClass().isInterface()); 65.76 + } 65.77 + //TODO fix freeze 65.78 65.79 - //TODO isClientConfig 65.80 - private boolean isClientConfig(DatabindingConfig config) { 65.81 - if (config.getContractClass() == null) return false; 65.82 - if (!config.getContractClass().isInterface()) return false; 65.83 - return (config.getEndpointClass() == null || config.getEndpointClass().isInterface()); 65.84 + public void freeze(WSDLPort port) { 65.85 + if (clientConfig) { 65.86 + return; 65.87 } 65.88 - //TODO fix freeze 65.89 - public synchronized void freeze(WSDLPort port) { 65.90 - if (clientConfig) return; 65.91 - if (operationDispatcher != null) return; 65.92 + synchronized(this) { 65.93 + if (operationDispatcher == null) { 65.94 operationDispatcher = (port == null) ? null : new OperationDispatcher(port, seiModel.getWSBinding(), seiModel); 65.95 + } 65.96 } 65.97 + } 65.98 65.99 - public SEIModel getModel() { 65.100 - return seiModel; 65.101 - } 65.102 + public SEIModel getModel() { 65.103 + return seiModel; 65.104 + } 65.105 //Refactored from SEIStub 65.106 + 65.107 private void initStubHandlers() { 65.108 - stubHandlers = new HashMap<Method, StubHandler>(); 65.109 + stubHandlers = new HashMap<Method, StubHandler>(); 65.110 Map<ActionBasedOperationSignature, JavaMethodImpl> syncs = new HashMap<ActionBasedOperationSignature, JavaMethodImpl>(); 65.111 // fill in methodHandlers. 65.112 // first fill in sychronized versions 65.113 @@ -138,29 +157,33 @@ 65.114 } 65.115 } 65.116 65.117 - public JavaMethodImpl resolveJavaMethod(Packet req) throws DispatchException { 65.118 + JavaMethodImpl resolveJavaMethod(Packet req) throws DispatchException { 65.119 WSDLOperationMapping m = req.getWSDLOperationMapping(); 65.120 - if (m == null) m = (operationDispatcher != null) ? 65.121 - operationDispatcher.getWSDLOperationMapping(req): 65.122 - operationDispatcherNoWsdl.getWSDLOperationMapping(req); 65.123 + if (m == null) { 65.124 + synchronized (this) { 65.125 + m = (operationDispatcher != null) 65.126 + ? operationDispatcher.getWSDLOperationMapping(req) 65.127 + : operationDispatcherNoWsdl.getWSDLOperationMapping(req); 65.128 + } 65.129 + } 65.130 return (JavaMethodImpl) m.getJavaMethod(); 65.131 } 65.132 65.133 - public JavaCallInfo deserializeRequest(Packet req) { 65.134 - com.sun.xml.internal.ws.api.databinding.JavaCallInfo call = new com.sun.xml.internal.ws.api.databinding.JavaCallInfo(); 65.135 - try { 65.136 - JavaMethodImpl wsdlOp = resolveJavaMethod(req); 65.137 - TieHandler tie = wsdlOpMap.get(wsdlOp); 65.138 - call.setMethod(tie.getMethod()); 65.139 - Object[] args = tie.readRequest(req.getMessage()); 65.140 - call.setParameters(args); 65.141 - } catch (DispatchException e) { 65.142 - call.setException(e); 65.143 - } 65.144 - return call; 65.145 + public JavaCallInfo deserializeRequest(Packet req) { 65.146 + com.sun.xml.internal.ws.api.databinding.JavaCallInfo call = new com.sun.xml.internal.ws.api.databinding.JavaCallInfo(); 65.147 + try { 65.148 + JavaMethodImpl wsdlOp = resolveJavaMethod(req); 65.149 + TieHandler tie = wsdlOpMap.get(wsdlOp); 65.150 + call.setMethod(tie.getMethod()); 65.151 + Object[] args = tie.readRequest(req.getMessage()); 65.152 + call.setParameters(args); 65.153 + } catch (DispatchException e) { 65.154 + call.setException(e); 65.155 } 65.156 + return call; 65.157 + } 65.158 65.159 - public JavaCallInfo deserializeResponse(Packet res, JavaCallInfo call) { 65.160 + public JavaCallInfo deserializeResponse(Packet res, JavaCallInfo call) { 65.161 StubHandler stubHandler = stubHandlers.get(call.getMethod()); 65.162 try { 65.163 return stubHandler.readResponse(res, call); 65.164 @@ -168,86 +191,97 @@ 65.165 call.setException(e); 65.166 return call; 65.167 } 65.168 - } 65.169 + } 65.170 65.171 - public WebServiceFeature[] getFeatures() { 65.172 - // TODO Auto-generated method stub 65.173 - return null; 65.174 - } 65.175 + public WebServiceFeature[] getFeatures() { 65.176 + // TODO Auto-generated method stub 65.177 + return null; 65.178 + } 65.179 65.180 - public Packet serializeRequest(JavaCallInfo call) { 65.181 + @Override 65.182 + public Packet serializeRequest(JavaCallInfo call) { 65.183 StubHandler stubHandler = stubHandlers.get(call.getMethod()); 65.184 Packet p = stubHandler.createRequestPacket(call); 65.185 p.setState(Packet.State.ClientRequest); 65.186 return p; 65.187 + } 65.188 + 65.189 + @Override 65.190 + public Packet serializeResponse(JavaCallInfo call) { 65.191 + Method method = call.getMethod(); 65.192 + Message message = null; 65.193 + if (method != null) { 65.194 + TieHandler th = tieHandlers.get(method); 65.195 + if (th != null) { 65.196 + return th.serializeResponse(call); 65.197 + } 65.198 } 65.199 - 65.200 - public Packet serializeResponse(JavaCallInfo call) { 65.201 - Method method = call.getMethod(); 65.202 - Message message = null; 65.203 - if (method != null) { 65.204 - TieHandler th = tieHandlers.get(method); 65.205 - if (th != null) { 65.206 - return th.serializeResponse(call); 65.207 - } 65.208 - } 65.209 - if (call.getException() instanceof DispatchException) { 65.210 - message = ((DispatchException)call.getException()).fault; 65.211 - } 65.212 - Packet p = (Packet)packetFactory.createContext(message); 65.213 + if (call.getException() instanceof DispatchException) { 65.214 + message = ((DispatchException) call.getException()).fault; 65.215 + } 65.216 + Packet p = (Packet) packetFactory.createContext(message); 65.217 p.setState(Packet.State.ServerResponse); 65.218 return p; 65.219 + } 65.220 + 65.221 + @Override 65.222 + public ClientCallBridge getClientBridge(Method method) { 65.223 + return stubHandlers.get(method); 65.224 + } 65.225 + 65.226 + @Override 65.227 + public void generateWSDL(WSDLGenInfo info) { 65.228 + com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator wsdlGen = new com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator( 65.229 + seiModel, 65.230 + info.getWsdlResolver(), 65.231 + seiModel.getWSBinding(), 65.232 + info.getContainer(), seiModel.getEndpointClass(), 65.233 + info.isInlineSchemas(), 65.234 + info.isSecureXmlProcessingDisabled(), 65.235 + info.getExtensions()); 65.236 + wsdlGen.doGeneration(); 65.237 + } 65.238 + 65.239 + @Override 65.240 + public EndpointCallBridge getEndpointBridge(Packet req) throws DispatchException { 65.241 + JavaMethodImpl wsdlOp = resolveJavaMethod(req); 65.242 + return wsdlOpMap.get(wsdlOp); 65.243 + } 65.244 + 65.245 + Codec getCodec() { 65.246 + if (codec == null) { 65.247 + codec = ((BindingImpl) seiModel.getWSBinding()).createCodec(); 65.248 } 65.249 + return codec; 65.250 + } 65.251 65.252 - public ClientCallBridge getClientBridge(Method method) { 65.253 - return stubHandlers.get(method); 65.254 - } 65.255 - 65.256 - 65.257 - public void generateWSDL(WSDLGenInfo info) { 65.258 - com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator wsdlGen = new com.sun.xml.internal.ws.wsdl.writer.WSDLGenerator( 65.259 - seiModel, 65.260 - info.getWsdlResolver(), 65.261 - seiModel.getWSBinding(), 65.262 - info.getContainer(), seiModel.getEndpointClass(), 65.263 - info.isInlineSchemas(), 65.264 - info.isSecureXmlProcessingDisabled(), 65.265 - info.getExtensions()); 65.266 - wsdlGen.doGeneration(); 65.267 - } 65.268 - 65.269 - public EndpointCallBridge getEndpointBridge(Packet req) throws DispatchException { 65.270 - JavaMethodImpl wsdlOp = resolveJavaMethod(req); 65.271 - return wsdlOpMap.get(wsdlOp); 65.272 - } 65.273 - 65.274 - 65.275 - Codec getCodec() { 65.276 - if (codec == null) codec = ((BindingImpl)seiModel.getWSBinding()).createCodec(); 65.277 - return codec; 65.278 - } 65.279 - 65.280 - public ContentType encode( Packet packet, OutputStream out ) throws IOException { 65.281 + @Override 65.282 + public ContentType encode(Packet packet, OutputStream out) throws IOException { 65.283 return getCodec().encode(packet, out); 65.284 } 65.285 65.286 - public void decode( InputStream in, String ct, Packet p ) throws IOException{ 65.287 + @Override 65.288 + public void decode(InputStream in, String ct, Packet p) throws IOException { 65.289 getCodec().decode(in, ct, p); 65.290 } 65.291 65.292 + @Override 65.293 public com.oracle.webservices.internal.api.databinding.JavaCallInfo createJavaCallInfo(Method method, Object[] args) { 65.294 return new com.sun.xml.internal.ws.api.databinding.JavaCallInfo(method, args); 65.295 } 65.296 65.297 + @Override 65.298 public com.oracle.webservices.internal.api.databinding.JavaCallInfo deserializeResponse( 65.299 MessageContext message, com.oracle.webservices.internal.api.databinding.JavaCallInfo call) { 65.300 - return deserializeResponse((Packet)message, (JavaCallInfo)call); 65.301 + return deserializeResponse((Packet) message, (JavaCallInfo) call); 65.302 } 65.303 65.304 + @Override 65.305 public com.oracle.webservices.internal.api.databinding.JavaCallInfo deserializeRequest(MessageContext message) { 65.306 - return deserializeRequest((Packet)message); 65.307 + return deserializeRequest((Packet) message); 65.308 } 65.309 65.310 + @Override 65.311 public MessageContextFactory getMessageContextFactory() { 65.312 return packetFactory; 65.313 }
66.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/encoding/MtomCodec.java Thu May 30 10:58:13 2013 -0700 66.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/encoding/MtomCodec.java Wed Jun 12 14:47:09 2013 +0100 66.3 @@ -81,8 +81,8 @@ 66.4 public class MtomCodec extends MimeCodec { 66.5 66.6 public static final String XOP_XML_MIME_TYPE = "application/xop+xml"; 66.7 - private static final String XOP_LOCALNAME = "Include"; 66.8 - private static final String XOP_NAMESPACEURI = "http://www.w3.org/2004/08/xop/include"; 66.9 + public static final String XOP_LOCALNAME = "Include"; 66.10 + public static final String XOP_NAMESPACEURI = "http://www.w3.org/2004/08/xop/include"; 66.11 66.12 private final StreamSOAPCodec codec; 66.13 private final MTOMFeature mtomFeature; 66.14 @@ -171,8 +171,10 @@ 66.15 bos.write(out); 66.16 } 66.17 66.18 - //now write out the attachments in the message 66.19 - writeAttachments(packet.getMessage().getAttachments(),out, boundary); 66.20 + // now write out the attachments in the message that weren't 66.21 + // previously written 66.22 + writeNonMtomAttachments(packet.getMessage().getAttachments(), 66.23 + out, boundary); 66.24 66.25 //write out the end boundary 66.26 writeAsAscii("--"+boundary, out); 66.27 @@ -204,7 +206,13 @@ 66.28 66.29 ByteArrayBuffer(@NotNull DataHandler dh, String b) { 66.30 this.dh = dh; 66.31 - this.contentId = encodeCid(); 66.32 + String cid = null; 66.33 + if (dh instanceof StreamingDataHandler) { 66.34 + StreamingDataHandler sdh = (StreamingDataHandler) dh; 66.35 + if (sdh.getHrefCid() != null) 66.36 + cid = sdh.getHrefCid(); 66.37 + } 66.38 + this.contentId = cid != null ? cid : encodeCid(); 66.39 boundary = b; 66.40 } 66.41 66.42 @@ -227,13 +235,27 @@ 66.43 writeln(out); 66.44 } 66.45 66.46 - private void writeAttachments(AttachmentSet attachments, OutputStream out, String boundary) throws IOException { 66.47 - for(Attachment att : attachments){ 66.48 - //build attachment frame 66.49 - writeln("--"+boundary, out); 66.50 + // Compiler warning for not calling close, but cannot call close, 66.51 + // will consume attachment bytes. 66.52 + @SuppressWarnings("resource") 66.53 + private void writeNonMtomAttachments(AttachmentSet attachments, 66.54 + OutputStream out, String boundary) throws IOException { 66.55 + 66.56 + for (Attachment att : attachments) { 66.57 + 66.58 + DataHandler dh = att.asDataHandler(); 66.59 + if (dh instanceof StreamingDataHandler) { 66.60 + StreamingDataHandler sdh = (StreamingDataHandler) dh; 66.61 + // If DataHandler has href Content-ID, it is MTOM, so skip. 66.62 + if (sdh.getHrefCid() != null) 66.63 + continue; 66.64 + } 66.65 + 66.66 + // build attachment frame 66.67 + writeln("--" + boundary, out); 66.68 writeMimeHeaders(att.getContentType(), att.getContentId(), out); 66.69 att.writeTo(out); 66.70 - writeln(out); // write \r\n 66.71 + writeln(out); // write \r\n 66.72 } 66.73 } 66.74
67.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/message/stream/StreamMessage.java Thu May 30 10:58:13 2013 -0700 67.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/message/stream/StreamMessage.java Wed Jun 12 14:47:09 2013 +0100 67.3 @@ -104,7 +104,9 @@ 67.4 * If the creater of this object didn't care about those, 67.5 * we use stock values. 67.6 */ 67.7 - private @NotNull TagInfoset envelopeTag,headerTag,bodyTag; 67.8 + private @NotNull TagInfoset envelopeTag; 67.9 + private @NotNull TagInfoset headerTag; 67.10 + private @NotNull TagInfoset bodyTag; 67.11 67.12 /** 67.13 * Used only for debugging. This records where the message was consumed. 67.14 @@ -203,8 +205,7 @@ 67.15 throw new IllegalArgumentException("BodyTag TagInfoset cannot be null"); 67.16 } 67.17 this.envelopeTag = envelopeTag; 67.18 - this.headerTag = headerTag!=null ? headerTag : 67.19 - new TagInfoset(envelopeTag.nsUri,"Header",envelopeTag.prefix,EMPTY_ATTS); 67.20 + this.headerTag = headerTag; 67.21 this.bodyTag = bodyTag; 67.22 this.bodyPrologue = bodyPrologue; 67.23 this.bodyEpilogue = bodyEpilogue; 67.24 @@ -391,10 +392,13 @@ 67.25 67.26 //write headers 67.27 MessageHeaders hl = getHeaders(); 67.28 - if(hl.hasHeaders()){ 67.29 + if (hl.hasHeaders() && headerTag == null) headerTag = new TagInfoset(envelopeTag.nsUri,"Header",envelopeTag.prefix,EMPTY_ATTS); 67.30 + if (headerTag != null) { 67.31 headerTag.writeStart(writer); 67.32 - for(Header h : hl.asList()){ 67.33 - h.writeTo(writer); 67.34 + if (hl.hasHeaders()){ 67.35 + for(Header h : hl.asList()){ 67.36 + h.writeTo(writer); 67.37 + } 67.38 } 67.39 writer.writeEndElement(); 67.40 } 67.41 @@ -527,15 +531,18 @@ 67.42 contentHandler.setDocumentLocator(NULL_LOCATOR); 67.43 contentHandler.startDocument(); 67.44 envelopeTag.writeStart(contentHandler); 67.45 - headerTag.writeStart(contentHandler); 67.46 - if(hasHeaders()) { 67.47 - MessageHeaders headers = getHeaders(); 67.48 - for (Header h : headers.asList()) { 67.49 - // shouldn't JDK be smart enough to use array-style indexing for this foreach!? 67.50 - h.writeTo(contentHandler,errorHandler); 67.51 + if (hasHeaders() && headerTag == null) headerTag = new TagInfoset(envelopeTag.nsUri,"Header",envelopeTag.prefix,EMPTY_ATTS); 67.52 + if (headerTag != null) { 67.53 + headerTag.writeStart(contentHandler); 67.54 + if (hasHeaders()) { 67.55 + MessageHeaders headers = getHeaders(); 67.56 + for (Header h : headers.asList()) { 67.57 + // shouldn't JDK be smart enough to use array-style indexing for this foreach!? 67.58 + h.writeTo(contentHandler,errorHandler); 67.59 + } 67.60 } 67.61 + headerTag.writeEnd(contentHandler); 67.62 } 67.63 - headerTag.writeEnd(contentHandler); 67.64 bodyTag.writeStart(contentHandler); 67.65 writePayloadTo(contentHandler,errorHandler, true); 67.66 bodyTag.writeEnd(contentHandler);
68.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/model/RuntimeModeler.java Thu May 30 10:58:13 2013 -0700 68.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/model/RuntimeModeler.java Wed Jun 12 14:47:09 2013 +0100 68.3 @@ -210,20 +210,10 @@ 68.4 68.5 private <T extends Annotation> T getAnnotation(final Class<?> clazz, final Class<T> T) { 68.6 return metadataReader.getAnnotation(T, clazz); 68.7 -// return AccessController.doPrivileged(new PrivilegedAction<T>() { 68.8 -// public T run() { 68.9 -// return clazz.getAnnotation(T); 68.10 -// } 68.11 -// }); 68.12 } 68.13 68.14 private <T extends Annotation> T getAnnotation(final Method method, final Class<T> T) { 68.15 return metadataReader.getAnnotation(T, method); 68.16 -// return AccessController.doPrivileged(new PrivilegedAction<T>() { 68.17 -// public T run() { 68.18 -// return method.getAnnotation(T); 68.19 -// } 68.20 -// }); 68.21 } 68.22 68.23 private Annotation[] getAnnotations(final Method method) { 68.24 @@ -235,11 +225,6 @@ 68.25 } 68.26 private Annotation[][] getParamAnnotations(final Method method) { 68.27 return metadataReader.getParameterAnnotations(method); 68.28 -// return AccessController.doPrivileged(new PrivilegedAction<Annotation[][]>() { 68.29 -// public Annotation[][] run() { 68.30 -// return method.getParameterAnnotations(); 68.31 -// } 68.32 -// }); 68.33 } 68.34 68.35 private static final Logger logger = 68.36 @@ -258,6 +243,7 @@ 68.37 model.endpointClass = config.getEndpointClass(); 68.38 model.classLoader = this.classLoader; 68.39 model.wsBinding = wsBinding; 68.40 + model.databindingInfo.setWsdlURL(config.getWsdlURL()); 68.41 model.databindingInfo.properties().putAll(config.properties()); 68.42 if (model.contractClass == null) model.contractClass = portClass; 68.43 if (model.endpointClass == null && !portClass.isInterface()) model.endpointClass = portClass; 68.44 @@ -476,11 +462,12 @@ 68.45 68.46 for (Method method : clazz.getMethods()) { 68.47 if (!clazz.isInterface()) { // if clazz is SEI, then all methods are web methods 68.48 + if (method.getDeclaringClass() == Object.class) continue; 68.49 if (!getBooleanSystemProperty("com.sun.xml.internal.ws.legacyWebMethod")) { // legacy webMethod computation behaviour to be used 68.50 if (!isWebMethodBySpec(method, clazz)) 68.51 continue; 68.52 } else { 68.53 - if (method.getDeclaringClass() == Object.class || !isWebMethod(method)) 68.54 + if (!isWebMethod(method)) 68.55 continue; 68.56 } 68.57 }
69.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/model/WrapperBeanGenerator.java Thu May 30 10:58:13 2013 -0700 69.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/model/WrapperBeanGenerator.java Wed Jun 12 14:47:09 2013 +0100 69.3 @@ -1,5 +1,5 @@ 69.4 /* 69.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 69.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 69.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 69.8 * 69.9 * This code is free software; you can redistribute it and/or modify it 69.10 @@ -69,10 +69,12 @@ 69.11 super(annReader, nav, beanMemberFactory); 69.12 } 69.13 69.14 + @Override 69.15 protected java.lang.reflect.Type getSafeType(java.lang.reflect.Type type) { 69.16 return type; 69.17 } 69.18 69.19 + @Override 69.20 protected java.lang.reflect.Type getHolderValueType(java.lang.reflect.Type paramType) { 69.21 if (paramType instanceof ParameterizedType) { 69.22 ParameterizedType p = (ParameterizedType)paramType; 69.23 @@ -83,6 +85,7 @@ 69.24 return null; 69.25 } 69.26 69.27 + @Override 69.28 protected boolean isVoidType(java.lang.reflect.Type type) { 69.29 return type == Void.TYPE; 69.30 } 69.31 @@ -90,6 +93,7 @@ 69.32 } 69.33 69.34 private static final class FieldFactory implements BeanMemberFactory<java.lang.reflect.Type, Field> { 69.35 + @Override 69.36 public Field createWrapperBeanMember(java.lang.reflect.Type paramType, 69.37 String paramName, List<Annotation> jaxb) { 69.38 return new Field(paramName, paramType, getASMType(paramType), jaxb); 69.39 @@ -257,7 +261,9 @@ 69.40 69.41 static Class createRequestWrapperBean(String className, Method method, QName reqElemName, ClassLoader cl) { 69.42 69.43 - LOGGER.log(Level.FINE, "Request Wrapper Class : {0}", className); 69.44 + if (LOGGER.isLoggable(Level.FINE)) { 69.45 + LOGGER.log(Level.FINE, "Request Wrapper Class : {0}", className); 69.46 + } 69.47 69.48 List<Field> requestMembers = RUNTIME_GENERATOR.collectRequestBeanMembers( 69.49 method); 69.50 @@ -276,7 +282,9 @@ 69.51 69.52 static Class createResponseWrapperBean(String className, Method method, QName resElemName, ClassLoader cl) { 69.53 69.54 - LOGGER.log(Level.FINE, "Response Wrapper Class : {0}", className); 69.55 + if (LOGGER.isLoggable(Level.FINE)) { 69.56 + LOGGER.log(Level.FINE, "Response Wrapper Class : {0}", className); 69.57 + } 69.58 69.59 List<Field> responseMembers = RUNTIME_GENERATOR.collectResponseBeanMembers(method); 69.60 69.61 @@ -346,6 +354,9 @@ 69.62 return Injector.inject(cl, className, image); 69.63 } 69.64 69.65 + /** 69.66 + * Note: this class has a natural ordering that is inconsistent with equals. 69.67 + */ 69.68 private static class Field implements Comparable<Field> { 69.69 private final java.lang.reflect.Type reflectType; 69.70 private final Type asmType; 69.71 @@ -370,10 +381,10 @@ 69.72 return FieldSignature.vms(reflectType); 69.73 } 69.74 69.75 + @Override 69.76 public int compareTo(Field o) { 69.77 return fieldName.compareTo(o.fieldName); 69.78 } 69.79 - 69.80 } 69.81 69.82 static void write(byte[] b, String className) { 69.83 @@ -384,8 +395,7 @@ 69.84 fo.flush(); 69.85 fo.close(); 69.86 } catch (java.io.IOException e) { 69.87 - // TODO Auto-generated catch block 69.88 - e.printStackTrace(); 69.89 + LOGGER.log(Level.INFO, "Error Writing class", e); 69.90 } 69.91 } 69.92
70.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/model/wsdl/WSDLBoundOperationImpl.java Thu May 30 10:58:13 2013 -0700 70.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/model/wsdl/WSDLBoundOperationImpl.java Wed Jun 12 14:47:09 2013 +0100 70.3 @@ -1,5 +1,5 @@ 70.4 /* 70.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 70.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 70.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 70.8 * 70.9 * This code is free software; you can redistribute it and/or modify it 70.10 @@ -63,7 +63,6 @@ 70.11 70.12 private final Map<String, WSDLPartImpl> inParts; 70.13 private final Map<String, WSDLPartImpl> outParts; 70.14 - private final Map<String, WSDLPartImpl> fltParts; 70.15 private final List<WSDLBoundFaultImpl> wsdlBoundFaults; 70.16 private WSDLOperationImpl operation; 70.17 private String soapAction; 70.18 @@ -86,15 +85,16 @@ 70.19 faultMimeTypes = new HashMap<String, String>(); 70.20 inParts = new HashMap<String, WSDLPartImpl>(); 70.21 outParts = new HashMap<String, WSDLPartImpl>(); 70.22 - fltParts = new HashMap<String, WSDLPartImpl>(); 70.23 wsdlBoundFaults = new ArrayList<WSDLBoundFaultImpl>(); 70.24 this.owner = owner; 70.25 } 70.26 70.27 + @Override 70.28 public QName getName(){ 70.29 return name; 70.30 } 70.31 70.32 + @Override 70.33 public String getSOAPAction() { 70.34 return soapAction; 70.35 } 70.36 @@ -103,6 +103,7 @@ 70.37 this.soapAction = soapAction!=null?soapAction:""; 70.38 } 70.39 70.40 + @Override 70.41 public WSDLPartImpl getPart(String partName, Mode mode) { 70.42 if(mode==Mode.IN){ 70.43 return inParts.get(partName); 70.44 @@ -147,15 +148,18 @@ 70.45 } 70.46 70.47 // TODO: what's the difference between this and inputParts/outputParts? 70.48 + @Override 70.49 public Map<String,WSDLPart> getInParts() { 70.50 return Collections.<String,WSDLPart>unmodifiableMap(inParts); 70.51 } 70.52 70.53 + @Override 70.54 public Map<String,WSDLPart> getOutParts() { 70.55 return Collections.<String,WSDLPart>unmodifiableMap(outParts); 70.56 } 70.57 70.58 @NotNull 70.59 + @Override 70.60 public List<WSDLBoundFaultImpl> getFaults() { 70.61 return wsdlBoundFaults; 70.62 } 70.63 @@ -291,11 +295,13 @@ 70.64 return faultMimeTypes.get(part); 70.65 } 70.66 70.67 + @Override 70.68 public WSDLOperationImpl getOperation() { 70.69 return operation; 70.70 } 70.71 70.72 70.73 + @Override 70.74 public WSDLBoundPortType getBoundPortType() { 70.75 return owner; 70.76 } 70.77 @@ -317,6 +323,7 @@ 70.78 this.style = style; 70.79 } 70.80 70.81 + @Override 70.82 public @Nullable QName getReqPayloadName() { 70.83 if (emptyRequestPayload) 70.84 return null; 70.85 @@ -346,6 +353,7 @@ 70.86 return null; 70.87 } 70.88 70.89 + @Override 70.90 public @Nullable QName getResPayloadName() { 70.91 if (emptyResponsePayload) 70.92 return null; 70.93 @@ -385,6 +393,7 @@ 70.94 * @return non-null for rpclit and null for doclit 70.95 * @see RuntimeModeler#processRpcMethod(JavaMethodImpl, String, String, Method) 70.96 */ 70.97 + @Override 70.98 public String getRequestNamespace(){ 70.99 return (reqNamespace != null)?reqNamespace:name.getNamespaceURI(); 70.100 } 70.101 @@ -400,6 +409,7 @@ 70.102 * @return non-null for rpclit and null for doclit 70.103 * @see RuntimeModeler#processRpcMethod(JavaMethodImpl, String, String, Method) 70.104 */ 70.105 + @Override 70.106 public String getResponseNamespace(){ 70.107 return (respNamespace!=null)?respNamespace:name.getNamespaceURI(); 70.108 } 70.109 @@ -433,6 +443,7 @@ 70.110 /** 70.111 * @inheritDoc 70.112 */ 70.113 + @Override 70.114 public ANONYMOUS getAnonymous() { 70.115 return anonymous; 70.116 }
71.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/model/wsdl/WSDLOperationImpl.java Thu May 30 10:58:13 2013 -0700 71.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/model/wsdl/WSDLOperationImpl.java Wed Jun 12 14:47:09 2013 +0100 71.3 @@ -1,5 +1,5 @@ 71.4 /* 71.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 71.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 71.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 71.8 * 71.9 * This code is free software; you can redistribute it and/or modify it 71.10 @@ -34,9 +34,7 @@ 71.11 import javax.xml.namespace.QName; 71.12 import javax.xml.stream.XMLStreamReader; 71.13 import java.util.ArrayList; 71.14 -import java.util.HashMap; 71.15 import java.util.List; 71.16 -import java.util.Map; 71.17 71.18 /** 71.19 * Implementaiton of {@link WSDLOperation}
72.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/resources/DispatchMessages.java Thu May 30 10:58:13 2013 -0700 72.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/resources/DispatchMessages.java Wed Jun 12 14:47:09 2013 +0100 72.3 @@ -51,6 +51,18 @@ 72.4 return localizer.localize(localizableINVALID_NULLARG_XMLHTTP_REQUEST_METHOD(arg0, arg1)); 72.5 } 72.6 72.7 + public static Localizable localizableINVALID_NULLARG_URI() { 72.8 + return messageFactory.getMessage("invalid.nullarg.uri"); 72.9 + } 72.10 + 72.11 + /** 72.12 + * Endpoint address URI is not allowed with a null argument 72.13 + * 72.14 + */ 72.15 + public static String INVALID_NULLARG_URI() { 72.16 + return localizer.localize(localizableINVALID_NULLARG_URI()); 72.17 + } 72.18 + 72.19 public static Localizable localizableINVALID_SOAPMESSAGE_DISPATCH_MSGMODE(Object arg0, Object arg1) { 72.20 return messageFactory.getMessage("invalid.soapmessage.dispatch.msgmode", arg0, arg1); 72.21 }
73.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/resources/dispatch.properties Thu May 30 10:58:13 2013 -0700 73.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/resources/dispatch.properties Wed Jun 12 14:47:09 2013 +0100 73.3 @@ -1,5 +1,5 @@ 73.4 # 73.5 -# Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 73.6 +# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 73.7 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 73.8 # 73.9 # This code is free software; you can redistribute it and/or modify it 73.10 @@ -26,6 +26,7 @@ 73.11 invalid.nullarg.soap.msgmode=SOAP/HTTP Binding in {0} is not allowed with a null invocation argument. Must be: {1} 73.12 # {0}, {1} - one of: POST, GET, DELETE PUT e.g.: A XML/HTTP request using MessageContext.HTTP_REQUEST_METHOD equals POST with a Null invocation Argument is not allowed. Must be: GET 73.13 invalid.nullarg.xmlhttp.request.method=A XML/HTTP request using MessageContext.HTTP_REQUEST_METHOD equals {0} with a Null invocation Argument is not allowed. Must be: {1} 73.14 +invalid.nullarg.uri=Endpoint address URI is not allowed with a null argument 73.15 invalid.response=No response returned. 73.16 invalid.response.deserialization=Failed to deserialize the response. 73.17 # {0} - "PAYLOAD", {1} - "MESSAGE"
74.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/server/EndpointFactory.java Thu May 30 10:58:13 2013 -0700 74.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/server/EndpointFactory.java Wed Jun 12 14:47:09 2013 +0100 74.3 @@ -265,7 +265,7 @@ 74.4 terminal = createProviderInvokerTube(implType, binding, invoker, container); 74.5 } else { 74.6 // Create runtime model for non Provider endpoints 74.7 - seiModel = createSEIModel(wsdlPort, implType, serviceName, portName, binding); 74.8 + seiModel = createSEIModel(wsdlPort, implType, serviceName, portName, binding, primaryDoc); 74.9 if(binding instanceof SOAPBindingImpl){ 74.10 //set portKnownHeaders on Binding, so that they can be used for MU processing 74.11 ((SOAPBindingImpl)binding).setPortKnownHeaders( 74.12 @@ -436,37 +436,17 @@ 74.13 74.14 74.15 private static AbstractSEIModelImpl createSEIModel(WSDLPort wsdlPort, 74.16 - Class<?> implType, @NotNull QName serviceName, @NotNull QName portName, WSBinding binding) { 74.17 -// RuntimeModeler rap; 74.18 -// // Create runtime model for non Provider endpoints 74.19 -// 74.20 -// // wsdlPort will be null, means we will generate WSDL. Hence no need to apply 74.21 -// // bindings or need to look in the WSDL 74.22 -// if(wsdlPort == null){ 74.23 -// rap = new RuntimeModeler(implType,serviceName, binding.getBindingId(), binding.getFeatures().toArray()); 74.24 -// } else { 74.25 -// /* 74.26 -// This not needed anymore as wsdlFeatures are merged later anyway 74.27 -// and so is the MTOMFeature. 74.28 -// applyEffectiveMtomSetting(wsdlPort.getBinding(), binding); 74.29 -// */ 74.30 -// //now we got the Binding so lets build the model 74.31 -// rap = new RuntimeModeler(implType, serviceName, (WSDLPortImpl)wsdlPort, binding.getFeatures().toArray()); 74.32 -// } 74.33 -// rap.setClassLoader(implType.getClassLoader()); 74.34 -// rap.setPortName(portName); 74.35 -// return rap.buildRuntimeModel(); 74.36 + Class<?> implType, @NotNull QName serviceName, @NotNull QName portName, WSBinding binding, 74.37 + SDDocumentSource primaryWsdl) { 74.38 DatabindingFactory fac = DatabindingFactory.newInstance(); 74.39 DatabindingConfig config = new DatabindingConfig(); 74.40 config.setEndpointClass(implType); 74.41 config.getMappingInfo().setServiceName(serviceName); 74.42 config.setWsdlPort(wsdlPort); 74.43 config.setWSBinding(binding); 74.44 -// config.setFeatures(binding.getFeatures().toArray()); 74.45 -// config.getMappingInfo().setBindingID(binding.getBindingId()); 74.46 config.setClassLoader(implType.getClassLoader()); 74.47 config.getMappingInfo().setPortName(portName); 74.48 - 74.49 + if (primaryWsdl != null) config.setWsdlURL(primaryWsdl.getSystemId()); 74.50 config.setMetadataReader(getExternalMetadatReader(implType, binding)); 74.51 74.52 com.sun.xml.internal.ws.db.DatabindingImpl rt = (com.sun.xml.internal.ws.db.DatabindingImpl)fac.createRuntime(config);
75.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/db/BindingInfo.java Thu May 30 10:58:13 2013 -0700 75.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/db/BindingInfo.java Wed Jun 12 14:47:09 2013 +0100 75.3 @@ -1,5 +1,5 @@ 75.4 /* 75.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 75.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 75.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 75.8 * 75.9 * This code is free software; you can redistribute it and/or modify it 75.10 @@ -25,6 +25,7 @@ 75.11 75.12 package com.sun.xml.internal.ws.spi.db; 75.13 75.14 +import java.net.URL; 75.15 import java.util.Collection; 75.16 import java.util.Map; 75.17 75.18 @@ -47,6 +48,7 @@ 75.19 protected ClassLoader classLoader; 75.20 75.21 private SEIModel seiModel; 75.22 + private URL wsdlURL; 75.23 75.24 public String getDatabindingMode() { 75.25 return databindingMode; 75.26 @@ -87,5 +89,10 @@ 75.27 public void setClassLoader(ClassLoader classLoader) { 75.28 this.classLoader = classLoader; 75.29 } 75.30 - 75.31 + public URL getWsdlURL() { 75.32 + return wsdlURL; 75.33 + } 75.34 + public void setWsdlURL(URL wsdlURL) { 75.35 + this.wsdlURL = wsdlURL; 75.36 + } 75.37 }
76.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/db/JAXBWrapperAccessor.java Thu May 30 10:58:13 2013 -0700 76.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/db/JAXBWrapperAccessor.java Wed Jun 12 14:47:09 2013 +0100 76.3 @@ -1,5 +1,5 @@ 76.4 /* 76.5 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 76.6 + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. 76.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 76.8 * 76.9 * This code is free software; you can redistribute it and/or modify it 76.10 @@ -43,6 +43,7 @@ 76.11 import javax.xml.bind.JAXBElement; 76.12 import javax.xml.bind.annotation.XmlElement; 76.13 import javax.xml.bind.annotation.XmlElementRef; 76.14 +import javax.xml.bind.annotation.XmlElementWrapper; 76.15 import javax.xml.namespace.QName; 76.16 76.17 /** 76.18 @@ -87,12 +88,19 @@ 76.19 } 76.20 HashSet<String> elementLocalNames = new HashSet<String>(); 76.21 for (Field field : getAllFields(contentClass)) { 76.22 + XmlElementWrapper xmlElemWrapper = field.getAnnotation(XmlElementWrapper.class); 76.23 XmlElement xmlElem = field.getAnnotation(XmlElement.class); 76.24 XmlElementRef xmlElemRef = field.getAnnotation(XmlElementRef.class); 76.25 String fieldName = field.getName().toLowerCase(); 76.26 String namespace = ""; 76.27 String localName = field.getName(); 76.28 - if (xmlElem != null) { 76.29 + if (xmlElemWrapper != null) { 76.30 + namespace = xmlElemWrapper.namespace(); 76.31 + if (xmlElemWrapper.name() != null && !xmlElemWrapper.name().equals("") 76.32 + && !xmlElemWrapper.name().equals("##default")) { 76.33 + localName = xmlElemWrapper.name(); 76.34 + } 76.35 + }else if (xmlElem != null) { 76.36 namespace = xmlElem.namespace(); 76.37 if (xmlElem.name() != null && !xmlElem.name().equals("") 76.38 && !xmlElem.name().equals("##default")) {
77.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/transport/http/HttpAdapter.java Thu May 30 10:58:13 2013 -0700 77.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/transport/http/HttpAdapter.java Wed Jun 12 14:47:09 2013 +0100 77.3 @@ -25,14 +25,34 @@ 77.4 77.5 package com.sun.xml.internal.ws.transport.http; 77.6 77.7 +import java.io.ByteArrayOutputStream; 77.8 +import java.io.IOException; 77.9 +import java.io.InputStream; 77.10 +import java.io.OutputStream; 77.11 +import java.io.OutputStreamWriter; 77.12 +import java.io.PrintWriter; 77.13 +import java.net.HttpURLConnection; 77.14 +import java.util.Collections; 77.15 +import java.util.HashMap; 77.16 +import java.util.List; 77.17 +import java.util.Map; 77.18 +import java.util.Map.Entry; 77.19 +import java.util.TreeMap; 77.20 +import java.util.logging.Level; 77.21 +import java.util.logging.Logger; 77.22 + 77.23 +import javax.xml.ws.Binding; 77.24 +import javax.xml.ws.WebServiceException; 77.25 +import javax.xml.ws.http.HTTPBinding; 77.26 + 77.27 import com.oracle.webservices.internal.api.message.PropertySet; 77.28 import com.sun.istack.internal.NotNull; 77.29 import com.sun.istack.internal.Nullable; 77.30 +import com.sun.xml.internal.ws.api.Component; 77.31 +import com.sun.xml.internal.ws.api.EndpointAddress; 77.32 import com.sun.xml.internal.ws.api.SOAPVersion; 77.33 +import com.sun.xml.internal.ws.api.addressing.AddressingVersion; 77.34 import com.sun.xml.internal.ws.api.addressing.NonAnonymousResponseProcessor; 77.35 -import com.sun.xml.internal.ws.api.addressing.AddressingVersion; 77.36 -import com.sun.xml.internal.ws.api.EndpointAddress; 77.37 -import com.sun.xml.internal.ws.api.Component; 77.38 import com.sun.xml.internal.ws.api.ha.HaInfo; 77.39 import com.sun.xml.internal.ws.api.message.ExceptionHasMessage; 77.40 import com.sun.xml.internal.ws.api.message.Message; 77.41 @@ -56,29 +76,13 @@ 77.42 import com.sun.xml.internal.ws.util.ByteArrayBuffer; 77.43 import com.sun.xml.internal.ws.util.Pool; 77.44 77.45 -import javax.xml.ws.Binding; 77.46 -import javax.xml.ws.WebServiceException; 77.47 -import javax.xml.ws.http.HTTPBinding; 77.48 - 77.49 -import java.io.ByteArrayOutputStream; 77.50 -import java.io.IOException; 77.51 -import java.io.InputStream; 77.52 -import java.io.OutputStream; 77.53 -import java.io.OutputStreamWriter; 77.54 -import java.io.PrintWriter; 77.55 -import java.net.HttpURLConnection; 77.56 -import java.util.*; 77.57 -import java.util.Map.Entry; 77.58 -import java.util.logging.Level; 77.59 -import java.util.logging.Logger; 77.60 - 77.61 77.62 /** 77.63 - * {@link Adapter} that receives messages in HTTP. 77.64 + * {@link com.sun.xml.internal.ws.api.server.Adapter} that receives messages in HTTP. 77.65 * 77.66 * <p> 77.67 * This object also assigns unique query string (such as "xsd=1") to 77.68 - * each {@link SDDocument} so that they can be served by HTTP GET requests. 77.69 + * each {@link com.sun.xml.internal.ws.api.server.SDDocument} so that they can be served by HTTP GET requests. 77.70 * 77.71 * @author Kohsuke Kawaguchi 77.72 * @author Jitendra Kotamraju 77.73 @@ -86,10 +90,10 @@ 77.74 public class HttpAdapter extends Adapter<HttpAdapter.HttpToolkit> { 77.75 77.76 /** 77.77 - * {@link SDDocument}s keyed by the query string like "?abc". 77.78 + * {@link com.sun.xml.internal.ws.api.server.SDDocument}s keyed by the query string like "?abc". 77.79 * Used for serving documents via HTTP GET. 77.80 * 77.81 - * Empty if the endpoint doesn't have {@link ServiceDefinition}. 77.82 + * Empty if the endpoint doesn't have {@link com.sun.xml.internal.ws.api.server.ServiceDefinition}. 77.83 * Read-only. 77.84 */ 77.85 protected Map<String,SDDocument> wsdls; 77.86 @@ -109,7 +113,7 @@ 77.87 public final HttpAdapterList<? extends HttpAdapter> owner; 77.88 77.89 /** 77.90 - * Servlet URL pattern with which this {@link HttpAdapter} is associated. 77.91 + * Servlet URL pattern with which this {@link com.sun.xml.internal.ws.transport.http.HttpAdapter} is associated. 77.92 */ 77.93 public final String urlPattern; 77.94 77.95 @@ -118,10 +122,10 @@ 77.96 protected boolean disableJreplicaCookie = false; 77.97 77.98 /** 77.99 - * Creates a lone {@link HttpAdapter} that does not know of any other 77.100 - * {@link HttpAdapter}s. 77.101 + * Creates a lone {@link com.sun.xml.internal.ws.transport.http.HttpAdapter} that does not know of any other 77.102 + * {@link com.sun.xml.internal.ws.transport.http.HttpAdapter}s. 77.103 * 77.104 - * This is convenient for creating an {@link HttpAdapter} for an environment 77.105 + * This is convenient for creating an {@link com.sun.xml.internal.ws.transport.http.HttpAdapter} for an environment 77.106 * where they don't know each other (such as JavaSE deployment.) 77.107 * 77.108 * @param endpoint web service endpoint 77.109 @@ -137,11 +141,14 @@ 77.110 * @param endpoint web service endpoint 77.111 * @param owner list of related adapters 77.112 */ 77.113 - protected HttpAdapter(WSEndpoint endpoint, HttpAdapterList<? extends HttpAdapter> owner) { 77.114 + protected HttpAdapter(WSEndpoint endpoint, 77.115 + HttpAdapterList<? extends HttpAdapter> owner) { 77.116 this(endpoint,owner,null); 77.117 } 77.118 77.119 - protected HttpAdapter(WSEndpoint endpoint, HttpAdapterList<? extends HttpAdapter> owner, String urlPattern) { 77.120 + protected HttpAdapter(WSEndpoint endpoint, 77.121 + HttpAdapterList<? extends HttpAdapter> owner, 77.122 + String urlPattern) { 77.123 super(endpoint); 77.124 this.owner = owner; 77.125 this.urlPattern = urlPattern; 77.126 @@ -184,7 +191,7 @@ 77.127 77.128 int wsdlnum = 1; 77.129 int xsdnum = 1; 77.130 - for (Map.Entry<String, SDDocument> e : systemIds.entrySet()) { 77.131 + for (Entry<String, SDDocument> e : systemIds.entrySet()) { 77.132 SDDocument sdd = e.getValue(); 77.133 if (sdd.isWSDL()) { 77.134 wsdls.put("wsdl="+(wsdlnum++),sdd); 77.135 @@ -231,12 +238,12 @@ 77.136 * and "connection" here is an HTTP connection. 77.137 * 77.138 * <p> 77.139 - * To populate a request {@link Packet} with more info, 77.140 + * To populate a request {@link com.sun.xml.internal.ws.api.message.Packet} with more info, 77.141 * define {@link com.oracle.webservices.internal.api.message.PropertySet.Property properties} on 77.142 * {@link WSHTTPConnection}. 77.143 * 77.144 * @param connection to receive/send HTTP messages for web service endpoints 77.145 - * @throws IOException when I/O errors happen 77.146 + * @throws java.io.IOException when I/O errors happen 77.147 */ 77.148 public void handle(@NotNull WSHTTPConnection connection) throws IOException { 77.149 if (handleGet(connection)) { 77.150 @@ -338,7 +345,7 @@ 77.151 77.152 /** 77.153 * Some stacks may send non WS-I BP 1.2 conforming SoapAction. 77.154 - * Make sure SOAPAction is quoted as {@link Packet#soapAction} expects quoted soapAction value. 77.155 + * Make sure SOAPAction is quoted as {@link com.sun.xml.internal.ws.api.message.Packet#soapAction} expects quoted soapAction value. 77.156 * 77.157 * @param soapAction SoapAction HTTP Header 77.158 * @return quoted SOAPAction value 77.159 @@ -385,7 +392,7 @@ 77.160 77.161 private void encodePacket(@NotNull Packet packet, @NotNull WSHTTPConnection con, @NotNull Codec codec) throws IOException { 77.162 if (isNonAnonymousUri(packet.endpointAddress) && packet.getMessage() != null) { 77.163 - try { 77.164 + try { 77.165 // Message is targeted to non-anonymous response endpoint. 77.166 // After call to non-anonymous processor, typically, packet.getMessage() will be null 77.167 // however, processors could use this pattern to modify the response sent on the back-channel, 77.168 @@ -413,9 +420,18 @@ 77.169 if (con.getStatus() == 0) { 77.170 con.setStatus(WSHTTPConnection.ONEWAY); 77.171 } 77.172 + OutputStream os = con.getProtocol().contains("1.1") ? con.getOutput() : new Http10OutputStream(con); 77.173 + if (dump || LOGGER.isLoggable(Level.FINER)) { 77.174 + ByteArrayBuffer buf = new ByteArrayBuffer(); 77.175 + codec.encode(packet, buf); 77.176 + dump(buf, "HTTP response " + con.getStatus(), con.getResponseHeaders()); 77.177 + buf.writeTo(os); 77.178 + } else { 77.179 + codec.encode(packet, os); 77.180 + } 77.181 // close the response channel now 77.182 try { 77.183 - con.getOutput().close(); // no payload 77.184 + os.close(); // no payload 77.185 } catch (IOException e) { 77.186 throw new WebServiceException(e); 77.187 } 77.188 @@ -430,10 +446,17 @@ 77.189 } 77.190 77.191 if (isClientErrorStatus(con.getStatus())) { 77.192 - OutputStream os = con.getOutput(); 77.193 - writeClientError(con.getStatus(), os, packet); 77.194 - os.close(); 77.195 - return; 77.196 + OutputStream os = con.getOutput(); 77.197 + if (dump || LOGGER.isLoggable(Level.FINER)) { 77.198 + ByteArrayBuffer buf = new ByteArrayBuffer(); 77.199 + writeClientError(con.getStatus(), buf, packet); 77.200 + dump(buf, "HTTP response " + con.getStatus(), con.getResponseHeaders()); 77.201 + buf.writeTo(os); 77.202 + } else { 77.203 + writeClientError(con.getStatus(), os, packet); 77.204 + } 77.205 + os.close(); 77.206 + return; 77.207 } 77.208 77.209 ContentType contentType = codec.getStaticContentType(packet); 77.210 @@ -634,6 +657,15 @@ 77.211 // no-op 77.212 } 77.213 77.214 + if (dump || LOGGER.isLoggable(Level.FINER)) { 77.215 + try { 77.216 + ByteArrayBuffer buf = new ByteArrayBuffer(); 77.217 + dump(buf, "HTTP response " + con.getStatus(), con.getResponseHeaders()); 77.218 + } catch (Exception e) { 77.219 + throw new WebServiceException(e.toString(), e); 77.220 + } 77.221 + } 77.222 + 77.223 if (output != null) { 77.224 try { 77.225 output.close(); // no payload 77.226 @@ -671,7 +703,7 @@ 77.227 try { 77.228 packet = head.process(packet, con.getWebServiceContextDelegate(), 77.229 packet.transportBackChannel); 77.230 - } catch(Exception e) { 77.231 + } catch(Throwable e) { 77.232 LOGGER.log(Level.SEVERE, e.getMessage(), e); 77.233 if (!con.isClosed()) { 77.234 writeInternalServerError(con); 77.235 @@ -682,6 +714,9 @@ 77.236 encodePacket(packet, con, codec); 77.237 } finally { 77.238 if (!con.isClosed()) { 77.239 + if (LOGGER.isLoggable(Level.FINE)) { 77.240 + LOGGER.log(Level.FINE, "Closing HTTP Connection with status: {0}", con.getStatus()); 77.241 + } 77.242 con.close(); 77.243 } 77.244 } 77.245 @@ -710,7 +745,7 @@ 77.246 * @param con 77.247 * The connection to which the data will be sent. 77.248 * 77.249 - * @throws IOException when I/O errors happen 77.250 + * @throws java.io.IOException when I/O errors happen 77.251 */ 77.252 public void publishWSDL(@NotNull WSHTTPConnection con) throws IOException { 77.253 con.getInput().close(); 77.254 @@ -800,7 +835,7 @@ 77.255 } 77.256 } 77.257 77.258 - private void dump(ByteArrayBuffer buf, String caption, Map<String, List<String>> headers) throws IOException { 77.259 + private static void dump(ByteArrayBuffer buf, String caption, Map<String, List<String>> headers) throws IOException { 77.260 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 77.261 PrintWriter pw = new PrintWriter(baos, true); 77.262 pw.println("---["+caption +"]---");
78.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/ws/util/version.properties Thu May 30 10:58:13 2013 -0700 78.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/ws/util/version.properties Wed Jun 12 14:47:09 2013 +0100 78.3 @@ -23,7 +23,7 @@ 78.4 # questions. 78.5 # 78.6 78.7 -build-id=2.2.9-b13941 78.8 -build-version=JAX-WS RI 2.2.9-b13941 78.9 +build-id=2.2.9-b14027 78.10 +build-version=JAX-WS RI 2.2.9-b14027 78.11 major-version=2.2.9 78.12 -svn-revision=unknown 78.13 +svn-revision=14027
79.1 --- a/src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java Thu May 30 10:58:13 2013 -0700 79.2 +++ b/src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java Wed Jun 12 14:47:09 2013 +0100 79.3 @@ -1,5 +1,5 @@ 79.4 /* 79.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. 79.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 79.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 79.8 * 79.9 * This code is free software; you can redistribute it and/or modify it 79.10 @@ -39,20 +39,17 @@ 79.11 * or could not be instantiated 79.12 */ 79.13 private static Object newInstance(String className, 79.14 - ClassLoader classLoader, 79.15 - String defaultFactoryClass) 79.16 - throws SOAPException 79.17 + ClassLoader classLoader) 79.18 + throws SOAPException 79.19 { 79.20 try { 79.21 - Class spiClass = safeLoadClass(className, classLoader, defaultFactoryClass); 79.22 + Class spiClass = safeLoadClass(className, classLoader); 79.23 return spiClass.newInstance(); 79.24 + 79.25 } catch (ClassNotFoundException x) { 79.26 - throw new SOAPException( 79.27 - "Provider " + className + " not found", x); 79.28 + throw new SOAPException("Provider " + className + " not found", x); 79.29 } catch (Exception x) { 79.30 - throw new SOAPException( 79.31 - "Provider " + className + " could not be instantiated: " + x, 79.32 - x); 79.33 + throw new SOAPException("Provider " + className + " could not be instantiated: " + x, x); 79.34 } 79.35 } 79.36 79.37 @@ -70,7 +67,7 @@ 79.38 * @exception SOAPException if there is a SOAP error 79.39 */ 79.40 static Object find(String factoryId) 79.41 - throws SOAPException 79.42 + throws SOAPException 79.43 { 79.44 return find(factoryId, null, false); 79.45 } 79.46 @@ -85,7 +82,7 @@ 79.47 * This method is package private so that this code can be shared. 79.48 * 79.49 * @return the <code>Class</code> object of the specified message factory; 79.50 - * may not be <code>null</code> 79.51 + * may be <code>null</code> 79.52 * 79.53 * @param factoryId the name of the factory to find, which is 79.54 * a system property 79.55 @@ -96,7 +93,7 @@ 79.56 * @exception SOAPException if there is a SOAP error 79.57 */ 79.58 static Object find(String factoryId, String fallbackClassName) 79.59 - throws SOAPException 79.60 + throws SOAPException 79.61 { 79.62 return find(factoryId, fallbackClassName, true); 79.63 } 79.64 @@ -108,7 +105,7 @@ 79.65 * is <code>true</code>. The arguments supplied must be used in order 79.66 * If using the first argument is successful, the second one will not 79.67 * be used. Note the default class name may be needed even if fallback 79.68 - * is not to be attempted, so certain error condiitons can be handled. 79.69 + * is not to be attempted, so certain error conditions can be handled. 79.70 * <P> 79.71 * This method is package private so that this code can be shared. 79.72 * 79.73 @@ -126,7 +123,7 @@ 79.74 * @exception SOAPException if there is a SOAP error 79.75 */ 79.76 static Object find(String factoryId, String defaultClassName, 79.77 - boolean tryFallback) throws SOAPException { 79.78 + boolean tryFallback) throws SOAPException { 79.79 ClassLoader classLoader; 79.80 try { 79.81 classLoader = Thread.currentThread().getContextClassLoader(); 79.82 @@ -137,9 +134,9 @@ 79.83 // Use the system property first 79.84 try { 79.85 String systemProp = 79.86 - System.getProperty( factoryId ); 79.87 + System.getProperty( factoryId ); 79.88 if( systemProp!=null) { 79.89 - return newInstance(systemProp, classLoader, defaultClassName); 79.90 + return newInstance(systemProp, classLoader); 79.91 } 79.92 } catch (SecurityException se) { 79.93 } 79.94 @@ -148,13 +145,13 @@ 79.95 try { 79.96 String javah=System.getProperty( "java.home" ); 79.97 String configFile = javah + File.separator + 79.98 - "lib" + File.separator + "jaxm.properties"; 79.99 + "lib" + File.separator + "jaxm.properties"; 79.100 File f=new File( configFile ); 79.101 if( f.exists()) { 79.102 Properties props=new Properties(); 79.103 props.load( new FileInputStream(f)); 79.104 String factoryClassName = props.getProperty(factoryId); 79.105 - return newInstance(factoryClassName, classLoader, defaultClassName); 79.106 + return newInstance(factoryClassName, classLoader); 79.107 } 79.108 } catch(Exception ex ) { 79.109 } 79.110 @@ -171,14 +168,14 @@ 79.111 79.112 if( is!=null ) { 79.113 BufferedReader rd = 79.114 - new BufferedReader(new InputStreamReader(is, "UTF-8")); 79.115 + new BufferedReader(new InputStreamReader(is, "UTF-8")); 79.116 79.117 String factoryClassName = rd.readLine(); 79.118 rd.close(); 79.119 79.120 if (factoryClassName != null && 79.121 - ! "".equals(factoryClassName)) { 79.122 - return newInstance(factoryClassName, classLoader, defaultClassName); 79.123 + ! "".equals(factoryClassName)) { 79.124 + return newInstance(factoryClassName, classLoader); 79.125 } 79.126 } 79.127 } catch( Exception ex ) { 79.128 @@ -192,9 +189,9 @@ 79.129 // (built in) factory if specified. 79.130 if (defaultClassName == null) { 79.131 throw new SOAPException( 79.132 - "Provider for " + factoryId + " cannot be found", null); 79.133 + "Provider for " + factoryId + " cannot be found", null); 79.134 } 79.135 - return newInstance(defaultClassName, classLoader, defaultClassName); 79.136 + return newInstance(defaultClassName, classLoader); 79.137 } 79.138 79.139 /** 79.140 @@ -204,7 +201,7 @@ 79.141 * Class.forName() on it so it will be loaded by the bootstrap class loader. 79.142 */ 79.143 private static Class safeLoadClass(String className, 79.144 - ClassLoader classLoader, String defaultFactoryClass) 79.145 + ClassLoader classLoader) 79.146 throws ClassNotFoundException { 79.147 try { 79.148 // make sure that the current thread has an access to the package of the given name. 79.149 @@ -221,12 +218,19 @@ 79.150 else 79.151 return classLoader.loadClass(className); 79.152 } catch (SecurityException se) { 79.153 - // The FactoryFinder is in the bootstrap class loader, so 79.154 - // the following should work, but we only attempt it 79.155 - // if it the the default class. 79.156 - if (className.equals(defaultFactoryClass)) 79.157 + // (only) default implementation can be loaded 79.158 + // using bootstrap class loader: 79.159 + if (isDefaultImplementation(className)) 79.160 return Class.forName(className); 79.161 + 79.162 throw se; 79.163 } 79.164 } 79.165 + 79.166 + private static boolean isDefaultImplementation(String className) { 79.167 + return MessageFactory.DEFAULT_MESSAGE_FACTORY.equals(className) || 79.168 + SOAPFactory.DEFAULT_SOAP_FACTORY.equals(className) || 79.169 + SOAPConnectionFactory.DEFAULT_SOAP_CONNECTION_FACTORY.equals(className) || 79.170 + SAAJMetaFactory.DEFAULT_META_FACTORY_CLASS.equals(className); 79.171 + } 79.172 }
80.1 --- a/src/share/jaxws_classes/javax/xml/soap/MessageFactory.java Thu May 30 10:58:13 2013 -0700 80.2 +++ b/src/share/jaxws_classes/javax/xml/soap/MessageFactory.java Wed Jun 12 14:47:09 2013 +0100 80.3 @@ -1,5 +1,5 @@ 80.4 /* 80.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. 80.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 80.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 80.8 * 80.9 * This code is free software; you can redistribute it and/or modify it 80.10 @@ -66,7 +66,7 @@ 80.11 */ 80.12 public abstract class MessageFactory { 80.13 80.14 - static private final String DEFAULT_MESSAGE_FACTORY 80.15 + static final String DEFAULT_MESSAGE_FACTORY 80.16 = "com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl"; 80.17 80.18 static private final String MESSAGE_FACTORY_PROPERTY 80.19 @@ -96,16 +96,22 @@ 80.20 * @see SAAJMetaFactory 80.21 */ 80.22 80.23 - public static MessageFactory newInstance() 80.24 - throws SOAPException { 80.25 + public static MessageFactory newInstance() throws SOAPException { 80.26 + 80.27 + 80.28 try { 80.29 - MessageFactory factory = (MessageFactory) 80.30 + MessageFactory factory = (MessageFactory) FactoryFinder.find( 80.31 + MESSAGE_FACTORY_PROPERTY, 80.32 + DEFAULT_MESSAGE_FACTORY, 80.33 + false); 80.34 FactoryFinder.find(MESSAGE_FACTORY_PROPERTY, 80.35 DEFAULT_MESSAGE_FACTORY, false); 80.36 80.37 - if (factory != null) 80.38 + if (factory != null) { 80.39 return factory; 80.40 + } 80.41 return newInstance(SOAPConstants.SOAP_1_1_PROTOCOL); 80.42 + 80.43 } catch (Exception ex) { 80.44 throw new SOAPException( 80.45 "Unable to create message factory for SOAP: "
81.1 --- a/src/share/jaxws_classes/javax/xml/soap/SAAJMetaFactory.java Thu May 30 10:58:13 2013 -0700 81.2 +++ b/src/share/jaxws_classes/javax/xml/soap/SAAJMetaFactory.java Wed Jun 12 14:47:09 2013 +0100 81.3 @@ -1,5 +1,5 @@ 81.4 /* 81.5 - * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved. 81.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 81.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 81.8 * 81.9 * This code is free software; you can redistribute it and/or modify it 81.10 @@ -44,7 +44,7 @@ 81.11 public abstract class SAAJMetaFactory { 81.12 static private final String META_FACTORY_CLASS_PROPERTY = 81.13 "javax.xml.soap.MetaFactory"; 81.14 - static private final String DEFAULT_META_FACTORY_CLASS = 81.15 + static final String DEFAULT_META_FACTORY_CLASS = 81.16 "com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl"; 81.17 81.18 /**
82.1 --- a/src/share/jaxws_classes/javax/xml/soap/SOAPConnectionFactory.java Thu May 30 10:58:13 2013 -0700 82.2 +++ b/src/share/jaxws_classes/javax/xml/soap/SOAPConnectionFactory.java Wed Jun 12 14:47:09 2013 +0100 82.3 @@ -1,5 +1,5 @@ 82.4 /* 82.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. 82.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 82.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 82.8 * 82.9 * This code is free software; you can redistribute it and/or modify it 82.10 @@ -38,7 +38,7 @@ 82.11 * A constant representing the default value for a <code>SOAPConnection</code> 82.12 * object. The default is the point-to-point SOAP connection. 82.13 */ 82.14 - static private final String DEFAULT_SOAP_CONNECTION_FACTORY 82.15 + static final String DEFAULT_SOAP_CONNECTION_FACTORY 82.16 = "com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnectionFactory"; 82.17 82.18 /**
83.1 --- a/src/share/jaxws_classes/javax/xml/soap/SOAPFactory.java Thu May 30 10:58:13 2013 -0700 83.2 +++ b/src/share/jaxws_classes/javax/xml/soap/SOAPFactory.java Wed Jun 12 14:47:09 2013 +0100 83.3 @@ -1,5 +1,5 @@ 83.4 /* 83.5 - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. 83.6 + * Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved. 83.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 83.8 * 83.9 * This code is free software; you can redistribute it and/or modify it 83.10 @@ -54,11 +54,9 @@ 83.11 "javax.xml.soap.SOAPFactory"; 83.12 83.13 /** 83.14 - * A constant representing the name of the default <code>SOAPFactory</code> 83.15 - * factory class to be used if another cannot be found. 83.16 - * a <code>SOAPFactory</code> implementation class. 83.17 + * Class name of default <code>SOAPFactory</code> implementation. 83.18 */ 83.19 - static private final String DEFAULT_SOAP_FACTORY 83.20 + static final String DEFAULT_SOAP_FACTORY 83.21 = "com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl"; 83.22 83.23 /**