[GitHub] [spark] gengliangwang commented on a diff in pull request #39666: [SPARK-42130][UI] Handle null string values in AccumulableInfo and ProcessSummary
gengliangwang commented on code in PR #39666: URL: https://github.com/apache/spark/pull/39666#discussion_r1082936874 ## core/src/main/protobuf/org/apache/spark/status/protobuf/store_types.proto: ## @@ -22,7 +22,12 @@ package org.apache.spark.status.protobuf; * Developer guides: * - Coding style: https://developers.google.com/protocol-buffers/docs/style * - Use int64 for job/stage IDs, in case of future extension in Spark core. - * - Use `weakIntern` on string values in create new objects during deserialization. + * - For string fields: + * - use `optional string` for protobuf definition + * - on serialization, check if the string is null to avoid NPE + * - on deserialization, set string fields as null if it is not set. Also, use `weakIntern` on + * string values in create new objects during deserialization. + * - add tests with null string inputs Review Comment: AFAIK no. Unless we modify the protoc for generating java. I think having tests for setting all string fields as nulls should be enough for now. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org
[GitHub] [spark] gengliangwang commented on a diff in pull request #39666: [SPARK-42130][UI] Handle null string values in AccumulableInfo and ProcessSummary
gengliangwang commented on code in PR #39666: URL: https://github.com/apache/spark/pull/39666#discussion_r1082286371 ## core/src/main/scala/org/apache/spark/status/protobuf/Utils.scala: ## @@ -17,10 +17,24 @@ package org.apache.spark.status.protobuf +import com.google.protobuf.MessageOrBuilder + object Utils { def getOptional[T](condition: Boolean, result: () => T): Option[T] = if (condition) { Some(result()) } else { None } + + def setStringField(input: String, f: String => MessageOrBuilder): Unit = { Review Comment: On second thought, there is no convenient way for getting optional map. As per your suggestion, there will be `setField` and `getStringField`, which become asymmetrical. I will keep the current code -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org
[GitHub] [spark] gengliangwang commented on a diff in pull request #39666: [SPARK-42130][UI] Handle null string values in AccumulableInfo and ProcessSummary
gengliangwang commented on code in PR #39666: URL: https://github.com/apache/spark/pull/39666#discussion_r1082251439 ## core/src/main/scala/org/apache/spark/status/protobuf/Utils.scala: ## @@ -17,10 +17,24 @@ package org.apache.spark.status.protobuf +import com.google.protobuf.MessageOrBuilder + object Utils { def getOptional[T](condition: Boolean, result: () => T): Option[T] = if (condition) { Some(result()) } else { None } + + def setStringField(input: String, f: String => MessageOrBuilder): Unit = { Review Comment: Sure -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org
[GitHub] [spark] gengliangwang commented on a diff in pull request #39666: [SPARK-42130][UI] Handle null string values in AccumulableInfo and ProcessSummary
gengliangwang commented on code in PR #39666: URL: https://github.com/apache/spark/pull/39666#discussion_r1082251439 ## core/src/main/scala/org/apache/spark/status/protobuf/Utils.scala: ## @@ -17,10 +17,24 @@ package org.apache.spark.status.protobuf +import com.google.protobuf.MessageOrBuilder + object Utils { def getOptional[T](condition: Boolean, result: () => T): Option[T] = if (condition) { Some(result()) } else { None } + + def setStringField(input: String, f: String => MessageOrBuilder): Unit = { Review Comment: Sure -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org - To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org