Search Issue Tracker

Fixed

Fixed in 2023.1.X, 2023.1.0a1

Votes

0

Found in

2022.1.2f1

2022.2.0a15

2023.1.0a1

Issue ID

UUM-658

Regression

No

NullReferenceException thrown when SerializedProperty.boxedValue is set to null

Serialization

-

Reproduction steps:
1. Open the attached project "1420665.zip"
2. Select a GameObject in the Hierarchy window
3. Click "Example\\Log Property Values" in the menu bar

Expected result: No NullReferenceException thrown
Actual result: A NullReferenceException is thrown:
"NullReferenceException: Object reference not set to an instance of an object
UnityEditor.SerializedProperty.set_boxedValue (System.Object value) (at /Users/bokken/buildslave/unity/build/Editor/Mono/SerializedProperty.bindings.cs:373)
BoxedValueExample.LogValue (UnityEditor.SerializedProperty serializedProperty, System.Text.StringBuilder log) (at Assets/BoxedValueExample.cs:56)
BoxedValueExample.LogProperties (UnityEngine.Object obj, System.Text.StringBuilder log) (at Assets/BoxedValueExample.cs:40)
BoxedValueExample.MenuCallback () (at Assets/BoxedValueExample.cs:14)"

Reproducible with: 2022.1.2f1, 2022.2.0a15
Not reproducible with: 2019.4.39f1, 2020.3.35f1, 2021.3.3f1 (SerializedProperty does not have a boxedValue property)

Reproducible on: macOS 12.0.1

  1. Resolution Note (fix version 2023.1):

    This fix detect the null case in the boxedValue setter and throws an exception with clear error message rather than a the prior behaviour of throwing a general NullReferenceException.

    The property types "ManagedReference", "ObjectReference" and "ExposedReference" can still be set to null because they are reference types.

Add comment

Log in to post comment