src/share/jaxws_classes/com/sun/xml/internal/xsom/util/DomAnnotationParserFactory.java

changeset 558
d950f4a0753b
parent 515
6cd506508147
child 637
9c07ef4934dd
     1.1 --- a/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/DomAnnotationParserFactory.java	Fri Feb 14 10:53:55 2014 +0100
     1.2 +++ b/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/DomAnnotationParserFactory.java	Fri Feb 14 11:13:45 2014 +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, 2014, 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 @@ -63,10 +63,15 @@
    1.11      }
    1.12  
    1.13      public AnnotationParser create(boolean disableSecureProcessing) {
    1.14 -        return new AnnotationParserImpl();
    1.15 +        return new AnnotationParserImpl(disableSecureProcessing);
    1.16      }
    1.17  
    1.18 -    private static final SAXTransformerFactory stf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
    1.19 +    private static final ContextClassloaderLocal<SAXTransformerFactory> stf = new ContextClassloaderLocal<SAXTransformerFactory>() {
    1.20 +        @Override
    1.21 +        protected SAXTransformerFactory initialValue() throws Exception {
    1.22 +            return (SAXTransformerFactory) SAXTransformerFactory.newInstance();
    1.23 +        }
    1.24 +    };
    1.25  
    1.26      private static class AnnotationParserImpl extends AnnotationParser {
    1.27  
    1.28 @@ -82,8 +87,9 @@
    1.29  
    1.30          AnnotationParserImpl(boolean disableSecureProcessing) {
    1.31              try {
    1.32 -                transformer = stf.newTransformerHandler();
    1.33 -                stf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, disableSecureProcessing);
    1.34 +                SAXTransformerFactory factory = stf.get();
    1.35 +                factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, disableSecureProcessing);
    1.36 +                transformer = factory.newTransformerHandler();
    1.37              } catch (TransformerConfigurationException e) {
    1.38                  throw new Error(e); // impossible
    1.39              }

mercurial