FLUID-5714: The framework does not correctly merge invoker specifications when both "func" and "funcName" are used

Metadata

Source
FLUID-5714
Type
Bug
Priority
Major
Status
Closed
Resolution
Fixed
Assignee
Antranig Basman
Reporter
Colin Clark
Created
2015-07-21T15:45:26.415-0400
Updated
2017-02-27T15:49:11.797-0500
Versions
  1. 1.5
Fixed Versions
  1. 2.0
Component
  1. Framework

Description

The framework incorrectly merges invoker records (and possibly listener records as well?) when a user attempts to override an invoker bound to a "funcName" with a "func", or vice versa. Instead, it naively merges them, producing an invoker specification that looks like this:

{
funcName: "foo.bar",
func: "{thing}.baz"
}

It seems like we should either elide the distinction between "func" and "funcName" in the framework, or introduce some special logic that will ensure they are correctly merged.

Comments

  • Colin Clark commented 2015-07-21T15:46:09.564-0400

    Attached is a QUnit test that illustrates the issue.

  • Justin Obara commented 2015-07-22T08:37:38.983-0400

    The same thing happens when you have a "this-ist" invoker (i.e. {this: "thisObject", method: "someMethod", args: []} ). Currently we have to null out the original properties when trying to override, but that requires the integrator to know what the underlying structure was.

  • Antranig Basman commented 2015-08-20T15:49:40.717-0400

    Merged into trunk at revision 282f1a318718eed0b0ec060fb8b4ad254417fd7e