aboutsummaryrefslogtreecommitdiff
path: root/src/com/sun/org/apache/xerces/internal/impl
diff options
context:
space:
mode:
authorjoehw <none@none>2013-10-30 08:58:05 -0700
committerjoehw <none@none>2013-10-30 08:58:05 -0700
commit33d78904616ea5f05634778a120da43660d3c591 (patch)
tree5c32c734a9816e7095b13d93b7ba98788f7c458b /src/com/sun/org/apache/xerces/internal/impl
parent5fbe815791c133ddf5de0cedb99363290467b517 (diff)
downloadjdk8u_jaxp-33d78904616ea5f05634778a120da43660d3c591.tar.gz
8024378: StAX parser shall support JAXP properties
Reviewed-by: dfuchs, lancea
Diffstat (limited to 'src/com/sun/org/apache/xerces/internal/impl')
-rw-r--r--src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java66
-rw-r--r--src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java2
2 files changed, 30 insertions, 38 deletions
diff --git a/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java b/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java
index 600527d..fe1f63f 100644
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java
@@ -569,32 +569,13 @@ public class XMLDocumentFragmentScannerImpl
// xerces features
fReportCdataEvent = componentManager.getFeature(Constants.STAX_REPORT_CDATA_EVENT, true);
-
fSecurityManager = (XMLSecurityManager)componentManager.getProperty(Constants.SECURITY_MANAGER, null);
- fLimitAnalyzer = fSecurityManager.getLimitAnalyzer();
-
- fElementAttributeLimit = (fSecurityManager != null)?
- fSecurityManager.getLimit(XMLSecurityManager.Limit.ELEMENT_ATTRIBUTE_LIMIT):0;
-
fNotifyBuiltInRefs = componentManager.getFeature(NOTIFY_BUILTIN_REFS, false);
Object resolver = componentManager.getProperty(ENTITY_RESOLVER, null);
fExternalSubsetResolver = (resolver instanceof ExternalSubsetResolver) ?
(ExternalSubsetResolver) resolver : null;
- // initialize vars
- fMarkupDepth = 0;
- fCurrentElement = null;
- fElementStack.clear();
- fHasExternalDTD = false;
- fStandaloneSet = false;
- fStandalone = false;
- fInScanContent = false;
- //skipping algorithm
- fShouldSkip = false;
- fAdd = false;
- fSkip = false;
-
//attribute
fReadingAttributes = false;
//xxx: external entities are supported in Xerces
@@ -606,9 +587,6 @@ public class XMLDocumentFragmentScannerImpl
// setup Driver
setScannerState(SCANNER_STATE_CONTENT);
setDriver(fContentDriver);
- fEntityStore = fEntityManager.getEntityStore();
-
- dtdGrammarUtil = null;
// JAXP 1.5 features and properties
XMLSecurityPropertyManager spm = (XMLSecurityPropertyManager)
@@ -617,6 +595,7 @@ public class XMLDocumentFragmentScannerImpl
fStrictURI = componentManager.getFeature(STANDARD_URI_CONFORMANT, false);
+ resetCommon();
//fEntityManager.test();
} // reset(XMLComponentManager)
@@ -630,17 +609,7 @@ public class XMLDocumentFragmentScannerImpl
fNamespaces = ((Boolean)propertyManager.getProperty(XMLInputFactory.IS_NAMESPACE_AWARE)).booleanValue();
fNotifyBuiltInRefs = false ;
- // initialize vars
- fMarkupDepth = 0;
- fCurrentElement = null;
- fShouldSkip = false;
- fAdd = false;
- fSkip = false;
- fElementStack.clear();
//fElementStack2.clear();
- fHasExternalDTD = false;
- fStandaloneSet = false;
- fStandalone = false;
//fReplaceEntityReferences = true;
//fSupportExternalEntities = true;
Boolean bo = (Boolean)propertyManager.getProperty(XMLInputFactoryImpl.IS_REPLACING_ENTITY_REFERENCES);
@@ -661,20 +630,43 @@ public class XMLDocumentFragmentScannerImpl
//we dont need to do this -- nb.
//setScannerState(SCANNER_STATE_CONTENT);
//setDriver(fContentDriver);
- fEntityStore = fEntityManager.getEntityStore();
//fEntityManager.test();
- dtdGrammarUtil = null;
-
// JAXP 1.5 features and properties
XMLSecurityPropertyManager spm = (XMLSecurityPropertyManager)
propertyManager.getProperty(XML_SECURITY_PROPERTY_MANAGER);
fAccessExternalDTD = spm.getValue(XMLSecurityPropertyManager.Property.ACCESS_EXTERNAL_DTD);
fSecurityManager = (XMLSecurityManager)propertyManager.getProperty(Constants.SECURITY_MANAGER);
- fLimitAnalyzer = fSecurityManager.getLimitAnalyzer();
+ resetCommon();
} // reset(XMLComponentManager)
+ void resetCommon() {
+ // initialize vars
+ fMarkupDepth = 0;
+ fCurrentElement = null;
+ fElementStack.clear();
+ fHasExternalDTD = false;
+ fStandaloneSet = false;
+ fStandalone = false;
+ fInScanContent = false;
+ //skipping algorithm
+ fShouldSkip = false;
+ fAdd = false;
+ fSkip = false;
+
+ fEntityStore = fEntityManager.getEntityStore();
+ dtdGrammarUtil = null;
+
+ if (fSecurityManager != null) {
+ fLimitAnalyzer = fSecurityManager.getLimitAnalyzer();
+ fElementAttributeLimit = fSecurityManager.getLimit(XMLSecurityManager.Limit.ELEMENT_ATTRIBUTE_LIMIT);
+ } else {
+ fLimitAnalyzer = null;
+ fElementAttributeLimit = 0;
+ }
+ }
+
/**
* Returns a list of feature identifiers that are recognized by
* this component. This method may return null if no features
@@ -1328,7 +1320,7 @@ public class XMLDocumentFragmentScannerImpl
fAttributes.getLength() > fElementAttributeLimit){
fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,
"ElementAttributeLimit",
- new Object[]{rawname, new Integer(fAttributes.getLength()) },
+ new Object[]{rawname, fElementAttributeLimit },
XMLErrorReporter.SEVERITY_FATAL_ERROR );
}
diff --git a/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java b/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java
index 464511c..f658d09 100644
--- a/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java
+++ b/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java
@@ -256,7 +256,7 @@ public class XMLNSDocumentScannerImpl
fAttributes.getLength() > fElementAttributeLimit){
fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,
"ElementAttributeLimit",
- new Object[]{rawname, new Integer(fAttributes.getLength()) },
+ new Object[]{rawname, fElementAttributeLimit },
XMLErrorReporter.SEVERITY_FATAL_ERROR );
}