I am testing against geoserver shapefile logs to see it it is uDig issuing two requests. Adding a tasmania road results in the following:
<Transaction xmlns:topp="
http://www.openplans.org/topp" xmlns="
http://www.opengis.net/wfs" xmlns:gml="
http://www.opengis.net/gml" xmlns:ogc="
http://www.opengis.net/ogc" version="1.0.0" service="WFS" lockAction="ALL"><Insert><topp:tasmania_roads fid="newtopp:tasmania_roads.9223372036854775807"><topp:the_geom><gml:MultiLineString srsName="EPSG:4326"><gml:lineStringMember><gml:LineString><gml:coordinates decimal="." cs="," ts=" ">146.17758915278125,-42.23955331595147 146.21235106381766,-42.218393891842354 146.25315852459954,-42.191188917987766 146.27431794870864,-42.17456365618774</gml:coordinates>
</gml:LineString>
</gml:lineStringMember>
</gml:MultiLineString>
</topp:the_geom>
<topp:TYPE></topp:TYPE>
</topp:tasmania_roads>
</Insert>
</Transaction>
Request: transaction
handle = null
service = WFS
version = 1.0.0
baseUrl =
http://localhost:8080/geoserver/
providedVersion = null
lockId = null
group = [wfs:insert=net.opengis.wfs.impl.InsertElementTypeImpl@e03802 (feature: [SimpleFeatureImpl:tasmania_roads=[SimpleFeatureImpl.Attribute: the_geom<the_geom id=newtopp:tasmania_roads.9223372036854775807>=MULTILINESTRING ((146.17758915278125 -42.23955331595147, 146.21235106381766 -42.218393891842354, 146.25315852459954 -42.191188917987766, 146.27431794870864 -42.17456365618774)), SimpleFeatureImpl.Attribute: TYPE<TYPE id=newtopp:tasmania_roads.9223372036854775807>=]], handle: null, idgen: <unset>, inputFormat: <unset>, srsName: null)]
insert = [
net.opengis.wfs.impl.InsertElementTypeImpl@e03802 (feature: [SimpleFeatureImpl:tasmania_roads=[SimpleFeatureImpl.Attribute: the_geom<the_geom id=newtopp:tasmania_roads.9223372036854775807>=MULTILINESTRING ((146.17758915278125 -42.23955331595147, 146.21235106381766 -42.218393891842354, 146.25315852459954 -42.191188917987766, 146.27431794870864 -42.17456365618774)), SimpleFeatureImpl.Attribute: TYPE<TYPE id=newtopp:tasmania_roads.9223372036854775807>=]], handle: null, idgen: <unset>, inputFormat: <unset>, srsName: null)]
update = []
delete = []
native = []
releaseAction = ALL
So that looks like only one input request coming from uDig.