Opened 11 years ago

Closed 11 years ago

#12761 closed enhancement (fixed)

ItemFileReadStore: don't modify original data objects — at Version 3

Reported by: bht Owned by: Jared Jurkiewicz
Priority: high Milestone: 1.6
Component: Data Version: 1.6.0
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by bill)

For data, the documentation contains a disclaimer:

"The data object passed in is directly used and modified. If you want to reuse a data object, make sure you copy it before you pass it in."

However, with the effort required to use the implementation, one expects to deal with a MVC architecture that leaves the business objects alone, as other frameworks do.

With that I mean that the implementation expects a Model, with implementation specific requirements, which contains in it the Model Object.

It appears that dojo converts attributes of the model objects into arrays containing the attributes at index 0.

I think that the whole scenario is actually quite rude, to apply such bad practice and then add a disclaimer to the docs like, deal with it, we told you so.

So this issue is about changing the ItemFileReadStore in such a way that it does not mess around with the model objects. If it really needs its own data to play with then it should create it.

Change History (3)

comment:1 Changed 11 years ago by Jared Jurkiewicz

Milestone: tbdfuture
Priority: highnormal
Resolution: wontfix
Status: newclosed
Type: defectenhancement

The store clearly states its expectations and what behaviors it has. It isn't a disclaimer, it's a clear statement on what it does. Therefore this cannot be classified as a bug and has been adjusted to enhancement state to alter current behavior.

comment:2 Changed 11 years ago by Jared Jurkiewicz

Resolution: wontfix
Status: closedreopened

comment:3 Changed 11 years ago by bill

Description: modified (diff)
Milestone: future1.6
Resolution: fixed
Status: reopenedclosed
Summary: ItemFileReadStore is not read-onlyItemFileReadStore: don't modify original data objects

Surely we won't change ItemFileReadStore as it's essentially deprecated in favor of The good news is that that doesn't add any attributes to the original objects. Confirmed by running util/doh/runner.html? and setting a breakpoint around the first store.get() call.

I'm going to mark this as fixed in 1.6, through the new API.

Note: See TracTickets for help on using tickets.