[Libreoffice-commits] core.git: sfx2/qa

Noel Grandin noel at peralex.com
Tue Jul 7 23:35:26 PDT 2015


 sfx2/qa/complex/sfx2/DocumentMetadataAccess.java |  622 ++++++++++-----------
 sfx2/qa/complex/sfx2/DocumentProperties.java     |  657 +++++++++++------------
 sfx2/qa/complex/sfx2/UndoManager.java            |   58 +-
 sfx2/qa/complex/sfx2/tools/WriterHelper.java     |   22 
 sfx2/qa/complex/sfx2/undo/ChartDocumentTest.java |   23 
 5 files changed, 665 insertions(+), 717 deletions(-)

New commits:
commit 3c4da0f6fda6d6cf376cae77417d813e1d21d740
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Jul 7 16:37:59 2015 +0200

    java: let the unit-test framework catch exceptions
    
    and report them for us, instead of inventing our own mechanisms
    
    Change-Id: Id9186a2b01dad33c377e4785e1ca07bccea48b07

diff --git a/sfx2/qa/complex/sfx2/DocumentMetadataAccess.java b/sfx2/qa/complex/sfx2/DocumentMetadataAccess.java
index 5b6bc0c..b871a1c 100644
--- a/sfx2/qa/complex/sfx2/DocumentMetadataAccess.java
+++ b/sfx2/qa/complex/sfx2/DocumentMetadataAccess.java
@@ -18,55 +18,58 @@
 
 package complex.sfx2;
 
-import com.sun.star.beans.Pair;
-import com.sun.star.rdf.Literal;
-import com.sun.star.rdf.XLiteral;
-import com.sun.star.rdf.XNamedGraph;
-import com.sun.star.rdf.BlankNode;
-import com.sun.star.rdf.XQuerySelectResult;
-import com.sun.star.rdf.XNode;
-import com.sun.star.rdf.XDocumentRepository;
-import com.sun.star.rdf.XMetadatable;
-import com.sun.star.rdf.Statement;
-import com.sun.star.rdf.FileFormat;
-import com.sun.star.rdf.URIs;
-import com.sun.star.rdf.URI;
-import com.sun.star.rdf.XDocumentMetadataAccess;
-import com.sun.star.rdf.XRepositorySupplier;
-import com.sun.star.rdf.XRepository;
-import com.sun.star.rdf.XBlankNode;
-import com.sun.star.rdf.XURI;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 import helper.StreamSimulator;
 
-import com.sun.star.uno.UnoRuntime;
-import com.sun.star.uno.XComponentContext;
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.lang.XComponent;
+import java.io.IOException;
 
-import com.sun.star.lang.XServiceInfo;
-import com.sun.star.lang.IllegalArgumentException;
-import com.sun.star.beans.XPropertySet;
-import com.sun.star.beans.PropertyValue;
-import com.sun.star.beans.StringPair;
-import com.sun.star.container.XEnumerationAccess;
-import com.sun.star.container.XEnumeration;
-import com.sun.star.io.XInputStream;
-import com.sun.star.util.XCloseable;
-import com.sun.star.frame.XStorable;
-import com.sun.star.text.XTextDocument;
-import com.sun.star.text.XTextRange;
-import com.sun.star.text.XText;
-import complex.sfx2.tools.TestDocument;
 import lib.TestParameters;
 
-
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.openoffice.test.OfficeConnection;
-import static org.junit.Assert.*;
+
+import com.sun.star.beans.Pair;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.StringPair;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XEnumeration;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.frame.XStorable;
+import com.sun.star.io.XInputStream;
+import com.sun.star.lang.IllegalArgumentException;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.rdf.BlankNode;
+import com.sun.star.rdf.FileFormat;
+import com.sun.star.rdf.Literal;
+import com.sun.star.rdf.Statement;
+import com.sun.star.rdf.URI;
+import com.sun.star.rdf.URIs;
+import com.sun.star.rdf.XBlankNode;
+import com.sun.star.rdf.XDocumentMetadataAccess;
+import com.sun.star.rdf.XDocumentRepository;
+import com.sun.star.rdf.XLiteral;
+import com.sun.star.rdf.XMetadatable;
+import com.sun.star.rdf.XNamedGraph;
+import com.sun.star.rdf.XNode;
+import com.sun.star.rdf.XQuerySelectResult;
+import com.sun.star.rdf.XRepository;
+import com.sun.star.rdf.XRepositorySupplier;
+import com.sun.star.rdf.XURI;
+import com.sun.star.text.XText;
+import com.sun.star.text.XTextDocument;
+import com.sun.star.text.XTextRange;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XComponentContext;
+import com.sun.star.util.XCloseable;
+import complex.sfx2.tools.TestDocument;
 
 /**
  * Test case for interface com.sun.star.rdf.XDocumentMetadataAccess
@@ -119,58 +122,52 @@ public class DocumentMetadataAccess
      */
     private static TestParameters param = null;
 
-    @Before public void before()
+    @Before public void before() throws Exception
     {
-        try {
-
-            xMSF = getMSF();
-            param = new TestParameters();
-            param.put("ServiceFactory", xMSF);  // important for param.getMSF()
-
-            assertNotNull("could not create MultiServiceFactory.", xMSF);
-            XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xMSF);
-            Object defaultCtx = xPropertySet.getPropertyValue("DefaultContext");
-            xContext = UnoRuntime.queryInterface(XComponentContext.class, defaultCtx);
-            assertNotNull("could not get component context.", xContext);
-
-            tempDir = util.utils.getOfficeTemp/*Dir*/(xMSF);
-            System.out.println("tempdir: " + tempDir);
-
-            foo = URI.create(xContext, "uri:foo");
-            assertNotNull("foo", foo);
-            bar = URI.create(xContext, "uri:bar");
-            assertNotNull("bar", bar);
-            baz = URI.create(xContext, "uri:baz");
-            assertNotNull("baz", baz);
-
-            blank1 = BlankNode.create(xContext, "_:1");
-            assertNotNull("blank1", blank1);
-            blank2 = BlankNode.create(xContext, "_:2");
-            assertNotNull("blank2", blank2);
-            blank3 = BlankNode.create(xContext, "_:3");
-            assertNotNull("blank3", blank3);
-            blank4 = BlankNode.create(xContext, "_:4");
-            assertNotNull("blank4", blank4);
-            rdf_type = URI.createKnown(xContext, URIs.RDF_TYPE);
-            assertNotNull("rdf_type", rdf_type);
-            rdfs_label = URI.createKnown(xContext, URIs.RDFS_LABEL);
-            assertNotNull("rdfs_label", rdfs_label);
-            pkg_Document = URI.createKnown(xContext, URIs.PKG_DOCUMENT);
-            assertNotNull("pkg_Document", pkg_Document);
-            pkg_hasPart = URI.createKnown(xContext, URIs.PKG_HASPART);
-            assertNotNull("pkg_hasPart", pkg_hasPart);
-            pkg_MetadataFile = URI.createKnown(xContext, URIs.PKG_METADATAFILE);
-            assertNotNull("pkg_MetadataFile", pkg_MetadataFile);
-            odf_ContentFile = URI.createKnown(xContext, URIs.ODF_CONTENTFILE);
-            assertNotNull("odf_ContentFile", odf_ContentFile);
-            odf_StylesFile = URI.createKnown(xContext, URIs.ODF_STYLESFILE);
-            assertNotNull("odf_StylesFile", odf_StylesFile);
-            odf_Element = URI.createKnown(xContext, URIs.ODF_ELEMENT);
-            assertNotNull("odf_Element", odf_Element);
-
-        } catch (Exception e) {
-            report(e);
-        }
+        xMSF = getMSF();
+        param = new TestParameters();
+        param.put("ServiceFactory", xMSF);  // important for param.getMSF()
+
+        assertNotNull("could not create MultiServiceFactory.", xMSF);
+        XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xMSF);
+        Object defaultCtx = xPropertySet.getPropertyValue("DefaultContext");
+        xContext = UnoRuntime.queryInterface(XComponentContext.class, defaultCtx);
+        assertNotNull("could not get component context.", xContext);
+
+        tempDir = util.utils.getOfficeTemp/*Dir*/(xMSF);
+        System.out.println("tempdir: " + tempDir);
+
+        foo = URI.create(xContext, "uri:foo");
+        assertNotNull("foo", foo);
+        bar = URI.create(xContext, "uri:bar");
+        assertNotNull("bar", bar);
+        baz = URI.create(xContext, "uri:baz");
+        assertNotNull("baz", baz);
+
+        blank1 = BlankNode.create(xContext, "_:1");
+        assertNotNull("blank1", blank1);
+        blank2 = BlankNode.create(xContext, "_:2");
+        assertNotNull("blank2", blank2);
+        blank3 = BlankNode.create(xContext, "_:3");
+        assertNotNull("blank3", blank3);
+        blank4 = BlankNode.create(xContext, "_:4");
+        assertNotNull("blank4", blank4);
+        rdf_type = URI.createKnown(xContext, URIs.RDF_TYPE);
+        assertNotNull("rdf_type", rdf_type);
+        rdfs_label = URI.createKnown(xContext, URIs.RDFS_LABEL);
+        assertNotNull("rdfs_label", rdfs_label);
+        pkg_Document = URI.createKnown(xContext, URIs.PKG_DOCUMENT);
+        assertNotNull("pkg_Document", pkg_Document);
+        pkg_hasPart = URI.createKnown(xContext, URIs.PKG_HASPART);
+        assertNotNull("pkg_hasPart", pkg_hasPart);
+        pkg_MetadataFile = URI.createKnown(xContext, URIs.PKG_METADATAFILE);
+        assertNotNull("pkg_MetadataFile", pkg_MetadataFile);
+        odf_ContentFile = URI.createKnown(xContext, URIs.ODF_CONTENTFILE);
+        assertNotNull("odf_ContentFile", odf_ContentFile);
+        odf_StylesFile = URI.createKnown(xContext, URIs.ODF_STYLESFILE);
+        assertNotNull("odf_StylesFile", odf_StylesFile);
+        odf_Element = URI.createKnown(xContext, URIs.ODF_ELEMENT);
+        assertNotNull("odf_Element", odf_Element);
     }
 
     @After public void after()
@@ -180,7 +177,7 @@ public class DocumentMetadataAccess
         xDMA = null;
     }
 
-    @Test public void check()
+    @Test public void check() throws Exception
     {
         XComponent xComp = null;
         XComponent xComp2 = null;
@@ -595,15 +592,13 @@ public class DocumentMetadataAccess
 
             System.out.println("...done");
 
-        } catch (Exception e) {
-            report(e);
         } finally {
             close(xComp);
             close(xComp2);
         }
     }
 
-    @Test public void checkRDFa()
+    @Test public void checkRDFa() throws Exception
     {
         XComponent xComp = null;
         try {
@@ -622,251 +617,234 @@ public class DocumentMetadataAccess
         }
     }
 
-    private void storeRDFa(XComponent xComp, String file)
+    private void storeRDFa(XComponent xComp, String file) throws com.sun.star.io.IOException
     {
-        try {
+        System.out.println("Storing test document...");
 
-            System.out.println("Storing test document...");
+        XStorable xStor = UnoRuntime.queryInterface(XStorable.class, xComp);
 
-            XStorable xStor = UnoRuntime.queryInterface(XStorable.class, xComp);
+        xStor.storeToURL(file, new PropertyValue[0]);
 
-            xStor.storeToURL(file, new PropertyValue[0]);
-
-            System.out.println("...done");
-
-        } catch (Exception e) {
-            report(e);
-        }
+        System.out.println("...done");
     }
 
-    private XComponent loadRDFa(String file)
+    private XComponent loadRDFa(String file) throws Exception
     {
         XComponent xComp = null;
-        try {
-
-            System.out.println("Loading test document...");
-
-            PropertyValue[] loadProps = new PropertyValue[1];
-            loadProps[0] = new PropertyValue();
-            loadProps[0].Name = "Hidden";
-            loadProps[0].Value = true;
-
-
-
-            xComp = util.DesktopTools.loadDoc(xMSF, file, loadProps);
-
-            XRepositorySupplier xRepoSupplier = UnoRuntime.queryInterface(XRepositorySupplier.class, xComp);
-            assertTrue("xRS null", null != xRepoSupplier);
-
-            XDocumentRepository xDocRepository = UnoRuntime.queryInterface(XDocumentRepository.class, xRepoSupplier.getRDFRepository());
-            assertTrue("xRep null", null != xDocRepository);
-
-            XTextDocument xTextDoc = UnoRuntime.queryInterface(XTextDocument.class, xComp);
-
-            XText xText = xTextDoc.getText();
-
-            XEnumerationAccess xEA = UnoRuntime.queryInterface(XEnumerationAccess.class, xText);
-            XEnumeration xEnum = xEA.createEnumeration();
-
-            System.out.println("...done");
-
-            System.out.println("Checking RDFa in loaded test document...");
-
-            XMetadatable xPara;
-            Pair<Statement[], Boolean> result;
-
-            Statement x_FooBarLit1 = new Statement(foo, bar, mkLit("1"), null);
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 1",
-                !result.Second &&
-                eq(result.First, new Statement[] {
-                        x_FooBarLit1
-                    }));
 
-            Statement x_FooBarLit2 = new Statement(foo, bar, mkLit("2"), null);
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 2",
-                !result.Second &&
-                eq(result.First, new Statement[] {
-                        x_FooBarLit2
-                    }));
-
-            Statement x_BlankBarLit3 =
-                new Statement(blank1, bar, mkLit("3"), null);
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 3",
-                !result.Second &&
-                eq(result.First, new Statement[] {
-                        x_BlankBarLit3
-                    }));
-            XBlankNode b3 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject);
-
-            Statement x_BlankBarLit4 =
-                new Statement(blank2, bar, mkLit("4"), null);
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 4",
-                !result.Second &&
-                eq(result.First, new Statement[] {
-                        x_BlankBarLit4
-                    }));
-            XBlankNode b4 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject);
-
-            Statement x_BlankBarLit5 =
-                new Statement(blank1, bar, mkLit("5"), null);
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 5",
-                !result.Second &&
-                eq(result.First, new Statement[] {
-                        x_BlankBarLit5
-                    }));
-            XBlankNode b5 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject);
-
-            assertTrue("RDFa: 3 != 4",
-                !b3.getStringValue().equals(b4.getStringValue()));
-            assertTrue("RDFa: 3 == 5",
-                 b3.getStringValue().equals(b5.getStringValue()));
-
-            Statement x_FooBarLit6 = new Statement(foo, bar, mkLit("6"), null);
-            Statement x_FooBazLit6 = new Statement(foo, baz, mkLit("6"), null);
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 6",
-                !result.Second &&
-                eq(result.First, new Statement[] {
-                        x_FooBarLit6, x_FooBazLit6
-                    }));
-
-            Statement x_FooBarLit7 = new Statement(foo, bar, mkLit("7"), null);
-            Statement x_FooBazLit7 = new Statement(foo, baz, mkLit("7"), null);
-            Statement x_FooFooLit7 = new Statement(foo, foo, mkLit("7"), null);
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 7",
-                !result.Second &&
-                eq(result.First, new Statement[] {
-                        x_FooBarLit7, x_FooBazLit7, x_FooFooLit7
-                    }));
-
-            XNode lit = mkLit("a fooish bar");
-            XNode lit_type= mkLit("a fooish bar", bar);
-            Statement x_FooBarLit = new Statement(foo, bar, lit, null);
-            Statement x_FooBarLittype = new Statement(foo, bar, lit_type, null);
-
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 8",
-                result.Second &&
-                eq(result.First, new Statement[] {
-                        x_FooBarLit
-                    }));
-
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 9",
-                result.Second &&
-                eq(result.First, new Statement[] {
-                        x_FooBarLit
-                    }));
-
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 10",
-                result.Second &&
-                eq(result.First, new Statement[] {
-                        x_FooBarLittype
-                    }));
-
-            Statement x_FooBarLit11
-                = new Statement(foo, bar, mkLit("11", bar), null);
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 11",
-                !result.Second &&
-                eq(result.First, new Statement[] {
-                        x_FooBarLit11
-                    }));
-
-            XURI xFile = URI.createNS(xContext, file, "/" + contentPath);
-            Statement x_FileBarLit12 =
-                new Statement(xFile, bar, mkLit("12"), null);
-              xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 12",
-                !result.Second &&
-                eq(result.First, new Statement[] {
-                        x_FileBarLit12
-                    }));
+        System.out.println("Loading test document...");
+
+        PropertyValue[] loadProps = new PropertyValue[1];
+        loadProps[0] = new PropertyValue();
+        loadProps[0].Name = "Hidden";
+        loadProps[0].Value = true;
+
+
+
+        xComp = util.DesktopTools.loadDoc(xMSF, file, loadProps);
+
+        XRepositorySupplier xRepoSupplier = UnoRuntime.queryInterface(XRepositorySupplier.class, xComp);
+        assertTrue("xRS null", null != xRepoSupplier);
+
+        XDocumentRepository xDocRepository = UnoRuntime.queryInterface(XDocumentRepository.class, xRepoSupplier.getRDFRepository());
+        assertTrue("xRep null", null != xDocRepository);
+
+        XTextDocument xTextDoc = UnoRuntime.queryInterface(XTextDocument.class, xComp);
+
+        XText xText = xTextDoc.getText();
+
+        XEnumerationAccess xEA = UnoRuntime.queryInterface(XEnumerationAccess.class, xText);
+        XEnumeration xEnum = xEA.createEnumeration();
+
+        System.out.println("...done");
+
+        System.out.println("Checking RDFa in loaded test document...");
+
+        XMetadatable xPara;
+        Pair<Statement[], Boolean> result;
+
+        Statement x_FooBarLit1 = new Statement(foo, bar, mkLit("1"), null);
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 1",
+            !result.Second &&
+            eq(result.First, new Statement[] {
+                    x_FooBarLit1
+                }));
+
+        Statement x_FooBarLit2 = new Statement(foo, bar, mkLit("2"), null);
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 2",
+            !result.Second &&
+            eq(result.First, new Statement[] {
+                    x_FooBarLit2
+                }));
+
+        Statement x_BlankBarLit3 =
+            new Statement(blank1, bar, mkLit("3"), null);
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 3",
+            !result.Second &&
+            eq(result.First, new Statement[] {
+                    x_BlankBarLit3
+                }));
+        XBlankNode b3 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject);
+
+        Statement x_BlankBarLit4 =
+            new Statement(blank2, bar, mkLit("4"), null);
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 4",
+            !result.Second &&
+            eq(result.First, new Statement[] {
+                    x_BlankBarLit4
+                }));
+        XBlankNode b4 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject);
+
+        Statement x_BlankBarLit5 =
+            new Statement(blank1, bar, mkLit("5"), null);
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 5",
+            !result.Second &&
+            eq(result.First, new Statement[] {
+                    x_BlankBarLit5
+                }));
+        XBlankNode b5 = UnoRuntime.queryInterface(XBlankNode.class, result.First[0].Subject);
+
+        assertTrue("RDFa: 3 != 4",
+            !b3.getStringValue().equals(b4.getStringValue()));
+        assertTrue("RDFa: 3 == 5",
+             b3.getStringValue().equals(b5.getStringValue()));
+
+        Statement x_FooBarLit6 = new Statement(foo, bar, mkLit("6"), null);
+        Statement x_FooBazLit6 = new Statement(foo, baz, mkLit("6"), null);
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 6",
+            !result.Second &&
+            eq(result.First, new Statement[] {
+                    x_FooBarLit6, x_FooBazLit6
+                }));
+
+        Statement x_FooBarLit7 = new Statement(foo, bar, mkLit("7"), null);
+        Statement x_FooBazLit7 = new Statement(foo, baz, mkLit("7"), null);
+        Statement x_FooFooLit7 = new Statement(foo, foo, mkLit("7"), null);
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 7",
+            !result.Second &&
+            eq(result.First, new Statement[] {
+                    x_FooBarLit7, x_FooBazLit7, x_FooFooLit7
+                }));
+
+        XNode lit = mkLit("a fooish bar");
+        XNode lit_type= mkLit("a fooish bar", bar);
+        Statement x_FooBarLit = new Statement(foo, bar, lit, null);
+        Statement x_FooBarLittype = new Statement(foo, bar, lit_type, null);
+
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 8",
+            result.Second &&
+            eq(result.First, new Statement[] {
+                    x_FooBarLit
+                }));
+
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 9",
+            result.Second &&
+            eq(result.First, new Statement[] {
+                    x_FooBarLit
+                }));
+
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 10",
+            result.Second &&
+            eq(result.First, new Statement[] {
+                    x_FooBarLittype
+                }));
+
+        Statement x_FooBarLit11
+            = new Statement(foo, bar, mkLit("11", bar), null);
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 11",
+            !result.Second &&
+            eq(result.First, new Statement[] {
+                    x_FooBarLit11
+                }));
+
+        XURI xFile = URI.createNS(xContext, file, "/" + contentPath);
+        Statement x_FileBarLit12 =
+            new Statement(xFile, bar, mkLit("12"), null);
+          xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 12",
+            !result.Second &&
+            eq(result.First, new Statement[] {
+                    x_FileBarLit12
+                }));
+
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 13",
+            result.Second &&
+            eq(result.First, new Statement[] {
+                    x_FooBarLit
+                }));
+
+        new Statement(foo, rdfs_label, mkLit("14"), null);
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 14",
+            result.Second &&
+            eq(result.First, new Statement[] {
+                    /* x_FooLabelLit14 */ x_FooBarLit
+                }));
+
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 15", eq(result.First, new Statement[] { } ));
+
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 16", eq(result.First, new Statement[] { } ));
+
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 17", eq(result.First, new Statement[] { } ));
+
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 18", eq(result.First, new Statement[] { } ));
+
+        xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 19", eq(result.First, new Statement[] { } ));
+
+        xPara = UnoRuntime.queryInterface(
+            XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 20", eq(result.First, new Statement[] { } ));
+
+        xPara = UnoRuntime.queryInterface(
+            XMetadatable.class, xEnum.nextElement());
+        result = xDocRepository.getStatementRDFa(xPara);
+        assertTrue("RDFa: 21", eq(result.First, new Statement[] { } ));
+
+        System.out.println("...done");
 
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 13",
-                result.Second &&
-                eq(result.First, new Statement[] {
-                        x_FooBarLit
-                    }));
-
-            new Statement(foo, rdfs_label, mkLit("14"), null);
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 14",
-                result.Second &&
-                eq(result.First, new Statement[] {
-                        /* x_FooLabelLit14 */ x_FooBarLit
-                    }));
-
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 15", eq(result.First, new Statement[] { } ));
-
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 16", eq(result.First, new Statement[] { } ));
-
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 17", eq(result.First, new Statement[] { } ));
-
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 18", eq(result.First, new Statement[] { } ));
-
-            xPara = UnoRuntime.queryInterface(XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 19", eq(result.First, new Statement[] { } ));
-
-            xPara = UnoRuntime.queryInterface(
-                XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 20", eq(result.First, new Statement[] { } ));
-
-            xPara = UnoRuntime.queryInterface(
-                XMetadatable.class, xEnum.nextElement());
-            result = xDocRepository.getStatementRDFa(xPara);
-            assertTrue("RDFa: 21", eq(result.First, new Statement[] { } ));
-
-            System.out.println("...done");
-
-        } catch (Exception e) {
-            report(e);
-            close(xComp);
-        }
         return xComp;
     }
 
 
 // utilities -------------------------------------------------------------
 
-    public void report(Exception e) {
-        System.out.println("Exception occurred:");
-        e.printStackTrace(System.err);
-        fail();
-    }
-
     static void close(XComponent i_comp)
     {
         try {
diff --git a/sfx2/qa/complex/sfx2/DocumentProperties.java b/sfx2/qa/complex/sfx2/DocumentProperties.java
index 8edda78..0d21cdb 100644
--- a/sfx2/qa/complex/sfx2/DocumentProperties.java
+++ b/sfx2/qa/complex/sfx2/DocumentProperties.java
@@ -84,76 +84,76 @@ public class DocumentProperties
         }
     }
 
-    @Test public void check() {
-        try {
-            XMultiServiceFactory xMSF = getMSF();
-            assertNotNull("could not create MultiServiceFactory.", xMSF);
-            XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xMSF);
-            Object defaultCtx = xPropertySet.getPropertyValue("DefaultContext");
-            XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class, defaultCtx);
-            assertNotNull("could not get component context.", xContext);
+    @Test public void check() throws Exception
+    {
+        XMultiServiceFactory xMSF = getMSF();
+        assertNotNull("could not create MultiServiceFactory.", xMSF);
+        XPropertySet xPropertySet = UnoRuntime.queryInterface(XPropertySet.class, xMSF);
+        Object defaultCtx = xPropertySet.getPropertyValue("DefaultContext");
+        XComponentContext xContext = UnoRuntime.queryInterface(XComponentContext.class, defaultCtx);
+        assertNotNull("could not get component context.", xContext);
 
-            // TODO: Path to temp
-            String temp = util.utils.getOfficeTemp/*Dir*/(xMSF);
-            System.out.println("tempdir: " + temp);
+        // TODO: Path to temp
+        String temp = util.utils.getOfficeTemp/*Dir*/(xMSF);
+        System.out.println("tempdir: " + temp);
 
-            PropertyValue[] noArgs = { };
-            PropertyValue mimetype = new PropertyValue();
-            mimetype.Name = "MediaType";
-            mimetype.Value = "application/vnd.oasis.opendocument.text";
-            PropertyValue[] mimeArgs = { mimetype };
-            PropertyValue cfile = new PropertyValue();
-            cfile.Name = "URL";
-            cfile.Value = temp + "EMPTY.odt";
-            PropertyValue[] mimeEmptyArgs = { mimetype, cfile };
+        PropertyValue[] noArgs = { };
+        PropertyValue mimetype = new PropertyValue();
+        mimetype.Name = "MediaType";
+        mimetype.Value = "application/vnd.oasis.opendocument.text";
+        PropertyValue[] mimeArgs = { mimetype };
+        PropertyValue cfile = new PropertyValue();
+        cfile.Name = "URL";
+        cfile.Value = temp + "EMPTY.odt";
+        PropertyValue[] mimeEmptyArgs = { mimetype, cfile };
 
-            System.out.println("Creating service DocumentProperties...");
+        System.out.println("Creating service DocumentProperties...");
 
-            Object oDP =
-                xMSF.createInstance("com.sun.star.document.DocumentProperties");
-            XDocumentProperties xDP = UnoRuntime.queryInterface(XDocumentProperties.class, oDP);
+        Object oDP =
+            xMSF.createInstance("com.sun.star.document.DocumentProperties");
+        XDocumentProperties xDP = UnoRuntime.queryInterface(XDocumentProperties.class, oDP);
 
-            System.out.println("...done");
+        System.out.println("...done");
 
 
-            System.out.println("Checking initialize ...");
+        System.out.println("Checking initialize ...");
 
-            XDocumentProperties xDP2 = UnoRuntime.queryInterface(XDocumentProperties.class, xMSF.createInstance("com.sun.star.document.DocumentProperties"));
-            XInitialization xInit = UnoRuntime.queryInterface(XInitialization.class, xDP2);
-            xInit.initialize(new Object[] { });
+        XDocumentProperties xDP2 = UnoRuntime.queryInterface(XDocumentProperties.class, xMSF.createInstance("com.sun.star.document.DocumentProperties"));
+        XInitialization xInit = UnoRuntime.queryInterface(XInitialization.class, xDP2);
+        xInit.initialize(new Object[] { });
 
-            System.out.println("...done");
+        System.out.println("...done");
 
-            System.out.println("Checking storing default-initialized meta data ...");
+        System.out.println("Checking storing default-initialized meta data ...");
 
-            xDP2.storeToMedium("", mimeEmptyArgs);
+        xDP2.storeToMedium("", mimeEmptyArgs);
 
-            System.out.println("...done");
+        System.out.println("...done");
 
-            System.out.println("Checking loading default-initialized meta data ...");
+        System.out.println("Checking loading default-initialized meta data ...");
 
-            xDP2.loadFromMedium("", mimeEmptyArgs);
-            assertEquals("Author", "", xDP2.getAuthor());
+        xDP2.loadFromMedium("", mimeEmptyArgs);
+        assertEquals("Author", "", xDP2.getAuthor());
 
-            System.out.println("...done");
+        System.out.println("...done");
 
-            System.out.println("(Not) Checking preservation of custom meta data ...");
+        System.out.println("(Not) Checking preservation of custom meta data ...");
 
-            xDP2.loadFromMedium(TestDocument.getUrl("CUSTOM.odt"),
-                noArgs);
-            assertEquals("Author", "", xDP2.getAuthor());
-            xDP2.storeToMedium(temp + "CUSTOM.odt", mimeArgs);
+        xDP2.loadFromMedium(TestDocument.getUrl("CUSTOM.odt"),
+            noArgs);
+        assertEquals("Author", "", xDP2.getAuthor());
+        xDP2.storeToMedium(temp + "CUSTOM.odt", mimeArgs);
 
-            //FIXME: now what? comparing for binary equality seems useless
-            // we could unzip the written file and grep for the custom stuff
-            // but would that work on windows...
+        //FIXME: now what? comparing for binary equality seems useless
+        // we could unzip the written file and grep for the custom stuff
+        // but would that work on windows...
 
-            System.out.println("...done");
+        System.out.println("...done");
 
-            System.out.println("Checking loading from test document...");
+        System.out.println("Checking loading from test document...");
 
-            String file = TestDocument.getUrl("TEST.odt");
-            xDP.loadFromMedium(file, noArgs);
+        String file = TestDocument.getUrl("TEST.odt");
+        xDP.loadFromMedium(file, noArgs);
 /*            XInputStream xStream =
                 new StreamSimulator("./testdocuments/TEST.odt", true, param);
             Object oSF =
@@ -166,298 +166,294 @@ public class DocumentProperties
                 XStorage.class, oStor);
             xDP.loadFromStorage(xStor);*/
 
-            System.out.println("...done");
-
-            System.out.println("Checking meta-data import...");
-
-            assertEquals("Author", "Karl-Heinz Mustermann", xDP.getAuthor());
-            assertEquals(
-                "Generator",
-                "StarOffice/8$Solaris_x86 OpenOffice.org_project/680m232$Build-9227",
-                xDP.getGenerator());
-            assertEquals("CreationDate", 2007, xDP.getCreationDate().Year);
-            assertEquals("Title", "Urgent Memo", xDP.getTitle());
-            assertEquals("Subject", "Wichtige Mitteilung", xDP.getSubject());
-            assertEquals(
-                "Description",
-                "Modern internal company memorandum in full-blocked style",
-                xDP.getDescription());
-            assertEquals(
-                "ModifiedBy", "Karl-Heinz Mustermann", xDP.getModifiedBy());
-            assertEquals(
-                "ModificationDate", 10, xDP.getModificationDate().Month);
-            assertEquals(
-                "PrintedBy", "Karl-Heinz Mustermann", xDP.getPrintedBy());
-            assertEquals("PrintDate", 29, xDP.getPrintDate().Day);
-            assertEquals("TemplateName", "Modern Memo", xDP.getTemplateName());
-            assertTrue("TemplateURL",
-                xDP.getTemplateURL().endsWith("memmodern.ott"));
-            assertEquals("TemplateDate", 17, xDP.getTemplateDate().Hours);
-            assertTrue(
-                "AutoloadURL", xDP.getAutoloadURL().endsWith("/TEST.odt"));
-            assertEquals("AutoloadSecs", 0, xDP.getAutoloadSecs());
-            assertEquals("DefaultTarget", "_blank", xDP.getDefaultTarget());
-            assertEquals("EditingCycles", 3, xDP.getEditingCycles());
-            assertEquals("EditingDuration", 320, xDP.getEditingDuration());
-
-            String[] kws = xDP.getKeywords();
-            assertTrue("Keywords", fromArray(kws).containsAll(
-                    fromArray(new Object[] { "Asien", "Memo", "Reis" })));
-
-            NamedValue[] ds = xDP.getDocumentStatistics();
-            assertTrue("DocumentStatistics:WordCount", containsNV(ds,
-                        new NamedValue("WordCount", Integer.valueOf(23))));
-            assertTrue("DocumentStatistics:PageCount", containsNV(ds,
-                        new NamedValue("PageCount", Integer.valueOf(1))));
-
-            XPropertyContainer udpc = xDP.getUserDefinedProperties();
-            XPropertySet udps = UnoRuntime.queryInterface( XPropertySet.class, udpc );
-            assertEquals(
-                "UserDefined 1", "Dies ist ein wichtiger Hinweis",
-                udps.getPropertyValue("Hinweis"));
-            assertEquals(
-                "UserDefined 2", "Kann Spuren von N\u00FCssen enthalten",
-                udps.getPropertyValue("Warnung"));
-
-            System.out.println("...done");
-
-            System.out.println("Checking meta-data updates...");
-
-            String str;
-            DateTime dt = new DateTime();
-            Locale l = new Locale();
-            int i;
-
-            str = "me";
-            xDP.setAuthor(str);
-            assertEquals("setAuthor", str, xDP.getAuthor());
-            str = "the computa";
-            xDP.setGenerator(str);
-            assertEquals("setGenerator", str, xDP.getGenerator());
-            dt.Year = 2038;
-            dt.Month = 1;
-            dt.Day = 1;
-            xDP.setCreationDate(dt);
-            assertEquals(
-                "setCreationDate", dt.Year, xDP.getCreationDate().Year);
-            str = "El t'itulo";
-            xDP.setTitle(str);
-            assertEquals("setTitle", str, xDP.getTitle());
-            str = "Ein verkommenes Subjekt";
-            xDP.setSubject(str);
-            assertEquals("setSubject", str, xDP.getSubject());
-            str = "Este descripci'on no es importante";
-            xDP.setDescription(str);
-            assertEquals("setDescription", str, xDP.getDescription());
-            l.Language = "en";
-            l.Country = "GB";
-            xDP.setLanguage(l);
-            Locale l2 = xDP.getLanguage();
-            assertEquals("setLanguage Lang", l.Language, l2.Language);
-            assertEquals("setLanguage Cty", l.Country, l2.Country);
-            str = "myself";
-            xDP.setModifiedBy(str);
-            assertEquals("setModifiedBy", str, xDP.getModifiedBy());
-            dt.Year = 2042;
-            xDP.setModificationDate(dt);
-            assertEquals(
-                "setModificationDate", dt.Year, xDP.getModificationDate().Year);
-            str = "i did not do it";
-            xDP.setPrintedBy(str);
-            assertEquals("setPrintedBy", str, xDP.getPrintedBy());
-            dt.Year = 2024;
-            xDP.setPrintDate(dt);
-            assertEquals("setPrintDate", dt.Year, xDP.getPrintDate().Year);
-            str = "blah";
-            xDP.setTemplateName(str);
-            assertEquals("setTemplateName", str, xDP.getTemplateName());
-            str = "gopher://some-hole-in-the-ground/";
-            xDP.setTemplateURL(str);
-            assertEquals("setTemplateURL", str, xDP.getTemplateURL());
-            dt.Year = 2043;
-            xDP.setTemplateDate(dt);
-            assertEquals(
-                "setTemplateDate", dt.Year, xDP.getTemplateDate().Year);
-            str = "http://nowhere/";
-            xDP.setAutoloadURL(str);
-            assertEquals("setAutoloadURL", str, xDP.getAutoloadURL());
-            i = 3661; // this might not work (due to conversion via double...)
-            xDP.setAutoloadSecs(i);
-            assertEquals("setAutoloadSecs", i, xDP.getAutoloadSecs());
-            str = "_blank";
-            xDP.setDefaultTarget(str);
-            assertEquals("setDefaultTarget", str, xDP.getDefaultTarget());
-            i = 42;
-            xDP.setEditingCycles((short) i);
-            assertEquals("setEditingCycles", i, xDP.getEditingCycles());
-            i = 84;
-            xDP.setEditingDuration(i);
-            assertEquals("setEditingDuration", i, xDP.getEditingDuration());
-            str = "";
-
-            String[] kws2 = new String[] {
-                "keywordly", "keywordlike", "keywordalicious" };
-            xDP.setKeywords(kws2);
-            kws = xDP.getKeywords();
-            assertTrue("setKeywords", fromArray(kws).containsAll(fromArray(kws2)));
-
-            NamedValue[] ds2 = new NamedValue[] {
-                    new NamedValue("SyllableCount", Integer.valueOf(9)),
-                    new NamedValue("FrameCount", Integer.valueOf(2)),
-                    new NamedValue("SentenceCount", Integer.valueOf(7)) };
-            xDP.setDocumentStatistics(ds2);
-            ds = xDP.getDocumentStatistics();
-            assertTrue("setDocumentStatistics:SyllableCount", containsNV(ds,
-                        new NamedValue("SyllableCount", Integer.valueOf(9))));
-            assertTrue("setDocumentStatistics:FrameCount", containsNV(ds,
-                        new NamedValue("FrameCount", Integer.valueOf(2))));
-            assertTrue("setDocumentStatistics:SentenceCount", containsNV(ds,
-                        new NamedValue("SentenceCount", Integer.valueOf(7))));
-
-            System.out.println("...done");
-
-            System.out.println("Checking user-defined meta-data updates...");
-
-            // actually, this tests the PropertyBag service
-            // but maybe the DocumentProperties service will be implemented
-            // differently some day...
-            boolean b = true;
-            double d = 3.1415;
-            // note that Time is only supported for backward compatibility!
-            Time t = new Time();
-            t.Hours = 1;
-            t.Minutes = 16;
-            Date date = new Date();
-            date.Year = 2071;
-            date.Month = 2;
-            date.Day = 3;
-            dt.Year = 2065;
-            Duration dur = new Duration();
-            dur.Negative = true;
-            dur.Years = 1001;
-            dur.Months = 999;
-            dur.Days = 888;
-            dur.Hours = 777;
-            dur.Minutes = 666;
-            dur.Seconds = 555;
-            dur.NanoSeconds = 444444444;
-
-            udpc.addProperty("Frobnicate", PropertyAttribute.REMOVABLE, b);
-            udpc.addProperty("FrobDuration", PropertyAttribute.REMOVABLE, dur);
-            udpc.addProperty("FrobDuration2", PropertyAttribute.REMOVABLE, t);
-            udpc.addProperty("FrobEndDate", PropertyAttribute.REMOVABLE, date);
-            udpc.addProperty("FrobStartTime", PropertyAttribute.REMOVABLE, dt);
-            udpc.addProperty("Pi", PropertyAttribute.REMOVABLE, new Double(d));
-            udpc.addProperty("Foo", PropertyAttribute.REMOVABLE, "bar");
-            udpc.addProperty("Removed", PropertyAttribute.REMOVABLE, "bar");
-            // #i94175#: empty property name is valid ODF 1.1
-            udpc.addProperty("", PropertyAttribute.REMOVABLE, "eeeeek");
-            try {
-                udpc.removeProperty("Info 1");
-                udpc.removeProperty("Removed");
-            } catch (UnknownPropertyException e) {
-                fail("removeProperty failed");
-            }
+        System.out.println("...done");
+
+        System.out.println("Checking meta-data import...");
+
+        assertEquals("Author", "Karl-Heinz Mustermann", xDP.getAuthor());
+        assertEquals(
+            "Generator",
+            "StarOffice/8$Solaris_x86 OpenOffice.org_project/680m232$Build-9227",
+            xDP.getGenerator());
+        assertEquals("CreationDate", 2007, xDP.getCreationDate().Year);
+        assertEquals("Title", "Urgent Memo", xDP.getTitle());
+        assertEquals("Subject", "Wichtige Mitteilung", xDP.getSubject());
+        assertEquals(
+            "Description",
+            "Modern internal company memorandum in full-blocked style",
+            xDP.getDescription());
+        assertEquals(
+            "ModifiedBy", "Karl-Heinz Mustermann", xDP.getModifiedBy());
+        assertEquals(
+            "ModificationDate", 10, xDP.getModificationDate().Month);
+        assertEquals(
+            "PrintedBy", "Karl-Heinz Mustermann", xDP.getPrintedBy());
+        assertEquals("PrintDate", 29, xDP.getPrintDate().Day);
+        assertEquals("TemplateName", "Modern Memo", xDP.getTemplateName());
+        assertTrue("TemplateURL",
+            xDP.getTemplateURL().endsWith("memmodern.ott"));
+        assertEquals("TemplateDate", 17, xDP.getTemplateDate().Hours);
+        assertTrue(
+            "AutoloadURL", xDP.getAutoloadURL().endsWith("/TEST.odt"));
+        assertEquals("AutoloadSecs", 0, xDP.getAutoloadSecs());
+        assertEquals("DefaultTarget", "_blank", xDP.getDefaultTarget());
+        assertEquals("EditingCycles", 3, xDP.getEditingCycles());
+        assertEquals("EditingDuration", 320, xDP.getEditingDuration());
+
+        String[] kws = xDP.getKeywords();
+        assertTrue("Keywords", fromArray(kws).containsAll(
+                fromArray(new Object[] { "Asien", "Memo", "Reis" })));
+
+        NamedValue[] ds = xDP.getDocumentStatistics();
+        assertTrue("DocumentStatistics:WordCount", containsNV(ds,
+                    new NamedValue("WordCount", Integer.valueOf(23))));
+        assertTrue("DocumentStatistics:PageCount", containsNV(ds,
+                    new NamedValue("PageCount", Integer.valueOf(1))));
+
+        XPropertyContainer udpc = xDP.getUserDefinedProperties();
+        XPropertySet udps = UnoRuntime.queryInterface( XPropertySet.class, udpc );
+        assertEquals(
+            "UserDefined 1", "Dies ist ein wichtiger Hinweis",
+            udps.getPropertyValue("Hinweis"));
+        assertEquals(
+            "UserDefined 2", "Kann Spuren von N\u00FCssen enthalten",
+            udps.getPropertyValue("Warnung"));
+
+        System.out.println("...done");
+
+        System.out.println("Checking meta-data updates...");
+
+        String str;
+        DateTime dt = new DateTime();
+        Locale l = new Locale();
+        int i;
+
+        str = "me";
+        xDP.setAuthor(str);
+        assertEquals("setAuthor", str, xDP.getAuthor());
+        str = "the computa";
+        xDP.setGenerator(str);
+        assertEquals("setGenerator", str, xDP.getGenerator());
+        dt.Year = 2038;
+        dt.Month = 1;
+        dt.Day = 1;
+        xDP.setCreationDate(dt);
+        assertEquals(
+            "setCreationDate", dt.Year, xDP.getCreationDate().Year);
+        str = "El t'itulo";
+        xDP.setTitle(str);
+        assertEquals("setTitle", str, xDP.getTitle());
+        str = "Ein verkommenes Subjekt";
+        xDP.setSubject(str);
+        assertEquals("setSubject", str, xDP.getSubject());
+        str = "Este descripci'on no es importante";
+        xDP.setDescription(str);
+        assertEquals("setDescription", str, xDP.getDescription());
+        l.Language = "en";
+        l.Country = "GB";
+        xDP.setLanguage(l);
+        Locale l2 = xDP.getLanguage();
+        assertEquals("setLanguage Lang", l.Language, l2.Language);
+        assertEquals("setLanguage Cty", l.Country, l2.Country);
+        str = "myself";
+        xDP.setModifiedBy(str);
+        assertEquals("setModifiedBy", str, xDP.getModifiedBy());
+        dt.Year = 2042;
+        xDP.setModificationDate(dt);
+        assertEquals(
+            "setModificationDate", dt.Year, xDP.getModificationDate().Year);
+        str = "i did not do it";
+        xDP.setPrintedBy(str);
+        assertEquals("setPrintedBy", str, xDP.getPrintedBy());
+        dt.Year = 2024;
+        xDP.setPrintDate(dt);
+        assertEquals("setPrintDate", dt.Year, xDP.getPrintDate().Year);
+        str = "blah";
+        xDP.setTemplateName(str);
+        assertEquals("setTemplateName", str, xDP.getTemplateName());
+        str = "gopher://some-hole-in-the-ground/";
+        xDP.setTemplateURL(str);
+        assertEquals("setTemplateURL", str, xDP.getTemplateURL());
+        dt.Year = 2043;
+        xDP.setTemplateDate(dt);
+        assertEquals(
+            "setTemplateDate", dt.Year, xDP.getTemplateDate().Year);
+        str = "http://nowhere/";
+        xDP.setAutoloadURL(str);
+        assertEquals("setAutoloadURL", str, xDP.getAutoloadURL());
+        i = 3661; // this might not work (due to conversion via double...)
+        xDP.setAutoloadSecs(i);
+        assertEquals("setAutoloadSecs", i, xDP.getAutoloadSecs());
+        str = "_blank";
+        xDP.setDefaultTarget(str);
+        assertEquals("setDefaultTarget", str, xDP.getDefaultTarget());
+        i = 42;
+        xDP.setEditingCycles((short) i);
+        assertEquals("setEditingCycles", i, xDP.getEditingCycles());
+        i = 84;
+        xDP.setEditingDuration(i);
+        assertEquals("setEditingDuration", i, xDP.getEditingDuration());
+        str = "";
+
+        String[] kws2 = new String[] {
+            "keywordly", "keywordlike", "keywordalicious" };
+        xDP.setKeywords(kws2);
+        kws = xDP.getKeywords();
+        assertTrue("setKeywords", fromArray(kws).containsAll(fromArray(kws2)));
+
+        NamedValue[] ds2 = new NamedValue[] {
+                new NamedValue("SyllableCount", Integer.valueOf(9)),
+                new NamedValue("FrameCount", Integer.valueOf(2)),
+                new NamedValue("SentenceCount", Integer.valueOf(7)) };
+        xDP.setDocumentStatistics(ds2);
+        ds = xDP.getDocumentStatistics();
+        assertTrue("setDocumentStatistics:SyllableCount", containsNV(ds,
+                    new NamedValue("SyllableCount", Integer.valueOf(9))));
+        assertTrue("setDocumentStatistics:FrameCount", containsNV(ds,
+                    new NamedValue("FrameCount", Integer.valueOf(2))));
+        assertTrue("setDocumentStatistics:SentenceCount", containsNV(ds,
+                    new NamedValue("SentenceCount", Integer.valueOf(7))));
+
+        System.out.println("...done");
+
+        System.out.println("Checking user-defined meta-data updates...");
+
+        // actually, this tests the PropertyBag service
+        // but maybe the DocumentProperties service will be implemented
+        // differently some day...
+        boolean b = true;
+        double d = 3.1415;
+        // note that Time is only supported for backward compatibility!
+        Time t = new Time();
+        t.Hours = 1;
+        t.Minutes = 16;
+        Date date = new Date();
+        date.Year = 2071;
+        date.Month = 2;
+        date.Day = 3;
+        dt.Year = 2065;
+        Duration dur = new Duration();
+        dur.Negative = true;
+        dur.Years = 1001;
+        dur.Months = 999;
+        dur.Days = 888;
+        dur.Hours = 777;
+        dur.Minutes = 666;
+        dur.Seconds = 555;
+        dur.NanoSeconds = 444444444;
+
+        udpc.addProperty("Frobnicate", PropertyAttribute.REMOVABLE, b);
+        udpc.addProperty("FrobDuration", PropertyAttribute.REMOVABLE, dur);
+        udpc.addProperty("FrobDuration2", PropertyAttribute.REMOVABLE, t);
+        udpc.addProperty("FrobEndDate", PropertyAttribute.REMOVABLE, date);
+        udpc.addProperty("FrobStartTime", PropertyAttribute.REMOVABLE, dt);
+        udpc.addProperty("Pi", PropertyAttribute.REMOVABLE, new Double(d));
+        udpc.addProperty("Foo", PropertyAttribute.REMOVABLE, "bar");
+        udpc.addProperty("Removed", PropertyAttribute.REMOVABLE, "bar");
+        // #i94175#: empty property name is valid ODF 1.1
+        udpc.addProperty("", PropertyAttribute.REMOVABLE, "eeeeek");
+        try {
+            udpc.removeProperty("Info 1");
+            udpc.removeProperty("Removed");
+        } catch (UnknownPropertyException e) {
+            fail("removeProperty failed");
+        }
 
-            try {
-                udpc.addProperty("Forbidden", PropertyAttribute.REMOVABLE,
-                    new String[] { "foo", "bar" });
-                fail("inserting value of non-supported type did not fail");
-            } catch (IllegalTypeException e) {
-                // ignore
-            }
+        try {
+            udpc.addProperty("Forbidden", PropertyAttribute.REMOVABLE,
+                new String[] { "foo", "bar" });
+            fail("inserting value of non-supported type did not fail");
+        } catch (IllegalTypeException e) {
+            // ignore
+        }
 
-            assertEquals(
-                "UserDefined bool", b, udps.getPropertyValue("Frobnicate"));
-            assertTrue("UserDefined duration", eqDuration(dur, (Duration)
-                    udps.getPropertyValue("FrobDuration")));
-            assertTrue("UserDefined time", eqTime(t, (Time)
-                    udps.getPropertyValue("FrobDuration2")));
-            assertTrue("UserDefined date", eqDate(date, (Date)
-                    udps.getPropertyValue("FrobEndDate")));
-            assertTrue("UserDefined datetime", eqDateTime(dt, (DateTime)
-                    udps.getPropertyValue("FrobStartTime")));
-            assertEquals("UserDefined float", d, udps.getPropertyValue("Pi"));
-            assertEquals(
-                "UserDefined string", "bar", udps.getPropertyValue("Foo"));
-            assertEquals(
-                "UserDefined empty name", "eeeeek", udps.getPropertyValue(""));
-
-            try {
-                udps.getPropertyValue("Removed");
-                fail("UserDefined remove didn't");
-            } catch (UnknownPropertyException e) {
-                // ok
-            }
+        assertEquals(
+            "UserDefined bool", b, udps.getPropertyValue("Frobnicate"));
+        assertTrue("UserDefined duration", eqDuration(dur, (Duration)
+                udps.getPropertyValue("FrobDuration")));
+        assertTrue("UserDefined time", eqTime(t, (Time)
+                udps.getPropertyValue("FrobDuration2")));
+        assertTrue("UserDefined date", eqDate(date, (Date)
+                udps.getPropertyValue("FrobEndDate")));
+        assertTrue("UserDefined datetime", eqDateTime(dt, (DateTime)
+                udps.getPropertyValue("FrobStartTime")));
+        assertEquals("UserDefined float", d, udps.getPropertyValue("Pi"));
+        assertEquals(
+            "UserDefined string", "bar", udps.getPropertyValue("Foo"));
+        assertEquals(
+            "UserDefined empty name", "eeeeek", udps.getPropertyValue(""));
 
-            System.out.println("...done");
+        try {
+            udps.getPropertyValue("Removed");
+            fail("UserDefined remove didn't");
+        } catch (UnknownPropertyException e) {
+            // ok
+        }
 
-            System.out.println("Checking storing meta-data to file...");
+        System.out.println("...done");
 
-            xDP.storeToMedium(temp + "TEST.odt", mimeArgs);
+        System.out.println("Checking storing meta-data to file...");
 
-            System.out.println("...done");
+        xDP.storeToMedium(temp + "TEST.odt", mimeArgs);
 
-            System.out.println("Checking loading meta-data from stored file...");
+        System.out.println("...done");
 
-            xDP.loadFromMedium(temp + "TEST.odt", noArgs);
+        System.out.println("Checking loading meta-data from stored file...");
 
-            System.out.println("...done");
+        xDP.loadFromMedium(temp + "TEST.odt", noArgs);
 
-            System.out.println("Checking user-defined meta-data from stored file...");
+        System.out.println("...done");
 
-            udpc = xDP.getUserDefinedProperties();
-            udps = UnoRuntime.queryInterface( XPropertySet.class, udpc );
+        System.out.println("Checking user-defined meta-data from stored file...");
 
-            assertEquals(
-                "UserDefined bool", b, udps.getPropertyValue("Frobnicate"));
-            assertTrue("UserDefined duration", eqDuration(dur, (Duration)
-                    udps.getPropertyValue("FrobDuration")));
-            // this is now a Duration!
-            Duration t_dur = new Duration(false, (short)0, (short)0, (short)0,
-                    t.Hours, t.Minutes, t.Seconds,
-                    t.NanoSeconds);
-            assertTrue("UserDefined time", eqDuration(t_dur, (Duration)
-                    udps.getPropertyValue("FrobDuration2")));
-            assertTrue("UserDefined date", eqDate(date, (Date)
-                    udps.getPropertyValue("FrobEndDate")));
-            assertTrue("UserDefined datetime", eqDateTime(dt, (DateTime)
-                    udps.getPropertyValue("FrobStartTime")));
-            assertEquals("UserDefined float", d, udps.getPropertyValue("Pi"));
-            assertEquals(
-                "UserDefined string", "bar", udps.getPropertyValue("Foo"));
+        udpc = xDP.getUserDefinedProperties();
+        udps = UnoRuntime.queryInterface( XPropertySet.class, udpc );
 
-            try {
-                udps.getPropertyValue("Removed");
-                fail("UserDefined remove didn't");
-            } catch (UnknownPropertyException e) {
-                // ok
-            }
+        assertEquals(
+            "UserDefined bool", b, udps.getPropertyValue("Frobnicate"));
+        assertTrue("UserDefined duration", eqDuration(dur, (Duration)
+                udps.getPropertyValue("FrobDuration")));
+        // this is now a Duration!
+        Duration t_dur = new Duration(false, (short)0, (short)0, (short)0,
+                t.Hours, t.Minutes, t.Seconds,
+                t.NanoSeconds);
+        assertTrue("UserDefined time", eqDuration(t_dur, (Duration)
+                udps.getPropertyValue("FrobDuration2")));
+        assertTrue("UserDefined date", eqDate(date, (Date)
+                udps.getPropertyValue("FrobEndDate")));
+        assertTrue("UserDefined datetime", eqDateTime(dt, (DateTime)
+                udps.getPropertyValue("FrobStartTime")));
+        assertEquals("UserDefined float", d, udps.getPropertyValue("Pi"));
+        assertEquals(
+            "UserDefined string", "bar", udps.getPropertyValue("Foo"));
 
-            System.out.println("...done");
-
-            System.out.println("Checking notification listener interface...");
-
-            Listener listener = new Listener();
-            XModifyBroadcaster xMB = UnoRuntime.queryInterface( XModifyBroadcaster.class, xDP );
-            xMB.addModifyListener(listener);
-            xDP.setAuthor("not me");
-            assertTrue("Listener Author", listener.reset());
-            udpc.addProperty("Listener", PropertyAttribute.REMOVABLE, "foo");
-            assertTrue("Listener UserDefined Add", listener.reset());
-            udps.setPropertyValue("Listener", "bar");
-            assertTrue("Listener UserDefined Set", listener.reset());
-            udpc.removeProperty("Listener");
-            assertTrue("Listener UserDefined Remove", listener.reset());
-            xMB.removeModifyListener(listener);
-            udpc.addProperty("Listener2", PropertyAttribute.REMOVABLE, "foo");
-            assertTrue("Removed Listener UserDefined Add", !listener.reset());
-
-            System.out.println("...done");
-
-        } catch (Exception e) {
-            report(e);
+        try {
+            udps.getPropertyValue("Removed");
+            fail("UserDefined remove didn't");
+        } catch (UnknownPropertyException e) {
+            // ok
         }
+
+        System.out.println("...done");
+
+        System.out.println("Checking notification listener interface...");
+
+        Listener listener = new Listener();
+        XModifyBroadcaster xMB = UnoRuntime.queryInterface( XModifyBroadcaster.class, xDP );
+        xMB.addModifyListener(listener);
+        xDP.setAuthor("not me");
+        assertTrue("Listener Author", listener.reset());
+        udpc.addProperty("Listener", PropertyAttribute.REMOVABLE, "foo");
+        assertTrue("Listener UserDefined Add", listener.reset());
+        udps.setPropertyValue("Listener", "bar");
+        assertTrue("Listener UserDefined Set", listener.reset());
+        udpc.removeProperty("Listener");
+        assertTrue("Listener UserDefined Remove", listener.reset());
+        xMB.removeModifyListener(listener);
+        udpc.addProperty("Listener2", PropertyAttribute.REMOVABLE, "foo");
+        assertTrue("Removed Listener UserDefined Add", !listener.reset());
+
+        System.out.println("...done");
     }
 
     // grrr...
@@ -504,14 +500,7 @@ public class DocumentProperties
         return false;
     }
 
-    public void report(Exception e) {
-        System.out.println("Exception occurred:");
-        e.printStackTrace();
-        fail();
-    }
-
-
-        private XMultiServiceFactory getMSF()
+    private XMultiServiceFactory getMSF()
     {
         final XMultiServiceFactory xMSF1 = UnoRuntime.queryInterface( XMultiServiceFactory.class, connection.getComponentContext().getServiceManager() );
         return xMSF1;
diff --git a/sfx2/qa/complex/sfx2/UndoManager.java b/sfx2/qa/complex/sfx2/UndoManager.java
index 45f99fd..ad82ca4 100644
--- a/sfx2/qa/complex/sfx2/UndoManager.java
+++ b/sfx2/qa/complex/sfx2/UndoManager.java
@@ -42,8 +42,11 @@ import com.sun.star.document.XUndoAction;
 import com.sun.star.lang.EventObject;
 import com.sun.star.lang.IndexOutOfBoundsException;
 import com.sun.star.lang.XEventListener;
+
 import java.lang.reflect.InvocationTargetException;
+
 import org.openoffice.test.tools.OfficeDocument;
+
 import com.sun.star.document.XUndoManagerSupplier;
 import com.sun.star.document.XUndoManager;
 import com.sun.star.document.XUndoManagerListener;
@@ -60,28 +63,34 @@ import com.sun.star.script.ScriptEventDescriptor;
 import com.sun.star.script.XEventAttacherManager;
 import com.sun.star.script.XLibraryContainer;
 import com.sun.star.task.XJob;
+import com.sun.star.uno.Exception;
 import com.sun.star.uno.Type;
 import com.sun.star.uno.UnoRuntime;
 import com.sun.star.uno.XComponentContext;
 import com.sun.star.util.InvalidStateException;
 import com.sun.star.util.NotLockedException;
 import com.sun.star.view.XControlAccess;
+
 import complex.sfx2.undo.CalcDocumentTest;
 import complex.sfx2.undo.ChartDocumentTest;
 import complex.sfx2.undo.DocumentTest;
 import complex.sfx2.undo.DrawDocumentTest;
 import complex.sfx2.undo.ImpressDocumentTest;
 import complex.sfx2.undo.WriterDocumentTest;
+
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Stack;
+
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
+
 import static org.junit.Assert.*;
+
 import org.openoffice.test.OfficeConnection;
 import org.openoffice.test.tools.DocumentType;
 import org.openoffice.test.tools.SpreadsheetDocument;
@@ -118,7 +127,7 @@ public class UndoManager
 
 
 //FIXME fails fdo#35663   @Test
-    public void checkCalcUndo() throws Exception
+    public void checkCalcUndo() throws java.lang.Exception
     {
         m_currentTestCase = new CalcDocumentTest( getORB() );
         impl_checkUndo();
@@ -385,38 +394,31 @@ public class UndoManager
 
 
     private void impl_assignScript( final XPropertySet i_controlModel, final String i_interfaceName,
-        final String i_interfaceMethod, final String i_scriptURI )
+        final String i_interfaceMethod, final String i_scriptURI ) throws Exception
     {
-        try
-        {
-            final XChild modelAsChild = UnoRuntime.queryInterface( XChild.class, i_controlModel );
-            final XIndexContainer parentForm = UnoRuntime.queryInterface( XIndexContainer.class, modelAsChild.getParent() );
+        final XChild modelAsChild = UnoRuntime.queryInterface( XChild.class, i_controlModel );
+        final XIndexContainer parentForm = UnoRuntime.queryInterface( XIndexContainer.class, modelAsChild.getParent() );
 
-            final XEventAttacherManager manager = UnoRuntime.queryInterface( XEventAttacherManager.class, parentForm );
+        final XEventAttacherManager manager = UnoRuntime.queryInterface( XEventAttacherManager.class, parentForm );
 
-            int containerPosition = -1;
-            for ( int i = 0; i < parentForm.getCount(); ++i )
+        int containerPosition = -1;
+        for ( int i = 0; i < parentForm.getCount(); ++i )
+        {
+            final XPropertySet child = UnoRuntime.queryInterface( XPropertySet.class, parentForm.getByIndex( i ) );
+            if ( UnoRuntime.areSame( child, i_controlModel ) )
             {
-                final XPropertySet child = UnoRuntime.queryInterface( XPropertySet.class, parentForm.getByIndex( i ) );
-                if ( UnoRuntime.areSame( child, i_controlModel ) )
-                {
-                    containerPosition = i;
-                    break;
-                }
+                containerPosition = i;
+                break;
             }
-            assertFalse( "could not find the given control model within its parent", containerPosition == -1 );
-            manager.registerScriptEvent( containerPosition, new ScriptEventDescriptor(
-                i_interfaceName,
-                i_interfaceMethod,
-                "",
-                "Script",
-                i_scriptURI
-            ) );
-        }
-        catch( com.sun.star.uno.Exception e )
-        {
-            fail( "caught an exception while assigning the script event to the button: " + e.toString() );
         }
+        assertFalse( "could not find the given control model within its parent", containerPosition == -1 );
+        manager.registerScriptEvent( containerPosition, new ScriptEventDescriptor(
+            i_interfaceName,
+            i_interfaceMethod,
+            "",
+            "Script",
+            i_scriptURI
+        ) );
     }
 
 
@@ -1195,7 +1197,7 @@ public class UndoManager
 
 
     @BeforeClass
-    public static void setUpConnection() throws Exception
+    public static void setUpConnection() throws java.lang.Exception
     {
         System.out.println( "--------------------------------------------------------------------------------" );
         System.out.println( "starting class: " + UndoManager.class.getName() );
diff --git a/sfx2/qa/complex/sfx2/tools/WriterHelper.java b/sfx2/qa/complex/sfx2/tools/WriterHelper.java
index 382aebc..3180d36 100644
--- a/sfx2/qa/complex/sfx2/tools/WriterHelper.java
+++ b/sfx2/qa/complex/sfx2/tools/WriterHelper.java
@@ -185,15 +185,8 @@ public class WriterHelper {
      *
      * @return returns the gained XExtendedToolkit Interface
      */
-    public XExtendedToolkit getToolkit() {
-        Object toolkit = null;
-
-        try {
-            toolkit = m_xMSF.createInstance("com.sun.star.awt.Toolkit");
-        } catch (com.sun.star.uno.Exception e) {
-            System.out.println("Couldn't get toolkit");
-            e.printStackTrace(System.err);
-        }
+    public XExtendedToolkit getToolkit() throws com.sun.star.uno.Exception {
+        Object toolkit = m_xMSF.createInstance("com.sun.star.awt.Toolkit");
 
         XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class,
                 toolkit);
@@ -207,15 +200,8 @@ public class WriterHelper {
      *
      * @return returns the gained XDesktop interface
      */
-    private XDesktop getDesktop() {
-        Object desk = null;
-
-        try {
-            desk = m_xMSF.createInstance("com.sun.star.frame.Desktop");
-        } catch (com.sun.star.uno.Exception e) {
-            System.out.println("Couldn't get desktop");
-            e.printStackTrace(System.err);
-        }
+    private XDesktop getDesktop() throws com.sun.star.uno.Exception {
+        Object desk = m_xMSF.createInstance("com.sun.star.frame.Desktop");
 
         XDesktop xDesktop = UnoRuntime.queryInterface(XDesktop.class, desk);
 
diff --git a/sfx2/qa/complex/sfx2/undo/ChartDocumentTest.java b/sfx2/qa/complex/sfx2/undo/ChartDocumentTest.java
index 7d2b229..8ccbe6b 100644
--- a/sfx2/qa/complex/sfx2/undo/ChartDocumentTest.java
+++ b/sfx2/qa/complex/sfx2/undo/ChartDocumentTest.java
@@ -115,23 +115,16 @@ public class ChartDocumentTest implements DocumentTest
         return wallProperties;
     }
 
-    private XPropertySet impl_getYAxisProperties()
+    private XPropertySet impl_getYAxisProperties() throws IndexOutOfBoundsException
     {
         XPropertySet axisProperties = null;
-        try
-        {
-            final XChartDocument chartDoc = UnoRuntime.queryInterface( XChartDocument.class, m_chartDocument.getDocument() );
-            final XDiagram diagram = chartDoc.getFirstDiagram();
-            final XCoordinateSystemContainer coordContainer = UnoRuntime.queryInterface( XCoordinateSystemContainer.class, diagram );
-            final XCoordinateSystem[] coordSystems = coordContainer.getCoordinateSystems();
-            final XCoordinateSystem coordSystem = coordSystems[0];
-            final XAxis primaryYAxis = coordSystem.getAxisByDimension( 1, 0 );
-            axisProperties = UnoRuntime.queryInterface( XPropertySet.class, primaryYAxis );
-        }
-        catch ( Exception ex )
-        {
-            fail( "internal error: could not retrieve primary Y axis properties" );
-        }
+        final XChartDocument chartDoc = UnoRuntime.queryInterface( XChartDocument.class, m_chartDocument.getDocument() );
+        final XDiagram diagram = chartDoc.getFirstDiagram();
+        final XCoordinateSystemContainer coordContainer = UnoRuntime.queryInterface( XCoordinateSystemContainer.class, diagram );
+        final XCoordinateSystem[] coordSystems = coordContainer.getCoordinateSystems();
+        final XCoordinateSystem coordSystem = coordSystems[0];
+        final XAxis primaryYAxis = coordSystem.getAxisByDimension( 1, 0 );
+        axisProperties = UnoRuntime.queryInterface( XPropertySet.class, primaryYAxis );
         return axisProperties;
     }
 


More information about the Libreoffice-commits mailing list