diff --git a/arrays-doubling.patch b/arrays-doubling.patch
new file mode 100644
index 0000000..9f9536a
--- /dev/null
+++ b/arrays-doubling.patch
@@ -0,0 +1,48 @@
+--- xerces/src/org/apache/xerces/util/XMLStringBuffer.java 2006/09/18 05:12:57 447241
++++ xerces/src/org/apache/xerces/util/XMLStringBuffer.java 2013/07/25 18:13:37
+@@ -111,12 +111,13 @@
+ */
+ public void append(char c) {
+ if (this.length + 1 > this.ch.length) {
+- int newLength = this.ch.length*2;
+- if (newLength < this.ch.length + DEFAULT_SIZE)
+- newLength = this.ch.length + DEFAULT_SIZE;
+- char[] newch = new char[newLength];
+- System.arraycopy(this.ch, 0, newch, 0, this.length);
+- this.ch = newch;
++ int newLength = this.ch.length * 2;
++ if (newLength < this.ch.length + DEFAULT_SIZE) {
++ newLength = this.ch.length + DEFAULT_SIZE;
++ }
++ char[] newch = new char[newLength];
++ System.arraycopy(this.ch, 0, newch, 0, this.length);
++ this.ch = newch;
+ }
+ this.ch[this.length] = c;
+ this.length++;
+@@ -130,9 +131,10 @@
+ public void append(String s) {
+ int length = s.length();
+ if (this.length + length > this.ch.length) {
+- int newLength = this.ch.length*2;
+- if (newLength < this.length + length + DEFAULT_SIZE)
++ int newLength = this.ch.length * 2;
++ if (newLength < this.length + length + DEFAULT_SIZE) {
+ newLength = this.ch.length + length + DEFAULT_SIZE;
++ }
+ char[] newch = new char[newLength];
+ System.arraycopy(this.ch, 0, newch, 0, this.length);
+ this.ch = newch;
+@@ -150,7 +152,11 @@
+ */
+ public void append(char[] ch, int offset, int length) {
+ if (this.length + length > this.ch.length) {
+- char[] newch = new char[this.ch.length + length + DEFAULT_SIZE];
++ int newLength = this.ch.length * 2;
++ if (newLength < this.length + length + DEFAULT_SIZE) {
++ newLength = this.ch.length + length + DEFAULT_SIZE;
++ }
++ char[] newch = new char[newLength];
+ System.arraycopy(this.ch, 0, newch, 0, this.length);
+ this.ch = newch;
+ }
diff --git a/scan-pseudo-attribute.patch b/scan-pseudo-attribute.patch
new file mode 100644
index 0000000..3996a30
--- /dev/null
+++ b/scan-pseudo-attribute.patch
@@ -0,0 +1,47 @@
+--- xerces/src/org/apache/xerces/impl/XMLScanner.java 2013/07/03 18:25:06 1499505
++++ xerces/src/org/apache/xerces/impl/XMLScanner.java 2013/07/03 18:29:43
+@@ -542,7 +542,7 @@
+ // document is until we scan the encoding declaration
+ // you cannot reliably read any characters outside
+ // of the ASCII range here. -- mrglavas
+- String name = fEntityScanner.scanName();
++ String name = scanPseudoAttributeName();
+ XMLEntityManager.print(fEntityManager.getCurrentEntity());
+ if (name == null) {
+ reportFatalError("PseudoAttrNameExpected", null);
+@@ -599,6 +599,35 @@
+ } // scanPseudoAttribute(XMLString):String
+
+ /**
++ * Scans the name of a pseudo attribute. The only legal names
++ * in XML 1.0/1.1 documents are 'version', 'encoding' and 'standalone'.
++ *
++ * @return the name of the pseudo attribute or null
++ * if a legal pseudo attribute name could not be scanned.
++ */
++ private String scanPseudoAttributeName() throws IOException, XNIException {
++ final int ch = fEntityScanner.peekChar();
++ switch (ch) {
++ case 'v':
++ if (fEntityScanner.skipString(fVersionSymbol)) {
++ return fVersionSymbol;
++ }
++ break;
++ case 'e':
++ if (fEntityScanner.skipString(fEncodingSymbol)) {
++ return fEncodingSymbol;
++ }
++ break;
++ case 's':
++ if (fEntityScanner.skipString(fStandaloneSymbol)) {
++ return fStandaloneSymbol;
++ }
++ break;
++ }
++ return null;
++ } // scanPseudoAttributeName()
++
++ /**
+ * Scans a processing instruction.
+ *
+ *
diff --git a/xerces-j2.changes b/xerces-j2.changes index 4d6f535..e315a6e 100644 --- a/xerces-j2.changes +++ b/xerces-j2.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Feb 11 15:12:31 UTC 2016 - tchvatal@suse.com + +- Add patches for bnc#814241 upstream#1616 + * arrays-doubling.patch + * scan-pseudo-attribute.patch + ------------------------------------------------------------------- Mon Jul 21 09:58:48 UTC 2014 - tchvatal@suse.com diff --git a/xerces-j2.spec b/xerces-j2.spec index 187fc2a..46584f6 100644 --- a/xerces-j2.spec +++ b/xerces-j2.spec @@ -1,7 +1,7 @@ # # spec file for package xerces-j2 # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -30,12 +30,16 @@ Source2: %{name}-version.sh Source3: %{name}-version.1 Source4: %{name}-constants.sh Source5: %{name}-constants.1 +# PATCH-FIX-UPSTREAM bnc#814241 XERCESJ-1616 +Patch0: arrays-doubling.patch +Patch1: scan-pseudo-attribute.patch +BuildRequires: dos2unix # some build requirements removed to enable jpackage bootstrap. this is # the first package built, and we use the libraries in the tools subdir # for it. -BuildRequires: java-1_5_0-gcj-compat-devel #!BuildIgnore: java-1_6_0-openjdk java-1_6_0-openjdk-devel #!BuildIgnore: antlr antlr-java +BuildRequires: java-1_5_0-gcj-compat-devel BuildRequires: javapackages-tools BuildRequires: unzip Requires(post): update-alternatives @@ -160,6 +164,10 @@ This package contains the APIs subproject of xml-commons. %setup -q -T -a 1 -D -n xerces-%{cvs_version} %setup -q -T -D -n xerces-%{cvs_version} +find -type f -print |xargs -i dos2unix {} +%patch0 -p1 +%patch1 -p1 + echo 'javac.target=1.5' > build.properties echo 'javac.source=1.5' >> build.properties