[ooo-build-commit] Branch 'ooo/master' - qadevOOo/runner

Jan Holesovsky kendy at kemper.freedesktop.org
Fri Jul 31 19:41:55 PDT 2009


 qadevOOo/runner/base/basic_fat.java             |  205 ++++++++-----
 qadevOOo/runner/complexlib/Assurance.java       |    2 
 qadevOOo/runner/complexlib/ComplexTestCase.java |    3 
 qadevOOo/runner/graphical/IniFile.java          |  358 ++++++++++++------------
 qadevOOo/runner/helper/APIDescGetter.java       |    6 
 qadevOOo/runner/helper/CwsDataExchangeImpl.java |    4 
 qadevOOo/runner/helper/ProcessHandler.java      |   39 ++
 qadevOOo/runner/org/openoffice/Runner.java      |   19 -
 qadevOOo/runner/util/DesktopTools.java          |  339 +++++++++++++---------
 qadevOOo/runner/util/utils.java                 |    8 
 10 files changed, 579 insertions(+), 404 deletions(-)

New commits:
commit dca9d2ff2d9c9bfabfe58c76700cc4d76480f81d
Author: Jens-Heiner Rechtien <hr at openoffice.org>
Date:   Wed Jul 29 13:59:06 2009 +0000

    CWS-TOOLING: integrate CWS perftest09b
    2009-07-22 08:34:25 +0200 lla  r274216 : #i103694# use bash as shell
    2009-07-21 12:33:51 +0200 lla  r274178 : #160203#
    2009-07-20 13:42:20 +0200 lla  r274124 : #106358# add helper tool to get access to rpm in the environment for SOI
    2009-07-20 12:43:26 +0200 lla  r274119 : #i103656# compatiblity

diff --git a/qadevOOo/runner/base/basic_fat.java b/qadevOOo/runner/base/basic_fat.java
index 5af8599..ff74c37 100644
--- a/qadevOOo/runner/base/basic_fat.java
+++ b/qadevOOo/runner/base/basic_fat.java
@@ -60,12 +60,13 @@ import stats.Summarizer;
 
 import util.DynamicClassLoader;
 
-
 /**
  * The testbase for executing basic tests.
  *  @see lib.TestBase
  */
-public class basic_fat implements TestBase {
+public class basic_fat implements TestBase
+{
+
     public static boolean debug = false;
 
     /**
@@ -73,7 +74,8 @@ public class basic_fat implements TestBase {
      *  @param param The test parameters.
      *  @param return True, if the test was executed.
      */
-    public boolean executeTest(TestParameters param) {
+    public boolean executeTest(TestParameters param)
+    {
         DescGetter dg = new APIDescGetter();
         String job = (String) param.get("TestJob");
         OfficeProvider office = null;
@@ -83,12 +85,13 @@ public class basic_fat implements TestBase {
         //get Job-Descriptions
         System.out.print("Getting Descriptions for Job: " + job + " from ");
 
-        DescEntry[] entries = dg.getDescriptionFor(job, 
-                                                   (String) param.get(
-                                                           "DescriptionPath"), 
-                                                   debug);
+        DescEntry[] entries = dg.getDescriptionFor(job,
+                (String) param.get(
+                "DescriptionPath"),
+                debug);
 
-        if (entries == null) {
+        if (entries == null)
+        {
             System.out.println("Couldn't get Description for Job");
 
             return false;
@@ -97,7 +100,8 @@ public class basic_fat implements TestBase {
         String ExclusionFile = (String) param.get("ExclusionList");
         Vector exclusions = null;
 
-        if (ExclusionFile != null) {
+        if (ExclusionFile != null)
+        {
             exclusions = getExclusionList(ExclusionFile, debug);
         }
 
@@ -106,8 +110,10 @@ public class basic_fat implements TestBase {
         System.out.print("> Connecting the Office ");
         System.out.println("With " + conStr);
 
-        for (int l = 0; l < entries.length; l++) {
-            if (entries[l].hasErrorMsg) {
+        for (int l = 0; l < entries.length; l++)
+        {
+            if (entries[l].hasErrorMsg)
+            {
                 System.out.println(entries[l].ErrorMsg);
 
                 continue;
@@ -116,9 +122,10 @@ public class basic_fat implements TestBase {
             office = new OfficeProvider();
 
             XMultiServiceFactory msf = (XMultiServiceFactory) office.getManager(
-                                               param);
+                    param);
 
-            if (msf == null) {
+            if (msf == null)
+            {
                 return false;
             }
 
@@ -134,7 +141,8 @@ public class basic_fat implements TestBase {
 
             tCase = (TestCase) new BasicTestCase(entry);
 
-            if (tCase == null) {
+            if (tCase == null)
+            {
                 sumIt.summarizeDown(entry, entry.ErrorMsg);
 
                 LogWriter sumObj = OutProducerFactory.createOutProducer(param);
@@ -147,21 +155,26 @@ public class basic_fat implements TestBase {
             System.out.println("Creating: " + tCase.getObjectName());
 
             LogWriter log = (LogWriter) dcl.getInstance(
-                                    (String) param.get("LogWriter"));
+                    (String) param.get("LogWriter"));
             log.initialize(entry, true);
             entry.UserDefinedParams = param;
             tCase.setLogWriter((PrintWriter) log);
 
-            try {
+            try
+            {
                 tCase.initializeTestCase(param);
-            } catch (RuntimeException e) {
+            }
+            catch (RuntimeException e)
+            {
                 helper.ProcessHandler ph = (helper.ProcessHandler) param.get(
-                                                   "AppProvider");
+                        "AppProvider");
 
-                if (ph != null) {
+                if (ph != null)
+                {
                     OfficeWatcher ow = (OfficeWatcher) param.get("Watcher");
 
-                    if ((ow != null) && ow.isAlive()) {
+                    if ((ow != null) && ow.isAlive())
+                    {
                         ow.finish = true;
                     }
 
@@ -174,7 +187,8 @@ public class basic_fat implements TestBase {
 
             TestEnvironment tEnv = tCase.getTestEnvironment(param);
 
-            if (tEnv == null) {
+            if (tEnv == null)
+            {
                 sumIt.summarizeDown(entry, "Unable to create testcase");
 
                 LogWriter sumObj = OutProducerFactory.createOutProducer(param);
@@ -182,12 +196,14 @@ public class basic_fat implements TestBase {
                 sumObj.summary(entry);
 
                 helper.ProcessHandler ph = (helper.ProcessHandler) param.get(
-                                                   "AppProvider");
+                        "AppProvider");
 
-                if (ph != null) {
+                if (ph != null)
+                {
                     OfficeWatcher ow = (OfficeWatcher) param.get("Watcher");
 
-                    if ((ow != null) && ow.isAlive()) {
+                    if ((ow != null) && ow.isAlive())
+                    {
                         ow.finish = true;
                     }
 
@@ -200,36 +216,41 @@ public class basic_fat implements TestBase {
 
             System.out.println("created " + tCase.getObjectName());
 
-            for (int j = 0; j < entry.SubEntryCount; j++) {
-                if (!entry.SubEntries[j].isToTest) {
-                    Summarizer.summarizeDown(entry.SubEntries[j], 
-                                             "not part of the job");
+            for (int j = 0; j < entry.SubEntryCount; j++)
+            {
+                if (!entry.SubEntries[j].isToTest)
+                {
+                    Summarizer.summarizeDown(entry.SubEntries[j],
+                            "not part of the job");
 
                     continue;
                 }
 
-                if ((exclusions != null) && 
-                        (exclusions.contains(entry.SubEntries[j].longName))) {
-                    Summarizer.summarizeDown(entry.SubEntries[j], 
-                                             "known issue");
+                if ((exclusions != null) &&
+                        (exclusions.contains(entry.SubEntries[j].longName)))
+                {
+                    Summarizer.summarizeDown(entry.SubEntries[j],
+                            "known issue");
 
                     continue;
                 }
 
-                System.out.println("running: " + 
-                                   entry.SubEntries[j].entryName);
+                System.out.println("running: " +
+                        entry.SubEntries[j].entryName);
 
                 LogWriter ifclog = (LogWriter) dcl.getInstance(
-                                           (String) param.get("LogWriter"));
+                        (String) param.get("LogWriter"));
                 ifclog.initialize(entry.SubEntries[j], true);
                 entry.SubEntries[j].UserDefinedParams = param;
                 entry.SubEntries[j].Logger = ifclog;
 
-                if ((tEnv == null) || tEnv.isDisposed()) {
+                if ((tEnv == null) || tEnv.isDisposed())
+                {
                     helper.ProcessHandler ph = (helper.ProcessHandler) param.get(
-                                                       "AppProvider");
+                            "AppProvider");
 
-                    if (ph != null) {
+                    if (ph != null)
+                    {
                         office.closeExistingOffice(param, true);
                         shortWait(5000);
                     }
@@ -250,15 +271,19 @@ public class basic_fat implements TestBase {
                 sumIfc.summary(entry.SubEntries[j]);
             }
 
-            try {
+            try
+            {
                 tCase.cleanupTestCase(param);
-            } catch (Exception e) {
+            }
+            catch (Exception e)
+            {
                 log.println("TestCase already gone");
 
                 helper.ProcessHandler ph = (helper.ProcessHandler) param.get(
-                                                   "AppProvider");
+                        "AppProvider");
 
-                if (ph != null) {
+                if (ph != null)
+                {
                     office.closeExistingOffice(param, true);
                     shortWait(5000);
                 }
@@ -271,49 +296,56 @@ public class basic_fat implements TestBase {
             sumObj.summary(entry);
         }
 
-        if (entries.length > 1) {
+        if (entries.length > 1)
+        {
             System.out.println();
 
             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")) {
+            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");
+            System.out.println(counter + " of " + entries.length +
+                    " tests failed");
         }
 
         helper.ProcessHandler ph = (helper.ProcessHandler) param.get(
-                                           "AppProvider");
+                "AppProvider");
 
-        if (ph != null) {
+        if (ph != null)
+        {
             office.closeExistingOffice(param, true);
         }
 
         return true;
     }
 
-    protected TestEnvironment getEnv(DescEntry entry, TestParameters param) {
+    protected TestEnvironment getEnv(DescEntry entry, TestParameters param)
+    {
         DynamicClassLoader dcl = new DynamicClassLoader();
         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.");
+        if (office == null)
+        {
+            System.out.println("ERROR: Wrong parameter 'OfficeProvider', " +
+                    " it cannot be instantiated.");
             System.exit(-1);
         }
 
         XMultiServiceFactory msf = (XMultiServiceFactory) office.getManager(
-                                           param);
+                param);
 
-        if (msf == null) {
+        if (msf == null)
+        {
             return null;
         }
 
@@ -324,23 +356,27 @@ public class basic_fat implements TestBase {
         System.out.println("Creating: " + tCase.getObjectName());
 
         LogWriter log = (LogWriter) dcl.getInstance(
-                                (String) param.get("LogWriter"));
+                (String) param.get("LogWriter"));
         log.initialize(entry, true);
         entry.UserDefinedParams = param;
         tCase.setLogWriter((PrintWriter) log);
 
         TestEnvironment tEnv = null;
 
-        try {
+        try
+        {
             tCase.initializeTestCase(param);
             tEnv = tCase.getTestEnvironment(param);
-        } catch (java.lang.RuntimeException e) {
+        }
+        catch (java.lang.RuntimeException e)
+        {
             System.out.println(e.getMessage());
 
             helper.ProcessHandler ph = (helper.ProcessHandler) param.get(
-                                               "AppProvider");
+                    "AppProvider");
 
-            if (ph != null) {
+            if (ph != null)
+            {
                 office.closeExistingOffice(param, true);
                 shortWait(5000);
             }
@@ -352,37 +388,52 @@ public class basic_fat implements TestBase {
         return tEnv;
     }
 
-    protected void shortWait(int millis) {
-        try {
+    protected void shortWait(int millis)
+    {
+        try
+        {
             Thread.sleep(millis);
-        } catch (java.lang.InterruptedException ie) {
+        }
+        catch (java.lang.InterruptedException ie)
+        {
         }
     }
 
-    protected Vector getExclusionList(String url, boolean debug) {
+    protected Vector getExclusionList(String url, boolean debug)
+    {
         Vector entryList = new Vector();
         String line = "#";
         BufferedReader exclusion = null;
 
-        try {
+        try
+        {
             exclusion = new BufferedReader(new FileReader(url));
-        } catch (java.io.FileNotFoundException fnfe) {
-            if (debug) {
+        }
+        catch (java.io.FileNotFoundException fnfe)
+        {
+            if (debug)
+            {
                 System.out.println("Couldn't find file " + url);
             }
 
             return entryList;
         }
 
-        while (line != null) {
-            try {
-                if (!line.startsWith("#")) {
+        while (line != null)
+        {
+            try
+            {
+                if (!line.startsWith("#"))
+                {
                     entryList.add(line);
                 }
 
                 line = exclusion.readLine();
-            } catch (java.io.IOException ioe) {
-                if (debug) {
+            }
+            catch (java.io.IOException ioe)
+            {
+                if (debug)
+                {
                     System.out.println(
                             "Exception while reading exclusion list");
                 }
@@ -391,10 +442,14 @@ public class basic_fat implements TestBase {
             }
         }
 
-        try {
+        try
+        {
             exclusion.close();
-        } catch (java.io.IOException ioe) {
-            if (debug) {
+        }
+        catch (java.io.IOException ioe)
+        {
+            if (debug)
+            {
                 System.out.println("Couldn't close file " + url);
             }
 
diff --git a/qadevOOo/runner/complexlib/Assurance.java b/qadevOOo/runner/complexlib/Assurance.java
index 417eb77..af2dc80 100644
--- a/qadevOOo/runner/complexlib/Assurance.java
+++ b/qadevOOo/runner/complexlib/Assurance.java
@@ -44,6 +44,8 @@ import java.lang.reflect.Method;
  */
 public class Assurance
 {
+    public static final boolean CONTINUE = true;
+
     /** State of the current test method **/
     protected boolean state = true;
 
diff --git a/qadevOOo/runner/complexlib/ComplexTestCase.java b/qadevOOo/runner/complexlib/ComplexTestCase.java
index e5b2b2c..c5663d2 100644
--- a/qadevOOo/runner/complexlib/ComplexTestCase.java
+++ b/qadevOOo/runner/complexlib/ComplexTestCase.java
@@ -58,7 +58,8 @@ public abstract class ComplexTestCase extends Assurance implements ComplexTest
      **/
     protected int mThreadTimeOut = 0;
     /** Continue a test even if it did fail **/
-    public static final boolean CONTINUE = true;
+    // public static final boolean CONTINUE = true;
+    
     /** End a test if it did fail **/
     public static final boolean BREAK = true;
 
diff --git a/qadevOOo/runner/graphical/IniFile.java b/qadevOOo/runner/graphical/IniFile.java
index 69e017c..d375ac5 100644
--- a/qadevOOo/runner/graphical/IniFile.java
+++ b/qadevOOo/runner/graphical/IniFile.java
@@ -27,9 +27,9 @@
  * for a copy of the LGPLv3 License.
  *
  ************************************************************************/
-
 package graphical;
 
+import java.io.BufferedReader;
 import java.io.File;
 import java.io.RandomAccessFile;
 import java.util.ArrayList;
@@ -37,10 +37,11 @@ import java.util.Enumeration;
 
 /**
    Helper class to give a simple API to read/write windows like ini files
- */
+*/
 /* public */ // is only need, if we need this class outside package convwatch
 public class IniFile implements Enumeration
 {
+
     /**
      * internal representation of the ini file content.
      * Problem, if ini file changed why other write something difference, we don't realise this.
@@ -48,13 +49,13 @@ public class IniFile implements Enumeration
     private String m_sFilename;
     private ArrayList m_aList;
     boolean m_bListContainUnsavedChanges = false;
-
     private int m_aEnumerationPos = 0;
+
     /**
        open a ini file by it's name
        @param _sFilename string a filename, if the file doesn't exist, a new empty ini file will create.
        write back to disk only if there are really changes.
-     */
+    */
     public IniFile(String _sFilename)
         {
             m_sFilename = _sFilename;
@@ -66,23 +67,23 @@ public class IniFile implements Enumeration
 //            }
         }
 
-    public void insertFirstComment(String [] _aList)
-    {
-        if (m_aList.size() == 0)
+    public void insertFirstComment(String[] _aList)
         {
-            // can only insert if there is nothing else already in the ini file
-            for (int i=0; i<_aList.length;i++)
+            if (m_aList.size() == 0)
             {
-                m_aList.add(_aList[i]);
+                // can only insert if there is nothing else already in the ini file
+                for (int i = 0; i < _aList.length; i++)
+                {
+                    m_aList.add(_aList[i]);
+                }
             }
         }
-    }
 
     private ArrayList loadLines()
         {
             File aFile = new File(m_sFilename);
             ArrayList aLines = new ArrayList();
-            if (! aFile.exists())
+            if (!aFile.exists())
             {
                 GlobalLogWriter.get().println("couldn't find file '" + m_sFilename + "', will be created.");
                 // DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
@@ -90,9 +91,10 @@ public class IniFile implements Enumeration
                 return aLines;
             }
             RandomAccessFile aReader = null;
+            // BufferedReader aReader;
             try
             {
-                aReader = new RandomAccessFile(aFile,"r");
+                aReader = new RandomAccessFile(aFile, "r");
                 String aLine = "";
                 while (aLine != null)
                 {
@@ -117,7 +119,7 @@ public class IniFile implements Enumeration
             }
             try
             {
-                aReader.close();  
+                aReader.close();
             }
             catch (java.io.IOException ie)
             {
@@ -135,37 +137,38 @@ public class IniFile implements Enumeration
         {
             return m_aList.size() > 1 ? true : false;
         }
-/**
- * Check if a given Section and Key exists in the ini file
- * @param _sSectionName
- * @param _sKey
- * @return true if the given Section, Key exists, now you can get the value
- */
+
+    /**
+     * Check if a given Section and Key exists in the ini file
+     * @param _sSectionName
+     * @param _sKey
+     * @return true if the given Section, Key exists, now you can get the value
+     */
     public boolean hasValue(String _sSectionName, String _sKey)
-    {
-        int n = findKey(_sSectionName, _sKey);
-        if (n > 0)
         {
-            return true;
+            int n = findKey(_sSectionName, _sKey);
+            if (n > 0)
+            {
+                return true;
+            }
+            return false;
         }
-        return false;
-    }
     // -----------------------------------------------------------------------------
-    
+
     private boolean isRemark(String _sLine)
         {
-            if ( ((_sLine.length() < 2) ) ||
-                 ( _sLine.startsWith("#")) || 
-                 ( _sLine.startsWith(";")) )
+            if (((_sLine.length() < 2)) ||
+                (_sLine.startsWith("#")) ||
+                (_sLine.startsWith(";")))
             {
                 return true;
             }
             return false;
         }
-    
+
     private String getItem(int i)
         {
-            return (String)m_aList.get(i);
+            return (String) m_aList.get(i);
         }
 
     private String buildSectionName(String _sSectionName)
@@ -173,32 +176,34 @@ public class IniFile implements Enumeration
             String sFindSection = "[" + _sSectionName + "]";
             return sFindSection;
         }
+
     private String sectionToString(String _sSectionName)
-    {
-        String sKeyName = _sSectionName;
-        if (sKeyName.startsWith("[") &&
-            sKeyName.endsWith("]"))
         {
-            sKeyName = sKeyName.substring(1, sKeyName.length() - 1);
+            String sKeyName = _sSectionName;
+            if (sKeyName.startsWith("[") &&
+                sKeyName.endsWith("]"))
+            {
+                sKeyName = sKeyName.substring(1, sKeyName.length() - 1);
+            }
+            return sKeyName;
         }
-        return sKeyName;
-    }
+
     private String toLowerIfNeed(String _sName)
         {
             return _sName.toLowerCase();
         }
-    
+
     // return the number where this section starts
     private int findSection(String _sSection)
         {
             String sFindSection = toLowerIfNeed(buildSectionName(_sSection));
             // ----------- find _sSection ---------------
             int i;
-            for (i=0; i<m_aList.size();i++)
+            for (i = 0; i < m_aList.size(); i++)
             {
                 String sLine = toLowerIfNeed(getItem(i).trim());
                 if (isRemark(sLine))
-            {
+                {
                     continue;
                 }
                 if (sFindSection.equals("[]"))
@@ -220,15 +225,15 @@ public class IniFile implements Enumeration
      * @return true if the given _sSection was found
      */
     public boolean hasSection(String _sSection)
-    {
-        int i = findSection(_sSection);
-        if (i == -1)
         {
-            return false;
+            int i = findSection(_sSection);
+            if (i == -1)
+            {
+                return false;
+            }
+            return true;
         }
-        return true;
-    }
-    
+
     // return the line number, where the key is found.
     private int findKey(String _sSection, String _sKey)
         {
@@ -240,15 +245,15 @@ public class IniFile implements Enumeration
             }
             return findKeyFromKnownSection(i, _sKey);
         }
-    
+
     // i must be the index in the list, where the well known section starts
     private int findKeyFromKnownSection(int _nSectionIndex, String _sKey)
         {
             _sKey = toLowerIfNeed(_sKey);
-            for (int j=_nSectionIndex + 1; j<m_aList.size();j++)
+            for (int j = _nSectionIndex + 1; j < m_aList.size(); j++)
             {
                 String sLine = getItem(j).trim();
-                
+
                 if (isRemark(sLine))
                 {
                     continue;
@@ -261,7 +266,7 @@ public class IniFile implements Enumeration
                     // found end.
                     break;
                 }
-                
+
                 int nEqual = sLine.indexOf("=");
                 if (nEqual >= 0)
                 {
@@ -270,20 +275,20 @@ public class IniFile implements Enumeration
                     {
                         return j;
                     }
-            }
+                }
             }
             return -1;
         }
-            
+
     // i must be the index in the list, where the well known section starts
     private int findLastKnownKeyIndex(int _nSectionIndex, String _sKey)
         {
             _sKey = toLowerIfNeed(_sKey);
             int i = _nSectionIndex + 1;
-            for (int j=i; j<m_aList.size();j++)
+            for (int j = i; j < m_aList.size(); j++)
             {
                 String sLine = getItem(j).trim();
-                
+
                 if (isRemark(sLine))
                 {
                     continue;
@@ -294,7 +299,7 @@ public class IniFile implements Enumeration
                     // found end.
                     return j;
                 }
-                
+
                 int nEqual = sLine.indexOf("=");
                 if (nEqual >= 0)
                 {
@@ -307,7 +312,7 @@ public class IniFile implements Enumeration
             }
             return i;
         }
-    
+
     private String getValue(int _nIndex)
         {
             String sLine = getItem(_nIndex).trim();
@@ -318,7 +323,7 @@ public class IniFile implements Enumeration
             int nEqual = sLine.indexOf("=");
             if (nEqual >= 0)
             {
-                String sKey =   sLine.substring(0, nEqual).trim();
+                String sKey = sLine.substring(0, nEqual).trim();
                 String sValue = sLine.substring(nEqual + 1).trim();
                 return sValue;
             }
@@ -326,13 +331,12 @@ public class IniFile implements Enumeration
         }
 
     /**
-       @param _sSection string 
+       @param _sSection string
        @param _sKey string
-       @return the value found in the inifile which is given by the section and key parameter 
+       @return the value found in the inifile which is given by the section and key parameter
     */
     // private int m_nCurrentPosition;
     // private String m_sOldKey;
-    
     public String getValue(String _sSection, String _sKey)
         {
             String sValue = "";
@@ -345,10 +349,10 @@ public class IniFile implements Enumeration
 
             // m_sOldKey = _sKey;
             sValue = getValue(m_nCurrentPosition);
-            
+
             return sValue;
         }
-    
+
 //    private String getNextValue()
 //    {
 //        if (m_nCurrentPosition >= 0)
@@ -359,7 +363,6 @@ public class IniFile implements Enumeration
 //        }
 //        return "";
 //    }
-    
     /**
      * Returns the value at Section, Key converted to an integer
      * Check with hasValue(Section, Key) to check before you get into trouble.
@@ -369,39 +372,40 @@ public class IniFile implements Enumeration
      * @return
      */
     public int getIntValue(String _sSection, String _sKey, int _nDefault)
-    {
-        String sValue = getValue(_sSection, _sKey);
-        int nValue = _nDefault;
-        if (sValue.length() > 0)
         {
-            try
+            String sValue = getValue(_sSection, _sKey);
+            int nValue = _nDefault;
+            if (sValue.length() > 0)
             {
-               nValue = Integer.valueOf(sValue).intValue();
+                try
+                {
+                    nValue = Integer.valueOf(sValue).intValue();
+                }
+                catch (java.lang.NumberFormatException e)
+                {
+                    GlobalLogWriter.get().println("IniFile.getIntValue(): Caught a number format exception, return the default value.");
+                }
             }
-            catch(java.lang.NumberFormatException e)
-            {
-                GlobalLogWriter.get().println("IniFile.getIntValue(): Caught a number format exception, return the default value.");
-            }            
+            return nValue;
         }
-        return nValue;
-    }
-    
+
     public void close()
-    {
-        store();
-    }
+        {
+            store();
+        }
+
     /**
        write back the ini file to the disk, only if there exist changes
-     * @deprecated use close() instead!
-    */
-    public void store() 
+       * @deprecated use close() instead!
+       */
+    public void store()
         {
             if (m_bListContainUnsavedChanges == false)
             {
                 // nothing has changed, so no need to store
                 return;
             }
-            
+
             File aFile = new File(m_sFilename);
             if (aFile.exists())
             {
@@ -423,35 +427,43 @@ public class IniFile implements Enumeration
             try
             {
                 RandomAccessFile aWriter = new RandomAccessFile(aFile, "rw");
-                for (int i=0; i<m_aList.size();i++)
+                for (int i = 0; i < m_aList.size(); i++)
                 {
                     String sLine = getItem(i);
+                    if (sLine.startsWith("["))
+                    {
+                        // write an extra empty line before next section.
+                        aWriter.writeByte((int) '\n');
+                    }
                     aWriter.writeBytes(sLine);
-                    aWriter.writeByte((int)'\n');
+                    aWriter.writeByte((int) '\n');
                 }
                 aWriter.close();
             }
-            
             catch (java.io.FileNotFoundException fne)
             {
                 GlobalLogWriter.get().println("couldn't open file for writing " + m_sFilename);
                 GlobalLogWriter.get().println("Message: " + fne.getMessage());
                 // DebugHelper.exception(BasicErrorCode.SbERR_FILE_NOT_FOUND, "");
             }
-            catch(java.io.IOException ie)
+            catch (java.io.IOException ie)
             {
                 GlobalLogWriter.get().println("Exception occurs while writing to file " + m_sFilename);
                 GlobalLogWriter.get().println("Message: " + ie.getMessage());
                 // DebugHelper.exception(BasicErrorCode.SbERR_INTERNAL_ERROR, ie.getMessage());
             }
         }
-    
-    
-    
+
     public void insertValue(String _sSection, String _sKey, int _nValue)
-    {
-        insertValue(_sSection, _sKey, String.valueOf(_nValue));
-    }
+        {
+            insertValue(_sSection, _sKey, String.valueOf(_nValue));
+        }
+
+    public void insertValue(String _sSection, String _sKey, long _nValue)
+        {
+            insertValue(_sSection, _sKey, String.valueOf(_nValue));
+        }
+
     /**
        insert a value
        there are 3 cases
@@ -459,7 +471,7 @@ public class IniFile implements Enumeration
        2. section exist but key not, search section, search key, if key is -1 get last known key position and insert new key value pair there
        3. section exist and key exist, remove the old key and insert the key value pair at the same position
     */
-    public void insertValue(String _sSection, String _sKey, String _sValue) 
+    public void insertValue(String _sSection, String _sKey, String _sValue)
         {
             int i = findSection(_sSection);
             if (i == -1)
@@ -551,71 +563,71 @@ public class IniFile implements Enumeration
     //     
     //         return sLocalValue;
     //     }
-
-public void removeSection(String _sSectionToRemove)
-{
-        // first, search for the name
-        int i = findSection(_sSectionToRemove);
-        if (i == -1) {
-            // Section to remove not found, do nothing.
-            return;
-        }
-        // second, find the next section
-        int j = findNextSection(i + 1);
-        if (j == -1)
+    public void removeSection(String _sSectionToRemove)
         {
-            // if we are at the end, use size() as second section
-            j = m_aList.size();
-        }
-        // remove all between first and second section
-        for(int k=i; k<j; k++)
-        {
-            m_aList.remove(i);
+            // first, search for the name
+            int i = findSection(_sSectionToRemove);
+            if (i == -1)
+            {
+                // Section to remove not found, do nothing.
+                return;
+            }
+            // second, find the next section
+            int j = findNextSection(i + 1);
+            if (j == -1)
+            {
+                // if we are at the end, use size() as second section
+                j = m_aList.size();
+            }
+            // remove all between first and second section
+            for (int k = i; k < j; k++)
+            {
+                m_aList.remove(i);
+            }
+            // mark the list as changed
+            m_bListContainUnsavedChanges = true;
         }
-        // mark the list as changed
-        m_bListContainUnsavedChanges = true;
-    }
 
     /**
      * some tests for this class
      */
-    public static void main(String[] args) {
-        String sTempFile = System.getProperty("java.io.tmpdir");
-        sTempFile += "inifile";
+    public static void main(String[] args)
+        {
+            String sTempFile = System.getProperty("java.io.tmpdir");
+            sTempFile += "inifile";
 
 
-        IniFile aIniFile = new IniFile(sTempFile);
-        String sValue = aIniFile.getValue("Section", "Key");
-        // insert a new value to a already exist section
-        aIniFile.insertValue("Section", "Key2", "a new value in a existing section");
-        // replace a value
-        aIniFile.insertValue("Section", "Key", "replaced value");
-        // create a new value
-        aIniFile.insertValue("New Section", "Key", "a new key value pair");
-        aIniFile.insertValue("New Section", "Key2", "a new second key value pair");
+            IniFile aIniFile = new IniFile(sTempFile);
+            String sValue = aIniFile.getValue("Section", "Key");
+            // insert a new value to a already exist section
+            aIniFile.insertValue("Section", "Key2", "a new value in a existing section");
+            // replace a value
+            aIniFile.insertValue("Section", "Key", "replaced value");
+            // create a new value
+            aIniFile.insertValue("New Section", "Key", "a new key value pair");
+            aIniFile.insertValue("New Section", "Key2", "a new second key value pair");
 
-        String sValue2 = aIniFile.getValue("Section2", "Key");
+            String sValue2 = aIniFile.getValue("Section2", "Key");
 
-        aIniFile.removeSection("Section");
-        aIniFile.removeSection("New Section");
-        
-        aIniFile.close();
-    }
+            aIniFile.removeSection("Section");
+            aIniFile.removeSection("New Section");
 
+            aIniFile.close();
+        }
 
     /**
      * Enumeration Interface
      * @return true, if there are more Key values
      */
     public boolean hasMoreElements()
-    {
-        if (m_aEnumerationPos >=0 &&
-            m_aEnumerationPos < m_aList.size())
         {
-            return true;
+            if (m_aEnumerationPos >= 0 &&
+                m_aEnumerationPos < m_aList.size())
+            {
+                return true;
+            }
+            return false;
         }
-        return false;
-    }
 
     /**
      * Find the next line, which starts with '['
@@ -623,57 +635,57 @@ public void removeSection(String _sSectionToRemove)
      * @return the line where '[' found or -1
      */
     private int findNextSection(int i)
-    {
-        if (i >= 0)
         {
-            while (i < m_aList.size())
+            if (i >= 0)
             {
-                String sLine = (String)m_aList.get(i);
-                if (sLine.startsWith("["))
+                while (i < m_aList.size())
                 {
-                    return i;
+                    String sLine = (String) m_aList.get(i);
+                    if (sLine.startsWith("["))
+                    {
+                        return i;
+                    }
+                    i++;
                 }
-                i++;
             }
+            return -1;
         }
-        return -1;        
-    }
 
     /**
      * Enumeration Interface
      * @return a key without the enveloped '[' ']'
      */
     public Object nextElement()
-    {
-        int nLineWithSection = findNextSection(m_aEnumerationPos);
-        if (nLineWithSection != -1)
         {
-            String sSection = (String)m_aList.get(nLineWithSection);
-            m_aEnumerationPos = findNextSection(nLineWithSection + 1);
-            sSection = sectionToString(sSection);
-            return sSection;
-        }
-        else
-        {
-            m_aEnumerationPos = m_aList.size();
+            int nLineWithSection = findNextSection(m_aEnumerationPos);
+            if (nLineWithSection != -1)
+            {
+                String sSection = (String) m_aList.get(nLineWithSection);
+                m_aEnumerationPos = findNextSection(nLineWithSection + 1);
+                sSection = sectionToString(sSection);
+                return sSection;
+            }
+            else
+            {
+                m_aEnumerationPos = m_aList.size();
+            }
+            return null;
         }
-        return null;
-    }
 
     /**
      * Helper to count the occurence of Sections
      * @return returns the count of '^['.*']$' Elements
      */
     public int getElementCount()
-    {
-        int nCount = 0;
-        int nPosition = 0;
-        while ((nPosition = findNextSection(nPosition)) != -1)
         {
-            nCount ++;
-            nPosition ++;
+            int nCount = 0;
+            int nPosition = 0;
+            while ((nPosition = findNextSection(nPosition)) != -1)
+            {
+                nCount++;
+                nPosition++;
+            }
+            return nCount;
         }
-        return nCount;
-    }
 }
 
diff --git a/qadevOOo/runner/helper/APIDescGetter.java b/qadevOOo/runner/helper/APIDescGetter.java
index 5a5e09e..cce7764 100644
--- a/qadevOOo/runner/helper/APIDescGetter.java
+++ b/qadevOOo/runner/helper/APIDescGetter.java
@@ -396,7 +396,7 @@ public class APIDescGetter extends DescGetter
                     ifcDesc.entryName = "ifc" + className;
                     ifcDesc.longName = parent.entryName + "::" + ifc_name;
                 }
-                
+
             }
             catch (java.io.IOException ioe)
             {
@@ -430,8 +430,8 @@ 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";
@@ -472,8 +472,8 @@ public class APIDescGetter extends DescGetter
 
     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
      */
diff --git a/qadevOOo/runner/helper/CwsDataExchangeImpl.java b/qadevOOo/runner/helper/CwsDataExchangeImpl.java
index 748d181..da2dd90 100644
--- a/qadevOOo/runner/helper/CwsDataExchangeImpl.java
+++ b/qadevOOo/runner/helper/CwsDataExchangeImpl.java
@@ -122,8 +122,8 @@ public class CwsDataExchangeImpl implements CwsDataExchange
             final String stat = status ? ".PASSED.OK" : ".PASSED.FAILED";
 
             statusFile = utils.getUsersTempDir() +
-                        System.getProperty("file.separator") +
-                        "UnoApiCwsStatus." +
+                    System.getProperty("file.separator") +
+                    "UnoApiCwsStatus." +
                     (String) param.get(PropertyName.VERSION) +
                     "_" + param.get(PropertyName.OPERATING_SYSTEM) + stat + ".txt";
 
diff --git a/qadevOOo/runner/helper/ProcessHandler.java b/qadevOOo/runner/helper/ProcessHandler.java
index fd1f4e0..5aff464 100644
--- a/qadevOOo/runner/helper/ProcessHandler.java
+++ b/qadevOOo/runner/helper/ProcessHandler.java
@@ -36,6 +36,9 @@ import java.io.PrintStream;
 import java.io.LineNumberReader;
 import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
 import lib.TestParameters;
 import util.PropertyName;
 import util.utils;
@@ -492,6 +495,29 @@ public class ProcessHandler
         isStarted = false;
     }
 
+    /**
+     * Returns the time in seconds since 1st January 1970
+     * @return
+     */
+    public static long getSystemTime()
+    {
+        // Calendar cal = new GregorianCalendar();
+        // final long nTime = cal.getTimeInMillis();
+        final long nTime = System.currentTimeMillis();
+        return nTime;
+    }
+    private long m_nExactStartTimeInMillisec;
+
+    private void initialExactStartTime()
+    {
+        m_nExactStartTimeInMillisec = getSystemTime();
+    }
+
+    public long getProcessStartTime()
+    {
+        return m_nExactStartTimeInMillisec;
+    }
+
     protected void execute()
     {
         if (isStarted())
@@ -511,7 +537,7 @@ public class ProcessHandler
                     log.print(" ");
                 }
                 log.println("");
-
+                initialExactStartTime();
                 m_aProcess = runtime.exec(cmdLineArray, envVars);
             }
             else
@@ -547,6 +573,9 @@ 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();
@@ -583,10 +612,10 @@ public class ProcessHandler
      * @return <code>true</code> if process correctly exited
      * (exit code doesn't affect to this result).
      */
-     public boolean waitFor(long timeout)
-     {
-         return waitFor(timeout, true);
-     }
+    public boolean waitFor(long timeout)
+    {
+        return waitFor(timeout, true);
+    }
 
     private boolean waitFor(long timeout, boolean bKillProcessAfterTimeout)
     {
diff --git a/qadevOOo/runner/org/openoffice/Runner.java b/qadevOOo/runner/org/openoffice/Runner.java
index ccead60..75a6d20 100644
--- a/qadevOOo/runner/org/openoffice/Runner.java
+++ b/qadevOOo/runner/org/openoffice/Runner.java
@@ -48,7 +48,7 @@ public class Runner
 
     private static long m_nStartTime;
 
-    private static long getStartTime()
+    public static long getRunnerStartTime()
     {
         return m_nStartTime;
     }
@@ -69,7 +69,7 @@ public class Runner
     /*
     return the time, which is done until last startTime()
      */
-    private static long meanTime(long _nCurrentTimer)
+    public static long meanTime(long _nCurrentTimer)
     {
         if (_nCurrentTimer == 0)
         {
@@ -109,6 +109,7 @@ public class Runner
         }
         return false;
     }
+
     private static boolean checkPathVariable(String _sPath, String delim)
     {
         String sPath = System.getProperty(_sPath);
@@ -117,7 +118,7 @@ public class Runner
             StringTokenizer aTokenEnum = new StringTokenizer(sPath, delim);
             while (aTokenEnum.hasMoreElements())
             {
-                String sToken = (String)aTokenEnum.nextElement();
+                String sToken = (String) aTokenEnum.nextElement();
                 if (checkVariableForCygwin(sToken))
                 {
                     System.err.println("ERROR: OOoRunner detect cygwin path in '" + _sPath + "'");
@@ -132,7 +133,7 @@ public class Runner
     {
         // ----- check all System.getProperty(key) variables -----
         String sOsName = System.getProperty("os.name");
-        if (! sOsName.toLowerCase().startsWith("windows"))
+        if (!sOsName.toLowerCase().startsWith("windows"))
         {
             // we need to check only on windows
             return;
@@ -145,7 +146,7 @@ public class Runner
 
         while (aEnum.hasMoreElements())
         {
-            String sKey = (String)aEnum.nextElement();
+            String sKey = (String) aEnum.nextElement();
             String sValue = System.getProperty(sKey);
 
             if (checkVariableForCygwin(sValue))
@@ -165,10 +166,10 @@ public class Runner
         aEnum = _aParams.keys();
         while (aEnum.hasMoreElements())
         {
-            String sKey = (String)aEnum.nextElement();
+            String sKey = (String) aEnum.nextElement();
             if (_aParams.get(sKey) instanceof String)
             {
-                String sValue = (String)_aParams.get(sKey);
+                String sValue = (String) _aParams.get(sKey);
 
                 if (checkVariableForCygwin(sValue))
                 {
@@ -183,7 +184,7 @@ public class Runner
             System.exit(-1);
         }
     }
-    
+
     public static void main(String[] args)
     {
         System.out.println("OOoRunner Main()");
@@ -240,7 +241,7 @@ public class Runner
         checkAllVariablesForCygwinPath(param);
 
         boolean worked = toExecute.executeTest(param);
-        long nTime = meanTime(getStartTime());
+        long nTime = meanTime(getRunnerStartTime());
         String sBeautifyTime = beautifyTime(nTime);
 
         System.out.println("Job run took: " + nTime + "ms " + " [" + sBeautifyTime + "]");
diff --git a/qadevOOo/runner/util/DesktopTools.java b/qadevOOo/runner/util/DesktopTools.java
index 88c0aac..561536c 100644
--- a/qadevOOo/runner/util/DesktopTools.java
+++ b/qadevOOo/runner/util/DesktopTools.java
@@ -56,23 +56,25 @@ import helper.ConfigHelper;
 import java.util.Vector;
 import lib.StatusException;
 
-
 /**
  * contains helper methods for the Desktop
  */
-public class DesktopTools {
+public class DesktopTools
+{
+
     /**
      * Queries the XComponentLoader
      * 
      * @param xMSF the MultiServiceFactory
      * @return the gained XComponentLoader
-    */
-    public static XComponentLoader getCLoader(XMultiServiceFactory xMSF) {
+     */
+    public static XComponentLoader getCLoader(XMultiServiceFactory xMSF)
+    {
         XDesktop oDesktop = (XDesktop) UnoRuntime.queryInterface(
-                                    XDesktop.class, createDesktop(xMSF));
+                XDesktop.class, createDesktop(xMSF));
 
         XComponentLoader oCLoader = (XComponentLoader) UnoRuntime.queryInterface(
-                                            XComponentLoader.class, oDesktop);
+                XComponentLoader.class, oDesktop);
 
         return oCLoader;
     } // finish getCLoader
@@ -82,52 +84,59 @@ public class DesktopTools {
      * 
      * @param xMSF the MultiServiceFactory
      * @return the gained Object
-    */
-    public static Object createDesktop(XMultiServiceFactory xMSF) {
+     */
+    public static Object createDesktop(XMultiServiceFactory xMSF)
+    {
         Object oInterface;
 
-        try {
+        try
+        {
             oInterface = xMSF.createInstance("com.sun.star.comp.framework.Desktop");
-        } catch (com.sun.star.uno.Exception e) {
+        }
+        catch (com.sun.star.uno.Exception e)
+        {
             throw new IllegalArgumentException("Desktop Service not available");
         }
 
         return oInterface;
     } //finish createDesktop
-    
+
     /**
      * returns a XEnumeration containing all components containing on the desktop
      * @param xMSF the XMultiServiceFactory
      * @return XEnumeration of all components on the desktop
      */
-    public static XEnumeration getAllComponents(XMultiServiceFactory xMSF) {
+    public static XEnumeration getAllComponents(XMultiServiceFactory xMSF)
+    {
         XDesktop xDesktop = (XDesktop) UnoRuntime.queryInterface(
-                                    XDesktop.class, createDesktop(xMSF));
+                XDesktop.class, createDesktop(xMSF));
         return xDesktop.getComponents().createEnumeration();
     }
-    
+
     /**
      * returns the current component on the desktop
      * @param xMSF the XMultiServiceFactory
      * @return XComponent of the current component on the desktop
      */
-    public static XComponent getCurrentComponent(XMultiServiceFactory xMSF) {
+    public static XComponent getCurrentComponent(XMultiServiceFactory xMSF)
+    {
         XDesktop xDesktop = (XDesktop) UnoRuntime.queryInterface(
-                                    XDesktop.class, createDesktop(xMSF));
+                XDesktop.class, createDesktop(xMSF));
         return xDesktop.getCurrentComponent();
     }
-    
+
     /**
      * returns the current component on the desktop
      * @param xMSF the XMultiServiceFactory
      * @return XComponent of the current component on the desktop
      */
-    public static XFrame getCurrentFrame(XMultiServiceFactory xMSF) {
+    public static XFrame getCurrentFrame(XMultiServiceFactory xMSF)
+    {
         XDesktop xDesktop = (XDesktop) UnoRuntime.queryInterface(
-                                    XDesktop.class, createDesktop(xMSF));
+                XDesktop.class, createDesktop(xMSF));
         return xDesktop.getCurrentFrame();
     }
-    
+
     /**
      * returns an object arrary of all open documents
      * @param xMSF the MultiServiceFactory
@@ -138,26 +147,37 @@ public class DesktopTools {
      * @param xMSF the XMultiSerivceFactory
      * @return returns an array of all open documents
      */
-    public static Object[] getAllOpenDocuments(XMultiServiceFactory xMSF) {
+    public static Object[] getAllOpenDocuments(XMultiServiceFactory xMSF)
+    {
         Vector components = new Vector();
         XDesktop xDesktop = (XDesktop) UnoRuntime.queryInterface(
-                                    XDesktop.class, createDesktop(xMSF));
-        
+                XDesktop.class, createDesktop(xMSF));
+
         XEnumeration allComp = getAllComponents(xMSF);
-        
-        while (allComp.hasMoreElements()){
-            try{
+
+        while (allComp.hasMoreElements())
+        {
+            try
+            {
                 XComponent xComponent = (XComponent) UnoRuntime.queryInterface(
-                                       XComponent.class, allComp.nextElement());
-                
-                if (getDocumentType(xComponent) != null) components.add(xComponent);
-                
-            } catch (com.sun.star.container.NoSuchElementException e) {
-            } catch ( com.sun.star.lang.WrappedTargetException e) {}
+                        XComponent.class, allComp.nextElement());
+
+                if (getDocumentType(xComponent) != null)
+                {
+                    components.add(xComponent);
+                }
+
+            }
+            catch (com.sun.star.container.NoSuchElementException e)
+            {
+            }
+            catch (com.sun.star.lang.WrappedTargetException e)
+            {
+            }
         }
         return components.toArray();
     }
-    
+
     /**
      * Returns the document type for the given XComponent of an document
      * @param xComponent the document to query for its type
@@ -170,27 +190,40 @@ public class DesktopTools {
      * </ul>
      * or <CODE>null</CODE>
      */
-    public static String getDocumentType(XComponent xComponent) {
-        XServiceInfo sInfo = (XServiceInfo)UnoRuntime.queryInterface(
+    public static String getDocumentType(XComponent xComponent)
+    {
+        XServiceInfo sInfo = (XServiceInfo) UnoRuntime.queryInterface(
                 XServiceInfo.class, xComponent);
 
-        if (sInfo == null) {
+        if (sInfo == null)
+        {
             return "";
-        } else if (sInfo.supportsService("com.sun.star.sheet.SpreadsheetDocument")) {
+        }
+        else if (sInfo.supportsService("com.sun.star.sheet.SpreadsheetDocument"))
+        {
             return "scalc";
-        } else if (sInfo.supportsService("com.sun.star.text.TextDocument")) {
+        }
+        else if (sInfo.supportsService("com.sun.star.text.TextDocument"))
+        {
             return "swriter";
-        } else if (sInfo.supportsService("com.sun.star.drawing.DrawingDocument")) {
+        }
+        else if (sInfo.supportsService("com.sun.star.drawing.DrawingDocument"))
+        {
             return "sdraw";
-        } else if (sInfo.supportsService("com.sun.star.presentation.PresentationDocument")) {
+        }
+        else if (sInfo.supportsService("com.sun.star.presentation.PresentationDocument"))
+        {
             return "simpress";
-        } else if (sInfo.supportsService("com.sun.star.formula.FormulaProperties")) {
+        }
+        else if (sInfo.supportsService("com.sun.star.formula.FormulaProperties"))
+        {
             return "smath";
-        } else {
+        }
+        else
+        {
             return null;
         }
     }
-    
 
     /**
      * Opens a new document of a given kind
@@ -207,18 +240,21 @@ public class DesktopTools {
      * @param Args arguments which passed to the document to load
      * @param xMSF the MultiServiceFactory
      */
-    public static XComponent openNewDoc(XMultiServiceFactory xMSF, String kind, 
-                                        PropertyValue[] Args) {
+    public static XComponent openNewDoc(XMultiServiceFactory xMSF, String kind,
+            PropertyValue[] Args)
+    {
         XComponent oDoc = null;
 
-        try {
-            oDoc = getCLoader(xMSF)
-                       .loadComponentFromURL("private:factory/" + kind, 
-                                             "_blank", 0, Args);
-        } catch (com.sun.star.uno.Exception e) {
+        try
+        {
+            oDoc = getCLoader(xMSF).loadComponentFromURL("private:factory/" + kind,
+                    "_blank", 0, Args);
+        }
+        catch (com.sun.star.uno.Exception e)
+        {
             throw new IllegalArgumentException("Document could not be opened");
         }
-        
+
         return oDoc;
     } //finish openNewDoc
 
@@ -230,8 +266,9 @@ public class DesktopTools {
      * @param Args arguments which passed to the document to load
      * @param xMSF the MultiServiceFactory
      */
-    public static XComponent loadDoc(XMultiServiceFactory xMSF, String url, 
-                                     PropertyValue[] Args) {
+    public static XComponent loadDoc(XMultiServiceFactory xMSF, String url,
+            PropertyValue[] Args)
+    {
         XComponent oDoc = null;
         if (Args == null)
         {
@@ -254,38 +291,52 @@ public class DesktopTools {
      * closes a given document
      * @param DocumentToClose the document to close
      */
-    public static void closeDoc(XInterface DocumentToClose) {
+    public static void closeDoc(XInterface DocumentToClose)
+    {
         if (DocumentToClose == null)
         {
             return;
         }
-        
+
         String kd = System.getProperty("KeepDocument");
-        if (kd != null ) {
+        if (kd != null)
+        {
             System.out.println("The property 'KeepDocument' is set and so the document won't be disposed");
             return;
         }
-        XModifiable modified = (XModifiable) UnoRuntime.queryInterface(
-                                       XModifiable.class, DocumentToClose);
-        XCloseable closer = (XCloseable) UnoRuntime.queryInterface(
-                                    XCloseable.class, DocumentToClose);
+        XModifiable modified = (XModifiable) UnoRuntime.queryInterface(XModifiable.class, DocumentToClose);
+        XCloseable closer = (XCloseable) UnoRuntime.queryInterface(XCloseable.class, DocumentToClose);
 
-        try {
-            if (modified != null){
+        try
+        {
+            if (modified != null)
+            {
                 modified.setModified(false);
             }
             closer.close(true);
-        } catch (com.sun.star.util.CloseVetoException e) {
+        }
+        catch (com.sun.star.util.CloseVetoException e)
+        {
+            e.printStackTrace();
             System.out.println("Couldn't close document");
-        } catch (com.sun.star.lang.DisposedException e) {
+        }
+        catch (com.sun.star.lang.DisposedException e)
+        {
+            e.printStackTrace();
             System.out.println("Couldn't close document");
-        } catch (java.lang.NullPointerException e) {
+        }
+        catch (java.lang.NullPointerException e)
+        {
+            e.printStackTrace();
             System.out.println("Couldn't close document");
-        } catch (com.sun.star.beans.PropertyVetoException e) {
+        }
+        catch (com.sun.star.beans.PropertyVetoException e)
+        {
+            e.printStackTrace();
             System.out.println("Couldn't close document");
         }
     }
-    
+
     /**
      * Creates a floating XWindow with the size of X=500 Y=100 width=400 height=600
      * @param xMSF the MultiServiceFactory
@@ -293,10 +344,12 @@ public class DesktopTools {
      * @return a floating XWindow
      */
     public static XWindowPeer createFloatingWindow(XMultiServiceFactory xMSF)
-        throws StatusException{
-            return createFloatingWindow(xMSF, 500, 100, 400, 600);
-    }   
-     /**
+            throws StatusException
+    {
+        return createFloatingWindow(xMSF, 500, 100, 400, 600);
+    }
+
+    /**
      * Creates a floating XWindow on the given position and size.
      * @return a floating XWindow
      * @param X the X-Postion of the floating XWindow
@@ -307,75 +360,83 @@ public class DesktopTools {
      * @throws lib.StatusException if it is not possible to create a floating window a lib.StatusException was thrown
      */
     public static XWindowPeer createFloatingWindow(XMultiServiceFactory xMSF, int X, int Y, int width, int height)
-        throws StatusException{
-        
+            throws StatusException
+    {
+
         XInterface oObj = null;
 
-        try {
+        try
+        {
             oObj = (XInterface) xMSF.createInstance("com.sun.star.awt.Toolkit");
-        } catch (com.sun.star.uno.Exception e) {
+        }
+        catch (com.sun.star.uno.Exception e)
+        {
             throw new StatusException("Couldn't get toolkit", e);
         }
 
         XToolkit tk = (XToolkit) UnoRuntime.queryInterface(
-                                      XToolkit.class, oObj);
+                XToolkit.class, oObj);
 
-    WindowDescriptor descriptor = new com.sun.star.awt.WindowDescriptor();
+        WindowDescriptor descriptor = new com.sun.star.awt.WindowDescriptor();
 
         descriptor.Type = com.sun.star.awt.WindowClass.TOP;
-        descriptor.WindowServiceName = "modelessdialog"; 
-        descriptor.ParentIndex =  -1;
-
-    Rectangle bounds = new com.sun.star.awt.Rectangle();
-    bounds.X = X;
-    bounds.Y = Y;
-    bounds.Width = width;
-    bounds.Height = height;
-        
+        descriptor.WindowServiceName = "modelessdialog";
+        descriptor.ParentIndex = -1;
+
+        Rectangle bounds = new com.sun.star.awt.Rectangle();
+        bounds.X = X;
+        bounds.Y = Y;
+        bounds.Width = width;
+        bounds.Height = height;
+
         descriptor.Bounds = bounds;
         descriptor.WindowAttributes = (com.sun.star.awt.WindowAttribute.BORDER +
-                                      com.sun.star.awt.WindowAttribute.MOVEABLE +
-                                      com.sun.star.awt.WindowAttribute.SIZEABLE +
-                                      com.sun.star.awt.WindowAttribute.CLOSEABLE +
-                                      com.sun.star.awt.VclWindowPeerAttribute.CLIPCHILDREN);
-        
+                com.sun.star.awt.WindowAttribute.MOVEABLE +
+                com.sun.star.awt.WindowAttribute.SIZEABLE +
+                com.sun.star.awt.WindowAttribute.CLOSEABLE +
+                com.sun.star.awt.VclWindowPeerAttribute.CLIPCHILDREN);
+
         XWindowPeer xWindow = null;
 
-        try{
-            xWindow = tk.createWindow( descriptor );
-        }catch ( com.sun.star.lang.IllegalArgumentException e){
-            throw new StatusException("Could not create window",  e);
+        try
+        {
+            xWindow = tk.createWindow(descriptor);
+        }
+        catch (com.sun.star.lang.IllegalArgumentException e)
+        {
+            throw new StatusException("Could not create window", e);
         }
-        
+
         return xWindow;
-        
+
     }
-    
+
     /**
      * zoom to have a view over the hole page
      * @param xDoc the document to zoom
      */
-    public static void zoomToEntirePage( XInterface xDoc){
-        try {
+    public static void zoomToEntirePage(XInterface xDoc)
+    {
+        try
+        {
             XModel xMod = (XModel) UnoRuntime.queryInterface(XModel.class, xDoc);
             XInterface oCont = xMod.getCurrentController();
-            XViewSettingsSupplier oVSSupp = (XViewSettingsSupplier)
-                UnoRuntime.queryInterface(XViewSettingsSupplier.class, oCont);
+            XViewSettingsSupplier oVSSupp = (XViewSettingsSupplier) UnoRuntime.queryInterface(XViewSettingsSupplier.class, oCont);
 
             XInterface oViewSettings = oVSSupp.getViewSettings();
-            XPropertySet oViewProp = (XPropertySet)
-                   UnoRuntime.queryInterface(XPropertySet.class, oViewSettings);
+            XPropertySet oViewProp = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, oViewSettings);
             oViewProp.setPropertyValue("ZoomType",
-                     new Short(com.sun.star.view.DocumentZoomType.ENTIRE_PAGE));
-            
+                    new Short(com.sun.star.view.DocumentZoomType.ENTIRE_PAGE));
+
             utils.shortWait(5000);
-        } catch (Exception e){
+        }
+        catch (Exception e)
+        {
             System.out.println("Could not zoom to entire page: " + e.toString());
         }
 
     }
-    
-    
+
     /**
      * This function docks the Stylist onto the right side of the window.</p>
      * Note:<P>
@@ -383,66 +444,74 @@ public class DesktopTools {
      * the chage of the docking will be effective at a restart.
      * @param xMSF the XMultiServiceFactory
      */
-    public static void dockStylist(XMultiServiceFactory xMSF){
+    public static void dockStylist(XMultiServiceFactory xMSF)
+    {
         // prepare Window-Settings
-        try {
-            ConfigHelper aConfig = new ConfigHelper(xMSF, 
-                                    "org.openoffice.Office.Views", false);
-            
+        try
+        {
+            ConfigHelper aConfig = new ConfigHelper(xMSF,
+                    "org.openoffice.Office.Views", false);
+
             // Is node "5539" (slot-id for navigator) available? If not, insert it
             XNameReplace x5539 = aConfig.getOrInsertGroup("Windows", "5539");
-            
+
             aConfig.updateGroupProperty(
-               "Windows",  "5539", "WindowState", "952,180,244,349;1;0,0,0,0;");
-            
+                    "Windows", "5539", "WindowState", "952,180,244,349;1;0,0,0,0;");
+
             aConfig.insertOrUpdateExtensibleGroupProperty(
-               "Windows", "5539", "UserData", "Data","V2,V,0,AL:(5,16,0/0/244/349,244;610)");                
-            
+                    "Windows", "5539", "UserData", "Data", "V2,V,0,AL:(5,16,0/0/244/349,244;610)");
+
             // Is node "SplitWindow2" available? If not, instert it.
             aConfig.getOrInsertGroup("Windows", "SplitWindow2");
-            
+
             aConfig.insertOrUpdateExtensibleGroupProperty(
-               "Windows", "SplitWindow2","UserData", "UserItem","V1,2,1,0,5539");
-            
+                    "Windows", "SplitWindow2", "UserData", "UserItem", "V1,2,1,0,5539");
+
             aConfig.flush();
             aConfig = null;
-        
-        } catch (com.sun.star.uno.Exception e) {
+
+        }
+        catch (com.sun.star.uno.Exception e)
+        {
             e.printStackTrace();
         }
     }
-    
+
     /**
      * Due to typo deprecated
      * @param xModel
      * @deprecated
      */
     @Deprecated
-    public static void bringWindowToFromt(XModel xModel){    
+    public static void bringWindowToFromt(XModel xModel)
+    {
         bringWindowToFront(xModel);
     }
-    
+
     /** 
      * This function brings a document to the front.<P>
      * NOTE: it is not possible to change the window order of your Window-Manager!!
      * Only the order of Office documents are changeable.
      * @param xModel the XModel of the document to bring to top
      */
-    public static void bringWindowToFront(XModel xModel){
+    public static void bringWindowToFront(XModel xModel)
+    {
         // System.out.println("DEBUG: bring to front xModel");
-        
-        XTopWindow xTopWindow =  
+
+        XTopWindow xTopWindow =
                 (XTopWindow) UnoRuntime.queryInterface(
                 XTopWindow.class,
                 xModel.getCurrentController().getFrame().getContainerWindow());
-    
-        xTopWindow.toFront();        
+
+        xTopWindow.toFront();
     }
-    
-    public static void bringWindowToFront(XComponent xComponent){
+
+    public static void bringWindowToFront(XComponent xComponent)
+    {
         // System.out.println("DEBUG: bring to front xComponent");
         XModel xModel = (XModel) UnoRuntime.queryInterface(XModel.class, xComponent);
-        if (xModel != null){
+        if (xModel != null)
+        {
             bringWindowToFront(xModel);
         }
     }
diff --git a/qadevOOo/runner/util/utils.java b/qadevOOo/runner/util/utils.java
index eb636f0..aab620e 100644
--- a/qadevOOo/runner/util/utils.java
+++ b/qadevOOo/runner/util/utils.java
@@ -186,7 +186,13 @@ public class utils {
             } else {
                 if (fullDocPath.startsWith("/")) {
                     prefix = "file://";
-                } else {
+//                    if (helper.OSHelper.isLinuxIntel())
+//                    {
+//                        prefix = "file:/";
+//                    }
+                }
+                else
+                {
                     prefix = "file:///";
                 }
             }


More information about the ooo-build-commit mailing list