diff options
author | Vladimir Glazounov <vg@openoffice.org> | 2009-07-06 10:30:52 +0000 |
---|---|---|
committer | Vladimir Glazounov <vg@openoffice.org> | 2009-07-06 10:30:52 +0000 |
commit | 91ab2cabe11981d03007616f55acb0119b0435d7 (patch) | |
tree | bc1fa4dd94212de4fae7f10762f44f831ebace26 /qadevOOo/runner/base | |
parent | 4910706670c8a17c46347fa22c63d5779d50fbcc (diff) |
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
Diffstat (limited to 'qadevOOo/runner/base')
-rw-r--r-- | qadevOOo/runner/base/java_fat.java | 710 |
1 files changed, 379 insertions, 331 deletions
diff --git a/qadevOOo/runner/base/java_fat.java b/qadevOOo/runner/base/java_fat.java index 64f55e8f0814..4afd234cda29 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; } - return tEnv; - } - - protected void shortWait(int millis) { - try { - Thread.sleep(millis); - } catch (java.lang.InterruptedException ie) { + private 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); + + private 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); + } - 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); + XMultiServiceFactory msf = (XMultiServiceFactory) office.getManager(param); - if (msf != null){ - param.put("ServiceFactory", msf); - } + if (msf != null) + { + param.put("ServiceFactory", msf); + } - return office; - } + return office; + } } |