[ooo-build-commit] Branch 'ooo/master' - 4 commits - qadevOOo/objdsc qadevOOo/qa qadevOOo/runner qadevOOo/tests testautomation/dbaccess testautomation/graphics testautomation/spreadsheet testautomation/tools

Jan Holesovsky kendy at kemper.freedesktop.org
Mon Jul 6 19:33:32 PDT 2009


 qadevOOo/objdsc/qadevOOo/bogus.SelfTest.csv                     |    7 
 qadevOOo/qa/unoapi/knownissues.xcl                              |    1 
 qadevOOo/qa/unoapi/makefile.mk                                  |   44 
 qadevOOo/qa/unoapi/qadevOOo.sce                                 |    1 
 qadevOOo/runner/base/java_fat.java                              |  712 +++++-----
 qadevOOo/runner/complexlib/ComplexTestCase.java                 |    2 
 qadevOOo/runner/complexlib/MethodThread.java                    |   44 
 qadevOOo/runner/helper/APIDescGetter.java                       |  698 ++++++---
 qadevOOo/runner/helper/CwsDataExchangeImpl.java                 |   76 -
 qadevOOo/runner/helper/ProcessHandler.java                      |   51 
 qadevOOo/runner/lib/MultiMethodTest.java                        |  340 ++--
 qadevOOo/runner/share/DescGetter.java                           |  141 +
 qadevOOo/runner/util/DesktopTools.java                          |    4 
 qadevOOo/tests/java/complex/unoapi/CheckModuleAPI.java          |  447 ++++--
 qadevOOo/tests/java/ifc/qadevooo/_SelfTest.java                 |   86 +
 qadevOOo/tests/java/mod/_qadevOOo/SelfTest.java                 |   95 +
 testautomation/dbaccess/optional/includes/wiz_TableWizard.inc   |   29 
 testautomation/dbaccess/required/includes/Table.inc             |    9 
 testautomation/graphics/optional/includes/global/g_format.inc   |   48 
 testautomation/graphics/tools/id_tools.inc                      |   30 
 testautomation/graphics/tools/id_tools_2.inc                    |   65 
 testautomation/spreadsheet/required/includes/c_upd_datamenu.inc |   16 
 testautomation/tools/run_tests/run_tests.sh                     |  100 -
 23 files changed, 1921 insertions(+), 1125 deletions(-)

New commits:
commit d0300a7ecb45232163e7d36a1a8fc2986f3d1a2d
Author: Vladimir Glazounov <vg at openoffice.org>
Date:   Mon Jul 6 13:24:17 2009 +0000

    CWS-TOOLING: integrate CWS automationdev300m51cat0
    2009-07-02 14:14:05 +0200 oc  r273649 : #i103276# Dialog closed and reopened
    2009-07-02 13:27:41 +0200 wg  r273644 : i103272, adding some missing underscores

diff --git a/testautomation/graphics/tools/id_tools_2.inc b/testautomation/graphics/tools/id_tools_2.inc
index 3490ef7..4ed3061 100755
--- a/testautomation/graphics/tools/id_tools_2.inc
+++ b/testautomation/graphics/tools/id_tools_2.inc
@@ -540,14 +540,14 @@ end sub
 
 '-------------------------------------------------------------------------------
 
-sub im_002
+sub im_002_
     printLog Chr(13) + "--------- im_002_     ---------- $Date: 2008-06-16 10:43:16 $ $Revision: 1.1 $ "
     Call tiEditDeleteSlide
 end sub
 
 '-------------------------------------------------------------------------------
 
-sub im_003
+sub im_003_
     printLog Chr(13) + "--------- im_003_     ----------"
     Call tiViewMasterView
     Call tiViewSlideMaster
@@ -558,21 +558,21 @@ end sub
 
 '-------------------------------------------------------------------------------
 
-sub im_004
+sub im_004_
     printLog Chr(13) + "---------  im_004_     ----------"
     Call tiInsertSlideExpandSummary
 end sub
 
 '-------------------------------------------------------------------------------
 
-sub im_005
+sub im_005_
     printLog Chr(13) + "---------  im_005_     ---------- "
     Call tiFormatModifyLayout ' impress only
 end sub
 
 '-------------------------------------------------------------------------------
 
-sub im_007
+sub im_007_
     printLog Chr(13) + "---------  im_007_     ---------- "
     Call tSlideShowSlideShow
     Call tSlideShowRehearseTimings
@@ -587,14 +587,14 @@ end sub
 
 '-------------------------------------------------------------------------------
 
-sub im_011
+sub im_011_
     printLog Chr(13) + "---------  im_011_     ---------- "
     Call tiDiaLeiste    ' only IMPRESS
 end sub
 
 '-------------------------------------------------------------------------------
 
-sub D_002
+sub D_002_
     printLog Chr(13) + "---------  D_002_     ---------- "
     Call tdEditCrossFading
     Call tdEditLayer
@@ -602,7 +602,7 @@ end sub
 
 '-------------------------------------------------------------------------------
 
-sub D_003
+sub D_003_
     printLog Chr(13) + "---------  D_003_     ---------- "
     call tdViewSlide
     call tdViewPagePane
@@ -610,7 +610,7 @@ end sub
 
 '-------------------------------------------------------------------------------
 
-sub D_005
+sub D_005_
     printLog Chr(13) + "---------  D_005_     ---------- "
     call tiFormatLayer ' only in draw !!!!!
 end sub
diff --git a/testautomation/spreadsheet/required/includes/c_upd_datamenu.inc b/testautomation/spreadsheet/required/includes/c_upd_datamenu.inc
index 9a481a5..56280cd 100755
--- a/testautomation/spreadsheet/required/includes/c_upd_datamenu.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_datamenu.inc
@@ -940,10 +940,16 @@ testcase tDataDataPilot
     Datenfeld.Cancel
     sleep 2
     Kontext "Datenpilot"
-    '/// Select second item (Sum – 2001) in 'Data Fields' by 3 <TAB>
-    printlog " Select second item (Sum – 2001) in 'Data Fields' by 3 <TAB>"
-    Datenpilot.TypeKeys "<TAB><TAB><TAB>",TRUE
-    Sleep 3
+	printlog " Close 'DataPilot' dialog with 'Cancel'"
+    Datenpilot.Cancel
+	printlog " Reopen 'DataPilot' dialog by 'Data – Datapilot – Start'"
+    DataDataPilotStart
+    sleep 1
+    Kontext "Datenpilot"
+    '/// Select item (Sum – 2001) in 'Data Fields' by 8 <TAB>
+    printlog " Select item (Sum – 2001) in 'Data Fields' by 8 <TAB>"
+    Datenpilot.TypeKeys "<TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB>",TRUE
+    Sleep 1
     '/// Click on 'Options' button to open 'Data Filed' dialog
     printlog " Click on 'Options' button to open 'Data Filed' dialog"
     If Optionen.IsEnabled Then
@@ -954,7 +960,7 @@ testcase tDataDataPilot
         Call hCloseDocument
         goto endsub
     end if
-	sleep 3
+	sleep 1
     Kontext "DataFieldsFunctionDlg"
     '/// Click on 'More' button
     printlog " Click on 'More' button"
commit bb2552460e3c39806ef7f6cd2ea3fc567ade8bc4
Author: Vladimir Glazounov <vg at openoffice.org>
Date:   Mon Jul 6 10:30:52 2009 +0000

    CWS-TOOLING: integrate CWS unoapi04
    2009-06-26 14:00:27 +0200 lla  r273410 : #i102248# cleanups
    2009-06-26 13:36:44 +0200 lla  r273407 : #i102248# fix problem with too long sleeps and waits
    2009-06-26 08:34:17 +0200 lla  r273393 : #i102248# cleanups
    2009-06-26 08:28:43 +0200 lla  r273392 : #i102248# cleanups
    2009-06-25 13:17:19 +0200 lla  r273379 : #i102248# add prototypes
    2009-06-25 11:31:02 +0200 lla  r273371 : #i102248# cleanups
    2009-06-25 11:15:18 +0200 lla  r273370 : #i102248# add a selftest for demonstration.
    2009-06-25 10:53:35 +0200 lla  r273369 : #i102248# add a selftest for demonstration.
    2009-06-25 10:38:10 +0200 lla  r273368 : #i102248# add a selftest for demonstration.
    2009-06-23 11:09:35 +0200 lla  r273266 : #i102248# cleanup
    2009-06-23 11:00:15 +0200 lla  r273265 : #i10i108248# add cwstestresult to cwscheckapi
    2009-06-23 10:59:50 +0200 lla  r273264 : #i10i108248# add cwstestresult to cwscheckapi
    2009-06-23 10:58:47 +0200 lla  r273263 : #i102248# add selftest

diff --git a/qadevOOo/objdsc/qadevOOo/bogus.SelfTest.csv b/qadevOOo/objdsc/qadevOOo/bogus.SelfTest.csv
new file mode 100755
index 0000000..3983a1e
--- /dev/null
+++ b/qadevOOo/objdsc/qadevOOo/bogus.SelfTest.csv
@@ -0,0 +1,7 @@
+# "Name";
+#          "com::sun::star::" will overread
+#                                               method name which is called
+"SelfTest";"com::sun::star::qadevooo::SelfTest";"testmethod()"
+"SelfTest";"com::sun::star::qadevooo::SelfTest";"testmethod2()"
+"SelfTest";"com::sun::star::qadevooo::SelfTest";"testmethod3()"
+# "SelfTest";"com::sun::star::qadevooo::SelfTest#optional";"testmethod4_bogus()"
diff --git a/qadevOOo/qa/unoapi/knownissues.xcl b/qadevOOo/qa/unoapi/knownissues.xcl
new file mode 100755
index 0000000..02c5090
--- /dev/null
+++ b/qadevOOo/qa/unoapi/knownissues.xcl
@@ -0,0 +1 @@
+# This file contains all Errors
diff --git a/qadevOOo/qa/unoapi/makefile.mk b/qadevOOo/qa/unoapi/makefile.mk
new file mode 100755
index 0000000..936884b
--- /dev/null
+++ b/qadevOOo/qa/unoapi/makefile.mk
@@ -0,0 +1,44 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+# 
+# Copyright 2008 by Sun Microsystems, Inc.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.8 $
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=qadevOOo
+TARGET=qa_unoapi
+
+.INCLUDE: settings.mk
+
+.INCLUDE: target.mk
+
+ALLTAR : UNOAPI_TEST
+
+UNOAPI_TEST:
+    +$(SOLARENV)$/bin$/checkapi -sce qadevOOo.sce -xcl knownissues.xcl -tdoc $(PWD)$/testdocuments 
diff --git a/qadevOOo/qa/unoapi/qadevOOo.sce b/qadevOOo/qa/unoapi/qadevOOo.sce
new file mode 100755
index 0000000..8e24c47
--- /dev/null
+++ b/qadevOOo/qa/unoapi/qadevOOo.sce
@@ -0,0 +1 @@
+-o qadevOOo.SelfTest
diff --git a/qadevOOo/runner/base/java_fat.java b/qadevOOo/runner/base/java_fat.java
index 847973d..0e540cf 100644
--- a/qadevOOo/runner/base/java_fat.java
+++ b/qadevOOo/runner/base/java_fat.java
@@ -59,47 +59,55 @@ import util.DynamicClassLoader;
  *
  * this class handles tests written in java and running on a fat Office
  */
-public class java_fat implements TestBase {
+public class java_fat implements TestBase
+{
 
-    public static boolean debug = false;
-    public static boolean keepdocument = false;
-    public static boolean logging = true;
-    public static boolean newOffice = false;
+    private static boolean debug = false;
+    private static boolean keepdocument = false;
+    private static boolean logging = true;
+    private static boolean newOffice = false;
     private DynamicClassLoader dcl = null;
 
-    public boolean executeTest(lib.TestParameters param) {
-        dcl = new DynamicClassLoader();
-
-        DescGetter dg = new APIDescGetter();
-        String job = (String) param.get("TestJob");
-        String ExclusionFile = (String) param.get("ExclusionList");
-        Vector exclusions = null;
-        boolean retValue = true;
-        debug = param.getBool("DebugIsActive");
-        logging = param.getBool("LoggingIsActive");
-        keepdocument = param.getBool("KeepDocument");
-        newOffice = param.getBool(util.PropertyName.NEW_OFFICE_INSTANCE);
-        if (keepdocument) {
-            System.setProperty("KeepDocument", "true");
-        }
-        if (ExclusionFile != null) {
-            exclusions = getExclusionList(ExclusionFile, debug);
-        }
-        //get Job-Descriptions
-        System.out.println("Getting Descriptions for Job: " + job);
+    private lib.TestParameters m_aParams;
+    private AppProvider m_aOffice;
 
-        DescEntry[] entries = dg.getDescriptionFor(job,
-            (String) param.get(
-            "DescriptionPath"),
-            debug);
+    public boolean executeTest(lib.TestParameters param)
+        {
+            m_aParams = param;
 
-        System.out.println();
+            dcl = new DynamicClassLoader();
 
-        if (entries == null) {
-            System.out.println("Couldn't get Description for Job: " + job);
+            DescGetter dg = new APIDescGetter();
+            String job = (String) param.get("TestJob");
+            String ExclusionFile = (String) param.get("ExclusionList");
+            Vector exclusions = null;
+            boolean retValue = true;
+            debug = param.getBool("DebugIsActive");
+            logging = param.getBool("LoggingIsActive");
+            keepdocument = param.getBool("KeepDocument");
+            newOffice = param.getBool(util.PropertyName.NEW_OFFICE_INSTANCE);
+            if (keepdocument)
+            {
+                System.setProperty("KeepDocument", "true");
+            }
+            if (ExclusionFile != null)
+            {
+                exclusions = getExclusionList(ExclusionFile, debug);
+            }
+            //get Job-Descriptions
+            System.out.println("Getting Descriptions for Job: " + job);
 
-            return false;
-        }
+            String sDescriptionPath = (String) param.get("DescriptionPath");
+            DescEntry[] entries = dg.getDescriptionFor(job, sDescriptionPath, debug);
+
+            // System.out.println();
+
+            if (entries == null)
+            {
+                System.out.println("Couldn't get Description for Job: " + job);
+
+                return false;
+            }
 
 //        String officeProviderName = (String) param.get("OfficeProvider");
 //        AppProvider office = (AppProvider) dcl.getInstance(officeProviderName);
@@ -110,265 +118,276 @@ public class java_fat implements TestBase {
 //            System.exit(-1);
 //        }
 
-        AppProvider office = startOffice(param);
-
-        boolean firstRun = true;
+            m_aOffice = startOffice(param);
 
-        for (int l = 0; l < entries.length; l++) {
-            if (entries[l] == null) {
-                continue;
-            }
+            boolean firstRun = true;
 
-            if (entries[l].hasErrorMsg) {
-                System.out.println(entries[l].ErrorMsg);
+            for (int l = 0; l < entries.length; l++)
+            {
+                if (entries[l] == null)
+                {
+                    continue;
+                }
 
-                continue;
-            }
+                if (entries[l].hasErrorMsg)
+                {
+                    System.out.println(entries[l].ErrorMsg);
+                    retValue = false;
+                    continue;
+                }
 
-            if (!firstRun && newOffice) {
-                if (!office.closeExistingOffice(param, true)) {
-                    office.disposeManager(param);
+                if (!firstRun && newOffice)
+                {
+                    if (!m_aOffice.closeExistingOffice(param, true))
+                    {
+                        m_aOffice.disposeManager(param);
+                    }
+                    startOffice(param);
                 }
-                startOffice(param);
-            }
-            firstRun = false;
+                firstRun = false;
 
 //            XMultiServiceFactory msf = (XMultiServiceFactory) office.getManager(
 //                                               param);
 
-            XMultiServiceFactory msf = (XMultiServiceFactory) param.getMSF();
+                XMultiServiceFactory msf = (XMultiServiceFactory) param.getMSF();
 
-            if (msf == null) {
-                retValue = false;
+                if (msf == null)
+                {
+                    retValue = false;
 
-                continue;
-            }
+                    continue;
+                }
 
 //            param.put("ServiceFactory", msf);
 
-            DescEntry entry = entries[l];
-
-            //get some helper classes
-            Summarizer sumIt = new Summarizer();
+                DescEntry entry = entries[l];
 
-            TestCase tCase = null;
-
-            try {
-                tCase = (TestCase) dcl.getInstance("mod._" +
-                    entry.entryName);
-            } catch (java.lang.IllegalArgumentException ie) {
-                entry.ErrorMsg = ie.getMessage();
-                entry.hasErrorMsg = true;
-            } catch (java.lang.NoClassDefFoundError ie) {
-                entry.ErrorMsg = ie.getMessage();
-                entry.hasErrorMsg = true;
-            }
-
-            if (tCase == null) {
-                Summarizer.summarizeDown(entry, entry.ErrorMsg);
-
-                LogWriter sumObj = OutProducerFactory.createOutProducer(param);
-                entry.UserDefinedParams = param;
-                sumObj.initialize(entry, logging);
-                sumObj.summary(entry);
+                //get some helper classes
+                Summarizer sumIt = new Summarizer();
 
-                continue;
-            }
+                TestCase tCase = null;
 
-            if (debug) {
-                System.out.println("sleeping 5 seconds..");
-            }
-            util.utils.shortWait(5000);
+                try
+                {
+                    tCase = (TestCase) dcl.getInstance("mod._" + entry.entryName);
+                }
+                catch (java.lang.IllegalArgumentException ie)
+                {
+                    entry.ErrorMsg = ie.getMessage();
+                    entry.hasErrorMsg = true;
+                }
+                catch (java.lang.NoClassDefFoundError ie)
+                {
+                    entry.ErrorMsg = ie.getMessage();
+                    entry.hasErrorMsg = true;
+                }
 
-            System.out.println("Creating: " + entry.entryName);
+                if (tCase == null)
+                {
+                    Summarizer.summarizeDown(entry, entry.ErrorMsg);
 
-            LogWriter log = (LogWriter) dcl.getInstance(
-                (String) param.get("LogWriter"));
-            log.initialize(entry, logging);
-            entry.UserDefinedParams = param;
+                    LogWriter sumObj = OutProducerFactory.createOutProducer(param);
+                    entry.UserDefinedParams = param;
+                    sumObj.initialize(entry, logging);
+                    sumObj.summary(entry);
 
-            TestEnvironment tEnv = null;
+                    continue;
+                }
 
-            try {
-                tCase.setLogWriter((PrintWriter) log);
-                tCase.initializeTestCase(param);
-                tEnv = tCase.getTestEnvironment(param);
-            } catch (Exception e) {
-                System.out.println("Exception while creating " +
-                    tCase.getObjectName());
-                System.out.println("Message " + e.getMessage());
-                e.printStackTrace();
-                tEnv = null;
-            } catch (java.lang.UnsatisfiedLinkError e) {
-                System.out.println("Exception while creating " +
-                    tCase.getObjectName());
-                System.out.println("Message " + e.getMessage());
-                tEnv = null;
-            } catch (java.lang.NoClassDefFoundError e) {
-                System.out.println("Exception while creating " +
-                    tCase.getObjectName());
-                System.out.println("Message " + e.getMessage());
-                tEnv = null;
-            }
+                if (debug)
+                {
+                    System.out.println("sleeping 5 seconds..");
+                }
+                util.utils.shortWait(5000);
 
-            if (tEnv == null) {
-                Summarizer.summarizeDown(entry,
-                    "Couldn't create " +
-                    tCase.getObjectName());
+                System.out.println("Creating: " + entry.entryName);
 
-                LogWriter sumObj = OutProducerFactory.createOutProducer(param);
+                LogWriter log = (LogWriter) dcl.getInstance((String) param.get("LogWriter"));
+                log.initialize(entry, logging);
                 entry.UserDefinedParams = param;
-                sumObj.initialize(entry, logging);
-                sumObj.summary(entry);
-
-                continue;
-            }
 
-            System.out.println(tCase.getObjectName() + " recreated ");
+                TestEnvironment tEnv = null;
 
-            for (int j = 0; j < entry.SubEntryCount; j++) {
-                if (!entry.SubEntries[j].isToTest) {
-                    Summarizer.summarizeDown(entry.SubEntries[j],
-                        "not part of the job");
-
-                    continue;
+                try
+                {
+                    tCase.setLogWriter((PrintWriter) log);
+                    tCase.initializeTestCase(param);
+                    tEnv = tCase.getTestEnvironment(param);
                 }
+                catch (Exception e)
+                {
+                    System.out.println("Exception while creating " + tCase.getObjectName());
+                    System.out.println("Message " + e.getMessage());
+                    e.printStackTrace();
+                    tEnv = null;
+                }
+                catch (java.lang.UnsatisfiedLinkError e)
+                {
+                    System.out.println("Exception while creating " + tCase.getObjectName());
+                    System.out.println("Message " + e.getMessage());
+                    tEnv = null;
+                }
+                catch (java.lang.NoClassDefFoundError e)
+                {
+                    System.out.println("Exception while creating " + tCase.getObjectName());
+                    System.out.println("Message " + e.getMessage());
+                    tEnv = null;
+                }
+
+                if (tEnv == null)
+                {
+                    Summarizer.summarizeDown(entry, "Couldn't create " + tCase.getObjectName());
 
-                if ((exclusions != null) && (exclusions.contains(entry.SubEntries[j].longName))) {
-                    Summarizer.summarizeDown(entry.SubEntries[j],
-                        "known issue");
+                    LogWriter sumObj = OutProducerFactory.createOutProducer(param);
+                    entry.UserDefinedParams = param;
+                    sumObj.initialize(entry, logging);
+                    sumObj.summary(entry);
 
                     continue;
                 }
 
-                System.out.println("running: '" + entry.SubEntries[j].entryName + "'");
+                System.out.println(tCase.getObjectName() + " recreated ");
 
-                LogWriter ifclog = (LogWriter) dcl.getInstance(
-                    (String) param.get("LogWriter"));
+                for (int j = 0; j < entry.SubEntryCount; j++)
+                {
+                    DescEntry aSubEntry = entry.SubEntries[j];
+                    if (!aSubEntry.isToTest)
+                    {
+                        Summarizer.summarizeDown(aSubEntry, "not part of the job");
 
-                ifclog.initialize(entry.SubEntries[j], logging);
-                entry.SubEntries[j].UserDefinedParams = param;
-                entry.SubEntries[j].Logger = ifclog;
+                        continue;
+                    }
 
-                if ((tEnv == null) || tEnv.isDisposed()) {
-                    helper.ProcessHandler ph = (helper.ProcessHandler) param.get(
-                        "AppProvider");
+                    if ((exclusions != null) && (exclusions.contains(aSubEntry.longName)))
+                    {
+                        Summarizer.summarizeDown(aSubEntry, "known issue");
 
-                    if (ph != null) {
-                        office.closeExistingOffice(param, true);
-                        shortWait(5000);
+                        continue;
                     }
 
-                    tEnv = getEnv(entry, param);
-                }
+                    System.out.println("running: '" + aSubEntry.entryName + "'");
 
-                MultiMethodTest ifc = null;
-                lib.TestResult res = null;
-
-                // run the interface test twice if it failed.
-                int countInterfaceTestRun = 0;
-                boolean finished = false;
-                while (!finished) {
-                    try {
-                        countInterfaceTestRun++;
-                        finished = true;
-                        res = executeInterfaceTest(entry.SubEntries[j], tEnv, param);
-                    } catch (IllegalArgumentException iae) {
-                        System.out.println("Couldn't load class " +
-                            entry.SubEntries[j].entryName);
-                        System.out.println("**** " + iae.getMessage() + " ****");
-                        Summarizer.summarizeDown(entry.SubEntries[j],
-                            iae.getMessage());
-                    } catch (java.lang.NoClassDefFoundError iae) {
-                        System.out.println("Couldn't load class " +
-                            entry.SubEntries[j].entryName);
-                        System.out.println("**** " + iae.getMessage() + " ****");
-                        Summarizer.summarizeDown(entry.SubEntries[j],
-                            iae.getMessage());
-                    } catch (java.lang.RuntimeException e) {
-                        helper.ProcessHandler ph = (helper.ProcessHandler) param.get(
-                            "AppProvider");
-
-                        if (ph != null) {
-                            office.closeExistingOffice(param, true);
-                            shortWait(5000);
-                        }
+                    LogWriter ifclog = (LogWriter) dcl.getInstance( (String) param.get("LogWriter"));
+
+                    ifclog.initialize(aSubEntry, logging);
+                    aSubEntry.UserDefinedParams = param;
+                    aSubEntry.Logger = ifclog;
 
+                    if ((tEnv == null) || tEnv.isDisposed())
+                    {
+                        closeExistingOffice();
                         tEnv = getEnv(entry, param);
-                        if (countInterfaceTestRun < 2) {
-                            finished = false;
-                        } else {
-                            Summarizer.summarizeDown(entry.SubEntries[j],
-                                e.toString() + ".FAILED");
+                    }
+
+                    MultiMethodTest ifc = null;
+                    lib.TestResult res = null;
+
+                    // run the interface test twice if it failed.
+                    int countInterfaceTestRun = 0;
+                    boolean finished = false;
+                    while (!finished)
+                    {
+                        try
+                        {
+                            countInterfaceTestRun++;
+                            finished = true;
+                            res = executeInterfaceTest(aSubEntry, tEnv, param);
+                        }
+                        catch (IllegalArgumentException iae)
+                        {
+                            System.out.println("Couldn't load class " + aSubEntry.entryName);
+                            System.out.println("**** " + iae.getMessage() + " ****");
+                            Summarizer.summarizeDown(aSubEntry, iae.getMessage());
+                        }
+                        catch (java.lang.NoClassDefFoundError iae)
+                        {
+                            System.out.println("Couldn't load class " + aSubEntry.entryName);
+                            System.out.println("**** " + iae.getMessage() + " ****");
+                            Summarizer.summarizeDown(aSubEntry, iae.getMessage());
+                        }
+                        catch (java.lang.RuntimeException e)
+                        {
+                            closeExistingOffice();
+                            tEnv = getEnv(entry, param);
+                            if (countInterfaceTestRun < 2)
+                            {
+                                finished = false;
+                            }
+                            else
+                            {
+                                Summarizer.summarizeDown(aSubEntry, e.toString() + ".FAILED");
+                            }
                         }
                     }
-                }
-                if (res != null) {
-                    for (int k = 0; k < entry.SubEntries[j].SubEntryCount; k++) {
-                        if (res.hasMethod(
-                            entry.SubEntries[j].SubEntries[k].entryName)) {
-                            entry.SubEntries[j].SubEntries[k].State = res.getStatusFor(
-                                entry.SubEntries[j].SubEntries[k].entryName).toString();
+                    if (res != null)
+                    {
+                        for (int k = 0; k < aSubEntry.SubEntryCount; k++)
+                        {
+                            DescEntry aSubSubEntry = aSubEntry.SubEntries[k];
+                            if (res.hasMethod( aSubSubEntry.entryName))
+                            {
+                                aSubSubEntry.State = res.getStatusFor(aSubSubEntry.entryName).toString();
+                            }
                         }
                     }
-                }
 
-                sumIt.summarizeUp(entry.SubEntries[j]);
+                    sumIt.summarizeUp(aSubEntry);
 
-                LogWriter sumIfc = OutProducerFactory.createOutProducer(param);
-                entry.SubEntries[j].UserDefinedParams = param;
-                sumIfc.initialize(entry.SubEntries[j], logging);
-                sumIfc.summary(entry.SubEntries[j]);
-            }
+                    LogWriter sumIfc = OutProducerFactory.createOutProducer(param);
+                    aSubEntry.UserDefinedParams = param;
+                    sumIfc.initialize(aSubEntry, logging);
+                    sumIfc.summary(aSubEntry);
+                }
 
-            try {
-                if (!keepdocument) {
-                    tCase.cleanupTestCase(param);
+                try
+                {
+                    if (!keepdocument)
+                    {
+                        tCase.cleanupTestCase(param);
+                    }
+                }
+                catch (Exception e)
+                {
+                    System.out.println("couldn't cleanup");
+                }
+                catch (java.lang.NoClassDefFoundError e)
+                {
+                    System.out.println("couldn't cleanup");
                 }
-            } catch (Exception e) {
-                System.out.println("couldn't cleanup");
-            } catch (java.lang.NoClassDefFoundError e) {
-                System.out.println("couldn't cleanup");
-            }
 
-            sumIt.summarizeUp(entry);
+                sumIt.summarizeUp(entry);
 
-            LogWriter sumObj = OutProducerFactory.createOutProducer(param);
+                LogWriter sumObj = OutProducerFactory.createOutProducer(param);
 
-            sumObj.initialize(entry, logging);
-            sumObj.summary(entry);
-        }
+                sumObj.initialize(entry, logging);
+                sumObj.summary(entry);
+            }
 
-        if (entries.length > 1) {
-            System.out.println();
+            if (entries.length > 0)
+            {
+                System.out.println();
 
-            int counter = 0;
-            System.out.println(
-                "Failures that appeared during scenario execution:");
+                int counter = 0;
+                System.out.println("Failures that appeared during scenario execution:");
 
-            for (int i = 0; i < entries.length; i++) {
-                if (!entries[i].State.endsWith("OK")) {
-                    System.out.println("\t " + entries[i].longName);
-                    counter++;
+                for (int i = 0; i < entries.length; i++)
+                {
+                    if (!entries[i].State.endsWith("OK"))
+                    {
+                        System.out.println("\t " + entries[i].longName);
+                        counter++;
+                    }
                 }
-            }
-
-            System.out.println(counter + " of " + entries.length +
-                " tests failed");
-        }
 
-        helper.ProcessHandler ph = (helper.ProcessHandler) param.get(
-            "AppProvider");
+                System.out.println(counter + " of " + entries.length + " tests failed");
+            }
 
-        if (ph != null) {
-            office.closeExistingOffice(param, true);
-            shortWait(5000);
+            closeExistingOffice();
+            return retValue;
         }
 
-        return retValue;
-    }
-
-    protected TestEnvironment getEnv(DescEntry entry, TestParameters param) {
+    private TestEnvironment getEnv(DescEntry entry, TestParameters param)
+        {
 //        if (dcl == null)
 //            dcl = new DynamicClassLoader();
 //        String officeProviderName = (String) param.get("OfficeProvider");
@@ -389,143 +408,172 @@ public class java_fat implements TestBase {
 //
 //        param.put("ServiceFactory", msf);
 
-        AppProvider office = startOffice(param);
+            // AppProvider office = startOffice(param);
 
-        TestCase tCase = null;
+            TestCase tCase = null;
 
-        try {
-            tCase = (TestCase) dcl.getInstance("mod._" + entry.entryName);
-        } catch (java.lang.IllegalArgumentException ie) {
-            entry.ErrorMsg = ie.getMessage();
-            entry.hasErrorMsg = true;
-        } catch (java.lang.NoClassDefFoundError ie) {
-            entry.ErrorMsg = ie.getMessage();
-            entry.hasErrorMsg = true;
-        }
+            try
+            {
+                tCase = (TestCase) dcl.getInstance("mod._" + entry.entryName);
+            }
+            catch (java.lang.IllegalArgumentException ie)
+            {
+                entry.ErrorMsg = ie.getMessage();
+                entry.hasErrorMsg = true;
+            }
+            catch (java.lang.NoClassDefFoundError ie)
+            {
+                entry.ErrorMsg = ie.getMessage();
+                entry.hasErrorMsg = true;
+            }
 
-        System.out.println("Creating: " + entry.entryName);
+            System.out.println("Creating: " + entry.entryName);
 
-        entry.UserDefinedParams = param;
+            entry.UserDefinedParams = param;
 
-        LogWriter log = (LogWriter) dcl.getInstance(
-            (String) param.get("LogWriter"));
-        log.initialize(entry, logging);
-        tCase.setLogWriter((PrintWriter) log);
+            LogWriter log = (LogWriter) dcl.getInstance((String) param.get("LogWriter"));
+            log.initialize(entry, logging);
+            tCase.setLogWriter((PrintWriter) log);
 
-        TestEnvironment tEnv = null;
+            TestEnvironment tEnv = null;
 
-        try {
-            tCase.initializeTestCase(param);
-            tEnv = tCase.getTestEnvironment(param);
-        } catch (com.sun.star.lang.DisposedException de) {
-            System.out.println("Office disposed");
+            try
+            {
+                tCase.initializeTestCase(param);
+                tEnv = tCase.getTestEnvironment(param);
+            }
+            catch (com.sun.star.lang.DisposedException de)
+            {
+                System.out.println("Office disposed");
+                closeExistingOffice();
+            }
+            catch (lib.StatusException e)
+            {
+                System.out.println(e.getMessage());
 
-            helper.ProcessHandler ph = (helper.ProcessHandler) param.get(
-                "AppProvider");
+                closeExistingOffice();
 
-            if (ph != null) {
-                office.closeExistingOffice(param, true);
-                shortWait(5000);
+                entry.ErrorMsg = e.getMessage();
+                entry.hasErrorMsg = true;
             }
-        } catch (lib.StatusException e) {
-            System.out.println(e.getMessage());
 
-            helper.ProcessHandler ph = (helper.ProcessHandler) param.get(
-                "AppProvider");
+            return tEnv;
+        }
 
-            if (ph != null) {
-                office.closeExistingOffice(param, true);
+    private void closeExistingOffice()
+        {
+            helper.ProcessHandler ph = (helper.ProcessHandler) m_aParams.get("AppProvider");
+
+            if (ph != null)
+            {
+                m_aOffice.closeExistingOffice(m_aParams, true);
                 shortWait(5000);
             }
 
-            entry.ErrorMsg = e.getMessage();
-            entry.hasErrorMsg = true;
+        }
+    
+    private void shortWait(int millis)
+        {
+            try
+            {
+                Thread.sleep(millis);
+            }
+            catch (java.lang.InterruptedException ie)
+            {
+            }
         }
 
-        return tEnv;
-    }
+    private Vector getExclusionList(String url, boolean debug)
+        {
+            Vector entryList = new Vector();
+            String line = "#";
+            BufferedReader exclusion = null;
 
-    protected void shortWait(int millis) {
-        try {
-            Thread.sleep(millis);
-        } catch (java.lang.InterruptedException ie) {
-        }
-    }
-
-    protected Vector getExclusionList(String url, boolean debug) {
-        Vector entryList = new Vector();
-        String line = "#";
-        BufferedReader exclusion = null;
-
-        try {
-            exclusion = new BufferedReader(new FileReader(url));
-        } catch (java.io.FileNotFoundException fnfe) {
-            if (debug) {
-                System.out.println("Couldn't find file " + url);
+            try
+            {
+                exclusion = new BufferedReader(new FileReader(url));
             }
+            catch (java.io.FileNotFoundException fnfe)
+            {
+                if (debug)
+                {
+                    System.out.println("Couldn't find file " + url);
+                }
 
-            return entryList;
-        }
+                return entryList;
+            }
+
+            while (line != null)
+            {
+                try
+                {
+                    if (!line.startsWith("#") && (line.length() > 1))
+                    {
+                        entryList.add(line.trim());
+                    }
 
-        while (line != null) {
-            try {
-                if (!line.startsWith("#") && (line.length() > 1)) {
-                    entryList.add(line.trim());
+                    line = exclusion.readLine();
                 }
+                catch (java.io.IOException ioe)
+                {
+                    if (debug)
+                    {
+                        System.out.println("Exception while reading exclusion list");
+                    }
 
-                line = exclusion.readLine();
-            } catch (java.io.IOException ioe) {
-                if (debug) {
-                    System.out.println(
-                        "Exception while reading exclusion list");
+                    return entryList;
                 }
+            }
 
-                return entryList;
+            try
+            {
+                exclusion.close();
             }
-        }
+            catch (java.io.IOException ioe)
+            {
+                if (debug)
+                {
+                    System.out.println("Couldn't close file " + url);
+                }
 
-        try {
-            exclusion.close();
-        } catch (java.io.IOException ioe) {
-            if (debug) {
-                System.out.println("Couldn't close file " + url);
+                return entryList;
             }
 
             return entryList;
         }
 
-        return entryList;
-    }
-
     private TestResult executeInterfaceTest(
         DescEntry entry, TestEnvironment tEnv, TestParameters param)
-        throws IllegalArgumentException, java.lang.NoClassDefFoundError {
-        MultiMethodTest ifc = (MultiMethodTest) dcl.getInstance(entry.entryName);
-        return ifc.run(entry, tEnv, param);
-    }
+        throws IllegalArgumentException, java.lang.NoClassDefFoundError
+        {
+            MultiMethodTest ifc = (MultiMethodTest) dcl.getInstance(entry.entryName);
+            return ifc.run(entry, tEnv, param);
+        }
 
-    private AppProvider startOffice(lib.TestParameters param) {
+    private AppProvider startOffice(lib.TestParameters param)
+        {
 
-        if (dcl == null) {
-            dcl = new DynamicClassLoader();
-        }
+            if (dcl == null)
+            {
+                dcl = new DynamicClassLoader();
+            }
 
-        String officeProviderName = (String) param.get("OfficeProvider");
-        AppProvider office = (AppProvider) dcl.getInstance(officeProviderName);
+            String officeProviderName = (String) param.get("OfficeProvider");
+            AppProvider office = (AppProvider) dcl.getInstance(officeProviderName);
 
-        if (office == null) {
-            System.out.println("ERROR: Wrong parameter 'OfficeProvider', " +
-                " it cannot be instantiated.");
-            System.exit(-1);
-        }
+            if (office == null)
+            {
+                System.out.println("ERROR: Wrong parameter 'OfficeProvider', " + " it cannot be instantiated.");
+                System.exit(-1);
+            }
 
-        XMultiServiceFactory msf = (XMultiServiceFactory) office.getManager(
-            param);
-            
-        if (msf != null){
-            param.put("ServiceFactory", msf);
-        }
+            XMultiServiceFactory msf = (XMultiServiceFactory) office.getManager(param);
+
+            if (msf != null)
+            {
+                param.put("ServiceFactory", msf);
+            }
 
-        return office;
-    }
+            return office;
+        }
 }
diff --git a/qadevOOo/runner/complexlib/ComplexTestCase.java b/qadevOOo/runner/complexlib/ComplexTestCase.java
index 0232c0c..e5b2b2c 100644
--- a/qadevOOo/runner/complexlib/ComplexTestCase.java
+++ b/qadevOOo/runner/complexlib/ComplexTestCase.java
@@ -280,4 +280,4 @@ public abstract class ComplexTestCase extends Assurance implements ComplexTest
     {
         return this.getClass().getName();
     }
-}
\ No newline at end of file
+}
diff --git a/qadevOOo/runner/complexlib/MethodThread.java b/qadevOOo/runner/complexlib/MethodThread.java
index 8418c3c..e068323 100644
--- a/qadevOOo/runner/complexlib/MethodThread.java
+++ b/qadevOOo/runner/complexlib/MethodThread.java
@@ -7,7 +7,8 @@ import java.lang.reflect.Method;
  * Invoke a method of a class in an own thread. Provide a method to end
  * the thread.
  */
-public class MethodThread extends Thread {
+public class MethodThread extends Thread
+{
 
     /** The method that should be executed **/
     private Method mTestMethod = null;
@@ -19,7 +20,6 @@ public class MethodThread extends Thread {
     private String mErrMessage = null;
     /** Did an Exception happen? **/
     private boolean mExceptionHappened = false;
-    
     private Object[] mParameter = null;
 
     /**
@@ -28,13 +28,15 @@ public class MethodThread extends Thread {
      * @param invokeClass The class where the method is invoked.
      * @param log The logging mechanism.
      */
-    public MethodThread(Method testMethod, Object invokeClass, PrintWriter log) {
+    public MethodThread(Method testMethod, Object invokeClass, PrintWriter log)
+    {
         mTestMethod = testMethod;
         mInvokeClass = invokeClass;
         mLog = log;
     }
 
-    public MethodThread(Method testMethod, Object invokeClass, Object[] parameter, PrintWriter log) {
+    public MethodThread(Method testMethod, Object invokeClass, Object[] parameter, PrintWriter log)
+    {
         mTestMethod = testMethod;
         mInvokeClass = invokeClass;
         mParameter = parameter;
@@ -44,25 +46,32 @@ public class MethodThread extends Thread {
     /**
      * Invoke the method.
      */
-    public void run() {
-        try {
+    public void run()
+    {
+        try
+        {
             mTestMethod.invoke(mInvokeClass, mParameter);
         }
-        catch(IllegalAccessException e) {
+        catch (IllegalAccessException e)
+        {
             e.printStackTrace(mLog);
             mErrMessage = e.getMessage();
             mExceptionHappened = true;
         }
-        catch(java.lang.reflect.InvocationTargetException e) {
+        catch (java.lang.reflect.InvocationTargetException e)
+        {
             Throwable t = e.getTargetException();
-            if (!(t instanceof ComplexTestCase.AssureException)) {
+            if (!(t instanceof ComplexTestCase.AssureException))
+            {
                 t.printStackTrace(mLog);
                 mErrMessage = t.getMessage();
                 if (mErrMessage == null)
+                {
                     mErrMessage = t.toString();
+                }
                 mExceptionHappened = true;
             }
-            
+
         }
     }
 
@@ -70,7 +79,8 @@ public class MethodThread extends Thread {
      * Get the error message
      * @return The error message.
      */
-    public String getErrorMessage() {
+    public String getErrorMessage()
+    {
         return mErrMessage;
     }
 
@@ -78,18 +88,22 @@ public class MethodThread extends Thread {
      * Is there an error message?
      * @return True, if an error did happen.
      */
-    public boolean hasErrorMessage() {
+    public boolean hasErrorMessage()
+    {
         return mExceptionHappened;
     }
 
     /**
      * Stop the running method.
      */
-    public void destroy() {
-        try {
+    public void destroy()
+    {
+        try
+        {
             interrupt();
         }
-        catch(SecurityException e) {
+        catch (SecurityException e)
+        {
             e.printStackTrace(mLog);
             mErrMessage = e.getMessage();
             mExceptionHappened = true;
diff --git a/qadevOOo/runner/helper/APIDescGetter.java b/qadevOOo/runner/helper/APIDescGetter.java
index 7dafa1f..5a5e09e 100644
--- a/qadevOOo/runner/helper/APIDescGetter.java
+++ b/qadevOOo/runner/helper/APIDescGetter.java
@@ -42,7 +42,6 @@ import java.util.StringTokenizer;
 import share.DescEntry;
 import share.DescGetter;
 
-
 /**
  * This is the Office-API specific DescGetter<br>
  * <br>
@@ -68,114 +67,148 @@ import share.DescGetter;
  * -sce sw.SwXBodyText,sw.SwXBookmark<br>
  * runs the module test of <B>Sw.SwXBodyText</B> and <B>sw.SwXBookmark</B><br>
  */
+public class APIDescGetter extends DescGetter
+{
 
-public class APIDescGetter extends DescGetter {
     private static String fullJob = null;
 
-    
     /*
      * gets the needed information about a StarOffice component
      * @param descPath Path to the ComponentDescription
      * @param entry contains the entry name, e.g. sw.SwXBodyText
      * @param debug if true some debug information is displayed on standard out
      */
-    public DescEntry[] getDescriptionFor(String job, String descPath, 
-                                         boolean debug) {
+    public DescEntry[] getDescriptionFor(String job, String descPath,
+            boolean debug)
+    {
 
-        if (job.startsWith("-o")) {
+        if (job.startsWith("-o"))
+        {
             job = job.substring(3, job.length()).trim();
 
-            if (job.indexOf(".") < 0) {
+            if (job.indexOf(".") < 0)
+            {
                 return null;
             }
 
             // special in case several Interfaces are given comma separated
-            if (job.indexOf(",") < 0) {
-                DescEntry entry = getDescriptionForSingleJob(job, descPath, 
-                                                             debug);
-
-                if (entry != null) {
-                    return new DescEntry[] { entry };
-                } else {
+            if (job.indexOf(",") < 0)
+            {
+                DescEntry entry = getDescriptionForSingleJob(job, descPath,
+                        debug);
+
+                if (entry != null)
+                {
+                    return new DescEntry[]
+                            {
+                                entry
+                            };
+                }
+                else
+                {
                     return null;
                 }
-            } else {
+            }
+            else
+            {
                 ArrayList subs = getSubInterfaces(job);
                 String partjob = job.substring(0, job.indexOf(",")).trim();
-                DescEntry entry = getDescriptionForSingleJob(partjob, descPath, 
-                                                             debug);
+                DescEntry entry = getDescriptionForSingleJob(partjob, descPath,
+                        debug);
 
-                if (entry != null) {
-                    for (int i = 0; i < entry.SubEntryCount; i++) {
+                if (entry != null)
+                {
+                    for (int i = 0; i < entry.SubEntryCount; i++)
+                    {
                         String subEntry = entry.SubEntries[i].longName;
                         int cpLength = entry.longName.length();
-                        subEntry = subEntry.substring(cpLength + 2, 
-                                                      subEntry.length());
+                        subEntry = subEntry.substring(cpLength + 2,
+                                subEntry.length());
 
-                        if (subs.contains(subEntry)) {
+                        if (subs.contains(subEntry))
+                        {
                             entry.SubEntries[i].isToTest = true;
                         }
                     }
 
-                    return new DescEntry[] { entry };
-                } else {
+                    return new DescEntry[]
+                            {
+                                entry
+                            };
+                }
+                else
+                {
                     return null;
                 }
             }
         }
 
-        if (job.startsWith("-p")) {
+        if (job.startsWith("-p"))
+        {
             job = job.substring(3, job.length()).trim();
 
             String[] scenario = createScenario(descPath, job, debug);
-            if (scenario == null) {
+            if (scenario == null)
+            {
                 return null;
             }
             DescEntry[] entries = new DescEntry[scenario.length];
-            for (int i=0;i<scenario.length;i++) {
+            for (int i = 0; i < scenario.length; i++)
+            {
                 entries[i] = getDescriptionForSingleJob(
-                                    scenario[i].substring(3).trim(), descPath, debug);
+                        scenario[i].substring(3).trim(), descPath, debug);
             }
-            if (job.equals("listall")) {
-                util.dbg.printArray(scenario);  
+            if (job.equals("listall"))
+            {
+                util.dbg.printArray(scenario);
                 System.exit(0);
             }
             return entries;
         }
 
-        if (job.startsWith("-sce")) {
+        if (job.startsWith("-sce"))
+        {
             job = job.substring(5, job.length()).trim();
-            
+
             File sceFile = new File(job);
             if (sceFile.exists())
+            {
                 return getScenario(job, descPath, debug);
-            else {
+            }
+            else
+            {
                 //look the scenarion like this? :
                 // sw.SwXBodyText,sw.SwXTextCursor
                 ArrayList subs = getSubObjects(job);
                 DescEntry[] entries = new DescEntry[subs.size()];
-                
-                for (int i=0; i<subs.size(); i++){
+
+                for (int i = 0; i < subs.size(); i++)
+                {
                     entries[i] = getDescriptionForSingleJob(
-                                          (String)subs.get(i), descPath, debug);
+                            (String) subs.get(i), descPath, debug);
                 }
                 return entries;
             }
-        } else {
+        }
+        else
+        {
             return null;
         }
     }
 
-    protected DescEntry getDescriptionForSingleJob(String job, String descPath, 
-                                                   boolean debug) {
+    protected DescEntry getDescriptionForSingleJob(String job, String descPath,
+            boolean debug)
+    {
         boolean isSingleInterface = job.indexOf("::") > 0;
         fullJob = job;
 
-        if (isSingleInterface) {
+        if (isSingleInterface)
+        {
             job = job.substring(0, job.indexOf("::"));
         }
 
-        if (job.startsWith("bugs")) {
+        if (job.startsWith("bugs"))
+        {
             DescEntry Entry = new DescEntry();
             Entry.entryName = job;
             Entry.longName = job;
@@ -191,14 +224,19 @@ public class APIDescGetter extends DescGetter {
 
         DescEntry entry = null;
 
-        if (descPath != null) {
-            if (debug) {
+        if (descPath != null)
+        {
+            if (debug)
+            {
                 System.out.println("## reading from File " + descPath);
             }
 
             entry = getFromDirectory(descPath, job, debug);
-        } else {
-            if (debug) {
+        }
+        else
+        {
+            if (debug)
+            {
                 System.out.println("## reading from jar");
             }
 
@@ -207,139 +245,161 @@ public class APIDescGetter extends DescGetter {
 
         boolean foundInterface = false;
 
-        if (isSingleInterface && (entry != null)) {
-            for (int i = 0; i < entry.SubEntryCount; i++) {
-                if (!(entry.SubEntries[i].longName).equals(fullJob)) {
+        if (isSingleInterface && (entry != null))
+        {
+            for (int i = 0; i < entry.SubEntryCount; i++)
+            {
+                if (!(entry.SubEntries[i].longName).equals(fullJob))
+                {
                     entry.SubEntries[i].isToTest = false;
-                } else {
+                }
+                else
+                {
                     foundInterface = true;
                     entry.SubEntries[i].isToTest = true;
                 }
             }
         }
 
-        if (isSingleInterface && !foundInterface || entry == null) {
-            return setErrorDescription(entry, 
-                "couldn't find a description for test '" + fullJob+ "'");
+        if (isSingleInterface && !foundInterface || entry == null)
+        {
+            return setErrorDescription(entry,
+                    "couldn't find a description for test '" + fullJob + "'");
         }
 
         return entry;
     }
 
-    protected static DescEntry[] getSubEntries(BufferedReader cvsFile, 
-                                               DescEntry parent, boolean debug) {
+    protected static DescEntry[] getSubEntries(BufferedReader cvsFile,
+            DescEntry parent, boolean debug)
+    {
         String line = "";
         String old_ifc_name = "";
         ArrayList ifc_names = new ArrayList();
         ArrayList meth_names = new ArrayList();
         DescEntry ifcDesc = null;
-        DescEntry methDesc = null;
-        String entryType = "service";
 
-        while (line != null) {
-            try {
+        while (line != null)
+        {
+            try
+            {
                 line = cvsFile.readLine();
+                if (line == null)
+                {
+                    continue;
+                }
+                if (line.startsWith("#"))
+                {
+                    continue;
+                }
+                if (line.length() <= 0)
+                {
+                    continue;
+                }
+// TODO Probleme here
+                // int nFirstSemicolon = line.indexOf(";");
+                // int nLastSemicolon = line.lastIndexOf(";");
+
+                String unknown;
+                String ifc_name = ""; //  = line.substring(line.indexOf(";") + 2, line.lastIndexOf(";") - 1);
+                String meth_name = ""; //  = line.substring(line.lastIndexOf(";") + 2, line.length() - 1);
+                StringTokenizer aToken = new StringTokenizer(line, ";");
+                if (aToken.countTokens() < 3)
+                {
+                    System.out.println("Wrong format: Line '" + line + "' is not supported.");
+                    continue;
+                }
+                if (aToken.hasMoreTokens())
+                {
+                    unknown = StringHelper.removeQuoteIfExists(aToken.nextToken());
+                }
+                if (aToken.hasMoreTokens())
+                {
+                    ifc_name = StringHelper.removeQuoteIfExists(aToken.nextToken());
+                }
+                if (aToken.hasMoreTokens())
+                {
+                    meth_name = StringHelper.removeQuoteIfExists(aToken.nextToken());
+                }
 
-                if ((line != null) && (line.length() > 0)) {
-                    String ifc_name = line.substring(line.indexOf(";") + 2, 
-                                                     line.lastIndexOf(";") - 1);
-                    String meth_name = line.substring(line.lastIndexOf(";") + 2, 
-                                                      line.length() - 1);
-
-                    methDesc = new DescEntry();
-
-                    if (meth_name.indexOf("#optional") > 0) {
-                        methDesc.isOptional = true;
-                        meth_name = meth_name.substring(0, 
-                                                        meth_name.indexOf("#"));
-                    }
-
-                    if (meth_name.endsWith("()")) {
-                        methDesc.EntryType = "method";
-                        entryType = "interface";
-                    } else {
-                        methDesc.EntryType = "property";
-                        entryType = "service";
-                    }
-
-                    methDesc.entryName = meth_name;
-                    methDesc.isToTest = true;
-
-                    String withoutHash = ifc_name;
-
-                    if (ifc_name.indexOf("#optional") > 0) {
-                        withoutHash = ifc_name.substring(0, 
-                                                         ifc_name.indexOf("#"));
-                    }
+                // String ifc_name = line.substring(line.indexOf(";") + 2, line.lastIndexOf(";") - 1);
+                // String meth_name = line.substring(line.lastIndexOf(";") + 2, line.length() - 1);
 
-                    methDesc.longName = parent.entryName + "::" + 
-                                        withoutHash + "::" + meth_name;
+                DescEntry methDesc = createDescEntry(meth_name, ifc_name, parent);
+                meth_names.add(methDesc);
 
-                    if (!ifc_name.equals(old_ifc_name)) {
-                        if (ifcDesc != null) {
-                            ifcDesc.SubEntries = getDescArray(
-                                                         meth_names.toArray());
-                            ifcDesc.SubEntryCount = meth_names.size();
+                if (!ifc_name.equals(old_ifc_name))
+                {
+                    if (ifcDesc != null)
+                    {
+                        ifcDesc.SubEntries = getDescArray(meth_names.toArray());
+                        ifcDesc.SubEntryCount = meth_names.size();
 
-                            //mark service/interface as optional if all methods/properties are optional
-                            boolean allOptional = true;
+                        //mark service/interface as optional if all methods/properties are optional
+                        boolean allOptional = true;
 
-                            for (int k = 0; k < ifcDesc.SubEntryCount; k++) {
-                                if (!ifcDesc.SubEntries[k].isOptional) {
-                                    allOptional = false;
-                                }
+                        for (int k = 0; k < ifcDesc.SubEntryCount; k++)
+                        {
+                            if (!ifcDesc.SubEntries[k].isOptional)
+                            {
+                                allOptional = false;
                             }
-
-                            if (!ifcDesc.isOptional && allOptional) {
-                                ifcDesc.isOptional = allOptional;
-                            }
-
-                            meth_names.clear();
-                            ifc_names.add(ifcDesc);
                         }
 
-                        ifcDesc = new DescEntry();
-                        ifcDesc.isToTest = true;
-                        old_ifc_name = ifc_name;
-
-                        if (ifc_name.indexOf("#optional") > 0) {
-                            ifcDesc.isOptional = true;
-                            ifc_name = ifc_name.substring(0, 
-                                                          ifc_name.indexOf("#"));
+                        if (!ifcDesc.isOptional && allOptional)
+                        {
+                            ifcDesc.isOptional = allOptional;
                         }
 
-                        StringTokenizer st = new StringTokenizer(ifc_name, ":");
-                        String className = "";
+                        meth_names.clear();
+                        ifc_names.add(ifcDesc);
+                    }
 
-                        int count = 3;
+                    ifcDesc = new DescEntry();
+                    ifcDesc.isToTest = true;
+                    old_ifc_name = ifc_name;
 
-                        if (ifc_name.startsWith("drafts")) {
-                            count = 4;
-                        }
+                    if (ifc_name.indexOf("#optional") > 0)
+                    {
+                        ifcDesc.isOptional = true;
+                        ifc_name = ifc_name.substring(0, ifc_name.indexOf("#"));
+                    }
+
+                    StringTokenizer st = new StringTokenizer(ifc_name, ":");
+                    String className = "";
 
-                        for (int i = 0; st.hasMoreTokens(); i++) {
-                            String token = st.nextToken();
+                    int count = 3;
 
-                            // skipping (drafts.)com.sun.star
-                            if (i >= count) {
-                                if (!st.hasMoreTokens()) {
-                                    // inserting '_' before the last token
-                                    token = "_" + token;
-                                }
+                    if (ifc_name.startsWith("drafts"))
+                    {
+                        count = 4;
+                    }
 
-                                className += ("." + token);
+                    for (int i = 0; st.hasMoreTokens(); i++)
+                    {
+                        String token = st.nextToken();
+
+                        // skipping (drafts.)com.sun.star
+                        if (i >= count)
+                        {
+                            if (!st.hasMoreTokens())
+                            {
+                                // inserting '_' before the last token
+                                token = "_" + token;
                             }
-                        }
 
-                        ifcDesc.EntryType = entryType;
-                        ifcDesc.entryName = "ifc" + className;
-                        ifcDesc.longName = parent.entryName + "::" + 
-                                           ifc_name;
+                            className += ("." + token);
+                        }
                     }
 
-                    meth_names.add(methDesc);
+                    ifcDesc.EntryType = entryType;
+                    ifcDesc.entryName = "ifc" + className;
+                    ifcDesc.longName = parent.entryName + "::" + ifc_name;
                 }
-            } catch (java.io.IOException ioe) {
+                
+            }
+            catch (java.io.IOException ioe)
+            {
                 parent.hasErrorMsg = true;
                 parent.ErrorMsg = "IOException while reading the description";
 
@@ -353,13 +413,16 @@ public class APIDescGetter extends DescGetter {
         //mark service/interface as optional if all methods/properties are optional
         boolean allOptional = true;
 
-        for (int k = 0; k < ifcDesc.SubEntryCount; k++) {
-            if (!ifcDesc.SubEntries[k].isOptional) {
+        for (int k = 0; k < ifcDesc.SubEntryCount; k++)
+        {
+            if (!ifcDesc.SubEntries[k].isOptional)
+            {
                 allOptional = false;
             }
         }
 
-        if (!ifcDesc.isOptional && allOptional) {
+        if (!ifcDesc.isOptional && allOptional)
+        {
             ifcDesc.isOptional = allOptional;
         }
 
@@ -368,66 +431,125 @@ public class APIDescGetter extends DescGetter {
         return getDescArray(makeArray(ifc_names));
     }
 
+    private static String entryType;
+    private static DescEntry createDescEntry(String meth_name, String ifc_name, DescEntry parent)
+    {
+        entryType = "service";
+        DescEntry methDesc = new DescEntry();
+
+        if (meth_name.indexOf("#optional") > 0)
+        {
+            methDesc.isOptional = true;
+            meth_name = meth_name.substring(0, meth_name.indexOf("#"));
+        }
+
+        if (meth_name.endsWith("()"))
+        {
+            methDesc.EntryType = "method";
+            entryType = "interface";
+        }
+        else
+        {
+            methDesc.EntryType = "property";
+            entryType = "service";
+        }
+
+        methDesc.entryName = meth_name;
+        methDesc.isToTest = true;
+
+
+        String withoutHash = ifc_name;
+
+        if (ifc_name.indexOf("#optional") > 0)
+        {
+            withoutHash = ifc_name.substring(0, ifc_name.indexOf("#"));
+        }
+
+        methDesc.longName = parent.entryName + "::" + withoutHash + "::" + meth_name;
+
+        return methDesc;
+    }
+
+    private static void createIfcName(String ifc_name, ArrayList meth_names, DescEntry ifcDesc)
+    {
+
+    }
     /**
      * This method ensures that XComponent will be the last in the list of interfaces
      */
-    protected static Object[] makeArray(ArrayList entries) {
+    protected static Object[] makeArray(ArrayList entries)
+    {
         Object[] entriesArray = entries.toArray();
         ArrayList returnArray = new ArrayList();
         Object addAtEnd = null;
 
-        for (int k = 0; k < entriesArray.length; k++) {
+        for (int k = 0; k < entriesArray.length; k++)
+        {
             DescEntry entry = (DescEntry) entriesArray[k];
 
-            if (entry.entryName.equals("ifc.lang._XComponent")) {
+            if (entry.entryName.equals("ifc.lang._XComponent"))
+            {
                 addAtEnd = entry;
-            } else {
+            }
+            else
+            {
                 returnArray.add(entry);
             }
         }
 
-        if (addAtEnd != null) {
+        if (addAtEnd != null)
+        {
             returnArray.add(addAtEnd);
         }
 
         return returnArray.toArray();
     }
 
-    protected static DescEntry setErrorDescription(DescEntry entry, 
-                                                   String ErrorMsg) {
+    protected static DescEntry setErrorDescription(DescEntry entry,
+            String ErrorMsg)
+    {
         if (entry == null)
+        {
             entry = new DescEntry();
+        }
         entry.hasErrorMsg = true;
-        entry.ErrorMsg = "Error while getting description for test '" + 
-            fullJob + "' as an API test: " + ErrorMsg;
+        entry.ErrorMsg = "Error while getting description for test '" +
+                fullJob + "' as an API test: " + ErrorMsg;
 
         return entry;
     }
 
-    protected static DescEntry[] getDescArray(Object[] list) {
+    protected static DescEntry[] getDescArray(Object[] list)
+    {
         DescEntry[] entries = new DescEntry[list.length];
 
-        for (int i = 0; i < list.length; i++) {
+        for (int i = 0; i < list.length; i++)
+        {
             entries[i] = (DescEntry) list[i];
         }
 
         return entries;
     }
 
-    protected DescEntry getFromClassPath(String aEntry, boolean debug) {
+    protected DescEntry getFromClassPath(String aEntry, boolean debug)
+    {
         int dotindex = aEntry.indexOf('.');
 
-        if (dotindex == -1) {
+        if (dotindex == -1)
+        {
             return null;
         }
 
         String module = null;
         String shortName = null;
 
-        if (aEntry.indexOf(".uno") == -1) {
+        if (aEntry.indexOf(".uno") == -1)
+        {
             module = aEntry.substring(0, aEntry.indexOf('.'));
             shortName = aEntry.substring(aEntry.indexOf('.') + 1);
-        } else {
+        }
+        else
+        {
             module = aEntry.substring(0, aEntry.lastIndexOf('.'));
             shortName = aEntry.substring(aEntry.lastIndexOf('.') + 1);
         }
@@ -443,22 +565,28 @@ public class APIDescGetter extends DescGetter {
 
         java.net.URL url = this.getClass().getResource("/objdsc/" + module);
 
-        if (url == null) {
-            return setErrorDescription(theEntry, 
-                                       "couldn't find module '" + module + "'");
+        if (url == null)
+        {
+            return setErrorDescription(theEntry,
+                    "couldn't find module '" + module + "'");
         }
 
-        try {
+        try
+        {
             java.net.URLConnection con = url.openConnection();
 
-            if (con instanceof java.net.JarURLConnection) {
+            String sEndsWithCSVName = "." + shortName.trim() + ".csv";
+            if (con instanceof java.net.JarURLConnection)
+            {
                 // get Jar file from connection
                 java.util.jar.JarFile f = ((java.net.JarURLConnection) con).getJarFile();
 
                 // Enumerate over all entries
                 java.util.Enumeration e = f.entries();
 
-                while (e.hasMoreElements()) {
+                String sStartModule = "/" + module + "/";
+                while (e.hasMoreElements())
+                {
 
                     String entry = e.nextElement().toString();
 
@@ -466,49 +594,51 @@ public class APIDescGetter extends DescGetter {
 //                        System.out.println("### Read from connetion: " + entry);
 //                    }
 
-                    if ((entry.lastIndexOf("/" + module + "/") != -1) &&
-                        entry.endsWith("." + shortName.trim() + ".csv")) {
-                        InputStream input = this.getClass()
-                                                .getResourceAsStream("/" + 
-                                                                     entry);
-                        csvFile = new BufferedReader(
-                                          new InputStreamReader(input));
-
+                    if ((entry.lastIndexOf(sStartModule) != -1) &&
+                            entry.endsWith(sEndsWithCSVName))
+                    {
+                        InputStream input = this.getClass().getResourceAsStream("/" + entry);
+                        csvFile = new BufferedReader(new InputStreamReader(input));
                         break;
                     }
                 }
-            } else {
+            }
+            else
+            {
                 InputStream in = con.getInputStream();
-                java.io.BufferedReader buf = new java.io.BufferedReader(
-                                                     new InputStreamReader(in));
+                java.io.BufferedReader buf = new java.io.BufferedReader(new InputStreamReader(in));
                 boolean found = false;
 
-                while (buf.ready() && !found) {
+                while (buf.ready() && !found)
+                {
                     String entry = buf.readLine();
 
-                    if (entry.endsWith(shortName.trim() + ".csv")) {
+                    if (entry.endsWith(sEndsWithCSVName))
+                    {
                         System.out.println("FOUND  ####");
-                        InputStream input = this.getClass()
-                                                .getResourceAsStream("/objdsc/" + 
-                                                                     module + 
-                                                                     "/" + 
-                                                                     entry);
+                        InputStream input = this.getClass().getResourceAsStream("/objdsc/" +
+                                module +
+                                "/" +
+                                entry);
                         csvFile = new BufferedReader(
-                                          new InputStreamReader(input));
+                                new InputStreamReader(input));
                         found = true;
                     }
                 }
 
                 buf.close();
             }
-        } catch (java.io.IOException e) {
+        }
+        catch (java.io.IOException e)
+        {
             e.printStackTrace();
         }
 
-        if (csvFile == null) {
-            return setErrorDescription(theEntry, 
-                                       "couldn't find component '" + 
-                                       theEntry.entryName + "'");
+        if (csvFile == null)
+        {
+            return setErrorDescription(theEntry,
+                    "couldn't find component '" +
+                    theEntry.entryName + "'");
         }
 
         DescEntry[] subEntries = getSubEntries(csvFile, theEntry, debug);
@@ -519,11 +649,13 @@ public class APIDescGetter extends DescGetter {
         return theEntry;
     }
 
-    protected static DescEntry getFromDirectory(String descPath, String entry, 
-                                                boolean debug) {
+    protected static DescEntry getFromDirectory(String descPath, String entry,
+            boolean debug)
+    {
         int dotindex = entry.indexOf('.');
 
-        if (dotindex == -1) {
+        if (dotindex == -1)
+        {
             return null;
         }
 
@@ -531,10 +663,13 @@ public class APIDescGetter extends DescGetter {
         String module = null;
         String shortName = null;
 
-        if (entry.indexOf(".uno") == -1) {
+        if (entry.indexOf(".uno") == -1)
+        {
             module = entry.substring(0, entry.indexOf('.'));
             shortName = entry.substring(entry.indexOf('.') + 1);
-        } else {
+        }
+        else
+        {
             module = entry.substring(0, entry.lastIndexOf('.'));
             shortName = entry.substring(entry.lastIndexOf('.') + 1);
         }
@@ -546,7 +681,8 @@ public class APIDescGetter extends DescGetter {
         aEntry.EntryType = "component";
         aEntry.isToTest = true;
 
-        if (debug) {
+        if (debug)
+        {
             System.out.println("Parsing Description Path: " + descPath);
             System.out.println("Searching module: " + module);
             System.out.println("For the Component " + shortName);
@@ -554,34 +690,41 @@ public class APIDescGetter extends DescGetter {
 
         File modPath = new File(descPath + fs + module);
 
-        if (!modPath.exists()) {
-            return setErrorDescription(aEntry, 
-                                       "couldn't find module '" + module + "'");
+        if (!modPath.exists())
+        {
+            return setErrorDescription(aEntry,
+                    "couldn't find module '" + module + "'");
         }
 
         String[] files = modPath.list();
         String found = "none";
 
-        for (int i = 0; i < files.length; i++) {
-            if (files[i].endsWith("." + shortName + ".csv")) {
+        for (int i = 0; i < files.length; i++)
+        {
+            if (files[i].endsWith("." + shortName + ".csv"))
+            {
                 found = files[i];
                 System.out.println("found " + found);
                 break;
             }
         }
 
-        if (found.equals("none")) {
-            return setErrorDescription(aEntry, 
-                                       "couldn't find component '" + entry + "'");
+        if (found.equals("none"))
+        {
+            return setErrorDescription(aEntry,
+                    "couldn't find component '" + entry + "'");
         }
 
         String aUrl = descPath + fs + module + fs + found;
 
         BufferedReader csvFile = null;
 
-        try {
+        try
+        {
             csvFile = new BufferedReader(new FileReader(aUrl));
-        } catch (java.io.FileNotFoundException fnfe) {
+        }
+        catch (java.io.FileNotFoundException fnfe)
+        {
             return setErrorDescription(aEntry, "couldn't find file '" + aUrl + "'");
         }
 
@@ -593,44 +736,55 @@ public class APIDescGetter extends DescGetter {
         return aEntry;
     }
 
-    protected ArrayList getSubInterfaces(String job) {
+    protected ArrayList getSubInterfaces(String job)
+    {
         ArrayList namesList = new ArrayList();
         StringTokenizer st = new StringTokenizer(job, ",");
 
-        for (int i = 0; st.hasMoreTokens(); i++) {
+        for (int i = 0; st.hasMoreTokens(); i++)
+        {
             String token = st.nextToken();
 
-            if (token.indexOf(".") < 0) {
+            if (token.indexOf(".") < 0)
+            {
                 namesList.add(token);
             }
         }
 
         return namesList;
     }
-    
-    protected ArrayList getSubObjects(String job) {
+
+    protected ArrayList getSubObjects(String job)
+    {
         ArrayList namesList = new ArrayList();
         StringTokenizer st = new StringTokenizer(job, ",");
 
-        for (int i = 0; st.hasMoreTokens(); i++) {
+        for (int i = 0; st.hasMoreTokens(); i++)
+        {
             namesList.add(st.nextToken());
         }
 
         return namesList;
     }
 
-    protected String[] createScenario(String descPath, String job, 
-                                      boolean debug) {
+    protected String[] createScenario(String descPath, String job,
+            boolean debug)
+    {
         String[] scenario = null;
 
-        if (descPath != null) {
-            if (debug) {
+        if (descPath != null)
+        {
+            if (debug)
+            {
                 System.out.println("## reading from File " + descPath);
             }
 
             scenario = getScenarioFromDirectory(descPath, job, debug);
-        } else {
-            if (debug) {
+        }
+        else
+        {
+            if (debug)
+            {
                 System.out.println("## reading from jar");
             }
 
@@ -640,111 +794,139 @@ public class APIDescGetter extends DescGetter {
         return scenario;
     }
 
-    protected String[] getScenarioFromDirectory(String descPath, String job, 
-                                                boolean debug) {
+    protected String[] getScenarioFromDirectory(String descPath, String job,
+            boolean debug)
+    {
         String[] modules = null;
         ArrayList componentList = new ArrayList();
 
-        if (!job.equals("unknown") && !job.equals("listall")) {
-            modules = new String[] { job };
-        } else {
+        if (!job.equals("unknown") && !job.equals("listall"))
+        {
+            modules = new String[]
+                    {
+                        job
+                    };
+        }
+        else
+        {
             File dirs = new File(descPath);
 
-            if (!dirs.exists()) {
+            if (!dirs.exists())
+            {
                 modules = null;
-            } else {
+            }
+            else
+            {
                 modules = dirs.list();
             }
         }
-        
-        for (int i=0;i<modules.length;i++) {
-            if (! isUnusedModule(modules[i])) {
-                File moduleDir = new File(descPath+System.getProperty("file.separator")+modules[i]);
-                if (moduleDir.exists()) {
+
+        for (int i = 0; i < modules.length; i++)
+        {
+            if (!isUnusedModule(modules[i]))
+            {
+                File moduleDir = new File(descPath + System.getProperty("file.separator") + modules[i]);
+                if (moduleDir.exists())
+                {
                     String[] components = moduleDir.list();
-                    for (int j=0;j<components.length;j++) {
-                        if (components[j].endsWith(".csv")) {
+                    for (int j = 0; j < components.length; j++)
+                    {
+                        if (components[j].endsWith(".csv"))
+                        {
                             String toAdd = getComponentForString(components[j], modules[i]);
-                            toAdd = "-o "+modules[i]+"."+toAdd;
+                            toAdd = "-o " + modules[i] + "." + toAdd;
                             componentList.add(toAdd);
                         }
                     }
                 }
             }
         }
-        
+
         String[] scenario = new String[componentList.size()];
         Collections.sort(componentList);
 
-        for (int i = 0; i < componentList.size(); i++) {
+        for (int i = 0; i < componentList.size(); i++)
+        {
             scenario[i] = (String) componentList.get(i);
         }
 
         return scenario;
-        
+
     }
 
-    protected String[] getScenarioFromClassPath(String job, boolean debug) {
+    protected String[] getScenarioFromClassPath(String job, boolean debug)
+    {
         String subdir = "/";
 
-        if (!job.equals("unknown") && !job.equals("listall")) {
+        if (!job.equals("unknown") && !job.equals("listall"))
+        {
             subdir += job;
         }
 
         java.net.URL url = this.getClass().getResource("/objdsc" + subdir);
 
-        if (url == null) {
+        if (url == null)
+        {
             return null;
         }
 
         ArrayList scenarioList = new ArrayList();
 
-        try {
+        try
+        {
             java.net.URLConnection con = url.openConnection();
 
-            if (con instanceof java.net.JarURLConnection) {
+            if (con instanceof java.net.JarURLConnection)
+            {
                 // get Jar file from connection
                 java.util.jar.JarFile f = ((java.net.JarURLConnection) con).getJarFile();
 
                 // Enumerate over all entries
                 java.util.Enumeration e = f.entries();
 
-                while (e.hasMoreElements()) {
+                while (e.hasMoreElements())
+                {
                     String entry = e.nextElement().toString();
 
-                    if (entry.startsWith("objdsc" + subdir) && 
-                            (entry.indexOf("CVS") < 0) && 
-                            !entry.endsWith("/")) {
+                    if (entry.startsWith("objdsc" + subdir) &&
+                            (entry.indexOf("CVS") < 0) &&
+                            !entry.endsWith("/"))
+                    {
                         int startMod = entry.indexOf("/");
                         int endMod = entry.lastIndexOf("/");
                         String module = entry.substring(startMod + 1, endMod);
                         String component = getComponentForString(
-                                                   entry.substring(endMod + 1, 
-                                                                   entry.length()), 
-                                                   module);
-
-                        if (!isUnusedModule(module)) {
-                            scenarioList.add("-o " + module + "." + 
-                                             component);
+                                entry.substring(endMod + 1,
+                                entry.length()),
+                                module);
+
+                        if (!isUnusedModule(module))
+                        {
+                            scenarioList.add("-o " + module + "." +
+                                    component);
                         }
                     }
                 }
             }
-        } catch (java.io.IOException e) {
+        }
+        catch (java.io.IOException e)
+        {
             e.printStackTrace();
         }
 
         String[] scenario = new String[scenarioList.size()];
         Collections.sort(scenarioList);
 
-        for (int i = 0; i < scenarioList.size(); i++) {
+        for (int i = 0; i < scenarioList.size(); i++)
+        {
             scenario[i] = (String) scenarioList.get(i);
         }
 
         return scenario;
     }
 
-    protected String getComponentForString(String full, String module) {
+    protected String getComponentForString(String full, String module)
+    {
         String component = "";
 
 
@@ -755,18 +937,20 @@ public class APIDescGetter extends DescGetter {
         int lastdot = full.lastIndexOf(".");
         component = full.substring(lastdot + 1, full.length());
 
-        if (module.equals("file") || module.equals("xmloff")) {
+        if (module.equals("file") || module.equals("xmloff"))
+        {
             String withoutComponent = full.substring(0, lastdot);
             int preLastDot = withoutComponent.lastIndexOf(".");
-            component = withoutComponent.substring(preLastDot + 1, 
-                                                   withoutComponent.length()) + 
-                        "." + component;
+            component = withoutComponent.substring(preLastDot + 1,
+                    withoutComponent.length()) +
+                    "." + component;
         }
 
         return component;
     }
 
-    protected boolean isUnusedModule(String moduleName) {
+    protected boolean isUnusedModule(String moduleName)
+    {
         ArrayList removed = new ArrayList();
         removed.add("acceptor");
         removed.add("brdgfctr");
diff --git a/qadevOOo/runner/helper/CwsDataExchangeImpl.java b/qadevOOo/runner/helper/CwsDataExchangeImpl.java
index 6010404..748d181 100644
--- a/qadevOOo/runner/helper/CwsDataExchangeImpl.java
+++ b/qadevOOo/runner/helper/CwsDataExchangeImpl.java
@@ -1,5 +1,5 @@
 /*
-*************************************************************************
+ *************************************************************************
  *
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  * 
@@ -43,7 +43,8 @@ import util.utils;
  * Implementaion of the interface CwsDataExchange
  * @see share.CwsDataExchange
  */
-public class CwsDataExchangeImpl implements CwsDataExchange {
+public class CwsDataExchangeImpl implements CwsDataExchange
+{
 
     private final String cwsName;
     private final TestParameters param;
@@ -51,7 +52,8 @@ public class CwsDataExchangeImpl implements CwsDataExchange {
     private final BuildEnvTools bet;
     private final boolean mDebug;
 
-    public CwsDataExchangeImpl(String cwsName, TestParameters param, LogWriter log) throws ParameterNotFoundException {
+    public CwsDataExchangeImpl(String cwsName, TestParameters param, LogWriter log) throws ParameterNotFoundException
+    {
         this.cwsName = cwsName;
         this.param = param;
         this.log = log;
@@ -59,15 +61,22 @@ public class CwsDataExchangeImpl implements CwsDataExchange {
         mDebug = param.getBool(PropertyName.DEBUG_IS_ACTIVE);
     }
 
-    public ArrayList getModules() {
+    public ArrayList getModules()
+    {
         // the cwstouched command send its version information to StdErr.
         // A piping from StdErr to SdtOut the tcsh does not support.
         // To find the output easily the echo command is used
-        final String[] commands = {"echo cwstouched starts here", "cwstouched", "echo cwstouched ends here"};
+        final String[] commands =
+        {
+            "echo cwstouched starts here",
+            "cwstouched",
+            "echo cwstouched ends here"
+        };
 
         final ProcessHandler procHdl = bet.runCommandsInEnvironmentShell(commands, null, 20000);
 
-        if (mDebug) {
+        if (mDebug)
+        {
             log.println("---> Output of getModules:");
             log.println(procHdl.getOutputText());
             log.println("<--- Output of getModules");
@@ -79,33 +88,44 @@ public class CwsDataExchangeImpl implements CwsDataExchange {
         final String[] outs = procHdl.getOutputText().split("\n");
 
         final ArrayList<String> moduleNames = new ArrayList<String>();
-        boolean start = false;
-        for (int i = 0; i < outs.length; i++) {
+        boolean bStart = false;
+        for (int i = 0; i < outs.length; i++)
+        {
             final String line = outs[i];
-            if (line.startsWith("cwstouched ends here")) {
-                start = false;
+            if (line.startsWith("cwstouched starts here"))
+            {
+                bStart = true;
+                continue;
             }
-            if (start && line.length() > 1) {
-                moduleNames.add(line);
+            if (line.startsWith("cwstouched ends here"))
+            {
+                bStart = false;
+                continue;
             }
-            if (line.startsWith("cwstouched starts here")) {
-                start = true;
+            if (bStart && line.length() > 1)
+            {
+                moduleNames.add(line);
             }
         }
 
         return moduleNames;
     }
 
-    public void setUnoApiCwsStatus(boolean status) {
+    public void setUnoApiCwsStatus(boolean status)
+    {
 
         FileWriter out = null;
         String statusFile = null;
-        try {
+        try
+        {
 
             final String stat = status ? ".PASSED.OK" : ".PASSED.FAILED";
 
-            statusFile = utils.getUsersTempDir() + System.getProperty("file.separator") + "UnoApiCwsStatus." +
-                (String) param.get(PropertyName.VERSION) + "_" + param.get(PropertyName.OPERATING_SYSTEM) + stat + ".txt";
+            statusFile = utils.getUsersTempDir() +
+                        System.getProperty("file.separator") +
+                        "UnoApiCwsStatus." +
+                    (String) param.get(PropertyName.VERSION) +
+                    "_" + param.get(PropertyName.OPERATING_SYSTEM) + stat + ".txt";
 
             out = new FileWriter(statusFile);
 
@@ -113,16 +133,26 @@ public class CwsDataExchangeImpl implements CwsDataExchange {
             out.flush();
             out.close();
 
-            final String[] commands = {"cwsattach " + statusFile};
+            final String[] commands =
+            {
+                "cwsattach " + statusFile
+            };
 
             bet.runCommandsInEnvironmentShell(commands, null, 5000);
 
-        } catch (IOException ex) {
+        }
+        catch (IOException ex)
+        {
             System.out.println("ERROR: could not attach file '" + statusFile + "' to cws\n" + ex.toString());
-        } finally {
-            try {
+        }
+        finally
+        {
+            try
+            {
                 out.close();
-            } catch (IOException ex) {
+            }
+            catch (IOException ex)
+            {
                 ex.printStackTrace();
             }
         }
diff --git a/qadevOOo/runner/helper/ProcessHandler.java b/qadevOOo/runner/helper/ProcessHandler.java
index 1f027ad..fd1f4e0 100644
--- a/qadevOOo/runner/helper/ProcessHandler.java
+++ b/qadevOOo/runner/helper/ProcessHandler.java
@@ -366,17 +366,20 @@ public class ProcessHandler
         {
             ow = (OfficeWatcher) param.get(PropertyName.OFFICE_WATCHER);
         }
+        if (ow != null)
+        {
+            ow.ping();
+        }
 
+        int hangcheck = 10;
         while (!this.isFinished() && changedText)
         {
             count++;
-            if (ow != null)
-            {
-                ow.ping();
-            }
-            dbg("runCommand: waiting " + mTimeOut / 1000 + " seconds while command execution is ongoing... " + count);
-            shortWait(mTimeOut);
+            // dbg("runCommand: waiting " + mTimeOut / 1000 + " seconds while command execution is ongoing... " + count);
+            // shortWait(mTimeOut);
+            // shortWait(2000); // wait 2 seconds.
             //waitFor(mTimeOut);
+            waitFor(2000, false); // wait but don't kill
 
             if (ow != null)
             {
@@ -385,13 +388,18 @@ public class ProcessHandler
             // check for changes in the output stream. If there are no changes, the process maybe hangs
             if (!this.isFinished())
             {
-                if (this.getOutputText().length() == memText.length())
+                hangcheck--;
+                if (hangcheck < 0)
                 {
-                    changedText = false;
-                    dbg("runCommand Could not detect changes in output stream!!!");
-
+                    String sOutputText = getOutputText();
+                    if (sOutputText.length() == memText.length())
+                    {
+                        changedText = false;
+                    // dbg("runCommand Could not detect changes in output stream!!!");
+                    }
+                    hangcheck = 10;
+                    memText = this.getOutputText();
                 }
-                memText = this.getOutputText();
             }
         }
 
@@ -539,9 +547,6 @@ public class ProcessHandler
         stderr = new Pump(m_aProcess.getErrorStream(), log, "err > ");
         stdIn = new PrintStream(m_aProcess.getOutputStream());
 
-        // int nExitValue = m_aProcess.exitValue();
-        // int dummy = 0;
-
         dbg("execute: flush io-streams");
 
         flushInput();
@@ -578,7 +583,12 @@ public class ProcessHandler
      * @return <code>true</code> if process correctly exited
      * (exit code doesn't affect to this result).
      */
-    public boolean waitFor(long timeout)
+     public boolean waitFor(long timeout)
+     {
+         return waitFor(timeout, true);
+     }
+
+    private boolean waitFor(long timeout, boolean bKillProcessAfterTimeout)
     {
         if (isFinished())
         {
@@ -638,11 +648,14 @@ public class ProcessHandler
             }
         }
 
-        if (!isFinished)
+        if (bKillProcessAfterTimeout == true)
         {
-            log.println("Going to destroy the process!!");
-            m_aProcess.destroy();
-            log.println("Process has been destroyed!");
+            if (!isFinished)
+            {
+                log.println("Going to destroy the process!!");
+                m_aProcess.destroy();
+                log.println("Process has been destroyed!");
+            }
         }
 //  Removed as hung up in SDK test 'PathSettings'
 //        try {
diff --git a/qadevOOo/runner/lib/MultiMethodTest.java b/qadevOOo/runner/lib/MultiMethodTest.java
index c1da6e3..237c169 100644
--- a/qadevOOo/runner/lib/MultiMethodTest.java
+++ b/qadevOOo/runner/lib/MultiMethodTest.java
@@ -27,7 +27,6 @@
  * for a copy of the LGPLv3 License.
  *
  ************************************************************************/
-
 package lib;
 
 import java.io.PrintWriter;
@@ -43,7 +42,6 @@ import share.DescEntry;
 import lib.TestParameters;
 import stats.Summarizer;
 
-
 /**
  * The class supports method based interface tests development.
  *
@@ -81,38 +79,34 @@ import stats.Summarizer;
  *
  * @see TestResult
  */
-public class MultiMethodTest {    
-    
+public class MultiMethodTest
+{
+
     /**
      * Contains the TestEnvironment being tested, to allow for tests to access
      * it.
      */
     protected TestEnvironment tEnv;
-    
     /**
      * Contains the TestParameters for the tests, to allow for tests to access
      * it.
      */
     protected TestParameters tParam;
-    
     /**
      * Contains the Description for the test
      * it.
      */
-    protected DescEntry entry;    
-
+    protected DescEntry entry;
     /**
      * Contains a writer to log an information about the interface testing, to
      * allows for tests to access it.
      */
     protected PrintWriter log;
-
     /**
      * Contains the TestResult instance for the interface test to collect
      * information about methods test.
      */
     protected TestResult tRes;
-
     /**
      * Contains names of the methods have been alreadycalled
      */
@@ -123,7 +117,8 @@ public class MultiMethodTest {
      *
      * @param tEnv the environment to dispose
      */
-    public void disposeEnvironment( TestEnvironment tEnv ) {
+    public void disposeEnvironment(TestEnvironment tEnv)
+    {
         disposeEnvironment();
     }
 
@@ -132,10 +127,11 @@ public class MultiMethodTest {
      *
      * @see #disposeEnvironment(TestEnvironment)
      */
-    public void disposeEnvironment() {
+    public void disposeEnvironment()
+    {
         tEnv.dispose();
-        TestCase tCase = tEnv.getTestCase();        
-        tCase.disposeTestEnvironment( tEnv, tParam );
+        TestCase tCase = tEnv.getTestCase();
+        tCase.disposeTestEnvironment(tEnv, tParam);
     }
 
     /**
@@ -147,92 +143,113 @@ public class MultiMethodTest {
      * called. After them, after() method is called, to allow cleaning up the
      * stuff initialized in before() and test methods.
      *
+     * @param entry the interface test state
      * @param tEnv the environment to test
-     * @param ifcState the interface test state
      * @param tParam the parameters of the test
      *
      * @see #before
      * @see #after
      */
-    public TestResult run( DescEntry entry, TestEnvironment tEnv, TestParameters tParam ) {
-        
+    public TestResult run(DescEntry entry, TestEnvironment tEnv, TestParameters tParam)
+    {
+
         log = (PrintWriter) entry.Logger;
-        
+
         this.tEnv = tEnv;
         this.tParam = tParam;
-        this.log = log;
+        // this.log = log;
         this.entry = entry;
-        this.tRes = new TestResult();        
+        this.tRes = new TestResult();
         Class testedClass;
 
-        String ifcName = getInterfaceName();
-        System.out.println("checking : "+ifcName);
-        
-        // defining a name of the class corresponding to the tested interface
-        // or service
-        String testedClassName;
-
-        testedClassName = getTestedClassName();
-        
-        if (entry.EntryType.equals("service")) {
-            testedClassName = "com.sun.star.beans.XPropertySet";
-        }
-        
-        try {
-            testedClass = Class.forName(testedClassName);
-        } catch (ClassNotFoundException cnfE) {
+        // Some fake code for a self test.
+        // For normal test we must not be a "ifc.qadevooo._SelfTest"
+        if (! entry.entryName.equals("ifc.qadevooo._SelfTest"))
+        {
+            String ifcName = getInterfaceName();
+            System.out.println("checking : " + ifcName);
 
-            cnfE.printStackTrace(log);
-            log.println("could not find a class : " + getTestedClassName());
-            return null;
+            // defining a name of the class corresponding to the tested interface
+            // or service
+            String testedClassName;
 
-        }
+            testedClassName = getTestedClassName();
 
-        // quering the tested interface from the tested object
-        XInterface tCase = tEnv.getTestObject();
-        Object oObj = UnoRuntime.queryInterface(
-                testedClass, tEnv.getTestObject());
-                        
-        if (oObj == null) {
-            if (entry.isOptional) {
-                Summarizer.summarizeDown(
-                            entry,"Not supported but optional.OK");
-            } else {
-                Summarizer.summarizeDown(
-                            entry,"queryInterface returned null.FAILED");
-                entry.ErrorMsg="queryInterface returned null";
-                entry.hasErrorMsg=true;
-            }            
-            
-            return null;
+            if (entry.EntryType.equals("service"))
+            {
+                testedClassName = "com.sun.star.beans.XPropertySet";
+            }
+
+            try
+            {
+                testedClass = Class.forName(testedClassName);
+            }
+            catch (ClassNotFoundException cnfE)
+            {
+
+                cnfE.printStackTrace(log);
+                log.println("could not find a class : " + getTestedClassName());
+                return null;
+
+            }
+
+            // quering the tested interface from the tested object
+            XInterface tCase = tEnv.getTestObject();
+            Object oObj = UnoRuntime.queryInterface(testedClass, tEnv.getTestObject());
+
+            if (oObj == null)
+            {
+                if (entry.isOptional)
+                {
+                    Summarizer.summarizeDown(entry, "Not supported but optional.OK");
+                }
+                else
+                {
+                    Summarizer.summarizeDown(entry, "queryInterface returned null.FAILED");
+                    entry.ErrorMsg = "queryInterface returned null";
+                    entry.hasErrorMsg = true;
+                }
+
+                return null;
+            }
+
+            //setting the field oObj
+            setField("oObj", oObj);
         }
-        
-        //setting the field oObj
-        setField("oObj",oObj);
-        
-        
+
         // to perform some stuff before all method tests
-        try {
+        try
+        {
             before();
-        } catch (Exception e){
+        }
+        catch (Exception e)
+        {
             setSubStates(e.toString());
             return tRes;
         }
 
         // executing methods tests
-        for (int i=0;i<entry.SubEntryCount;i++) {
-            try {
-                executeMethod( entry.SubEntries[i].entryName ); 
-            } catch (Exception e){
-                log.println("Exception while checking: "+
-                    entry.SubEntries[i].entryName+" : "+e.getMessage());
+        for (int i = 0; i < entry.SubEntryCount; i++)
+        {
+            DescEntry aSubEntry = entry.SubEntries[i];
+            try
+            {
+                executeMethod(aSubEntry.entryName);
+            }
+            catch (Exception e)
+            {
+                log.println("Exception while checking: " + aSubEntry.entryName + " : " + e.getMessage());
             }
         }
 
         // to perform some stuff after all method tests
-        try {
+        try
+        {
             after();
-        } catch (Exception e){}
+        }
+        catch (Exception e)
+        {
+        }
 
         return tRes;
     }
@@ -241,35 +258,36 @@ public class MultiMethodTest {
      * Is called before calling method tests, but after initialization.
      * Subclasses may override to perform actions before method tests.
      */
-    protected void before() {
+    protected void before()
+    {
     }
 
     /**
      * Is called after calling method tests. Subclasses may override
      * to perform actions after method tests.
      */
-    protected void after() {
+    protected void after()
+    {
     }
 
-
     /**
      * @return the name of the interface or the service tested.
      */
-    protected String getTestedClassName() {
+    protected String getTestedClassName()
+    {
         String clsName = this.getClass().getName();
 
         int firstDot = clsName.indexOf(".");
         int lastDot = clsName.lastIndexOf(".");
-        
+
         String append = "com.sun.star.";
-        
-        if (entry.longName.indexOf("::drafts::com::")>-1) {            
+
+        if (entry.longName.indexOf("::drafts::com::") > -1)
+        {
             append = "drafts.com.sun.star.";
         }
 
-        return append
-                + clsName.substring(firstDot + 1, lastDot + 1)
-                + clsName.substring(lastDot + 2);
+        return append + clsName.substring(firstDot + 1, lastDot + 1) + clsName.substring(lastDot + 2);
     }
 
     /**
@@ -278,30 +296,37 @@ public class MultiMethodTest {
      * @param methName the method name to set status
      * @param methStatus the status to set to the method
      */
-    protected void setStatus( String methName, Status methStatus ) {
-        tRes.tested( methName, methStatus );
+    protected void setStatus(String methName, Status methStatus)
+    {
+        tRes.tested(methName, methStatus);
     }
-    
+
     /**
      * sets the substates
      */
-    protected void setSubStates(String msg) {
-        for (int k=0;k<entry.SubEntryCount;k++) {            
-            entry.SubEntries[k].hasErrorMsg=true;
-            entry.SubEntries[k].ErrorMsg=msg;
-            if (entry.SubEntries[k].State.equals("UNKNOWN")) {
+    protected void setSubStates(String msg)
+    {
+        for (int k = 0; k < entry.SubEntryCount; k++)
+        {
+            entry.SubEntries[k].hasErrorMsg = true;
+            entry.SubEntries[k].ErrorMsg = msg;
+            if (entry.SubEntries[k].State.equals("UNKNOWN"))
+            {
                 entry.SubEntries[k].State = msg;
             }
         }
-        
-    }    
+
+    }
 
     /**
      * Checks if the <code>method</code> is optional in the service.
      */
-    protected boolean isOptional(String method) {
-        for (int k=0;k<entry.SubEntryCount;k++) {            
-            if (entry.SubEntries[k].entryName.equals(method)) {
+    protected boolean isOptional(String method)
+    {
+        for (int k = 0; k < entry.SubEntryCount; k++)
+        {
+            if (entry.SubEntries[k].entryName.equals(method))
+            {
                 return entry.SubEntries[k].isOptional;
             }
         }
@@ -311,8 +336,9 @@ public class MultiMethodTest {
     /**
      * Checks if the <code>method</code> test has been already called.
      */
-    protected boolean isCalled( String method ) {
-        return methCalled.contains( method );
+    protected boolean isCalled(String method)
+    {
+        return methCalled.contains(method);
     }
 
     /**
@@ -320,15 +346,16 @@ public class MultiMethodTest {
      * be called. The method checks this and if it is not called, calls it.
      * If the method is failed or skipped, it throws StatusException.
      */
-    protected void requiredMethod(String method) {
+    protected void requiredMethod(String method)
+    {
         log.println("starting required method: " + method);
-        executeMethod( method );
-        Status mtStatus = tRes.getStatusFor( method );
+        executeMethod(method);
+        Status mtStatus = tRes.getStatusFor(method);
 
-        if ( mtStatus != null
-                && (!mtStatus.isPassed() || mtStatus.isFailed()) ) {
-            log.println( "! Required method " + method + " failed" );
-            throw new StatusException( mtStatus );
+        if (mtStatus != null && (!mtStatus.isPassed() || mtStatus.isFailed()))
+        {
+            log.println("! Required method " + method + " failed");
+            throw new StatusException(mtStatus);
         }
     }
 
@@ -336,10 +363,12 @@ public class MultiMethodTest {
      * Checks if the <code>method</code> was called, and if not, call it.
      * On contrary to requiredMethod(), he method doesn't check its status.
      */
-    protected void executeMethod( String method ) {
-        if ( ! isCalled( method ) ) {
-            log.println("Execute: "+ method);
-            callMethod( method );
+    protected void executeMethod(String method)
+    {
+        if (!isCalled(method))
+        {
+            log.println("Execute: " + method);
+            callMethod(method);
             log.println(method + ": " + tRes.getStatusFor(method));
         }
     }
@@ -347,9 +376,10 @@ public class MultiMethodTest {
     /**
      * Just calls the <code>method</code> test.
      */
-    protected void callMethod(String method) {
+    protected void callMethod(String method)
+    {
         methCalled.add(method);
-        invokeTestMethod(getMethodFor(method), method);        
+        invokeTestMethod(getMethodFor(method), method);
     }
 
     /**
@@ -359,34 +389,50 @@ public class MultiMethodTest {
      * @param meth the subclass' method to invoke
      * @param methName the name of the method
      */
-    protected void invokeTestMethod(Method meth, String methName) {
-        if (meth == null) {
-            setStatus( methName, Status.skipped( false ) );
-        } else {
+    protected void invokeTestMethod(Method meth, String methName)
+    {
+        if (meth == null)
+        {
+            setStatus(methName, Status.skipped(false));
+        }
+        else
+        {
             Status stat;
 
-            try {
+            try
+            {
                 meth.invoke(this, new Object[0]);
                 return;
-            } catch (InvocationTargetException itE) {
+            }
+            catch (InvocationTargetException itE)
+            {
                 Throwable t = itE.getTargetException();
 
-                if ( t instanceof StatusException ) {
-                    stat = ((StatusException)t).getStatus();
-                } else {
+                if (t instanceof StatusException)
+                {
+                    stat = ((StatusException) t).getStatus();
+                }
+                else
+                {
                     t.printStackTrace(log);
                     stat = Status.exception(t);
                 }
-            } catch (IllegalAccessException iaE) {
+            }
+            catch (IllegalAccessException iaE)
+            {
                 iaE.printStackTrace(log);
                 stat = Status.exception(iaE);
-            } catch (IllegalArgumentException iaE) {
+            }
+            catch (IllegalArgumentException iaE)
+            {
                 iaE.printStackTrace(log);
                 stat = Status.exception(iaE);
-            } catch (ClassCastException ccE) {
+            }
+            catch (ClassCastException ccE)
+            {
                 ccE.printStackTrace(log);
                 stat = Status.exception(ccE);
-            } 
+            }
 
             setStatus(methName, stat);
         }
@@ -397,18 +443,23 @@ public class MultiMethodTest {
      *
      * @return the testing method, if found, <tt>null</tt> otherwise
      */
-    protected Method getMethodFor(String method) {
+    protected Method getMethodFor(String method)
+    {
         String mName = "_" + method;
 
-        if (mName.endsWith("()")) {
+        if (mName.endsWith("()"))
+        {
             mName = mName.substring(0, mName.length() - 2);
         }
 
         final Class[] paramTypes = new Class[0];
 
-        try {
+        try
+        {
             return this.getClass().getDeclaredMethod(mName, paramTypes);
-        } catch (NoSuchMethodException nsmE) {
+        }
+        catch (NoSuchMethodException nsmE)
+        {
             return null;
         }
     }
@@ -416,38 +467,43 @@ public class MultiMethodTest {
     /**
      * @return the name of the interface tested
      */
-    public String getInterfaceName() {
+    public String getInterfaceName()
+    {
         String clName = this.getClass().getName();
-        return clName.substring( clName.lastIndexOf('.') + 1 );
+        return clName.substring(clName.lastIndexOf('.') + 1);
     }
 
-
     /**
      * Initializes <code>fieldName</code> of the subclass with
      * <code>value</code>.
      *
      * @return Status describing the result of the operation.
      */
-    protected Status setField( String fieldName, Object value) {
+    protected Status setField(String fieldName, Object value)
+    {
         Field objField;
 
-        try {
-            objField = this.getClass().getField( fieldName );
+        try
+        {
+            objField = this.getClass().getField(fieldName);
         }
-        catch( NoSuchFieldException nsfE ){
-            return Status.exception( nsfE );
+        catch (NoSuchFieldException nsfE)
+        {
+            return Status.exception(nsfE);
         }
 
-        try {
-            objField.set( this, value );
+        try
+        {
+            objField.set(this, value);
             return Status.passed(true);
         }
-        catch( IllegalArgumentException iaE ){
-            return Status.exception( iaE );
+        catch (IllegalArgumentException iaE)
+        {
+            return Status.exception(iaE);
         }
-        catch( IllegalAccessException iaE ){
-            return Status.exception( iaE );
+        catch (IllegalAccessException iaE)
+        {
+            return Status.exception(iaE);
         }
     }
-    
 }
diff --git a/qadevOOo/runner/share/DescGetter.java b/qadevOOo/runner/share/DescGetter.java
index c571e38..a6b7229 100644
--- a/qadevOOo/runner/share/DescGetter.java
+++ b/qadevOOo/runner/share/DescGetter.java
@@ -36,128 +36,161 @@ import java.util.StringTokenizer;
 
 import java.util.Vector;
 
-
 /**
  *
  * Base Interface to get a description for a given TestJob
  *
  */
-public abstract class DescGetter {
-    public abstract DescEntry[] getDescriptionFor(String entry, 
-                                                  String DescPath, 
-                                                  boolean debug);
+public abstract class DescGetter
+{
+
+    public abstract DescEntry[] getDescriptionFor(String entry,
+            String DescPath,
+            boolean debug);
 
-    protected abstract DescEntry getDescriptionForSingleJob(String job, 
-                                                            String descPath, 
-                                                            boolean debug);
+    protected abstract DescEntry getDescriptionForSingleJob(String job,
+            String descPath,
+            boolean debug);
 
-    protected abstract String[] createScenario(String descPath, String job, 
-                                               boolean debug);
+    protected abstract String[] createScenario(String descPath, String job,
+            boolean debug);
 
-    protected DescEntry[] getScenario(String url, String descPath, 
-                                      boolean debug) {
+    protected DescEntry[] getScenario(String url, String descPath,
+            boolean debug)
+    {
         Vector entryList = new Vector();
         String line = "";
         BufferedReader scenario = null;
         DescEntry[] entries = null;
 
-        try {
+        try
+        {
             scenario = new BufferedReader(new FileReader(url));
-        } catch (java.io.FileNotFoundException fnfe) {
+        }
+        catch (java.io.FileNotFoundException fnfe)
+        {
             System.out.println("Couldn't find file " + url);
 
             return entries;
         }
 
-        while (line != null) {
-            try {
-                if (line.startsWith("-o")) {
+        while (line != null)
+        {
+            try
+            {
+                if (line.startsWith("-o"))
+                {
                     String job = line.substring(3, line.length()).trim();
-                    DescEntry aEntry ;
+                    DescEntry aEntry;
                     // special in case several Interfaces are given comma separated
-                    if (job.indexOf(",") < 0) {
-                        aEntry = getDescriptionForSingleJob(job, descPath, 
-                                                                     debug);
-                    } else {
+                    if (job.indexOf(",") < 0)
+                    {
+                        aEntry = getDescriptionForSingleJob(job, descPath,
+                                debug);
+                    }
+                    else
+                    {
                         ArrayList subs = getSubInterfaces(job);
                         String partjob = job.substring(0, job.indexOf(",")).trim();
-                        aEntry = getDescriptionForSingleJob(partjob, descPath, 
-                                                                     debug);
+                        aEntry = getDescriptionForSingleJob(partjob, descPath,
+                                debug);
 
-                        if (aEntry != null) {
-                            for (int i = 0; i < aEntry.SubEntryCount; i++) {
+                        if (aEntry != null)
+                        {
+                            for (int i = 0; i < aEntry.SubEntryCount; i++)
+                            {
                                 String subEntry = aEntry.SubEntries[i].longName;
                                 int cpLength = aEntry.longName.length();
-                                subEntry = subEntry.substring(cpLength + 2, 
-                                                              subEntry.length());
+                                subEntry = subEntry.substring(cpLength + 2,
+                                        subEntry.length());
 
-                                if (subs.contains(subEntry)) {
+                                if (subs.contains(subEntry))
+                                {
                                     aEntry.SubEntries[i].isToTest = true;
                                 }
                             }
                         }
-                    }                    
+                    }
 //                    DescEntry aEntry = getDescriptionForSingleJob(
 //                                          line.substring(3).trim(), descPath, 
 //                                          debug);
                     if (aEntry != null)
+                    {
                         entryList.add(aEntry);
-                } else if (line.startsWith("-sce")) {
-                    DescEntry[] subs = getScenario(line.substring(5, 
-                                                                  line.length())
-                                                       .trim(), descPath, 
-                                                   debug);
-
-                    for (int i = 0; i < subs.length; i++) {
+                    }
+                }
+                else if (line.startsWith("-sce"))
+                {
+                    DescEntry[] subs = getScenario(line.substring(5,
+                            line.length()).trim(), descPath,
+                            debug);
+
+                    for (int i = 0; i < subs.length; i++)
+                    {
                         entryList.add(subs[i]);
                     }
-                } else if (line.startsWith("-p")) {
-                    String[] perModule = createScenario(descPath, 
-                                                        line.substring(3)
-                                                            .trim(), debug);
+                }
+                else if (line.startsWith("-p"))
+                {
+                    String[] perModule = createScenario(descPath,
+                            line.substring(3).trim(), debug);
 
-                    for (int i = 0; i < perModule.length; i++) {
+                    for (int i = 0; i < perModule.length; i++)
+                    {
                         DescEntry aEntry = getDescriptionForSingleJob(
-                                                   perModule[i].substring(3)
-                                                               .trim(), 
-                                                   descPath, debug);
+                                perModule[i].substring(3).trim(),
+                                descPath, debug);
                         if (aEntry != null)
+                        {
                             entryList.add(aEntry);
+                        }
                     }
                 }
 
                 line = scenario.readLine();
-            } catch (java.io.IOException ioe) {
-                if (debug) {
+            }
+            catch (java.io.IOException ioe)
+            {
+                if (debug)
+                {
                     System.out.println("Exception while reading scenario");
                 }
             }
         }
 
-        try {
+        try
+        {
             scenario.close();
-        } catch (java.io.IOException ioe) {
-            if (debug) {
+        }
+        catch (java.io.IOException ioe)
+        {
+            if (debug)
+            {
                 System.out.println("Exception while closeing scenario");
             }
         }
 
         if (entryList.size() == 0)
+        {
             return null;
+        }
         entries = new DescEntry[entryList.size()];
         entries = (DescEntry[]) entryList.toArray(entries);
 
         return entries;
     }
-    
-    protected ArrayList getSubInterfaces(String job) {
+
+    protected ArrayList getSubInterfaces(String job)
+    {
         ArrayList namesList = new ArrayList();
         StringTokenizer st = new StringTokenizer(job, ",");
 
-        for (int i = 0; st.hasMoreTokens(); i++) {
+        for (int i = 0; st.hasMoreTokens(); i++)
+        {
             String token = st.nextToken();
 
-            if (token.indexOf(".") < 0) {
+            if (token.indexOf(".") < 0)
+            {
                 namesList.add(token);
             }
         }
diff --git a/qadevOOo/runner/util/DesktopTools.java b/qadevOOo/runner/util/DesktopTools.java
index 38459ce..88c0aac 100644
--- a/qadevOOo/runner/util/DesktopTools.java
+++ b/qadevOOo/runner/util/DesktopTools.java
@@ -429,7 +429,7 @@ public class DesktopTools {
      * @param xModel the XModel of the document to bring to top
      */
     public static void bringWindowToFront(XModel xModel){
-        System.out.println("DEBUG: bring to front xModel");
+        // System.out.println("DEBUG: bring to front xModel");
         
         XTopWindow xTopWindow =  
                 (XTopWindow) UnoRuntime.queryInterface(
@@ -440,7 +440,7 @@ public class DesktopTools {
     }
     
     public static void bringWindowToFront(XComponent xComponent){
-        System.out.println("DEBUG: bring to front xComponent");
+        // System.out.println("DEBUG: bring to front xComponent");
         XModel xModel = (XModel) UnoRuntime.queryInterface(XModel.class, xComponent);
         if (xModel != null){
             bringWindowToFront(xModel);
diff --git a/qadevOOo/tests/java/complex/unoapi/CheckModuleAPI.java b/qadevOOo/tests/java/complex/unoapi/CheckModuleAPI.java
index 79077e4..85d4c6b 100644
--- a/qadevOOo/tests/java/complex/unoapi/CheckModuleAPI.java
+++ b/qadevOOo/tests/java/complex/unoapi/CheckModuleAPI.java
@@ -44,7 +44,7 @@ import helper.BuildEnvTools;
 import helper.ComplexDescGetter;
 import helper.CwsDataExchangeImpl;
 import java.io.File;
-import java.io.FileFilter;
+// import java.io.FileFilter;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -70,7 +70,8 @@ import util.utils;
  * </ul>
  *
  */
-public class CheckModuleAPI extends ComplexTestCase {
+public class CheckModuleAPI extends ComplexTestCase
+{
 
     private static String mSRC_ROOT = null;
     private static boolean mIsInitialized = false;
@@ -87,16 +88,21 @@ public class CheckModuleAPI extends ComplexTestCase {
      * but this will take some time.
      * Note: This funktionality is only reasonable with parameter <CODE>-noOffice true</CODE>
      */
-    public void before() {
+    public void before()
+    {
 
-        if (!mIsInitialized) {
+        if (!mIsInitialized)
+        {
             mIsInitialized = true;
 
-            try {
+            try
+            {
 
                 bet = new BuildEnvTools(param, log);
 
-            } catch (ParameterNotFoundException ex) {
+            }
+            catch (ParameterNotFoundException ex)
+            {
                 this.failed(ex.toString(), false);
             }
 
@@ -111,11 +117,15 @@ public class CheckModuleAPI extends ComplexTestCase {
      * let API tests run.
      * @param module
      */
-    public void checkModule(String module) {
+    public void checkModule(String module)
+    {
         log.println(utils.getDateTime() + ": start testing module '" + module + "'");
 
         log.println(utils.getDateTime() + "start new Office instance...");
+
+        // TODO: is Office started with this program?
         final OfficeProvider officeProvider = new OfficeProvider();
+
         log.println(utils.getDateTime() + "Receiving the ServiceManager of the Office ");
         final XMultiServiceFactory msf = (XMultiServiceFactory) officeProvider.getManager(param);
         assure("couldnot get ServiceFarcotry", msf != null, mContinue);
@@ -128,12 +138,12 @@ public class CheckModuleAPI extends ComplexTestCase {
         final File fMakeFile = new File(sMakeFile);
         assure("ERROR: could not find makefile: '" + sMakeFile + "'", fMakeFile.exists(), mContinue);
 
-        final String[] commands = getCommands(sUnoapi);
+        final String[] commands = getDmakeCommands(sUnoapi);
 
         final ProcessHandler procHdl = bet.runCommandsInEnvironmentShell(commands, fUnoapi, 0);
         log.println("exit code of dmake: " + procHdl.getExitCode());
         String test = procHdl.getOutputText();
-        test = procHdl.getErrorText();
+        test += procHdl.getErrorText();
 //        if (mDebug) {
 //            log.println("---> Output of dmake:");
 //            log.println(procHdl.getOutputText());
@@ -142,40 +152,93 @@ public class CheckModuleAPI extends ComplexTestCase {
 //            log.println(procHdl.getErrorText());
 //            log.println("<--- Error output of dmake:");
 //        }
-        assure("module '" + module + "' failed", verifyOutput(procHdl.getOutputText()), mContinue);
+        assure("module '" + module + "' failed", verifyOutput(test), mContinue);
         log.println(utils.getDateTime() + " module '" + module + "': kill existing office...");
-        try {
-            officeProvider.closeExistingOffice(param, true);
-        } catch (java.lang.UnsatisfiedLinkError exception) {
-            log.println("Office seems not to be running");
-        }
 
+        // TODO: how to check if the office is not started with this process.
+        boolean bNoOffice = param.getBool("NoOffice");
+        if (!bNoOffice)
+        {
+            try
+            {
+                officeProvider.closeExistingOffice(param, true);
+            }
+            catch (java.lang.UnsatisfiedLinkError exception)
+            {
+                log.println("Office seems not to be running");
+            }
+        }
     }
-
-    private void addIfQaUnoApiFolderExist(File srcRoot, ArrayList moduleNames) {
-
-        if (doesQaUnoApiFolderExist(srcRoot)) {
-            moduleNames.add(srcRoot.getName());
+    private String getQaUnoApiPath(String srcRoot, String _sModul)
+    {
+        File aFile = new File(srcRoot);
+        if (!aFile.exists())
+        {
+            System.out.println("ERROR: srcRoot '" + srcRoot + "' does not exist.");
+            return null;
+        }
+        String sModulePath = srcRoot;
+        sModulePath += File.separator;
+        sModulePath += _sModul;
+
+        File aModulePath = new File(sModulePath);
+        if (! aModulePath.exists())
+        {
+            aModulePath = new File(sModulePath + ".lnk");
+            if (! aModulePath.exists())
+            {
+                aModulePath = new File(sModulePath + ".link");
+                if (! aModulePath.exists())
+                {
+                    // module does not exist.
+                    return null;
+                }
+            }
+        }
+        sModulePath = aModulePath.getAbsolutePath();
+        sModulePath += File.separator;
+        sModulePath += "qa";
+        sModulePath += File.separator;
+        sModulePath += "unoapi";
+        File aModulePathQaUnoApi = new File(sModulePath);
+        if (aModulePathQaUnoApi.exists())
+        {
+            return aModulePathQaUnoApi.getAbsolutePath();
         }
+        return null;
     }
-
-    private boolean doesQaUnoApiFolderExist(File srcRoot) {
+    private boolean doesQaUnoApiFolderExist(String srcRoot, String _sModul)
+    {
+        if (getQaUnoApiPath(srcRoot, _sModul) != null)
+        {
+            return true;
+        }
+        return false;
+    }
+/*
+ private boolean doesQaUnoApiFolderExist(File srcRoot)
+    {
         final FolderFilter qaFilter = new FolderFilter("qa");
         final File[] qaTree = srcRoot.listFiles(qaFilter);
-        if (qaTree != null) {
-            for (int j = 0; j < qaTree.length; j++) {
+        if (qaTree != null)
+        {
+            for (int j = 0; j < qaTree.length; j++)
+            {
                 final File qaFolder = qaTree[j];
                 final FolderFilter apiFilter = new FolderFilter("unoapi");
                 final File[] apiTree = qaFolder.listFiles(apiFilter);
-                if (apiTree != null && apiTree.length > 0) {
+                if (apiTree != null && apiTree.length > 0)
+                {
                     return true;
                 }
             }
         }
         return false;
     }
+*/
 
-    private String[] getAllModuleCommand() {
+    private String[] getAllModuleCommand()
+    {
         String[] checkModules;
 
         final String[] names = getModulesFromSourceRoot();
@@ -184,45 +247,75 @@ public class CheckModuleAPI extends ComplexTestCase {
         return checkModules;
     }
 
-    private String[] getCheckModuleCommand(String[] names) {
+    private String[] getCheckModuleCommand(String[] names)
+    {
         String[] checkModules;
         checkModules = new String[names.length];
 
-        for (int i = 0; i < names.length; i++) {
+        for (int i = 0; i < names.length; i++)
+        {
             // if a module is not added to a cws it contains a dot in its name (forms.lnk)
-            if (names[i].indexOf(".") != -1) {
+            if (names[i].indexOf(".") != -1)
+            {
                 checkModules[i] = "checkModule(" + names[i].substring(0, names[i].indexOf(".")) + ")";
-            } else {
+            }
+            else
+            {
                 checkModules[i] = "checkModule(" + names[i] + ")";
             }
         }
         return checkModules;
     }
 
-    private String[] getCommands(String sUnoapi) {
+    private String[] getDmakeCommands(String sUnoapi)
+    {
 
         String[] cmdLines = null;
         final String platform = (String) param.get(PropertyName.OPERATING_SYSTEM);
         log.println("prepare command for platform " + platform);
 
-        if (platform.equals(PropertyName.WNTMSCI)){
-            if (param.getBool(PropertyName.CYGWIN)){
-                cmdLines = new String[]{"cd `cygpath '" + sUnoapi.replaceAll("\\\\", "\\\\\\\\")+ "'`", "dmake"};
-            } else{
-            cmdLines = new String[]{"cdd " + sUnoapi, "dmake"};
+        if (platform.equals(PropertyName.WNTMSCI))
+        {
+            if (param.getBool(PropertyName.CYGWIN))
+            {
+                // cygwin stuff
+                cmdLines = new String[]
+                        {
+                            "cd `cygpath '" + sUnoapi.replaceAll("\\\\", "\\\\\\\\") + "'`",
+                            "dmake"
+                        };
             }
-        } else {
-                cmdLines = new String[]{"cd " + sUnoapi, "dmake"};
+            else
+            {
+                // old 4NT
+                cmdLines = new String[]
+                        {
+                            "cdd " + sUnoapi,
+                            "dmake"
+                        };
             }
+        }
+        else
+        {
+            // unix
+            cmdLines = new String[]
+                    {
+                        "cd " + sUnoapi,
+                        "dmake"
+                    };
+        }
         return cmdLines;
     }
 
-    private String[] getCwsModuleCommand() {
+    private String[] getCwsModuleCommand()
+    {
         String[] checkModules;
         final String version = (String) param.get(PropertyName.VERSION);
         String[] names = null;
-        if (version.startsWith("cws_")) {
-            try {
+        if (version.startsWith("cws_"))
+        {
+            try
+            {
                 // cws version: all added modules must be tested
                 final String cws = version.substring(4, version.length());
                 final CwsDataExchangeImpl cde = new CwsDataExchangeImpl(cws, param, log);
@@ -230,18 +323,27 @@ public class CheckModuleAPI extends ComplexTestCase {
 
                 final ArrayList moduleNames = new ArrayList();
                 Iterator iterator = addedModules.iterator();
-                while (iterator.hasNext()) {
-                    final File sourceRoot = new File(mSRC_ROOT + File.separator + (String) iterator.next());
-                    addIfQaUnoApiFolderExist(sourceRoot, moduleNames);
-
+                while (iterator.hasNext())
+                {
+                    String sModuleName = (String) iterator.next();
+                    // String sFilename = mSRC_ROOT; //  + File.separator + sModuleName;
+                    // final File sourceRoot = new File(sFilename);
+                    if (doesQaUnoApiFolderExist(mSRC_ROOT, sModuleName))
+                    {
+                        moduleNames.add(sModuleName);
+                    }
                 }
                 names = (String[]) moduleNames.toArray(new String[0]);
-            } catch (ParameterNotFoundException ex) {
+            }
+            catch (ParameterNotFoundException ex)
+            {
                 this.failed(ex.toString(), false);
             }
 
 
-        } else {
+        }
+        else
+        {
             // major version: all modules must be tested
             names = getModulesFromSourceRoot();
         }
@@ -250,53 +352,70 @@ public class CheckModuleAPI extends ComplexTestCase {
         return checkModules;
     }
 
-    private String[] getDefinedModuleCommand(String module) {
+    private String[] getDefinedModuleCommand(String module)
+    {
         String[] checkModules = null;
         // list of modules to test: (sw,sc,sd)
-        if (module.indexOf(",") != -1) {
+        if (module.indexOf(",") != -1)
+        {
             final String[] names = module.split(",");
             checkModules = new String[names.length];
-            for (int i = 0; i < names.length; i++) {
+            for (int i = 0; i < names.length; i++)
+            {
                 final String moduleName = names[i].trim();
 
-                File sourceRoot = new File(mSRC_ROOT + File.separator + moduleName);
-                if (!sourceRoot.exists()) {
-                    sourceRoot = new File(mSRC_ROOT + File.separator + moduleName + ".lnk");
-                }
+//                File sourceRoot = new File(mSRC_ROOT + File.separator + moduleName);
+//                if (!sourceRoot.exists())
+//                {
+//                    sourceRoot = new File(mSRC_ROOT + File.separator + moduleName + ".lnk");
+//                }
 
-                if (doesQaUnoApiFolderExist(sourceRoot)) {
+                if (doesQaUnoApiFolderExist(mSRC_ROOT, moduleName))
+                {
                     checkModules[i] = "checkModule(" + moduleName + ")";
                 }
             }
-        } else {
-            File sourceRoot = new File(mSRC_ROOT + File.separator + module);
-            if (!sourceRoot.exists()) {
-                sourceRoot = new File(mSRC_ROOT + File.separator + module + ".lnk");
-            }
-            if (doesQaUnoApiFolderExist(sourceRoot)) {
-                checkModules = new String[]{"checkModule(" + module + ")"};
+        }
+        else
+        {
+//            File sourceRoot = new File(mSRC_ROOT + File.separator + module);
+//            if (!sourceRoot.exists())
+//            {
+//                sourceRoot = new File(mSRC_ROOT + File.separator + module + ".lnk");
+//            }
+            if (doesQaUnoApiFolderExist(mSRC_ROOT, module))
+            {
+                checkModules = new String[]
+                        {
+                            "checkModule(" + module + ")"
+                        };
             }
         }
         return checkModules;
     }
 
-    private String getModulePath(String module) {
-
-        String sUnoapi = null;
-        final String sep = System.getProperty("file.separator");
-        final File srcRoot = new File(mSRC_ROOT);
-
-        final FolderFilter qaFilter = new FolderFilter(module);
-        final File[] moduleTree = srcRoot.listFiles(qaFilter);
-        if (moduleTree != null) {
-            if (mDebug) {
-                log.println("moduleTree length:" + moduleTree.length);
-                log.println("moduleTree: " + moduleTree[0].getAbsolutePath());
-            }
-            if (moduleTree != null) {
-                sUnoapi = moduleTree[0].getAbsolutePath() + sep + "qa" + sep + "unoapi";
-            }
-        }
+    private String getModulePath(String module)
+    {
+
+        // String sUnoapi = null;
+        // final String sep = System.getProperty("file.separator");
+        // final File srcRoot = new File(mSRC_ROOT);
+
+        // final FolderFilter qaFilter = new FolderFilter(module);
+        // final File[] moduleTree = srcRoot.listFiles(qaFilter);
+//        if (moduleTree != null)
+//        {
+//            if (mDebug)
+//            {
+//                log.println("moduleTree length:" + moduleTree.length);
+//                log.println("moduleTree: " + moduleTree[0].getAbsolutePath());
+//            }
+//            if (moduleTree != null)
+//            {
+//                sUnoapi = moduleTree[0].getAbsolutePath() + sep + "qa" + sep + "unoapi";
+//            }
+//        }
+        String sUnoapi = getQaUnoApiPath(mSRC_ROOT, module);
         return sUnoapi;
     }
 
@@ -314,35 +433,39 @@ public class CheckModuleAPI extends ComplexTestCase {
      * sfx -> sfx2
      * sm -> starmath
      */
-    private String getTranslatedNames(String module) {
+    private String getTranslatedNames(String module)
+    {
 
-        final HashMap modulez = new HashMap();
+        final HashMap aModuleHashMap = new HashMap();
 
-        modulez.put("fwk", "framework");
-        modulez.put("fwl", "framework");
-        modulez.put("sch", "chart2");
-        modulez.put("sysmgr1", "configmgr");
-        modulez.put("cfgmag2", "configmgr");
-        modulez.put("lnn", "lingu");
-        modulez.put("lng", "linguistic");
-        modulez.put("sfx", "sfx2");
-        modulez.put("sm", "starmath");
+        aModuleHashMap.put("fwk", "framework");
+        aModuleHashMap.put("fwl", "framework");
+        aModuleHashMap.put("sch", "chart2");
+        aModuleHashMap.put("sysmgr1", "configmgr");
+        aModuleHashMap.put("cfgmag2", "configmgr");
+        aModuleHashMap.put("lnn", "lingu");
+        aModuleHashMap.put("lng", "linguistic");
+        aModuleHashMap.put("sfx", "sfx2");
+        aModuleHashMap.put("sm", "starmath");
 
         // it could the that the parameter looks like "fwk,fwl". This results in double "famework,framework".
         // The following loop correct this to only one "framework"
 
-        final Set keys = modulez.keySet();
+        final Set keys = aModuleHashMap.keySet();
         final Iterator iterator = keys.iterator();
-        while (iterator.hasNext()) {
+        while (iterator.hasNext())
+        {
 
             final String key = (String) iterator.next();
-            final String value = (String) modulez.get(key);
+            final String value = (String) aModuleHashMap.get(key);
 
             module = module.replaceAll(key, value);
 
             final int count = module.split(value).length;
-            if (count > 2) {
-                for (int i = 2; i < count; i++) {
+            if (count > 2)
+            {
+                for (int i = 2; i < count; i++)
+                {
                     module.replaceFirst("," + value, "");
                 }
 
@@ -351,33 +474,41 @@ public class CheckModuleAPI extends ComplexTestCase {
         return module;
     }
 
-    private boolean verifyOutput(String output) {
+    private boolean verifyOutput(String output)
+    {
 
         log.println("verify output...");
         boolean ok = false;
         final String[] outs = output.split("\n");
 
-        for (int i = 0; i < outs.length; i++) {
+        for (int i = 0; i < outs.length; i++)
+        {
             final String line = outs[i];
-            if (line.matches("[0-9]+? of [0-9]+? tests failed")) {
+            if (line.matches("[0-9]+? of [0-9]+? tests failed"))
+            {
                 log.println("mached line: " + line);
-                if (line.matches("0 of [0-9]+? tests failed")) {
+                if (line.matches("0 of [0-9]+? tests failed"))
+                {
                     ok = true;
                     log.println("Module passed OK");
-                } else {
+                }
+                else
+                {
                     log.println("Module passed FAILED");
                 }
             }
         }
 
-        if (!ok) {
+        if (!ok)
+        {
             log.println("ERROR: could not find '0 of [0-9]+? tests failed' in output");
         }
 
         return ok;
     }
 
-    private String[] getModulesFromSourceRoot() {
+    private String[] getModulesFromSourceRoot()
+    {
         log.println("**** run module tests over all modules ****");
 
         log.println("search for qa/unoapi foldres in all modules based in ");
@@ -387,11 +518,17 @@ public class CheckModuleAPI extends ComplexTestCase {
         final File sourceRoot = new File(mSRC_ROOT);
         final File[] sourceTree = sourceRoot.listFiles();
 
-        assure("Could not find any files in SOURCE_ROOT=" + mSRC_ROOT, sourceTree != null, false);
+//        assure("Could not find any files in SOURCE_ROOT=" + mSRC_ROOT, sourceTree != null, false);
 
-        for (int i = 0; i < sourceTree.length; i++) {
+        for (int i = 0; i < sourceTree.length; i++)
+        {
             final File moduleName = sourceTree[i];
-            addIfQaUnoApiFolderExist(moduleName, moduleNames);
+            String sModuleName = moduleName.getName(); // (String)moduleNames.get(i);
+            if (doesQaUnoApiFolderExist(mSRC_ROOT, sModuleName))
+            {
+                // addIfQaUnoApiFolderExist(moduleName, moduleNames);
+                moduleNames.add(sModuleName);
+            }
         }
 
         final String[] names = (String[]) moduleNames.toArray(new String[0]);
@@ -409,7 +546,8 @@ public class CheckModuleAPI extends ComplexTestCase {
      * <li>'auto' to check only modules which are added to the ChildWorkSpace</li>
      * </ul>
      */
-    public void module(String module) {
+    public void module(String module)
+    {
 
         String[] checkModules;
         final ComplexDescGetter desc = new ComplexDescGetter();
@@ -420,30 +558,38 @@ public class CheckModuleAPI extends ComplexTestCase {
         all: check all modules which contains a qa/unoapi folder
         auto: check all modules which contains a qa/unoapi folder except the module is not added
          */
-        if (module.equals("all")) {
+        if (module.equals("all"))
+        {
             checkModules = getAllModuleCommand();
-        } else if (module.equals("auto")) {
+        }
+        else if (module.equals("auto"))
+        {
             checkModules = getCwsModuleCommand();
-        } else {
+        }
+        else
+        {
             module = getTranslatedNames(module);
             checkModules = getDefinedModuleCommand(module);
         }
 
-        if (checkModules != null && checkModules.length > 0) {
+        if (checkModules != null && checkModules.length > 0)
+        {
 
             entry = desc.createTestDesc("complex.unoapi.CheckModuleAPI", "complex.unoapi.CheckModuleAPI", checkModules,
-                log);
+                    log);
 
             final java_complex complex = new java_complex();
 
             log.println("********** start test *************");
-            final boolean result = complex.executeTest(param, new DescEntry[]{entry});
+            final boolean result = complex.executeTest(param, new DescEntry[] { entry });
             log.println("********** end test *************");
 
             assure("CheckModuleAPI.module(" + module + ") PASSED.FAILED", result);
 
-        } else {
-            log.println("No modules containing qa/unoapi foder found => OK");
+        }
+        else
+        {
+            log.println("No modules containing qa/unoapi folder found => OK");
             state = true;
         }
 
@@ -451,48 +597,65 @@ public class CheckModuleAPI extends ComplexTestCase {
 
     }
 
-    private void setUnoApiCwsStatus(boolean status) {
+    private void setUnoApiCwsStatus(boolean status)
+    {
 
-        if (!param.getBool(PropertyName.NO_CWS_ATTACH)) {
+        if (!param.getBool(PropertyName.NO_CWS_ATTACH))
+        {
 
             final String version = (String) param.get(PropertyName.VERSION);
-            if (version.startsWith("cws_")) {
-                try {
+            if (version.startsWith("cws_"))
+            {
+                try
+                {
 
                     // cws version: all added modules must be tested
                     final String cws = version.substring(4, version.length());
                     final CwsDataExchangeImpl cde = new CwsDataExchangeImpl(cws, param, log);
                     cde.setUnoApiCwsStatus(status);
-                } catch (ParameterNotFoundException ex) {
+                }
+                catch (ParameterNotFoundException ex)
+                {
                     log.println("ERROR: could not wirte status to EIS database: " + ex.toString());
                 }
             }
         }
     }
 
-    public String[] getTestMethodNames() {
-        return new String[]{"module(all)"};
+    public String[] getTestMethodNames()
+    {
+        return new String[]
+                {
+                    "module(all)"
+                };
     }
 
-    class FolderFilter implements FileFilter {
-
-        private String mFolderName;
-
-        public FolderFilter(String folderName) {
-            mFolderName = folderName;
-        }
-
-        public boolean accept(File pathname) {
-
-            boolean found = false;
-            if (pathname.isDirectory()) {
-                if (pathname.getName().equals(mFolderName)) {
-                    found = true;
-                } else if (pathname.getName().equals(mFolderName + ".lnk")) {
-                    found = true;
-                }
-            }
-            return found;
-        }
-    }
+//    class _FolderFilter implements FileFilter
+//    {
+//
+//        private String mFolderName;
+//
+//        public FolderFilter(String folderName)
+//        {
+//            mFolderName = folderName;
+//        }
+//
+//        public boolean accept_(File pathname)
+//        {
+//
+//            boolean found = false;
+//            if (pathname.isDirectory())
+//            {
+//                if (pathname.getName().equals(mFolderName))
+//                {
+//                    found = true;
+//                }
+//                else if (pathname.getName().equals(mFolderName + ".lnk"))
+//                {
+//                    found = true;
+//                }
+//            }
+//            return found;
+//        }
+//    }
 }
diff --git a/qadevOOo/tests/java/ifc/qadevooo/_SelfTest.java b/qadevOOo/tests/java/ifc/qadevooo/_SelfTest.java
new file mode 100755
index 0000000..b23aca2
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/qadevooo/_SelfTest.java
@@ -0,0 +1,86 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: _XActiveDataSource.java,v $
+ * $Revision: 1.5 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package ifc.qadevooo;
+
+import lib.MultiMethodTest;
+
+// import com.sun.star.uno.UnoRuntime;
+// import com.sun.star.uno.XInterface;
+
+/**
+* Testing <code>ifc.qadevooo._SelfTest</code>
+* interface methods:
+* <ul>
+*   <li><code>testmethod()</code></li>
+* </ul> <p>
+*
+*/
+public class _SelfTest extends MultiMethodTest
+{
+
+    /**
+    */
+    public void before() 
+        {
+            log.println("_SelfTest.before()");
+        }
+
+    /**
+    * Test calls the method
+    */
+    public void _testmethod()
+        {
+            log.println("_SelfTest._testmethod()");
+            tRes.tested("testmethod()", true);
+        }
+    
+    public void _testmethod2()
+        {
+            log.println("_SelfTest._testmethod2()");
+            tRes.tested("testmethod2()", true);
+        }
+
+    public void _testmethod3()
+        {
+            log.println("_SelfTest._testmethod3()");
+            tRes.tested("testmethod3()", true);
+        }
+
+    /**
+    * Forces object environment recreation.
+    */
+    public void after()
+        {
+            log.println("_SelfTest.after()");
+            this.disposeEnvironment() ;
+        }
+}
+
diff --git a/qadevOOo/tests/java/mod/_qadevOOo/SelfTest.java b/qadevOOo/tests/java/mod/_qadevOOo/SelfTest.java
new file mode 100755
index 0000000..4beeff8
--- /dev/null
+++ b/qadevOOo/tests/java/mod/_qadevOOo/SelfTest.java
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ * 
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: ScDocumentConfiguration.java,v $
+ * $Revision: 1.5 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org.  If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package mod._qadevOOo;
+
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.XInterface;
+
+import java.io.PrintWriter;
+
+import lib.StatusException;
+import lib.TestCase;
+import lib.TestEnvironment;
+import lib.TestParameters;
+
+import util.SOfficeFactory;
+
+import com.sun.star.text.XSimpleText;
+import com.sun.star.text.XTextCursor;
+import com.sun.star.text.XTextDocument;
+
+public class SelfTest extends TestCase
+{
+    private XTextDocument xTextDoc = null;
+
+    protected void initialize(TestParameters tParam, PrintWriter log)
+    {
+        // get a soffice factory object
+        SOfficeFactory SOF = SOfficeFactory.getFactory((XMultiServiceFactory) tParam.getMSF());
+
+        log.println("initialize the selftest");
+        try
+        {
+            log.println("creating a textdocument");
+            xTextDoc = SOF.createTextDoc(null);
+        }
+        catch (com.sun.star.uno.Exception e)
+        {
+            e.printStackTrace(log);
+            throw new StatusException("Couldn't create document", e);
+        }
+    }
+
+    /**
+     * Disposes text document.
+     */
+    protected void cleanup(TestParameters tParam, PrintWriter log)
+    {
+        log.println("    cleanup selftest");
+        util.DesktopTools.closeDoc(xTextDoc);
+    }
+
+    protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log)
+    {
+        XInterface oObj = null;
+        log.println("creating a test environment");
+
+        // get the bodytext of textdocument here
+        log.println("getting the TextCursor");
+
+        final XSimpleText aText = xTextDoc.getText();
+        final XTextCursor textCursor = aText.createTextCursor();
+        oObj = textCursor;
+
+        TestEnvironment tEnv = new TestEnvironment(oObj);
+
+        return tEnv;
+    }
+}
commit ccba0f307f09ffb043004d0da73e5676f65bc07b
Author: Vladimir Glazounov <vg at openoffice.org>
Date:   Mon Jul 6 09:00:26 2009 +0000

    CWS-TOOLING: integrate CWS dba32d
    2009-06-30 08:58:13 +0200 fs  r273488 : merging latest changes from CWS dba32c
    2009-06-29 11:40:42 +0200 oj  r273459 : #i101652# fix token handling
    2009-06-26 09:27:30 +0200 oj  r273394 : #i101994# wrong condition checked
    2009-06-22 12:09:04 +0200 fs  r273210 : merging latest changes from CWS dba32c
    2009-06-18 11:01:06 +0200 fs  r273108 : merge latest changes from CWS dba32c
    2009-06-17 14:19:33 +0200 oj  r273072 : handle images at the correct position
    2009-06-17 13:37:19 +0200 oj  r273067 : compile error
    2009-06-17 13:35:58 +0200 oj  r273066 : #i102201# handle images
    2009-06-17 13:27:21 +0200 oj  r273065 : #i80917# disable checkbox for internal copy
    2009-06-17 13:25:38 +0200 oj  r273064 : #i80917# disable checkbox for internal copy
    2009-06-15 12:59:16 +0200 fs  r272978 : merging latest changes from CWS dba32c
    2009-06-15 10:45:58 +0200 fs  r272967 : CWS-TOOLING: rebase CWS dba32d to trunk at 272827 (milestone: DEV300:m50)
    2009-06-15 08:41:05 +0200 fs  r272960 : merging changes from CWS dba32c (resulting from rebasing dba32c to m50)
    2009-06-03 12:22:32 +0200 fs  r272554 : merging latest changes from CWS dba32c
    2009-06-03 11:11:27 +0200 fs  r272549 : #i100818# special treatment for DataAwareness not needed anymore
    2009-06-03 11:07:01 +0200 fs  r272548 : #i10000# removed package declaration
    2009-06-03 09:21:03 +0200 oj  r272537 : #i93465# save window states
    2009-06-03 08:56:25 +0200 oj  r272535 : solve compiler warnings
    2009-06-03 08:55:02 +0200 oj  r272534 : #i102295# export shapes i the first cell
    2009-06-03 07:35:18 +0200 oj  r272533 : #i101994# check for - and + prefix
    2009-06-03 06:51:38 +0200 oj  r272531 : #i101463# use uncomposed table name
    2009-06-03 06:33:06 +0200 oj  r272530 : #i102019# word corrected
    2009-06-02 14:58:28 +0200 fs  r272507 : #i102443# call initializeParser from LoadFinished
    2009-06-02 14:30:10 +0200 oj  r272504 : #i102019# introduce static ints
    2009-06-02 13:51:02 +0200 oj  r272501 : #i102439# wrong method used
    2009-06-02 13:44:09 +0200 fs  r272500 : #i102440# when tampering with Order/GroupBy, reset the cached columns
    2009-06-02 10:53:01 +0200 fs  r272487 : #i102234# preserve the original filter when using a 0=1 filter
    2009-06-02 10:21:21 +0200 oj  r272486 : #i100535# handle time values as float
    2009-06-02 10:19:07 +0200 fs  r272485 : merging latest changes from CWS dba32c
    2009-05-29 16:00:15 +0200 fs  r272467 : merging latest changes from dba32c
    2009-05-29 15:31:25 +0200 fs  r272462 : merging latest changes from dba32c
    2009-05-29 10:58:03 +0200 oj  r272438 : #101135# export embedded-text
    2009-05-29 08:17:57 +0200 oj  r272431 : #i80917# make attribute not optional
    2009-05-29 08:17:32 +0200 oj  r272430 : remoe unused token
    2009-05-29 07:17:15 +0200 oj  r272429 : #i80917# make attribute not optional
    2009-05-28 12:48:14 +0200 oj  r272401 : #i102201# insert images in context menu
    2009-05-28 12:47:44 +0200 oj  r272400 : #i80917# add new attribute to handle first line
    2009-05-28 12:16:12 +0200 oj  r272397 : #i96134# add / to path when it doesn't exist
    2009-05-28 12:11:08 +0200 oj  r272390 : #i80917# add new attribute to handle first line
    2009-05-28 11:33:35 +0200 oj  r272388 : #i101652# add new checkbox to handle header line as column names
    2009-05-28 11:30:15 +0200 oj  r272387 : #i101652# add localize
    2009-05-28 11:15:53 +0200 oj  r272386 : merge from dba32c
    2009-05-28 09:08:25 +0200 fs  r272378 : merged a build fix from CWS dba32c

diff --git a/testautomation/dbaccess/optional/includes/wiz_TableWizard.inc b/testautomation/dbaccess/optional/includes/wiz_TableWizard.inc
index 5131b82..b802e10 100755
--- a/testautomation/dbaccess/optional/includes/wiz_TableWizard.inc
+++ b/testautomation/dbaccess/optional/includes/wiz_TableWizard.inc
@@ -395,22 +395,22 @@ testcase tCreateAllTables
     call fOpendatabase(ConvertPath(gOfficePath + "user/work/TT_hsqldb.odb"))
     sleep(5)  
 
-    '/// check if tehre are 22 items in the business categoriy 
+    '/// check if there are 22 items in the business categoriy 
     if not fStartTableWizard() then
         warnlog "The table wizard doesn't start. TEST STOPPED"
         goto endsub
     endif    
 
-        Kontext "TableWizard"
-        dim iCount as integer
-        iCount = Tables.GetItemCount
-        if(iCount <> 22 ) then
-            warnlog "#102019# there are not 22 table in the category business. There are " + iCount
-            CancelBtn.Click
-            call fCloseDatabase()
-            goto endsub
-        endif
-        CancelBtn.Click        
+    Kontext "TableWizard"
+    dim iCount as integer
+    iCount = Tables.GetItemCount
+    if(iCount <> 22 ) then
+        warnlog "#102019# there are not 22 table in the category business. There are " + iCount
+        CancelBtn.Click
+        call fCloseDatabase()
+        goto endsub
+    endif
+    CancelBtn.Click        
     
     for i = 1 to 22
 
@@ -448,7 +448,12 @@ testcase tCreateAllTables
     
     '/// now create all tables from the personal tables
     printlog "now create all tables from the personal tables"
-
+    
+    if not fStartTableWizard() then
+        warnlog "The table wizard doesn't start. TEST STOPPED"
+        goto endsub
+    endif  
+    
     Kontext "TableWizard"            
         Personal.Check 
         iCount = Tables.GetItemCount
commit 8df248686399353b060bb24ae264363f37607306
Author: Vladimir Glazounov <vg at openoffice.org>
Date:   Mon Jul 6 08:01:10 2009 +0000

    CWS-TOOLING: integrate CWS automation300m50cat0
    2009-06-15 07:41:44 +0200 hde  r272959 : 101001
    2009-06-12 13:41:47 +0200 wg  r272916 : i102714
    2009-06-12 12:48:42 +0200 msc  r272914 : #102712# AutoFilter does not work
    2009-06-12 12:14:11 +0200 wg  r272912 : i102710
    2009-06-12 12:13:41 +0200 wg  r272911 : i102710

diff --git a/testautomation/dbaccess/required/includes/Table.inc b/testautomation/dbaccess/required/includes/Table.inc
index 5564ecf..00a9f8f 100755
--- a/testautomation/dbaccess/required/includes/Table.inc
+++ b/testautomation/dbaccess/required/includes/Table.inc
@@ -152,6 +152,9 @@ endcase
 '-------------------------------------------------------------------------
 testcase tAutoFilter
 
+    warnlog "#102712# AutoFilter does not work"
+    goto endsub
+    
     '/// open a new table
     printlog "open a new table"
     initTable
@@ -225,6 +228,9 @@ endcase
 '-------------------------------------------------------------------------
 testcase tRemoveFilter
 
+    warnlog "#102712# AutoFilter does not work"
+    goto endsub
+
     '/// open a new table
     printlog "open a new table"
     initTable
@@ -248,6 +254,9 @@ endcase
 '-------------------------------------------------------------------------
 testcase tApplyFilter
 
+    warnlog "#102712# AutoFilter does not work"
+    goto endsub
+
     '/// open a new table
     printlog "open a new table"
     initTable
diff --git a/testautomation/graphics/optional/includes/global/g_format.inc b/testautomation/graphics/optional/includes/global/g_format.inc
index ed73893..af53047 100755
--- a/testautomation/graphics/optional/includes/global/g_format.inc
+++ b/testautomation/graphics/optional/includes/global/g_format.inc
@@ -666,28 +666,32 @@ testcase tiFormat3D_Effekte
         qaerrorlog "   The 3D-Effects-dialogue was open. Check why."
     else
     end if
-    try
-        if Perspektive.isvisible then
-        else
-            warnlog "why not in draw?"
-        end if
-    catch
-        warnlog "something is wrong mit perspective"
-    endcatch
-    Kontext "DocumentImpress"
-    gMouseClick 40,40
-    Kontext
-    Active.SetPage TabPositionAndSize
-    Kontext "TabPositionAndSize"
-    if PositionX.GetText = X Then
-        printlog "- Perspective acitvated x: "+PositionX.GetText
-    else
-        warnlog "- Perspective seems to have a problem, x value has changed!"
-    end if
-    TabPositionAndSize.OK
-    Kontext "Drei_D_Effekte"
-    Aktualisieren.Click
-    Drei_D_Effekte.Close
+        try
+            if Perspektive.isvisible then
+                Perspektive.Click                         '/// check perspective ///'
+            else
+                warnlog "why not in draw?"
+            end if
+        catch
+            warnlog "something is wrong mit perspective"
+        endcatch
+        Zuweisen.Click                            '/// assign perspective ///'
+        Kontext "DocumentImpress"
+        hTypeKeys "<MOD1 A>"
+        ContextPositionAndSize                        '/// check position and size ///'
+            Kontext
+            Active.SetPage TabPositionAndSize
+            Kontext "TabPositionAndSize"
+            if PositionX.GetText = X Then
+                printlog "- Perspective acitvated x: "+PositionX.GetText
+            else
+                warnlog "- Perspective seems to have a problem, x value has changed!"
+            end if
+            TabPositionAndSize.OK
+        Kontext "Drei_D_Effekte"
+        Aktualisieren.Click
+        Drei_D_Effekte.Close
+    EditSelectAll                   '/// delete rectangle ///'
     hTypeKeys "<DELETE>"
 
     '-----------------------------------RECTANGLE------------------------------------------------------
diff --git a/testautomation/graphics/tools/id_tools.inc b/testautomation/graphics/tools/id_tools.inc
index 61d9bcc..db1b96c 100755
--- a/testautomation/graphics/tools/id_tools.inc
+++ b/testautomation/graphics/tools/id_tools.inc
@@ -75,8 +75,8 @@ end function
 '-------------------------------------------------------------------------------
 function GetDecimalSeperator ( sDummy$ ) as String
 
-    '/// Input : number with fractionmark from 'NumericField' as String ///'
-    '///+ Output: '.' or ',' as String                                  ///'
+    printlog "Input : number with fractionmark from 'NumericField' as String "
+    printlog "+ Output: '.' or ',' as String "
     dim i1, i2 as integer
 
     ' get position of fraction mark / get IT
@@ -114,8 +114,8 @@ function LiberalMeasurement ( sShould$, sActual$) as Boolean
         if (GetMeasUnit(sShould$) <> GetMeasUnit(sActual$) ) then
             warnlog "In function LiberalMeasurement the measUnit is different, compare not possible yet"
         else
-            ' set factor for liberality ;-)
-            ' took units from http://gsl.openoffice.org/source/browse/gsl/vcl/source/src/units.src
+            printlog "set factor for liberality ;-)"
+            printlog "took units from http://gsl.openoffice.org/source/browse/gsl/vcl/source/src/units.src"
             select case GetMeasUnit(sShould$)
             case "mm", "ミリ", "公厘" : iTolerance = 2.0             '01, 81,     88
             case "cm","センチ","厘米","公分"  : iTolerance = 0.5       '01, 81, 86, 88
@@ -145,8 +145,8 @@ end function
 function GetMeasUnit ( sWert$ ) as String
 
     dim iBounder as integer
-    '/// Input : Number with or without MeasurementUnit 'NumericField' as String ///'
-    '///+ Output: Initials of MeasurementUnit as String or "" when only a number ///'
+    printlog " Input : Number with or without MeasurementUnit 'NumericField' as String "
+    printlog "+ Output: Initials of MeasurementUnit as String or when only a number "
 
     iBounder = -1
     do
@@ -254,10 +254,10 @@ end function
 '-------------------------------------------------------------------------------
 function fIsDocumentWritable() as boolean
 
-    '/// check if a document is writeable
-    '/// <u>parameter:</u>
-    '/// <u>return:</u>
-    '/// true if the document is writeable otherwise false
+    printlog " check if a document is writeable"
+    printlog " <u>parameter:</u>"
+    printlog " <u>return:</u>"
+    printlog " true if the document is writeable otherwise false"
 
     Kontext "Standardbar"
     if Bearbeiten.GetState(2) <> 1 then
@@ -271,10 +271,10 @@ end function
 '-------------------------------------------------------------------------------
 function fMakeDocumentWritable() as boolean
 
-    '/// make a document is writeable
-    '/// <u>parameter:</u>
-    '/// <u>return:</u>
-    '/// true if the document can make writeable otherwise false
+    printlog " make a document is writeable"
+    printlog " <u>parameter:</u>"
+    printlog " <u>return:</u>"
+    printlog " true if the document can make writeable otherwise false"
 
     Kontext "Standardbar"
     sleep (1)
@@ -604,7 +604,7 @@ function sAnalyseContextMenu(iItems as integer, optional iError as long) as inte
         ' collecting criteria for underlining:
         ' 1st one: is word selected? yes: underlined;
 
-        '/// If the string "vnd.sun.search:SubMenu" (the SunSearch-menu) is found in the menu, we'll skip that word. ///'
+        printlog " If the string vnd.sun.search:SubMenu (the SunSearch-menu) is found in the menu, we'll skip that word. "
 
         'Get first entry.
         f = MenuGetItemCommand (MenuGetItemID (1))
diff --git a/testautomation/graphics/tools/id_tools_2.inc b/testautomation/graphics/tools/id_tools_2.inc
index dc8348e..3490ef7 100755
--- a/testautomation/graphics/tools/id_tools_2.inc
+++ b/testautomation/graphics/tools/id_tools_2.inc
@@ -282,7 +282,11 @@ sub SaveMeasurementSetFirst
     elseIf (gApplication = "CALC") then
         sApplication = "CALC"
     endif
+<<<<<<< .working
     printlog "   '/// - save states ///'"
+=======
+    printlog  " - save states "
+>>>>>>> .merge-right.r273717
     ToolsOptions
     hToolsOptions (sApplication,"General")
     ReferenceOld = Masseinheit.GetSelText
@@ -336,7 +340,11 @@ sub ResetMeasurement
     elseIf (gApplication = "CALC") then
         sApplication = "CALC"
     endif
+<<<<<<< .working
     printlog "'/// - Reset states back to what they were before ///'"
+=======
+    printlog " - Reset states back to what they were before "
+>>>>>>> .merge-right.r273717
     ToolsOptions
     hToolsOptions (sApplication,"General")
     if Masseinheit.GetSelText <> ReferenceOld then 'find the right one.
@@ -358,24 +366,24 @@ end Sub
 sub SetKontextApplication
     ' Removed by JSK: sleep 1
     Select Case gApplication
-    Case "DRAW"
-        Kontext "DocumentDraw"
-        '         Printlog "gApplication / Kontext is now: DocumentDraw"
-        ' Removed by JSK: sleep 1
-    Case "IMPRESS"
-        Kontext "DocumentImpress"
-        '         Printlog "gApplication / Kontext is now is now: DocumentImpress"
-        ' Removed by JSK: sleep 1
-    Case "WRITER"
-        Kontext "DocumentWriter"
-        '         Printlog "gApplication / Kontext is now is now: DocumentWriter"
-        ' Removed by JSK: sleep 1
-    Case "CALC"
-        Kontext "DocumentCalc"
-        '         Printlog "gApplication / Kontext is now is now: DocumentCalc"
-        ' Removed by JSK: sleep 1
-    end select
-    ' Removed by JSK: sleep 1
+        Case "DRAW"
+            Kontext "DocumentDraw"
+            Printlog "gApplication / Kontext is now: DocumentDraw"
+             sleep 1
+        Case "IMPRESS"
+            Kontext "DocumentImpress"
+            Printlog "gApplication / Kontext is now is now: DocumentImpress"
+             sleep 1
+        Case "WRITER"
+            Kontext "DocumentWriter"
+            Printlog "gApplication / Kontext is now is now: DocumentWriter"
+            sleep 1
+        Case "CALC"
+            Kontext "DocumentCalc"
+            Printlog "gApplication / Kontext is now is now: DocumentCalc"
+            sleep 1
+        end select
+    sleep 1
 end sub
 
 '-------------------------------------------------------------------------------
@@ -524,7 +532,8 @@ end sub
 sub mouseclickinpresentation
     Kontext "DocumentPresentation"
     autoexecute=false
-    DocumentPresentation.MouseDown ( 50, 50 )   '/// switch slides using mouse clicks ///'
+    printlog " switch slides using mouse clicks "
+    DocumentPresentation.MouseDown ( 50, 50 )   
     DocumentPresentation.MouseUp ( 50, 50 )
     autoexecute=true
 end sub
diff --git a/testautomation/tools/run_tests/run_tests.sh b/testautomation/tools/run_tests/run_tests.sh
index f604e04..4195a9a 100755
--- a/testautomation/tools/run_tests/run_tests.sh
+++ b/testautomation/tools/run_tests/run_tests.sh
@@ -50,6 +50,8 @@ sLocation=""
 # set location of TestTool
 # (full path including executable 'testtool')
 # if this is empty, we try to parse $HOME/.testtoolrc and use OOoProgramdir
+# on Mac this is VCLTestTool.app/Contents/MacOS/testtool.bin
+#sTestTool="/Users/sca/qa/testtool/VCLTestTool.app/Contents/MacOS/testtool.bin"
 sTestTool=""
 
 #------------------------------------------------------------------------
@@ -58,7 +60,7 @@ sTestTool=""
 function GetValueFromSection ()
 # call with NameOfValue Section file
 {
-   awk -v  sVarName="$1" -v sSectionName="$2" \
+   $AWK -v  sVarName="$1" -v sSectionName="$2" \
       'BEGIN { bInSection = 0}
       {  if ( index ($0 ,"[" sSectionName "]") > 0 ) 
             bInSection = 1
@@ -80,10 +82,17 @@ case `uname -s` in
     Darwin)
         testtoolrc="$HOME/Library/Application Support/.testtoolrc"
         KILLOFFICEALL="/usr/bin/killall -9 soffice.bin"
+    AWK=awk
+        ;;
+  SunOS)
+        testtoolrc="$HOME/.testtoolrc"
+        KILLOFFICEALL="pkill -9 soffice.bin"
+    AWK=nawk
         ;;
     *)
         testtoolrc="$HOME/.testtoolrc"
         KILLOFFICEALL="pkill -9 soffice.bin"
+    AWK=awk
         ;;
 esac
 
@@ -106,35 +115,10 @@ sResetOfficeBas="${sLocation}global/tools/resetoffice.bas"
 if [ -z "$sTestTool" ]
 then
    sTestTool=`GetValueFromSection Current OOoProgramDir "$testtoolrc"`
-   sTestTool="$sTestTool/program/testtool.bin"
+   sTestTool="$sTestTool/basis-link/program/testtool.bin"
 fi
 
-sd_prog=`dirname "$sTestTool"`
-case `uname -s` in
-    Darwin)
-    # this is a temporary hack until we can live with the default search paths
-    if [ "$DYLD_LIBRARY_PATH" ]; then 
-      SYSTEM_DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH"
-      export SYSTEM_DYLD_LIBRARY_PATH
-      DYLD_LIBRARY_PATH="$sd_prog":"$DYLD_LIBRARY_PATH"
-    else
-      DYLD_LIBRARY_PATH="$sd_prog"
-    fi
-    export DYLD_LIBRARY_PATH
-    ;;               
-
-  *)
-    # this is a temporary hack until we can live with the default search paths
-    if [ "$LD_LIBRARY_PATH" ]; then
-      SYSTEM_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
-      export SYSTEM_LD_LIBRARY_PATH
-      LD_LIBRARY_PATH="$sd_prog":"$LD_LIBRARY_PATH"
-    else
-      LD_LIBRARY_PATH="$sd_prog"
-    fi
-    export LD_LIBRARY_PATH
-    ;;  
-esac
+
 
 echo "****************************************************"
 echo "************ STARTING ************"
@@ -174,39 +158,43 @@ do
     `$KILLOFFICEALL`        
     
     echo "****************************************************"
-    echo "running $x"
+    x=`echo "$x"|sed s/[[:blank:]]*$//`	#cut all trailing blanks 
     sTest="$sLocation$x"
+    if [ -f "$sTest" ]; then
 
-    # three pass logic - first pass is the real test, second pass is reset office, third is closeoffice
-    for z in "1" "2" "3";
-    do
-        "$sTestTool" -run "$sTest" &
-        sleep 5
-        echo " "
-
-        ######### save the PID from the last Background job
-        testtoolpid=$!
-        echo "PID of Testtool: " $testtoolpid
-
-        if [ `ps -A | grep -v "grep" | grep $testtoolpid | wc -l` -gt 0 ] ; then
-            echo " Successfully started"
-        else
-            echo " There might be something wrong with starting the Testtool!"
-        fi
-
-        ######### wait until Testtool has finished & closed
-        while [ `ps -A | grep -v "grep" | grep $testtoolpid | wc -l` -gt 0 ] ; 
+        # two pass logic - first pass is the real test, second pass is reset office, third is closeoffice
+            for z in "1" "2";
         do
+            echo "running <$sTest>"
+            "$sTestTool" -run "$sTest" &
             sleep 5
-            i=$((i+5))
+            echo " "
+
+            ######### save the PID from the last Background job
+            testtoolpid=$!
+            echo "PID of Testtool: " $testtoolpid
+
+            if [ `ps -A | grep -v "grep" | grep $testtoolpid | wc -l` -gt 0 ] ; then
+                echo " Successfully started"
+            else
+                echo " There might be something wrong with starting the Testtool!"
+            fi
+
+            ######### wait until Testtool has finished & closed
+            while [ `ps -A | grep -v "grep" | grep $testtoolpid | wc -l` -gt 0 ] ; 
+            do
+                sleep 5
+                i=$((i+5))
+            done
+
+            ####### for the second run use the office reset script!
+                case $z in
+                        "1")    sTest="$sResetOfficeBas";;
+                    esac
         done
-
-        ####### for the second run use the office reset script, for the third use office exit!
-        case $z in
-            "1")    sTest="$sResetOfficeBas";;
-            "2")    sTest="$sExitOfficeBas";;
-        esac
-    done
+    else
+        echo "Error: file <$sTest> not found"
+    fi
 done
 
 echo "Duration:" $((i/60)) "min" $((i%60)) "sec " 


More information about the ooo-build-commit mailing list