< prev index next >

src/java.xml.ws/share/classes/com/sun/xml/internal/ws/api/streaming/XMLStreamReaderFactory.java

Print this page




 465          int mMaxElementDepth = 1000;
 466          long mMaxElementCount = Long.MAX_VALUE;
 467          long mMaxCharacters = Long.MAX_VALUE;
 468          */
 469 
 470         private int maxAttributesPerElement = DEFAULT_MAX_ATTRIBUTES_PER_ELEMENT;
 471         private int maxAttributeSize = DEFAULT_MAX_ATTRIBUTE_SIZE;
 472         private int maxChildrenPerElement = DEFAULT_MAX_CHILDREN_PER_ELEMENT;
 473         private int maxElementDepth = DEFAULT_MAX_ELEMENT_DEPTH;
 474         private long maxElementCount = DEFAULT_MAX_ELEMENT_COUNT;
 475         private long maxCharacters = DEFAULT_MAX_CHARACTERS;
 476 
 477         // Note: this is a copy from com.ctc.wstx.api.WstxInputProperties, to be removed in the future
 478         private static final java.lang.String P_MAX_ATTRIBUTES_PER_ELEMENT = "com.ctc.wstx.maxAttributesPerElement";
 479         private static final java.lang.String P_MAX_ATTRIBUTE_SIZE = "com.ctc.wstx.maxAttributeSize";
 480         private static final java.lang.String P_MAX_CHILDREN_PER_ELEMENT = "com.ctc.wstx.maxChildrenPerElement";
 481         private static final java.lang.String P_MAX_ELEMENT_COUNT = "com.ctc.wstx.maxElementCount";
 482         private static final java.lang.String P_MAX_ELEMENT_DEPTH = "com.ctc.wstx.maxElementDepth";
 483         private static final java.lang.String P_MAX_CHARACTERS = "com.ctc.wstx.maxCharacters";
 484         private static final java.lang.String P_INTERN_NSURIS = "org.codehaus.stax2.internNsUris";

 485 
 486         public Woodstox(XMLInputFactory xif) {
 487             super(xif);
 488 
 489             if (xif.isPropertySupported(P_INTERN_NSURIS)) {
 490                 xif.setProperty(P_INTERN_NSURIS, true);
 491                 if (LOGGER.isLoggable(Level.FINE)) {
 492                     LOGGER.log(Level.FINE, P_INTERN_NSURIS + " is {0}", true);
 493                 }
 494             }
 495 
 496             if (xif.isPropertySupported(P_MAX_ATTRIBUTES_PER_ELEMENT)) {
 497                 maxAttributesPerElement = Integer.valueOf(buildIntegerValue(
 498                     PROPERTY_MAX_ATTRIBUTES_PER_ELEMENT, DEFAULT_MAX_ATTRIBUTES_PER_ELEMENT)
 499                 );
 500                 xif.setProperty(P_MAX_ATTRIBUTES_PER_ELEMENT, maxAttributesPerElement);
 501                 if (LOGGER.isLoggable(Level.FINE)) {
 502                     LOGGER.log(Level.FINE, P_MAX_ATTRIBUTES_PER_ELEMENT + " is {0}", maxAttributesPerElement);
 503                 }
 504             }


 535 
 536             if (xif.isPropertySupported(P_MAX_ELEMENT_COUNT)) {
 537                 maxElementCount = Long.valueOf(buildLongValue(
 538                     PROPERTY_MAX_ELEMENT_COUNT, DEFAULT_MAX_ELEMENT_COUNT)
 539                 );
 540                 xif.setProperty(P_MAX_ELEMENT_COUNT, maxElementCount);
 541                 if (LOGGER.isLoggable(Level.FINE)) {
 542                     LOGGER.log(Level.FINE, P_MAX_ELEMENT_COUNT + " is {0}", maxElementCount);
 543                 }
 544             }
 545 
 546             if (xif.isPropertySupported(P_MAX_CHARACTERS)) {
 547                 maxCharacters = Long.valueOf(buildLongValue(
 548                     PROPERTY_MAX_CHARACTERS, DEFAULT_MAX_CHARACTERS)
 549                 );
 550                 xif.setProperty(P_MAX_CHARACTERS, maxCharacters);
 551                 if (LOGGER.isLoggable(Level.FINE)) {
 552                     LOGGER.log(Level.FINE, P_MAX_CHARACTERS + " is {0}", maxCharacters);
 553                 }
 554             }













 555         }
 556 
 557         @Override
 558         public XMLStreamReader doCreate(String systemId, InputStream in, boolean rejectDTDs) {
 559             return super.doCreate(systemId, in, rejectDTDs);
 560         }
 561 
 562         @Override
 563         public XMLStreamReader doCreate(String systemId, Reader in, boolean rejectDTDs) {
 564             return super.doCreate(systemId, in, rejectDTDs);
 565         }
 566     }
 567 
 568     private static int buildIntegerValue(String propertyName, int defaultValue) {
 569         String propVal = System.getProperty(propertyName);
 570         if (propVal != null && propVal.length() > 0) {
 571             try {
 572                 Integer value = Integer.parseInt(propVal);
 573                 if (value > 0) {
 574                     // return with the value in System property




 465          int mMaxElementDepth = 1000;
 466          long mMaxElementCount = Long.MAX_VALUE;
 467          long mMaxCharacters = Long.MAX_VALUE;
 468          */
 469 
 470         private int maxAttributesPerElement = DEFAULT_MAX_ATTRIBUTES_PER_ELEMENT;
 471         private int maxAttributeSize = DEFAULT_MAX_ATTRIBUTE_SIZE;
 472         private int maxChildrenPerElement = DEFAULT_MAX_CHILDREN_PER_ELEMENT;
 473         private int maxElementDepth = DEFAULT_MAX_ELEMENT_DEPTH;
 474         private long maxElementCount = DEFAULT_MAX_ELEMENT_COUNT;
 475         private long maxCharacters = DEFAULT_MAX_CHARACTERS;
 476 
 477         // Note: this is a copy from com.ctc.wstx.api.WstxInputProperties, to be removed in the future
 478         private static final java.lang.String P_MAX_ATTRIBUTES_PER_ELEMENT = "com.ctc.wstx.maxAttributesPerElement";
 479         private static final java.lang.String P_MAX_ATTRIBUTE_SIZE = "com.ctc.wstx.maxAttributeSize";
 480         private static final java.lang.String P_MAX_CHILDREN_PER_ELEMENT = "com.ctc.wstx.maxChildrenPerElement";
 481         private static final java.lang.String P_MAX_ELEMENT_COUNT = "com.ctc.wstx.maxElementCount";
 482         private static final java.lang.String P_MAX_ELEMENT_DEPTH = "com.ctc.wstx.maxElementDepth";
 483         private static final java.lang.String P_MAX_CHARACTERS = "com.ctc.wstx.maxCharacters";
 484         private static final java.lang.String P_INTERN_NSURIS = "org.codehaus.stax2.internNsUris";
 485         private static final java.lang.String P_RETURN_NULL_FOR_DEFAULT_NAMESPACE = "com.ctc.wstx.returnNullForDefaultNamespace";
 486 
 487         public Woodstox(XMLInputFactory xif) {
 488             super(xif);
 489 
 490             if (xif.isPropertySupported(P_INTERN_NSURIS)) {
 491                 xif.setProperty(P_INTERN_NSURIS, true);
 492                 if (LOGGER.isLoggable(Level.FINE)) {
 493                     LOGGER.log(Level.FINE, P_INTERN_NSURIS + " is {0}", true);
 494                 }
 495             }
 496 
 497             if (xif.isPropertySupported(P_MAX_ATTRIBUTES_PER_ELEMENT)) {
 498                 maxAttributesPerElement = Integer.valueOf(buildIntegerValue(
 499                     PROPERTY_MAX_ATTRIBUTES_PER_ELEMENT, DEFAULT_MAX_ATTRIBUTES_PER_ELEMENT)
 500                 );
 501                 xif.setProperty(P_MAX_ATTRIBUTES_PER_ELEMENT, maxAttributesPerElement);
 502                 if (LOGGER.isLoggable(Level.FINE)) {
 503                     LOGGER.log(Level.FINE, P_MAX_ATTRIBUTES_PER_ELEMENT + " is {0}", maxAttributesPerElement);
 504                 }
 505             }


 536 
 537             if (xif.isPropertySupported(P_MAX_ELEMENT_COUNT)) {
 538                 maxElementCount = Long.valueOf(buildLongValue(
 539                     PROPERTY_MAX_ELEMENT_COUNT, DEFAULT_MAX_ELEMENT_COUNT)
 540                 );
 541                 xif.setProperty(P_MAX_ELEMENT_COUNT, maxElementCount);
 542                 if (LOGGER.isLoggable(Level.FINE)) {
 543                     LOGGER.log(Level.FINE, P_MAX_ELEMENT_COUNT + " is {0}", maxElementCount);
 544                 }
 545             }
 546 
 547             if (xif.isPropertySupported(P_MAX_CHARACTERS)) {
 548                 maxCharacters = Long.valueOf(buildLongValue(
 549                     PROPERTY_MAX_CHARACTERS, DEFAULT_MAX_CHARACTERS)
 550                 );
 551                 xif.setProperty(P_MAX_CHARACTERS, maxCharacters);
 552                 if (LOGGER.isLoggable(Level.FINE)) {
 553                     LOGGER.log(Level.FINE, P_MAX_CHARACTERS + " is {0}", maxCharacters);
 554                 }
 555             }
 556             //Using try/catch instead of isPropertySupported because Woodstox
 557             //isPropertySupported is not always reliable
 558             try {
 559                 //this is needed to make sure Woodstox behavior is spec compliant for
 560                 //calls to XMLStreamReader.getNamespacePrefix
 561                 xif.setProperty(P_RETURN_NULL_FOR_DEFAULT_NAMESPACE, Boolean.TRUE);
 562                 if (LOGGER.isLoggable(Level.FINE)) {
 563                     LOGGER.log(Level.FINE, P_RETURN_NULL_FOR_DEFAULT_NAMESPACE + " is {0}", xif.getProperty(P_RETURN_NULL_FOR_DEFAULT_NAMESPACE));
 564                 }
 565             } catch (Throwable t) {
 566                 //ignore - this should not happen Woodstox 4.1.2 or later (maybe older version of Woodstox).
 567                 LOGGER.log(Level.WARNING, "Expected property not found in Woodstox input factory: '{0}'", P_RETURN_NULL_FOR_DEFAULT_NAMESPACE);
 568             }
 569         }
 570 
 571         @Override
 572         public XMLStreamReader doCreate(String systemId, InputStream in, boolean rejectDTDs) {
 573             return super.doCreate(systemId, in, rejectDTDs);
 574         }
 575 
 576         @Override
 577         public XMLStreamReader doCreate(String systemId, Reader in, boolean rejectDTDs) {
 578             return super.doCreate(systemId, in, rejectDTDs);
 579         }
 580     }
 581 
 582     private static int buildIntegerValue(String propertyName, int defaultValue) {
 583         String propVal = System.getProperty(propertyName);
 584         if (propVal != null && propVal.length() > 0) {
 585             try {
 586                 Integer value = Integer.parseInt(propVal);
 587                 if (value > 0) {
 588                     // return with the value in System property


< prev index next >