[
https://issues.apache.org/jira/browse/NETBEANS-4754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17188228#comment-17188228
]
Svatopluk Dedic commented on NETBEANS-4754:
-------------------------------------------
The patch disables the {{enabler}}, that's fine for debugging, but not
acceptable in general; {{enabledOn}} attribute relies on that.
> Action gets called with wrong context until garbage collection
> --------------------------------------------------------------
>
> Key: NETBEANS-4754
> URL: https://issues.apache.org/jira/browse/NETBEANS-4754
> Project: NetBeans
> Issue Type: Bug
> Components: platform - Actions
> Affects Versions: 12.0
> Environment: NetBeans Platform application running on NetBeans
> Platform 12.0 on Windows 10 / Java 13.0.2.
> Reporter: Eirik Bakke
> Assignee: Svatopluk Dedic
> Priority: Major
> Attachments: netbeans-4754-eiriktest.patch
>
>
> My NetBeans Platform application has an action declared as follows:
> {code:java}
> @ActionID(category = "Ultorg", id = "com.ultorg.actionids.FieldsAction")
> @ActionRegistration(displayName = "#CTL_FieldsAction")
> @Messages("CTL_FieldsAction=Fields & Joins...")
> public class FieldsAction implements ActionListener {
> private final ToolboxInvoker invoker;
> public FieldsAction(ToolboxInvoker invoker) {
> Preconditions.checkNotNull(invoker);
> this.invoker = invoker;
> }
> @Override
> public void actionPerformed(ActionEvent e) {
> invoker.invoke();
> }
> }
> {code}
> The ToolboxInvoker context is provided by the lookup of a custom TopComponent
> implementation. When I have multiple such TopComponent tabs open, switching
> between them, and invoking the action above with a keyboard shortcut, the
> wrong FieldsAction instance will occasionally be called (i.e. an instance
> with the wrong ToolboxInvoker context).
> After some debugging, the problem seems to be caused by
> https://github.com/apache/netbeans/pull/652 , specifically by
> ContextAction.delegate0 assuming that instDelegate can be used as a cached
> value without checking whether the lookup (data parameter) has changed. Or
> perhaps instDelegate was supposed to be cleared elsewhere whenever the lookup
> changes--but this is not happening properly.
> Because the instDelegate field holds only weak references, the buggy state
> only lasts until the next garbage collection.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists