anchor.diff:    protected static <%= struct.gwt.jso_name %> create( <%= struct.fields.collect {|field| "#{annotated_type(field, :gwt, :boundary, :final => true) } #{field.name}" }.join(", ") %> )
     {
       final <%= struct.gwt.jso_name %> entity = com.google.gwt.core.client.JavaScriptObject.createObject().cast();
  -<% struct.fields.each do |field|
  +<%
  +  creators_used = []
  +
  +  struct.fields.each do |field|
       converted_value = Proc.new do |var|
         case
           when field.struct? then "(#{field.referenced_struct.gwt.jso_name})#{var}"
  
positive.code:         when field.struct? then "ObjectArray"
          else (raise "Unsupported field type #{field.name}")
        end
  %>
  <% if field.nullable? -%>
      if( null != <%= field.name %> )
  
negative.code: %>    return entity;
    }
  
  <% if creators_used.include?('StringArray') %>
    private static native com.google.gwt.core.client.JsArrayString newNativeStringArray() /*-{ return []; }-*/;
  <% end %>
  <% if creators_used.include?('IntegerArray') %>
    private static native com.google.gwt.core.client.JsArrayInteger newNativeIntegerArray() /*-{ return []; }-*/;
  <% end %>
  <% if creators_used.include?('ObjectArray') %>
    private static native <E extends com.google.gwt.core.client.JavaScriptObject> com.google.gwt.core.client.JsArray<E> newNativeObjectArray() /*-{ return []; }-*/;
  <% end %>
  
  <% struct.fields.select{|field| field.gwt?}.each do |field|
    if field.collection?
  