diff --git a/java_gen/java_type.py b/java_gen/java_type.py
index 07e50d9..351765b 100644
--- a/java_gen/java_type.py
+++ b/java_gen/java_type.py
@@ -470,6 +470,8 @@
             funnel='ChannelUtilsVer10.putSupportedActionsTo($name, sink)')
 of_group = JType("OFGroup") \
          .op(version=ANY, read="OFGroup.read4Bytes(bb)", write="$name.write4Bytes(bb)", default="OFGroup.ALL")
+of_group_default_any = JType("OFGroup") \
+         .op(version=ANY, read="OFGroup.read4Bytes(bb)", write="$name.write4Bytes(bb)", default="OFGroup.ANY")
 # the outgroup field of of_flow_stats_request has a special default value
 of_group_default_any = JType("OFGroup") \
          .op(version=ANY, read="OFGroup.read4Bytes(bb)", write="$name.write4Bytes(bb)", default="OFGroup.ANY")
@@ -679,8 +681,10 @@
             .op(read='bb.readShort()', write='bb.writeShort($name)')
     elif field_name == "type" and re.match(r'of_instruction.*', obj_name):
         return instruction_type
-    elif obj_name in ("of_flow_add", "of_flow_modify", "of_flow_modify_strict", "of_delete_strict") and  field_name == "table_id" and c_type == "uint8_t":
+    elif loxi_utils.class_is(obj_name, "of_flow_mod") and field_name == "table_id" and c_type == "uint8_t":
         return table_id_default_zero
+    elif loxi_utils.class_is(obj_name, "of_flow_mod") and field_name == "out_group" and c_type == "uint32_t":
+        return of_group_default_any
     elif field_name == "table_id" and c_type == "uint8_t":
         return table_id
     elif field_name == "version" and c_type == "uint8_t":
diff --git a/test_data/of13/flow_add.data b/test_data/of13/flow_add.data
index 0766375..d566096 100644
--- a/test_data/of13/flow_add.data
+++ b/test_data/of13/flow_add.data
@@ -82,7 +82,7 @@
     .setPriority(6000)
     .setBufferId(OFBufferId.of(50))
     .setOutPort(OFPort.of(6))
-    .setOutGroup(8)
+    .setOutGroup(OFGroup.of(8))
     .setFlags(ImmutableSet.<OFFlowModFlags>of())
     .setMatch(
         factory.buildMatch()
diff --git a/test_data/of13/flow_delete.data b/test_data/of13/flow_delete.data
index 6148d21..bf9c453 100644
--- a/test_data/of13/flow_delete.data
+++ b/test_data/of13/flow_delete.data
@@ -82,7 +82,7 @@
     .setPriority(6000)
     .setBufferId(OFBufferId.of(50))
     .setOutPort(OFPort.of(6))
-    .setOutGroup(8)
+    .setOutGroup(OFGroup.of(8))
     .setFlags(ImmutableSet.<OFFlowModFlags>of())
     .setMatch(
         factory.buildMatch()
diff --git a/test_data/of13/flow_delete_strict.data b/test_data/of13/flow_delete_strict.data
index 7e4d233..c33e4f8 100644
--- a/test_data/of13/flow_delete_strict.data
+++ b/test_data/of13/flow_delete_strict.data
@@ -82,7 +82,7 @@
     .setPriority(6000)
     .setBufferId(OFBufferId.of(50))
     .setOutPort(OFPort.of(6))
-    .setOutGroup(8)
+    .setOutGroup(OFGroup.of(8))
     .setFlags(ImmutableSet.<OFFlowModFlags>of())
     .setMatch(
         factory.buildMatch()
diff --git a/test_data/of13/flow_modify.data b/test_data/of13/flow_modify.data
index 83234f5..6f3ebee 100644
--- a/test_data/of13/flow_modify.data
+++ b/test_data/of13/flow_modify.data
@@ -82,7 +82,7 @@
     .setPriority(6000)
     .setBufferId(OFBufferId.of(50))
     .setOutPort(OFPort.of(6))
-    .setOutGroup(8)
+    .setOutGroup(OFGroup.of(8))
     .setFlags(ImmutableSet.<OFFlowModFlags>of())
     .setMatch(
         factory.buildMatch()
diff --git a/test_data/of13/flow_modify_strict.data b/test_data/of13/flow_modify_strict.data
index 1d6f4c3..26e55a4 100644
--- a/test_data/of13/flow_modify_strict.data
+++ b/test_data/of13/flow_modify_strict.data
@@ -82,7 +82,7 @@
     .setPriority(6000)
     .setBufferId(OFBufferId.of(50))
     .setOutPort(OFPort.of(6))
-    .setOutGroup(8)
+    .setOutGroup(OFGroup.of(8))
     .setFlags(ImmutableSet.<OFFlowModFlags>of())
     .setMatch(
         factory.buildMatch()
