Issue Details (XML | Word | Printable)

Key: NUCXML-55
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Albert Louis Rossi
Votes: 0
Watchers: 0

If you were logged in you would be able to see more operations.
DataNucleus Store XML

Setting the 'indent-number' attribute is incompatible with some external XSLT libraries.

Created: 12/Feb/14 08:07 PM   Updated: 01/Mar/14 07:44 PM   Resolved: 13/Feb/14 09:47 AM
Component/s: Persistence
Affects Version/s: 3.2.1
Fix Version/s: 3.2.2, 4.0.0.m1

Environment: When there is an external library implementing javax.xml.transform, such as net.sf.saxon or org.apache.xalan, on the classpath.

Forum Thread URL:,7675_lastpage,yes#37370
Datastore: XML
Severity: Production

 Description  « Hide
    Please refer to
    and also discussion at
    Saxon PE and better supports 'indent-spaces', but HE does not.
    org.apache.xalan also does not support this attribute.

    An IllegalArgumentException is thrown if the TransformerFactory does not recognize 'indent-number'.
    The proposed fix simply catches and logs the exception, and moves on.
    Fix was tested by porting this patch to the 3.2 branch (since our code expresses
    datanucleus dependencies against the latest release), building the .jar
    and substituting it on the classpath.

    For the original test case, see:

    The proposed patch for master:

    If the next release is a few months away, we would kindly ask for a back-port to 3.2:

Andy Jefferson added a comment - 13/Feb/14 09:47 AM
GitHub master/3.2 have a try-catch, thanks. There are ample refs around the web about different versions of Xalan supporting or not "indent-number". The JDK builtin xalan (com.sun...xalan) supports it (and has since JDK1.5 at least).

Andy Jefferson made changes - 13/Feb/14 09:47 AM
Field Original Value New Value
Status Open [ 1 ] Resolved [ 5 ]
Fix Version/s 3.2.2 [ 12104 ]
Fix Version/s 4.0.0.m1 [ 12095 ]
Resolution Fixed [ 1 ]
Andy Jefferson made changes - 01/Mar/14 07:44 PM
Status Resolved [ 5 ] Closed [ 6 ]