RFR JDK-8194667: Regex: Serialization doesn't work with match flags
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
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
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
participants (2)
-
Roger Riggs
-
Xueming Shen