| 
					
				 | 
			
			
				@@ -523,8 +523,17 @@ void ImmutablePrimitiveOneofFieldGenerator:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 GenerateSerializationCode(io::Printer* printer) const { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   printer->Print(variables_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     "if ($has_oneof_case_message$) {\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    "  output.write$capitalized_type$(\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    "      $number$, ($type$)(($boxed_type$) $oneof_name$_));\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "  output.write$capitalized_type$(\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // $type$ and $boxed_type$ is the same for bytes fields so we don't need to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // do redundant casts. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (GetJavaType(descriptor_) == JAVATYPE_BYTES) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    printer->Print(variables_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "      $number$, ($type$) $oneof_name$_);\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    printer->Print(variables_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "      $number$, ($type$)(($boxed_type$) $oneof_name$_));\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  printer->Print( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     "}\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -533,8 +542,17 @@ GenerateSerializedSizeCode(io::Printer* printer) const { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   printer->Print(variables_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     "if ($has_oneof_case_message$) {\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     "  size += com.google.protobuf.CodedOutputStream\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    "    .compute$capitalized_type$Size(\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    "        $number$, ($type$)(($boxed_type$) $oneof_name$_));\n" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    "    .compute$capitalized_type$Size(\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // $type$ and $boxed_type$ is the same for bytes fields so we don't need to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // do redundant casts. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (GetJavaType(descriptor_) == JAVATYPE_BYTES) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    printer->Print(variables_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "        $number$, ($type$) $oneof_name$_);\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    printer->Print(variables_, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      "        $number$, ($type$)(($boxed_type$) $oneof_name$_));\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  printer->Print( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     "}\n"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |