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
Operations

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: http://www.datanucleus.org/servlet/forum/viewthread_thread,7675_lastpage,yes#37370
Datastore: XML
Severity: Production


 Description  « Hide
    Please refer to http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6396599
    and also discussion at https://saxonica.plan.io/boards/3/topics/3033.
    
    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:
       https://github.com/alrossi/test-jdo/commit/9a...cf50add7a770d7cd2cf1076d7

    The proposed patch for master:
       https://github.com/alrossi/datanucleus-xml/tree/fix/master/indent-number-incompatibility

    If the next release is a few months away, we would kindly ask for a back-port to 3.2:
       https://github.com/alrossi/datanucleus-xml/tree/fix/3.2/indent-number-incompatibility


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 ]