RFR JDK-8194667: Regex: Serialization doesn't work with match flags

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

RFR JDK-8194667: Regex: Serialization doesn't work with match flags

Xueming Shen
Hi,

Please help review the change for JDK-8194667

issue: https://bugs.openjdk.java.net/browse/JDK-8194667
webrev: http://cr.openjdk.java.net/~sherman/8194667/webrev

The bits of "flags" are being updated on and off during the pattern
compiling by
the possible embedded match flag(s) in old implementation. The proposed
fix is
to add a temporary field "flags0" for this purpose and save/store
"flags" for the
purpose of deserialization (same as the field "pattern").

For the compatibility concern I'm leaving the behavior of method flags()
unchanged
to return the muted "flags". Arguably it might be desired to return the
original "flags"
instead. We can leave this "issue" for future RFE.

1145     public int flags() {
1146         return flags0;
1147     }


Thanks,
Sherman
Reply | Threaded
Open this post in threaded view
|

Re: RFR JDK-8194667: Regex: Serialization doesn't work with match flags

roger riggs
Hi Sherman,

flag0 javadoc:

/**
  957      * The pattern flags used during compiling. The flags might be turn*ed*  on and
  958      * off by*an *embedded flag.
  959      */

2946-3047: Can an exception happen between save and restore? Would the
value of flag0 matter if so?

+Copyright year update

Regards, Roger

On 1/12/2018 11:48 AM, Xueming Shen wrote:

> Hi,
>
> Please help review the change for JDK-8194667
>
> issue: https://bugs.openjdk.java.net/browse/JDK-8194667
> webrev: http://cr.openjdk.java.net/~sherman/8194667/webrev
>
> The bits of "flags" are being updated on and off during the pattern
> compiling by
> the possible embedded match flag(s) in old implementation. The
> proposed fix is
> to add a temporary field "flags0" for this purpose and save/store
> "flags" for the
> purpose of deserialization (same as the field "pattern").
>
> For the compatibility concern I'm leaving the behavior of method
> flags() unchanged
> to return the muted "flags". Arguably it might be desired to return
> the original "flags"
> instead. We can leave this "issue" for future RFE.
>
> 1145     public int flags() {
> 1146         return flags0;
> 1147     }
>
>
> Thanks,
> Sherman

Reply | Threaded
Open this post in threaded view
|

Re: RFR JDK-8194667: Regex: Serialization doesn't work with match flags

Xueming Shen
On 1/12/18, 10:22 AM, Roger Riggs wrote:

> Hi Sherman,
>
> flag0 javadoc:
>
> /**
>  957      * The pattern flags used during compiling. The flags might
> be turn*ed*  on and
>  958      * off by*an *embedded flag.
>  959      */
>
> 2946-3047: Can an exception happen between save and restore? Would the
> value of flag0 matter if so?
if there is any exception thrown (in the middle of pattern compiling)
you don't even get a
Pattern object. So the status of "flag0" does not matter at all in this
circumstance.

>
> +Copyright year update

will be updated accordingly.

thanks,
sherman

>
> Regards, Roger
>
> On 1/12/2018 11:48 AM, Xueming Shen wrote:
>> Hi,
>>
>> Please help review the change for JDK-8194667
>>
>> issue: https://bugs.openjdk.java.net/browse/JDK-8194667
>> webrev: http://cr.openjdk.java.net/~sherman/8194667/webrev
>>
>> The bits of "flags" are being updated on and off during the pattern
>> compiling by
>> the possible embedded match flag(s) in old implementation. The
>> proposed fix is
>> to add a temporary field "flags0" for this purpose and save/store
>> "flags" for the
>> purpose of deserialization (same as the field "pattern").
>>
>> For the compatibility concern I'm leaving the behavior of method
>> flags() unchanged
>> to return the muted "flags". Arguably it might be desired to return
>> the original "flags"
>> instead. We can leave this "issue" for future RFE.
>>
>> 1145     public int flags() {
>> 1146         return flags0;
>> 1147     }
>>
>>
>> Thanks,
>> Sherman
>