--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java Fri Jan 15 20:56:15 2016 -0800
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XML11DocumentScannerImpl.java Sun Aug 30 23:03:23 2015 -0700
@@ -331,7 +331,7 @@
new Object[]{entityName});
}
}
- fEntityManager.startEntity(false, entityName, true);
+ fEntityManager.startEntity(true, entityName, true);
}
}
}
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java Fri Jan 15 20:56:15 2016 -0800
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java Sun Aug 30 23:03:23 2015 -0700
@@ -904,7 +904,7 @@
}
int length = fCurrentEntity.position - offset;
fCurrentEntity.columnNumber += length - newlines;
- if (fCurrentEntity.reference) {
+ if (fCurrentEntity.isGE) {
checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
}
content.setValues(fCurrentEntity.ch, offset, length);
@@ -1051,6 +1051,9 @@
}
int length = fCurrentEntity.position - offset;
fCurrentEntity.columnNumber += length - newlines;
+ if (fCurrentEntity.isGE) {
+ checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
+ }
content.setValues(fCurrentEntity.ch, offset, length);
// return next character
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java Fri Jan 15 20:56:15 2016 -0800
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java Sun Aug 30 23:03:23 2015 -0700
@@ -1110,7 +1110,7 @@
/**
* Starts a named entity.
*
- * @param reference flag to indicate whether the entity is an Entity Reference.
+ * @param isGE flag to indicate whether the entity is a General Entity
* @param entityName The name of the entity to start.
* @param literal True if this entity is started within a literal
* value.
@@ -1118,7 +1118,7 @@
* @throws IOException Thrown on i/o error.
* @throws XNIException Thrown by entity handler to signal an error.
*/
- public void startEntity(boolean reference, String entityName, boolean literal)
+ public void startEntity(boolean isGE, String entityName, boolean literal)
throws IOException, XNIException {
// was entity declared?
@@ -1242,7 +1242,7 @@
}
// start the entity
- startEntity(reference, entityName, xmlInputSource, literal, external);
+ startEntity(isGE, entityName, xmlInputSource, literal, external);
} // startEntity(String,boolean)
@@ -1291,7 +1291,7 @@
* This method can be used to insert an application defined XML
* entity stream into the parsing stream.
*
- * @param reference flag to indicate whether the entity is an Entity Reference.
+ * @param isGE flag to indicate whether the entity is a General Entity
* @param name The name of the entity.
* @param xmlInputSource The input source of the entity.
* @param literal True if this entity is started within a
@@ -1301,12 +1301,12 @@
* @throws IOException Thrown on i/o error.
* @throws XNIException Thrown by entity handler to signal an error.
*/
- public void startEntity(boolean reference, String name,
+ public void startEntity(boolean isGE, String name,
XMLInputSource xmlInputSource,
boolean literal, boolean isExternal)
throws IOException, XNIException {
- String encoding = setupCurrentEntity(reference, name, xmlInputSource, literal, isExternal);
+ String encoding = setupCurrentEntity(isGE, name, xmlInputSource, literal, isExternal);
//when entity expansion limit is set by the Application, we need to
//check for the entity expansion limit set by the parser, if number of entity
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java Fri Jan 15 20:56:15 2016 -0800
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java Sun Aug 30 23:03:23 2015 -0700
@@ -1038,7 +1038,7 @@
}
int length = fCurrentEntity.position - offset;
fCurrentEntity.columnNumber += length - newlines;
- if (fCurrentEntity.reference) {
+ if (fCurrentEntity.isGE) {
checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
}
@@ -1205,6 +1205,9 @@
}
int length = fCurrentEntity.position - offset;
fCurrentEntity.columnNumber += length - newlines;
+ if (fCurrentEntity.isGE) {
+ checkLimit(Limit.TOTAL_ENTITY_SIZE_LIMIT, fCurrentEntity, offset, length);
+ }
content.setValues(fCurrentEntity.ch, offset, length);
// return next character
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLScanner.java Fri Jan 15 20:56:15 2016 -0800
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLScanner.java Sun Aug 30 23:03:23 2015 -0700
@@ -946,7 +946,7 @@
new Object[]{entityName});
}
}
- fEntityManager.startEntity(false, entityName, true);
+ fEntityManager.startEntity(true, entityName, true);
}
}
}
--- a/jaxp/src/java.xml/share/classes/com/sun/xml/internal/stream/Entity.java Fri Jan 15 20:56:15 2016 -0800
+++ b/jaxp/src/java.xml/share/classes/com/sun/xml/internal/stream/Entity.java Sun Aug 30 23:03:23 2015 -0700
@@ -344,8 +344,8 @@
// to know that prolog is read
public boolean xmlDeclChunkRead = false;
- // flag to indicate whether the Entity is an Entity Reference
- public boolean reference = false;
+ // flag to indicate whether the Entity is a General Entity
+ public boolean isGE = false;
/** returns the name of the current encoding
* @return current encoding name
@@ -391,11 +391,11 @@
//
/** Constructs a scanned entity. */
- public ScannedEntity(boolean reference, String name,
+ public ScannedEntity(boolean isGE, String name,
XMLResourceIdentifier entityLocation,
InputStream stream, Reader reader,
String encoding, boolean literal, boolean mayReadChunks, boolean isExternal) {
- this.reference = reference;
+ this.isGE = isGE;
this.name = name ;
this.entityLocation = entityLocation;
this.stream = stream;