From c1431efdd5e49178a24ca45aaf2ff1abb92c5f09 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 23 Jun 2021 11:28:10 +0200 Subject: [PATCH] [jOOQ/jOOQ#3884] Make XMLHandler case insensitive Db2 and Oracle produce upper case XML elements by default. Let's not insist on case sensitivity in MULTISET SQL/XML emulated documents --- .../main/java/org/jooq/impl/XMLHandler.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLHandler.java b/jOOQ/src/main/java/org/jooq/impl/XMLHandler.java index c9e7bca935..0662a5eb26 100644 --- a/jOOQ/src/main/java/org/jooq/impl/XMLHandler.java +++ b/jOOQ/src/main/java/org/jooq/impl/XMLHandler.java @@ -150,10 +150,10 @@ final class XMLHandler extends DefaultHandler { @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public final void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { - if (!s.inResult && "result".equals(qName)) { + if (!s.inResult && "result".equalsIgnoreCase(qName)) { s.inResult = true; } - else if (s.inColumn && "result".equals(qName)) { + else if (s.inColumn && "result".equalsIgnoreCase(qName)) { Field f = s.row.field(s.column); if (f.getDataType() instanceof MultisetDataType) { @@ -164,10 +164,10 @@ final class XMLHandler extends DefaultHandler { else throw new UnsupportedOperationException("Nested result sets not supported yet"); } - else if (s.inResult && "fields".equals(qName)) { + else if (s.inResult && "fields".equalsIgnoreCase(qName)) { s.inFields = true; } - else if (s.inResult && s.inFields && "field".equals(qName)) { + else if (s.inResult && s.inFields && "field".equalsIgnoreCase(qName)) { String catalog = attributes.getValue("catalog"); String schema = attributes.getValue("schema"); String table = attributes.getValue("table"); @@ -176,15 +176,15 @@ final class XMLHandler extends DefaultHandler { s.fields.add(field(name(catalog, schema, table, name), getDataType(ctx.dialect(), defaultIfBlank(type, "VARCHAR")))); } - else if (s.inResult && "records".equals(qName)) {} - else if (s.inResult && "record".equals(qName)) { + else if (s.inResult && "records".equalsIgnoreCase(qName)) {} + else if (s.inResult && "record".equalsIgnoreCase(qName)) { s.inRecord++; } else { if (s.result == null) { String fieldName; - if (("value").equals(qName) && (fieldName = attributes.getValue("field")) != null) + if (("value").equalsIgnoreCase(qName) && (fieldName = attributes.getValue("field")) != null) ; else fieldName = qName; @@ -203,16 +203,16 @@ final class XMLHandler extends DefaultHandler { @Override public final void endElement(String uri, String localName, String qName) throws SAXException { - if (s.inResult && s.inRecord == 0 && "result".equals(qName)) { + if (s.inResult && s.inRecord == 0 && "result".equalsIgnoreCase(qName)) { s.inResult = false; } - else if (s.inResult && s.inFields && "fields".equals(qName)) { + else if (s.inResult && s.inFields && "fields".equalsIgnoreCase(qName)) { s.inFields = false; initResult(); } - else if (s.inResult && s.inFields && "field".equals(qName)) {} - else if (s.inResult && "records".equals(qName)) {} - else if (s.inRecord > 0 && "record".equals(qName)) { + else if (s.inResult && s.inFields && "field".equalsIgnoreCase(qName)) {} + else if (s.inResult && "records".equalsIgnoreCase(qName)) {} + else if (s.inRecord > 0 && "record".equalsIgnoreCase(qName)) { s.inRecord--; initResult();