@@ -63,6 +63,8 @@ public void writeUserData(String sessionId, String userId) {
6363 writer .flush ();
6464 } catch (Exception e ) {
6565 Logger .getLogger ().w ("Error serializing user metadata." , e );
66+ } catch (OutOfMemoryError e ) {
67+ Logger .getLogger ().w ("OOM serializing user metadata." , e );
6668 } finally {
6769 CommonUtils .closeOrLog (writer , "Failed to close user metadata file." );
6870 }
@@ -86,6 +88,9 @@ public String readUserId(String sessionId) {
8688 } catch (Exception e ) {
8789 Logger .getLogger ().w ("Error deserializing user metadata." , e );
8890 safeDeleteCorruptFile (f );
91+ } catch (OutOfMemoryError e ) {
92+ Logger .getLogger ().w ("OOM deserializing user metadata." , e );
93+ safeDeleteCorruptFile (f );
8994 } finally {
9095 CommonUtils .closeOrLog (is , "Failed to close user metadata file." );
9196 }
@@ -108,6 +113,9 @@ public void writeKeyData(String sessionId, Map<String, String> keyData, boolean
108113 } catch (Exception e ) {
109114 Logger .getLogger ().w ("Error serializing key/value metadata." , e );
110115 safeDeleteCorruptFile (f );
116+ } catch (OutOfMemoryError e ) {
117+ Logger .getLogger ().w ("OOM serializing key/value metadata." , e );
118+ safeDeleteCorruptFile (f );
111119 } finally {
112120 CommonUtils .closeOrLog (writer , "Failed to close key/value metadata file." );
113121 }
@@ -132,6 +140,9 @@ Map<String, String> readKeyData(String sessionId, boolean isInternal) {
132140 } catch (Exception e ) {
133141 Logger .getLogger ().w ("Error deserializing user metadata." , e );
134142 safeDeleteCorruptFile (f );
143+ } catch (OutOfMemoryError e ) {
144+ Logger .getLogger ().w ("OOM deserializing user metadata." , e );
145+ safeDeleteCorruptFile (f );
135146 } finally {
136147 CommonUtils .closeOrLog (is , "Failed to close user metadata file." );
137148 }
@@ -155,6 +166,9 @@ public List<RolloutAssignment> readRolloutsState(String sessionId) {
155166 } catch (Exception e ) {
156167 Logger .getLogger ().w ("Error deserializing rollouts state." , e );
157168 safeDeleteCorruptFile (f );
169+ } catch (OutOfMemoryError e ) {
170+ Logger .getLogger ().w ("OOM deserializing rollouts state." , e );
171+ safeDeleteCorruptFile (f );
158172 } finally {
159173 CommonUtils .closeOrLog (is , "Failed to close rollouts state file." );
160174 }
@@ -177,6 +191,9 @@ public void writeRolloutState(String sessionId, List<RolloutAssignment> rollouts
177191 } catch (Exception e ) {
178192 Logger .getLogger ().w ("Error serializing rollouts state." , e );
179193 safeDeleteCorruptFile (f );
194+ } catch (OutOfMemoryError e ) {
195+ Logger .getLogger ().w ("OOM serializing rollouts state." , e );
196+ safeDeleteCorruptFile (f );
180197 } finally {
181198 CommonUtils .closeOrLog (writer , "Failed to close rollouts state file." );
182199 }
0 commit comments