Version: 4.1.3

Release date: 23-Apr-2012

Description:
  Third patch release for 4.1

Problems fixed:

* [WSTX-271] DOMWrappingWriter.writeComment() creating CDATASection, not Comment
  (reported by Martin V)
* [WSTX-276] 'InputConfigFlags.CFG_NORMALIZE_LFS' flag conflicts with 'CFG_AUTO_CLOSE_INPUT'
  (reported by Andreas V)

------------------------------------------------------------------------
== History: ==
------------------------------------------------------------------------

4.1.2 [27-Aug-2011]

Problems fixed:

* [WSTX-267] P_NORMALIZE_LFS mis-mapped
  (reported by Mike S)
* [WSTX-268] Missing namespace information when unmarshalling from DOMSource
  (reported by Blaise D)
* [WSTX-270] Allow changing whether prefix for default namespace
  is returned as "" (4.x default) or null (which apparently is what
  latest Stax spec says) using WstxInputProperties.
  (requested by Ivan)

4.1.1 [27-Jan-2011]

Problems fixed:

- All fixes from 4.0.x up to 4.0.10

4.1.0 [13-Dec-2010]

Problems fixed:

* [WSTX-201]: XMLStreamReader.isCharacters() can return inconsistent
   value compared to XMLStreamReader.getEventType()
  (reported by Andreas V)
* [WSTX-254]: Stax2ReaderAdapter2.getDepth() incorrect after calling
   getElementAs (from StaxMate bug)

Improvements:

* [WSTX-237] Add size limit to InternCache
* [WSTX-248] Java URL.hashCode() cause issues with DTD caching
  (reported by Christophe C)
* [WSTX-251] Improve extensibility of XMLStreamWriter construction
  (suggested by Eric D)
* [WSTX-252] Add EmptyElementHandler to allow customizing whether
  empty elements can be written, on per-tag basis
  (suggested by Eric D)
* Rewrote attribute parsing/collection part to use separate wrapper
  classes (instead of primitive arrays); to support easier modifications
  and custom additions to collected attribute information.

4.0.9 [08-Oct-2010]

Problems fixed:

* [WSTX-244] DOMWrappingReader sometimes duplicates text content
  (reported by Laszlo V)
* [WSTX-246] DOMWrappingReader returns null Location
* [WSTX-249] TextAccumulator had a bug corrupting text
  (reported by Habib C)

4.0.8 [05-May-2010]

  Improvements:

  * [WSTX-206] Provide a way to configure SAX parser with all config
    settings available to Stax readers (add WstxSAXParser.getStaxConfig())
   (suggested by Stphane C)
  * [WSTX-234] Restore feature WstxInputProperties.NORMALIZE_LFS; add
    WstxInputProperties.TREAT_CHAR_REFS_AS_ENTS
   (requested by Peter S)

 Problems fixed:

  * [WSTX-220]: Issues in cases where excessive intern()ing causes
    synchronization problems; reduce contention by splitting sync block
   (reported by Rajeswar R)
  * [WSTX-226]: SAX parser was ignoring passed encoding.
   (reported by Andreas V)
  * [WSTX-228]: Property WstxOutputProperties.P_OUTPUT_ESCAPE_CR
    not used for attribute content
   (reported by Brian S)
  * [WSTX-236]: Make WstxInputLocation Serializable
   (suggested by Myles B)

4.0.7 [16-Dec-2009]

  * [WSTX-224]: getElementAsBinary() fails when reading large amounts of
    data (in coalescing mode)
   (reported by Alexander R)

4.0.6 [01-Oct-2009]

  Problems fixed:

  * [WSTX-211]: Failure to parse long CDATA section properly when
    using XMLStreamReader.getElementText(), non-coalescing
   (reported by Kevin B)

4.0.5 [09-Jun-2009]

  Problems fixed:

  * [WSTX-207]: Schema factory failing to load schema if filename has
    characters that need to be escaped when converted to URL
   (reported by Arun K)
  * [WSTX-208]: Value of default attributes not found using
    XMLStreamReader.getAttributeValue(String,String)
   (reported by Jack R)
  * [WSTX-209]: Validation issues not reported to validation problem reporter
   (reported and fixed by Benson M)  

4.0.4 [07-May-2009]

  Problems fixed:

  * [WSTX-200]: NPE when validating partial documents (sub-trees)
   (reported by Benson M)  
  * [WSTX-202]: BijectiveNsMap#findPrefixByUri doesn't handle masked
    namespace declarations correctly 
   (reported by Andreas V)
  * [WSTX-204] Custom entity resolver setting was not working with
    SAX API (due to JDK impl idiocy)
   (reported by Stphane Claret)

4.0.3 [04-Mar-2009]

  Problems fixed:

  * [WSTX-191] Validation failure with W3C Schema, empty text
    (reported by Yves M)

4.0.2 [25-Feb-2009]

  Problems fixed:

  * [WSTX-188] Could get an ArrayIndexOutOfBounds exception for
    StartElement.getAttributeByName() under specific conditions
   (reported by Roger W)
  * [WSTX-190]:  NPE with DTD validator, missing attribute.
   (reported by Andreas V)

4.0.1 [29-Jan-2009]

  Problems fixed:

  * A bug in Stax2 RI CharArrayBase64Decoder was skipping part of
    input under certain conditions; did not occur in stax2 test
    suite, but did happen for another Stax2 implementation.
  * There were many problems with Maven dependencies; specifically it looks
    like support for version ranges is hard to make work with somewhat
    manual release process in use now. Thus changed dependencies to use
    exact versions for now (until 5.0?)

4.0.0 [01-Jan-2009]

  The first official release: no major changes over 3.9.9-3.
  However, here is a summary of work since 3.2.
  (For details refer to release notes for preceding release candidates)

  Major new functionality:

  * W3C Schema Validation support
  * Typed Access API (org.codehaus.stax2.typed.*), including:
    * TypedXMLStreamReader, TypedXMLStreamWriter (reading and writing)
    * Types based on W3C Schema Datatypes, supporting:
      * Simple values (int, long, float, double, boolean, QName)
      * Array values of integral numeric types
      * Binary support for base64 encoded content
      * Additional extension methods for efficient custom decoding.

  Interoperability improvements:

  * DOM-compatibility: Namespace-repairing mode implemented for DOM-backed
    stream writers (ones built for DOMResult)
  * OSGi: Woodstox jars are now OSGi bundles (as well as supporting MSV
    jars when needed for validation)
  * Maven: split core woodstox jar and stax2 api jar, relationship now
    properly modelled (including dependencies to MSV jars)

  New configuration properties:

  * WstxOutputProperties.P_ADD_SPACE_AFTER_EMPTY_ELEM: whether to add space
    between name of empty tag and following "/>".
  * WstxOutputProperties.P_AUTOMATIC_END_ELEMENTS: whether stream writers
    closes open xml tree upon stream writer close:
  * WstxOutputProperties.P_OUTPUT_INVALID_CHAR_HANDLER to allow for
    replacing "invalid XML characters" on output.

  Other improvements:

  * Implement XMLEvent.equals() and .hashCode() to allow for reliable
    comparisons of event objects.
  * Add direct support for Stax2ByteArraySource for improved performance
    when used instead of ByteArrayInputStream.

  Compatibility changes:

  * JDK: minimum required now 1.4
  * Stax 1.0 API:
    * All empty/missing namespace/prefix values now reported as "", not null
    * WstxInputFactory.IS_COALESCING defaults to 'false' (was erroneously
      defaulting to 'true')
    * Removed deprecated properties P_NORMALIZE_LFS and P_NORMALIZE_ATTR_VALUES

------------------------------------------------------------------------

3.9.9-3 [26-Dec-2008]

  API changes:

  * Changed passing of Base64Variant argument: since it's an optional argument
    it should come after mandatory ones (wasn't with earlier RCs).

  Problems fixed:

  * [WSTX-182], StreamResult with only SystemId did not work.
    (reported by Christoper P-S)
  * [WSTX-183] Trying to create DOM-backed writer with DOM Element (as opposed
     to Document) failed, due to trying to attach the element.
    (reported by Christoper P-S)

3.9.9-2 [17-Dec-2008]

  Problems fixed:

  * [WSTX-177] Added support for accessing Stax2 factories (input, output,
    validation schema) through OSGi services interface.
  * [WSTX-178] Source code distribution did not have an intervening "[artifact]-[version]"
    directory, which means that when unexpanding, contents may spill in unexpected places
  * [WTSX-179] Problem with XMLStreamReader.getElementText(), where
    data may be corrupt under some situations (could also affect
    typed access methods similarly).

3.9.9-1 [21-Nov-2008]

  Problems fixed:

  * [WTSX-121] Ordering of NOTATION definitions and ATTLIST references
    should not matter
  * [WTSX-142] Ordering of NOTATION definitions and ENTITY references
    should not matter
  * [WSTX-154] XMLStreamReader, XMLStreamWriter implementations were
    quietly discarding XMLStreamException thrown by XMLReporter.

  New functionality:

  * [WSTX-50] Improve handling of base URIs; notation and entity declarations, doc property.
  * [WSTX-148] Implement XMLEvent.equals() and .hashCode() to allow
    for easy comparisons.
    (requested by Sylvain L)
  * [WSTX-150] Add stream reader AND writer delegates for Stax2.
  * [WSTX-151] Generic typed access methods (getElementAs(), getAttributeAs())
    added to TypedXMLStreamReader.
  * [WSTX-152] Add OSGi headers to the jar manifest.
    (requested by Romain D)
  * [WSTX-157] Add XMLReporter2 to allow for extended access to
    information about non-fatal problems (including validation probs)
  * [WSTX-163] Add XMLStreamWriter2.closeCompletely()
  * [WSTX-165] Add property (WstxOutputProperties.P_AUTOMATIC_END_ELEMENTS)
    to allow enabling/disabling automatic addition of end elements
    when closing stream writer 
    (requested by Ian B)
  * [WSTX-166] Add direct support for Stax2ByteArraySource for improved
    performance. Measured speedup 5-10% compared to using ByteArrayInputStream.
  * [WSTX-167] Add new property (WstxOutputProperties.P_OUTPUT_INVALID_CHAR_HANDLER)
    which can be used to replace invalid characters (such as Ascii control
    characters) from within content to output.
  * [WSTX-169] Add support for alternative (non-standard) Base64 encoding
    variants.
  * [WSTX-175] Add OSGi support for bundled MSV jars.

3.9.2 [06-May-2008]
3.9.1 [16-Mar-2008]
3.9.0 [23-Nov-2007]

  New functionality (major):

  * [WSTX-137] Add W3C Schema validation support using MSV.
  * Reference implementation of Stax2 API now included under
    org.codehaus.stax2.ri (implements classes that can be implemented
    in generic way, making use of existing Stax 1.0 implementation
    or other Stax2 classes)
  * Partial/preliminary Stax2 Typed Access API, implementation (including
    configurable value encoder): supports booleans, ints, longs, for
    element and attribute content.

  New functionality (minor):

  * [WSTX-125] Adding of space between empty element, and closing
    "/>" is now optional, configurable using
    'WstxOutputProperties.P_ADD_SPACE_AFTER_EMPTY_ELEM'.
  * Converted Woodstox-specific property WstxInputProperties.P_LAZY_PARSING
    to XMLInputFactory2.P_LAZY_PARSING (stax2 API).
  * More complete Stax2 API ref. impl, adding generic XMLEventReader
    implementation.

  Problems fixed:

  * [WSTX-120] By default, content fixing is now disabled, to
    maximize interoperability, and to follow "principle of least
    surprise" (i.e. avoid confusion arising from the stream writer
    outsmarting developer)
  * [WSTX-139] DOMWrappingWriter now implements repairing mode.
  * [WSTX-140] Default settings for WstxInputFactory.IS_COALESCING
    changed to Boolean.FALSE as per Stax specs; was defaulting to
    true by accident

  Clean-up:

  * Removed compatibility classes from under com.ctc.wstx.compat,
    since baseline JDK requirement is now 1.4, and workarounds are
    not needed (for now?)
  * Removed deprecated properties P_NORMALIZE_LFS and
    P_NORMALIZE_ATTR_VALUES, and needed code support.
  * [WSTX-105] Transformed the only existing input-side feature
    (FEAT_DTD_OVERRIDE) into matching input-side property
    (XMLInputFactoty2.P_OVERRIDE_DTD).
  * [WSTX-127] Stax API specification compatibility improvements:
    (also resolves [WSTX-57])
    * Missing prefixes now reported as "", not nulls.
    * "No namespace" now reported as "", not null.
  * Changing behavior of XMLStreamReader.getProperty() slightly (but within
    constraints of Stax 1.0 API specification): requesting value of
    an unknown property will now return null, instead of throwing an
    exception.

------------------------------------------------------------------------

3.2.8 [26-Dec-2008]

  Problems fixed:

  * [WSTX-172] WstxInputFactory and WstxOutputFactory were final, should not be.
  * [WSTX-174] Some old App servers have broken QName impl, are missing
    3-arg constructor
   (requested by Arash A)

3.2.7 [02-Sep-2008]

  Problems fixed:

  * [WSTX-145] DOMWrappingReader was not implementing coalescing mode.
    (reported by David C)
  * [WSTX-156] Pass XMLValidationProblem as 'relatedInformation' object
    in call XMLReporter.report(...)
  * [WSTX-158] XMLStreamReader.isWhiteSpace() returns potentially incorrect
    value when text segments starts with an entity
    (reported by Daniel R)
  * [WSTX-162] Name/namespace-URI interning not enabled for DOM-backed
    readers, getProperty() claims they are
    (reported by Pawel L)
  * Stax2ReaderAdapter.getDepth() was off by one (too low) for
    END_ELEMENT (causing problems for StaxMate)
  * [WSTX-164] Some XMLStreamReader.getAttributeXxx() methods were not
    properly checking validity of passed-in index argument.

3.2.6 [01-Jun-2008]

  Problems fixed:

  * [WSTX-144] Problem when trying to output namespace declaration using
    a DOMResult-backed writer.
    (reported by Martin V)
  * [WSTX-153] XMLReporter not getting called for non-fatal validation errors
    (reported by Eduardo R-R)
  * [WSTX-155] NPE after reporting a missing #REQUIRED attribute.
    (reported by Eduardo R-R)

3.2.5 [23-Apr-2008]

  Problems fixed:

  * [WSTX-146] XMLStreamWriter implementation was using encoding
    returned by OutputStreamWriter as is; and JDK was reporting
    legacy encodings. Needed to normalize encoding.
    (reported by Jim A)

  Improvements:

  * Added support for property:
    "http://java.sun.com/xml/stream/properties/implementation-name"
    it is now recognized as a synonym of XMLStreamProperties2.XSP_IMPLEMENTATION_NAME

3.2.4 [17-Jan-2008]

  Problems fixed:

  * [WSTX-141]: Copying of CDATA events, using XMLEventWriter, was
    producing garbled output.
    (reported by Frank B) 
  * [WSTX-143]: UTF8Reader had a bug in handling of DEL (127) character
    at buffer boundary.
    (report by Matt G)

3.2.3 [14-Nov-2007]

  Problems fixed:

  * [WSTX-132]: NPE in BaseNsStreamWriter if event writer managed to
    pass in null namespace URI.
  * [WSTX-134]: Bug in DOMWrappingReader.isWhiteSpace implementation
    (reported by Yoon-Je C)
  * [WSTX-135]: Incorrect namespace binding for parent element, for
    repairing namespace writer.
    (reported by Yoon-Je C)
  * [WSTX-138]: Sub-optimal error messaging for incompatible encoding
    declaration, physical encoding used (EBCDIC vs UTF-x)
    (reported by Wouter C) 

3.2.2 [26-Sep-2007]

Description:
  Second patch release for 3.2.

  Problems fixed:

  * [WSTX-104] Added missing support for outputting to a DOM tree (via
    XMLOutputFactory.createXMLStreamWriter(DOMSource)).

  Newfunctionality:

  * [WSTX-122] Adding support for EBCDIC encoding(s), using a
    simple bootstrapper to process xml declaration, then use
    JDK default codec.

3.2.1 [03-Apr-2007]

  Problems fixed:

  * Added deprecation marker for Wstx properties that will not be
    supported in 4.0
  * [WSTX-106] Descriptions missing from many wrapped IOExceptions;
    specifically obscuring some character validity failures
    (reported by Sami D)
  * [WSTX-108] Maven pom files were missing info (license, org etc)
    (reported by Daniel K)
  * [WSTX-109], a bug in xml declaration handling in multi-doc mode
    (reported by Abde S)
  * [WSTX-110] Exception chaining would itself cause an exception,
    on some platforms.
    (reported by Erik Bergersj)
  * [WSTX-111] (Stax 1.0 TCK incompliancy): Filtered stream reader was
    not initialized to point to first accepted event. This is different
    from expectations of Stax TCK (although identical to behavior of
    Stax RI).
    (reported by Santiago P-G)
  * [WSTX-113]: problems with DOMSource when DOM parsed in
    non-namespace mode)
    (reported by Daniel K)
  * [WSTX-114] Handling of ID attribute uniqueness check was failing
    in non-namespace mode: last character was dropped, leading to
    false collisions
    (reported by Linus E)

  Newfunctionality:

  * [WSTX-112] Added access to underlying output stream/writer, via
    XMLStreamReader.getProperty(). Properties added are
    'WstxOutputProperties.P_OUTPUT_UNDERLYING_STREAM' and
    'WstxOutputProperties.P_OUTPUT_UNDERLYING_WRITER'.

3.2.0 [28-Dec-2006]

  Problems fixed:

  * [WSTX-70] External parsed entity references were not resolved using
    correct path context
   (reported by Michael K)
  * [WSTX-86] Maven group id wrong: was "woodstox", should be
    "org.codehaus.woodstox"
  * [WSTX-89] Line number information was not properly updated in
    some cases (boundary condition with Windows, \r\n, linefeeds)
   (reported by Frank B)
  * [WSTX-96] Beginning part of comments (for longer comments)
    was sometimes duplicated by the XMLStreamWriter implementation 
   (reported by Wolfgang H)
  * [WSTX-97] Character offsets (for XMLStreamReader.getLocation())
    were sometimes decremented; fixed, and added a unit test
   (reported by Frank B)
  * [WSTX-99] Encoding problems with XMLStreamWriter.
  * [WSTX-102] WStartDocument construction resulted in NPE, when using
    DOM source.
   (reported by Werner D)
  * [WSTX-103] Repairing writer had a bug that could result in wrong
    prefix being reported/output.
   (reported by Michael A)
  * StartElement.writeUsing() was not properly outputting attributes.

  Improvements:

  * [WSTX-90] Xml writing improved by 5-10% by consistenly using
    System.arraycopy (and String.getChars() which uses it) where
    possible.
   (reported by Davanum S., submitted patch suggesting optimization
    that was included)
   (also note that this fix resulted in regression, WSTX-91, fixed)
  * [WSTX-92] Improved speed of XMLStreamWriter.writeCharacters, by
    using intermediate char[] buffer for longer String.
   (suggested by Davanum S, submitted a patch)
  * [WSTX-93] System id part of Location reported for expanded external
    entities was not a valid (resolved) URI, now is.

  New functionality:

  * [WSTX-33] Woodstox now implements SAX2 interface natively. So, it
    is fair to say that Woodstox is now StAX/SAX implementation.
    (also, note that there were transient problems related to this
     feature, in trunk, such as WSTX-95, WSTX-101
  * [WSTX-94] Added new property (WstxOutputProperties.P_OUTPUT_ESCAPE_CR;
    default is Boolean.TRUE), which determines whether \r in textual
    content to be written will be escaped by the default stream writer
    serializers. The default is to escape \r characters, to ensure
    clean round-trippability.
    (requested by Brett P)

3.1.0 [02-Nov-2006]

  Problems fixed:

  * [WSTX-23] xml:space attribute DTD type (should be enumeration as per
    xml 1.0 specification) was not checked

  Improvements:

  * [WSTX-42] SPACE events were not returned in DTD-aware non-validating mode.
  * [WSTX-68] XMLStreamWriter.writeNamespace() was ignored in repairing mode
    (but not any more). Similarly, prefix was only used if no existing binding
    was found: now will try to honor prefix even at expense of reusing
    existing bindings.

  Newfunctionality:

  * [WSTX-22] Basic xml:id (typing) support added. Will only validate
    uniqueness of xml:id attribute values in DTD-validating mode, for now.

3.0.2 [27-Sep-2006]

  Problems fixed:

  * [WSTX-81] Character/byte offset for Location not correctly calculated
    (reported by Mickael G)
  * [WTSX-82] URL handling had problems on Windows platform, with file-based
    URLs that refer to network drives
    (reported by Christian B)
  * [WSTX-83] One more NPE in ElemAttrs for namespace URI checks.
    (reported by Oleg R)

3.0.1 [29-Aug-2006]

  Problems fixed:

  * [WSTX-69] Incorrect types returned by XMLStreamReader, when
    notations/entities are requested.
    (report by Michael K)
  * [WSTX-72] Closing of output streams/writers in cases where that should
    not be done (plus similar problems on input side)
    (reported by Matt S)
  * [WSTX-74] Woodstox wasn't throwing NoSuchElementException at the end
    (reported by Lucian H)
  * [WSTX-77] Bug in DTDValidator.validateAttribute() passing wrong args
    to StringUtil.matches()
    (reported by Vim D R)
  * [WSTX-81] Character/byte offset for Location not correctly calculated
    (reported by Mickael G)
  * [WTSX-82] URL handling had problems on Windows platform, with file-based
    URLs that refer to network drives
    (reported by Christian B)

3.0.0 (final) [07-Aug-2006]

  Problems fixed:

  * A NullPointerException with StartElement.getAttributeByName() (apparently
    only happening when creating Attributes via Event Factory)
  * [WSTX-64]: CompactNsContext.outputNamespaceDeclarations NPE.
     (reported by Wolfgang H)
  * Fixed a problem with XMLEventReader.nextTag(), when peek() was called
    to access StartDocument event first.
     (reported by Lucian H)
  * Fixed a minor non-conformance issue with StartDocument, was not defaulting
    version pseudo-attribute to '1.0' (returned null if no xml declaration,
    ie. same as what XMLStreamReader returns).
  * [WSTX-65]: Fixed multiple problems with repairing stream writer, and
    the handling of automatic namespace declarations.

3.0rc1, 3.0rc2 [08-Jun-2006], [21-Jul-2006]

  Problems fixed:

  * [WTSX-38], [WSTX-56]: Filtered event reader was not filtering events
    correctly. Now should work much better.
  * [WSTX-54]: Added method XMLStreamWriter2.getEncoding, which allows for
    accessing encoding of the underlying output stream/writer (if such
    info available to the stream writer).
  * [WSTX-55]: XMLStreamWriter.flush() is now once again side-effect
    free (rule of minimal surprise)
  * [WSTX-57]: (partial fix) getNamespaceURI(int) will now return "" for
    'no namespace', instead of null. Value will thus be the exact lexival
    value from the declaration.
  * [WSTX-58]: a problem with DOMWrappingReader throwing an NPE, when
    accessing attribute properties of an element with only ns declarations.
  * [WSTX-59]: Stream writer trying to quote \r and \t in prolog/epilog.
  * [WSTX-60]: No pom file was generated for woodstox jar distributions;
    added generation, and dependencies to stax api jar generated by ref. impl.
  * [WSTX-61]: Using non-woodstox XMLStreamReader with the default
    event allocator fails.

  Improvements:

  * More significant parsing speed improvements, related to white space and
    linefeed handling.
  * Significant optimizations on the output side: adding BufferedWriter
    increases output speed very significantly (i.e. non-buffering basic
    OutputStreamWriter was dead slow for almost all use cases).
    Also, added simple buffer recycling, similar to reader side.

  New functionality:

  * [WSTX-25]: Added Stax2 interface ValidationProblemHandler, and associated
    methods to XMLStreamReader2 and XMLStreamWriter2: this allows for
    custom validation error handling, overriding default logic.
  * [WSTX-52]: Added a set of basic Stax2Source and Stax2Result
    implementations: these allow for more efficient and accurate source/result
    identification, and possible later optimizations.

------------------------------------------------------------------------
End of History (as we know it)
------------------------------------------------------------------------

(changes for versions prior to 3.0.0 are not included)
