 <p>The problem you're having is not related to GWT <em>per se</em>, but with Java itself. When you do:</p> <pre><code>private void setMuplDef(MultiUploader muplDef, ...) { muplDef = new MultiUploader(); </code></pre> <p>... you must remember that in Java you always copy the reference of the parameter when you call a method (more about that in <a href="http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value">here</a>). In that matter, you can't pass your <code>muplDefPdf</code> field as parameter expecting it to be instantiated inside the method.</p> <p>For your code to work properly, you need to do:</p> <pre><code>public MyClass() { muplDefPdf = new MultiUploader(); setMuplDef(muplDefPdf, "pdf", onFinishUploaderHandlerPdf, onCancelUploaderHanderPdf); muplDefJpg = new MultiUploader(); setMuplDef(muplDefJpg, "jpg", onFinishUploaderHandlerJpg, onCancelUploaderHanderJpg); initWidget(uiBinder.createAndBindUi(this)); } </code></pre> <p>... and remove the <code>muplDef = new MultiUploader();</code> line inside the <code>setMuplDef</code> method.</p>