2012-03-21 14 views
6

Mam problem z serializowaniem relacji ORM pokazującej tylko dwa pierwsze rekordy. Reszta pokazuje [] puste.SerializeJSON Tylko powracające pierwsze dwie rekordy

Oto przykład zależność:

property name="endorsements" singularname="endorsement" fieldtype="one-to-many" lazy="false" fkcolumn="xxx" cfc="endorsements" remotingfetch="true"; 

Pierwsze JSON:

policy = entityLoad("policy",1018379202)[1]; 
serializeJSON(policy); 

a ścięte części JSON:

{"id":12321,"endorsements":[{"effectiveDate":"July, 01 2009 00:00:00","active":true}, 
{"effectiveDate":"July, 01 2009 00:00:00","active":true}, 
"","","","","","","","",""]} 

Puste struny powinny być inne zapisy w związku.

Sprawdziłem za pomocą plików debugowania, że ​​kwerenda Hibernacja przywraca wszystkie rekordy, a także pokazuje to cfdump.

Myśli?

+0

Jest coś niezwykłego w treści trzeciego rekordu? Ponadto, jeśli masz do czynienia z innym rekordem "polityki" (który prawdopodobnie będzie miał inne rekordy "potwierdzania" dziecka), czy nadal masz dokładnie ten sam problem (tylko dwa rekordy, gdy powinno być ich więcej)? –

+0

Czy są tam wszystkie rekordy, jeśli zrzucisz zasadę, czy utraci je tylko po wywołaniu serializeJSON()? – baynezy

+0

@JakeFeasel Nic dziwnego w trzeciej płycie i mam ten sam problem z innymi obiektami. –

Odpowiedz

4

Błąd występuje w coldfusion.runtime.JSONUtils.serializeJSON() w okolicy linii 409.

Jeśli SZEREGOWANIE trwałe CFC, dodaje pełną nazwę CFC do ArrayList, która jest przekazywana wokół rekursywnie.

Następnie istnieje instrukcja if(), która próbuje zlokalizować pełną nazwę cfc, a gdy pojawi się więcej niż dwa razy na liście, opuszcza funkcję wcześnie z "{}".

Nie jestem pewien, co próbowali osiągnąć, jeśli(). Możliwe przetwarzanie odwołań cyklicznych?

Ten błąd był zalogowany w kwietniu: https://bugbase.adobe.com/index.cfm?event=bug&id=3175667

+0

dziękuję. cieszę się, że nie oszaleję. – Prometheus

+1

Podczas gdy kod w JSONUtils jest całkiem inny w cf901 i cf10, oba wywołują ten sam błąd - tylko pierwsze 2 są serializowane poprawnie - pozostałe są pustymi strukturami. –

Powiązane problemy