FLUID-5667: Circularity in material sent for options expansion is not detected

Metadata

Source
FLUID-5667
Type
Bug
Priority
Major
Status
Closed
Resolution
Fixed
Assignee
Antranig Basman
Reporter
Antranig Basman
Created
2015-05-19T12:18:41.664-0400
Updated
2017-02-27T15:49:14.756-0500
Versions
N/A
Fixed Versions
  1. 2.0
Component
  1. Framework

Description

FLUID-5088 and FLUID-4978 provide some measure of resistance to circularity during options expansion. However, there's an important case we haven't tackled - if the material to be expanded is ALREADY circular by the time it is referenced from the options material. This arose in the context of the gpii-express project where the following definition of a dynamic subcomponent:

timeoutResponse: {
createOnEvent: "onNewTimeoutRequest",
type: "gpii.express.tests.requestAware.request",
options: {
request: "{arguments}.0",
response: "{arguments}.1"
}
}

referred via "arguments" to the native express request and response objects. This caused a failure through memory exhaustion. In the browser, we get a "call stack exceeded" messages. This should be detected by a dedicated framework pathway which provides a readable diagnostic.

Comments