--- old/src/org/netbeans/jemmy/operators/JToolTipOperator.java 2018-11-08 23:00:01.889059041 -0800 +++ new/src/org/netbeans/jemmy/operators/JToolTipOperator.java 2018-11-08 23:00:01.812059916 -0800 @@ -37,8 +37,11 @@ import org.netbeans.jemmy.ComponentChooser; import org.netbeans.jemmy.ComponentSearcher; +import org.netbeans.jemmy.JemmyException; import org.netbeans.jemmy.TimeoutExpiredException; +import org.netbeans.jemmy.Timeouts; import org.netbeans.jemmy.Waitable; +import org.netbeans.jemmy.Waiter; /** *
@@ -52,6 +55,8 @@ */ public class JToolTipOperator extends JComponentOperator { + private static long WAIT_TOOLTIP_TIMEOUT = 60000; + /** * Identifier for a "tip text" property. * @@ -59,6 +64,9 @@ */ public static final String TIP_TEXT_DPROP = "TipText"; + static { + Timeouts.initDefault("JToolTipOperator.WaitToolTipTimeout", WAIT_TOOLTIP_TIMEOUT); + } /** * Constructs a JToolTipOperator object, waiting for a shown * JToolTip. @@ -286,8 +294,7 @@ */ public static JToolTip waitJToolTip(ComponentOperator comp, ComponentChooser chooser) { - return Operator.getEnvironmentOperator(). - waitState(new Waitable() { + Waitable waitable = new Waitable() { @Override public JToolTip actionProduced(Void obj) { return findJToolTip(comp, chooser); @@ -304,7 +311,19 @@ return "JToolTipOperator.waitJToolTip.Waitable{description = " + getDescription() + '}'; } - }); + }; + Waiter stateWaiter = new Waiter<>(waitable); + stateWaiter.setTimeoutsToCloneOf(Operator.getEnvironmentOperator(). + getTimeouts(), "JToolTipOperator.WaitToolTipTimeout"); + stateWaiter.setOutput(Operator.getEnvironmentOperator(). + getOutput().createErrorOutput()); + try { + return stateWaiter.waitAction(null); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw (new JemmyException("Waiting of " + waitable.getDescription() + + " state has been interrupted!")); + } } /** --- old/src/org/netbeans/jemmy/version_info 2018-11-08 23:00:02.232055143 -0800 +++ new/src/org/netbeans/jemmy/version_info 2018-11-08 23:00:02.154056030 -0800 @@ -1,6 +1,6 @@ Manifest-version: 1.0 Main-Class: org.netbeans.jemmy.JemmyProperties Jemmy-MajorVersion: 3.0 -Jemmy-MinorVersion: 6.0 +Jemmy-MinorVersion: 7.0 Jemmy-Build: @BUILD_NUMBER@ --- old/test/org/netbeans/jemmy/operators/JToolTipOperatorTest.java 2018-11-08 23:00:02.577051223 -0800 +++ new/test/org/netbeans/jemmy/operators/JToolTipOperatorTest.java 2018-11-08 23:00:02.499052109 -0800 @@ -30,6 +30,7 @@ import org.netbeans.jemmy.ComponentChooser; import org.netbeans.jemmy.TimeoutExpiredException; +import org.netbeans.jemmy.Timeouts; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; @@ -45,6 +46,8 @@ frame = new JFrame(); frame.setSize(400,400); frame.setLocationRelativeTo(null); + Timeouts timeouts = Operator.getEnvironmentOperator().getTimeouts(); + timeouts.setTimeout("JToolTipOperator.WaitToolTipTimeout", 5000); } @AfterClass