Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NPE i RoadObjectRequest::toMutable #105

Closed
okkero opened this issue Mar 23, 2021 · 3 comments
Closed

NPE i RoadObjectRequest::toMutable #105

okkero opened this issue Mar 23, 2021 · 3 comments

Comments

@okkero
Copy link

okkero commented Mar 23, 2021

RoadObjectRequest::toMutable kaster en NPE hvis allVersions ikke har blitt satt (f.eks ved å kalle withAllVersions på builderen).

Problemet bryter ned til bruk av Boolean wrapper-typen i feltene, mens parameteret til withAllVersions bruker boolean-primitiven. Så hvis et RoadObjectRequest-objekt har blitt bygget uten at allVersions har blitt satt, ender man opp med allVersions lik null. toMutable prøver så å kalle RoadObjectRequest.Builder::withAllVersions med RoadObjectRequest-objektets allVersions-verdi som umiddelbart konverteres til boolean, som ender opp med å kaste en NPE fordi null ikke er en gyldig boolean-verdi.

https://github.com/nvdb-vegdata/nvdb-api-client/blob/master/src/main/java/no/vegvesen/nvdbapi/client/clients/RoadObjectRequest.java#L532

@johannsl
Copy link
Contributor

johannsl commented Mar 25, 2021

@okkero Tror du vi slipper unna med å bare bytte parameter typen til referansetypen Boolean?

Det kan jo potensielt brekke systemene til brukere, men det er jo ikke all verden å endre feks. true til Boolean.TRUE

@okkero
Copy link
Author

okkero commented Mar 26, 2021

Den løsningen skal være 100% bakoverkompatibel. Autoboxing tar seg av konverteringen fra true/false.

@johannsl
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants