8013021: Rebase 8005432 & 8003542 against the latest jdk8/jaxws

Wed, 12 Jun 2013 14:47:09 +0100

author
mkos
date
Wed, 12 Jun 2013 14:47:09 +0100
changeset 384
8f2986ff0235
parent 380
7386eca865e1
child 385
c4191a46e3eb

8013021: Rebase 8005432 & 8003542 against the latest jdk8/jaxws
8003542: Improve processing of MTOM attachments
8005432: Update access to JAX-WS
Reviewed-by: mullan

src/share/jaxws_classes/com/oracle/webservices/internal/api/databinding/DatabindingModeFeature.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/oracle/webservices/internal/api/databinding/ExternalMetadataFeature.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/oracle/webservices/internal/api/message/BaseDistributedPropertySet.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/oracle/webservices/internal/impl/encoding/StreamDecoderImpl.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/oracle/xmlns/internal/webservices/jaxws_databinding/package-info.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_de.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_es.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_fr.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_it.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_ja.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_ko.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_pt_BR.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_zh_CN.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/MessageBundle_zh_TW.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/gen/config/Classes.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/gen/config/Config.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/jxc/gen/config/Schema.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/ws/version.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_de.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_es.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_fr.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_it.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_ja.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_ko.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_pt_BR.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_zh_CN.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/tools/internal/xjc/MessageBundle_zh_TW.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/JAXBContextImpl.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/bind/v2/schemagen/XmlSchemaGenerator.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/CommonResourceBundle.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/Decoder.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/BASE64EncodingAlgorithm.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/BooleanEncodingAlgorithm.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/BuiltInEncodingAlgorithm.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/FloatEncodingAlgorithm.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/algorithm/HexadecimalEncodingAlgorithm.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/dom/DOMDocumentParser.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/resources/ResourceBundle.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/sax/AttributesHolder.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/sax/SAXDocumentParser.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/StAXDocumentParser.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/events/StartElementEvent.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/stax/factory/StAXOutputFactory.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/tools/SAXEventSerializer.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/fastinfoset/tools/TransformInputOutput.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/DataHead.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/api/databinding/DatabindingConfig.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/api/message/saaj/SAAJFactory.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/api/pipe/Fiber.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/XMLStreamWriterFactory.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/assembler/MetroConfigLoader.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/assembler/TubeCreator.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/client/MonitorRootClient.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/client/SEIPortInfo.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/client/dispatch/DispatchImpl.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/SEIStub.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/SyncMethodHandler.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/db/DatabindingFactoryImpl.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/db/DatabindingImpl.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/encoding/MtomCodec.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/message/stream/StreamMessage.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/model/RuntimeModeler.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/model/WrapperBeanGenerator.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/model/wsdl/WSDLBoundOperationImpl.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/model/wsdl/WSDLOperationImpl.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/resources/DispatchMessages.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/resources/dispatch.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/server/EndpointFactory.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/spi/db/BindingInfo.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/spi/db/JAXBWrapperAccessor.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/transport/http/HttpAdapter.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/com/sun/xml/internal/ws/util/version.properties file | annotate | diff | comparison | revisions
src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/javax/xml/soap/MessageFactory.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/javax/xml/soap/SAAJMetaFactory.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/javax/xml/soap/SOAPConnectionFactory.java file | annotate | diff | comparison | revisions
src/share/jaxws_classes/javax/xml/soap/SOAPFactory.java file | annotate | diff | comparison | revisions
     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      /**

mercurial