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