
|
If you were logged in you would be able to see more operations.
|
|
|
| Severity: |
Minor
|
| Fixed in Change#: |
6,326
|
| Runtime: |
N/A
|
| Fix in hand: |
False
|
|
Setting autorequest="true" shouldn't invoke doRequest oninit. That's what the request attribute is supposed to do.
<canvas debug="true">
<!-- suppress spurious compilation warning -->
<attribute name="validate" value="false"/>
<!-- This should not invoke doRequest oninit, but it does. -->
<class name="mydataset" extends="dataset" request="false" autorequest="true">
<method name="doRequest" args="anArg">
Debug.write("should not have been invoked. request is " + this.request);
</method>
</class>
<mydataset name="mydset"/>
</canvas>
Compare to the way it should work:
<canvas debug="true">
<dataset name="dset" request="false" autorequest="true">
<method name="doRequest" args="anArg">
Debug.write("this does not get called");
</method>
</dataset>
</canvas>
Workaround for now:
<canvas debug="true">
<!-- suppress spurious compilation warning -->
<attribute name="validate" value="false"/>
<class name="mydataset" extends="dataset" request="false" autorequest="true">
<method name="doRequest" args="anArg">
Debug.write("this will only get called when request is true");
</method>
<method name="init">
super.init();
if (this.request) this.doRequest();
</method>
<!--- work to override setRequest in super class from creating
delegate. -->
<method name="setRequest" args="request">
this.request = request;
</method>
</class>
<mydataset name="mydset"/>
</canvas>
|
|
Description
|
Setting autorequest="true" shouldn't invoke doRequest oninit. That's what the request attribute is supposed to do.
<canvas debug="true">
<!-- suppress spurious compilation warning -->
<attribute name="validate" value="false"/>
<!-- This should not invoke doRequest oninit, but it does. -->
<class name="mydataset" extends="dataset" request="false" autorequest="true">
<method name="doRequest" args="anArg">
Debug.write("should not have been invoked. request is " + this.request);
</method>
</class>
<mydataset name="mydset"/>
</canvas>
Compare to the way it should work:
<canvas debug="true">
<dataset name="dset" request="false" autorequest="true">
<method name="doRequest" args="anArg">
Debug.write("this does not get called");
</method>
</dataset>
</canvas>
Workaround for now:
<canvas debug="true">
<!-- suppress spurious compilation warning -->
<attribute name="validate" value="false"/>
<class name="mydataset" extends="dataset" request="false" autorequest="true">
<method name="doRequest" args="anArg">
Debug.write("this will only get called when request is true");
</method>
<method name="init">
super.init();
if (this.request) this.doRequest();
</method>
<!--- work to override setRequest in super class from creating
delegate. -->
<method name="setRequest" args="request">
this.request = request;
</method>
</class>
<mydataset name="mydset"/>
</canvas>
|
Show » |
|
I didn't want to change the old behavior. It's hard to imagine anyone is depending on this behavior though, and they really ought to be independent, so I'll modify it.