About flattening a nullable j.l.Long

Tobias Hartmann tobias.hartmann at oracle.com
Fri Nov 7 10:39:48 UTC 2025


Right, the example provided by Rémi shows the issue. The null marker needs to be written atomically with the payload.

Best regards,
Tobias


On 11/6/25 2:02 PM, Remi Forax wrote:
> Hello,
> as far as i remember, the problem is that you can resurrect a value,
> for example with a Long
> 
> Thread1
>    a.x = new Long(12);
>    a.x = null;
>    IO.println(a.x); //12
> 
> Thread2
>    IO.println(a.x);  // null
>    a.x = new Long(77);   // descheduled in between writing the maker and writing the long
> 
> 
> The thread1 can see the Long(12) to be resurrected, something that is not possible with references.
> 
> regards,
> Rémi
> 
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> 
>     *From: *"Quân Anh Mai" <anhmdq at gmail.com>
>     *To: *"David Alayachew" <davidalayachew at gmail.com>
>     *Cc: *"valhalla-dev" <valhalla-dev at openjdk.org>
>     *Sent: *Thursday, November 6, 2025 3:52:41 AM
>     *Subject: *Re: About flattening a nullable j.l.Long
> 
>     Ah yes, my bad, it is https://github.com/openjdk/valhalla/pull/1720 <https://github.com/openjdk/valhalla/pull/1720>
> 
>     On Thu, 6 Nov 2025 at 07:26, David Alayachew <davidalayachew at gmail.com <mailto:davidalayachew at gmail.com>> wrote:
> 
>         Just a heads up, your [1] is a dead link. Can you try to put the url in again?
> 
>         On Wed, Nov 5, 2025, 2:06 PM Quân Anh Mai <anhmdq at gmail.com <mailto:anhmdq at gmail.com>> wrote:
> 
>             Hi,
>             Currently, I'm having a PR that allows flattening of a nullable value class with a 64-bit payload [1]. Dan Smith told me that some ideas along these lines were discussed a few years ago, and the consensus was that it was a dead end. May I ask what the concerns were, and whether they are still relevant now?
> 
>             Thanks a lot,
>             Quan Anh
> 
> 



More information about the valhalla-dev mailing list