update dev300-m58
[ooovba.git] / qadevOOo / runner / helper / LoggingThread.java
blob3dc8802f0e9d53417b52a02abf6fb8ab8f4f81a0
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: LoggingThread.java,v $
10 * $Revision: 1.5 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 package helper;
33 import share.*;
34 import lib.TestParameters;
35 import util.PropertyName;
36 import util.utils;
38 /**
39 * This class is printing to a <CODE>LogWriter</CODE>. This could be usefull if a UNO-API
40 * function runns longer the the time out. To avoid the assumption of death applikation
41 * a simple string is logged for 100 times of time out.</br>
42 * Example:</br>
43 * logger = new LoggingThread((LogWriter)log, tParam);
44 * logger.start();
45 * oObj.longRunningFunction();
46 * logger.finish();
49 public class LoggingThread extends Thread {
51 TestParameters param;
52 LogWriter log = null;
53 boolean finished = false;
54 boolean debug = false;
56 /**
58 * @param log
59 * @param tParam
61 public LoggingThread(LogWriter log, TestParameters tParam) {
62 this.log = log;
63 this.param = tParam;
64 this.debug = tParam.getBool(PropertyName.DEBUG_IS_ACTIVE);
67 public void run() {
68 final int timeOut = param.getInt(PropertyName.TIME_OUT) / 2;
69 int count = 0;
70 finished = false;
71 if (debug) log.println("TimeOutLogger: " + utils.getDateTime() + " start");
72 while (!finished && count < 200) {
73 try {
74 if (debug) log.println("TimeOutLogger: "+utils.getDateTime() + count);
75 synchronized (this) {
76 wait(timeOut);
78 count++;
79 } catch (InterruptedException ex) {
82 if (debug) log.println("TimeOutLogger: " + utils.getDateTime() + " finished");
85 /**
86 * finished the LoggingThread
88 public void finish() {
89 try {
90 finished = true;
91 synchronized (this) {
92 notify();
94 if (debug) log.println("TimeOutLogger: " + utils.getDateTime() + " try to finish ");
95 sleep(1000);
96 } catch (InterruptedException ex) {