Am 29.01.2018 10:57, schrieb Felix Schumacher:
Am 29.01.2018 10:34, schrieb Philippe Mouawad:
Hi Felix,
I reckon I didn't test such "complex" setup :-)

Do you think we should support such use case ?

Well, I like to use it :)

I think it would be enough to check for the
UnsupportedOperationException and switch to local help.

Or reverse the logic. Check for !USE_LOCAL_HELP and try to initialize
the external browser.
Surround that with a catch UOE and log a warning (show a dialog about
setting the property).
Return early on success and otherwise fallback to the old logic.

Something like this:

if (!USE_LOCAL_HELP) {
  try {
    // init external browser
    ...
    return; // successful init
  } catch (UnsupportedOperationException e) {
    log.warn("set help.local=true");
  }
}

// use local browser
...
return;

Seems like this will not work. The UOE is caught by OpenLinkAction.
If we rethrow the UOE, it will get caught by ActionRouter :( I haven't gone further.

So to support the exception getting not caught, we would have to decide in OpenLinkAction, if this is a call for external help browser and then throw a custom exception which we could route through ActionRouter and catch in Help.

Seems a bit complex. The alternatives are:

* set help.local to true as default (revert to old behaviour)
* display a warning when the browser doesn't start in OpenLinkAction (when opening help, only?)

On a slightly different topic:
In OpenLinkAction there are a few log errors. The format strings have a paramter "{}", but no parameter is given to the log statement. The exception as last parameter does not count.
I think we should add "url" to the log statements.

Felix



Felix


Regards

On Mon, Jan 29, 2018 at 10:28 AM, Felix Schumacher <
[email protected]> wrote:

Hi all,

while testing the current trunk I noticed the following exception when
trying to open help:

2018-01-29 10:20:59,280 ERROR o.a.j.g.a.OpenLinkAction: OpenLinkAction: Current platform does not support the Desktop.Action.BROWSE actionon {}
java.lang.UnsupportedOperationException: The BROWSE action is not
supported on the current platform!
        at java.awt.Desktop.checkActionSupport(Desktop.java:225)
~[?:1.8.0_162]
        at java.awt.Desktop.browse(Desktop.java:381) ~[?:1.8.0_162]
at org.apache.jmeter.gui.action.OpenLinkAction.doAction(OpenLinkAction.java:71)
~[ApacheJMeter_core.jar:4.0-SNAPSHOT.20180129]
at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:88)
~[ApacheJMeter_core.jar:4.0-SNAPSHOT.20180129]
at org.apache.jmeter.gui.action.ActionRouter.doActionNow(ActionRouter.java:125)
~[ApacheJMeter_core.jar:4.0-SNAPSHOT.20180129]
        at org.apache.jmeter.gui.action.Help.doAction(Help.java:115)
~[ApacheJMeter_core.jar:4.0-SNAPSHOT.20180129]
at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:88)
~[ApacheJMeter_core.jar:4.0-SNAPSHOT.20180129]
at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:70)
~[ApacheJMeter_core.jar:4.0-SNAPSHOT.20180129]
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
[?:1.8.0_162]
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
[?:1.8.0_162]
        at java.awt.EventQueue.access$500(EventQueue.java:97)
[?:1.8.0_162]
at java.awt.EventQueue$3.run(EventQueue.java:709) [?:1.8.0_162] at java.awt.EventQueue$3.run(EventQueue.java:703) [?:1.8.0_162]
        at java.security.AccessController.doPrivileged(Native Method)
[?:1.8.0_162]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doInte
rsectionPrivilege(ProtectionDomain.java:80) [?:1.8.0_162]
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
[?:1.8.0_162]
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
[?:1.8.0_162]
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
[?:1.8.0_162]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
[?:1.8.0_162]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
[?:1.8.0_162]
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
[?:1.8.0_162]
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
[?:1.8.0_162]

Setting help.local=true works (using the built-in help browser).

The system is a Leap 42.3 used remotely with a X11 forwarding ssh session.

Regards,
 Felix

Reply via email to