Skip to content

Commit 23edb9c

Browse files
Fix inline type name handling without data member
This addresses an error that occurs when attempting to deserialize classes without data member (empty private data cluster). In these cases, JSONtext is unable to deserialize the private data cluster because it contains no elements (which is not possible for any other kind of cluster). Fixed by checking the number of data elements in the private data cluster before parsing. For empty data clusters parsing is skipped and the data cluster is used as is. References #21
1 parent 4cf12a7 commit 23edb9c

7 files changed

Lines changed: 30 additions & 2 deletions

File tree

Generic Object Serializer Tests/Generic Object Serializer Tests.lvlib

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<Item Name="Country.lvclass" Type="LVClass" URL="../Country/Country.lvclass"/>
2020
<Item Name="Dictionary.lvclass" Type="LVClass" URL="../Dictionary/Dictionary.lvclass"/>
2121
<Item Name="Create Dummy Country Data.vi" Type="VI" URL="../Create Dummy Country Data.vi"/>
22+
<Item Name="No Data Member Subclass.lvclass" Type="LVClass" URL="../No Data Member Subclass/No Data Member Subclass.lvclass"/>
2223
</Item>
2324
<Item Name="Type Name Handling.lvlib" Type="Library" URL="../Type Name Handling/Type Name Handling.lvlib"/>
2425
<Item Name="LabVIEW Extensions.lvlib" Type="Library" URL="../LabVIEW Extensions/LabVIEW Extensions.lvlib"/>

Generic Object Serializer Tests/No Data Member Subclass/No Data Member Subclass.lvclass

Lines changed: 25 additions & 0 deletions
Large diffs are not rendered by default.

Generic Object Serializer Tests/Type Name Handling/Type Name Handling.lvlib

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@
1414
<Item Name="JSON to LVObject - Descendant - Returns Matching Type.vi" Type="VI" URL="../JSON to LVObject - Descendant - Returns Matching Type.vi"/>
1515
<Item Name="JSON to LVObject - Dictionary of Object hierarchy - Returns Object.vi" Type="VI" URL="../../JSON to LVObject - Dictionary of Object hierarchy - Returns Object.vi"/>
1616
<Item Name="JSON to LVObject - Empty Type - Returns Error.vi" Type="VI" URL="../JSON to LVObject - Empty Type - Returns Error.vi"/>
17+
<Item Name="JSON to LVObject - No Data Member - Returns Matching Type.vi" Type="VI" URL="../JSON to LVObject - No Data Member - Returns Matching Type.vi"/>
1718
<Item Name="JSON to LVObject - Undefined Type - Returns Error.vi" Type="VI" URL="../JSON to LVObject - Undefined Type - Returns Error.vi"/>
1819
<Item Name="JSON to LVObject - Unknown Type - Returns Error.vi" Type="VI" URL="../JSON to LVObject - Unknown Type - Returns Error.vi"/>
1920
<Item Name="LVObject to JSON - Base Class - Returns Type.vi" Type="VI" URL="../LVObject to JSON - Base Class - Returns Type.vi"/>
2021
<Item Name="LVObject to JSON - LabVIEW Object - Returns Type.vi" Type="VI" URL="../LVObject to JSON - LabVIEW Object - Returns Type.vi"/>
22+
<Item Name="LVObject to JSON - No Data Member - Returns Type.vi" Type="VI" URL="../LVObject to JSON - No Data Member - Returns Type.vi"/>
2123
</Library>
1.9 KB
Binary file not shown.

JSONtext Object Serialization.lvproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,7 @@
135135
<Item Name="VariantType.lvlib" Type="Library" URL="/&lt;vilib&gt;/Utility/VariantDataType/VariantType.lvlib"/>
136136
<Item Name="VI Scripting - Traverse.lvlib" Type="Library" URL="/&lt;vilib&gt;/Utility/traverseref.llb/VI Scripting - Traverse.lvlib"/>
137137
<Item Name="whitespace.ctl" Type="VI" URL="/&lt;vilib&gt;/Utility/error.llb/whitespace.ctl"/>
138-
<Item Name="Get LV Class Path.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/LVClass/Get LV Class Path.vi"/>
139138
<Item Name="Composition.lvlib" Type="Library" URL="/&lt;vilib&gt;/PNR/LabVIEW Composition/Composition/Composition.lvlib"/>
140-
<Item Name="Is Path and Not Empty.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/file.llb/Is Path and Not Empty.vi"/>
141139
<Item Name="Base64 Support.lvlib" Type="Library" URL="/&lt;vilib&gt;/JDP Science/JSONtext/Base64/Base64 Support.lvlib"/>
142140
<Item Name="MD5Checksum pad.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/MD5Checksum.llb/MD5Checksum pad.vi"/>
143141
<Item Name="MD5Checksum core.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/MD5Checksum.llb/MD5Checksum core.vi"/>
@@ -432,6 +430,8 @@
432430
<Item Name="3494A183FEBB6A11205EA059762AB79BEmpty 2D Array (U64)__ogtk.vi" Type="VI" URL="/&lt;vilib&gt;/addons/_JKI Toolkits/_Caraya_internal_deps/3494A183FEBB6A11205EA059762AB79BEmpty 2D Array (U64)__ogtk.vi"/>
433431
<Item Name="3494A183FEBB6A11205EA059762AB79BEmpty 1D Array (LVObject)__ogtk.vi" Type="VI" URL="/&lt;vilib&gt;/addons/_JKI Toolkits/_Caraya_internal_deps/3494A183FEBB6A11205EA059762AB79BEmpty 1D Array (LVObject)__ogtk.vi"/>
434432
<Item Name="3494A183FEBB6A11205EA059762AB79BEmpty 2D Array (LVObject)__ogtk.vi" Type="VI" URL="/&lt;vilib&gt;/addons/_JKI Toolkits/_Caraya_internal_deps/3494A183FEBB6A11205EA059762AB79BEmpty 2D Array (LVObject)__ogtk.vi"/>
433+
<Item Name="Single String To Qualified Name Array.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/LVClass/Single String To Qualified Name Array.vi"/>
434+
<Item Name="Edit LVLibs.lvlib" Type="Library" URL="/&lt;vilib&gt;/Utility/EditLVLibs/Edit LVLibs.lvlib"/>
435435
</Item>
436436
</Item>
437437
<Item Name="Build Specifications" Type="Build"/>

0 commit comments

Comments
 (0)