title: Generator threw an exception while rebinding
body: <p>I develop the front-end for the GPS-monitoring system. I need to add the new feature - geofence. I have created geofence model and its PropertyAccess interface.
  When I compile the project I getting the error:</p>
  
  <p>Here is the model of geofence:</p>
  
  <pre><code>public class Geofence extends JavaScriptObject {
  
  protected Geofence() {}
  
  public final native int getId() /*-{ return this.id; }-*/;
  public final native String getName() /*-{ return this.name; }-*/;
  public final native String getDescription() /*-{ return this.description; }-*/;
  public final native Type getType() /*-{ return this.type; }-*/;
  public final native Coordinate[] getCoordinates() /*-{ return this.coordinates; }-*/;
  public final native double getRadius() /*-{ return this.radius; }-*/;
  public final native int getUserId() /*-{ return this.userId; }-*/;
  
  public final native void setId(int id) /*-{ this.id = id; }-*/;
  public final native void setName(String name) /*-{ this.name = name; }-*/;
  public final native void setDescription(String description) /*-{ this.description = description; }-*/;
  public final native void setType(Type type) /*-{ this.type = type; }-*/;
  public final native void setCoordinates(Coordinate[] coordinates) /*-{ this.coordinates = coordinates; }-*/;
  public final native void setRadius(double radius) /*-{ this.radius = radius; }-*/;
  public final native void setUserId(int userId) /*-{ this.userId = userId; }-*/;
  
  public final String getEmpty() {
      return "";
  }
  }
  </code></pre>
  
  <p>and the interface to access its properties:</p>
  
  <pre><code>public interface GeofenceProperties extends PropertyAccess&lt;Geofence&gt; {
  
  @Editor.Path("id")
  ModelKeyProvider&lt;Geofence&gt; key();
  
  ValueProvider&lt;Geofence, Integer&gt; id();
  ValueProvider&lt;Geofence, String&gt; name();
  ValueProvider&lt;Geofence, String&gt; description();
  ValueProvider&lt;Geofence, Coordinate[]&gt; coordinates();
  ValueProvider&lt;Geofence, Double&gt; radius();
  ValueProvider&lt;Geofence, Integer&gt; userId();
  ValueProvider&lt;Geofence, String&gt; empty();
  }
  </code></pre>
  
  <p>Here is the error:</p>
  
  <blockquote>
    <p>Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors.
             Computing all possible rebind results for 'org.bitbucket.treklab.client.model.GeofenceProperties'
                Rebinding org.bitbucket.treklab.client.model.GeofenceProperties
                   Invoking generator com.sencha.gxt.data.rebind.PropertyAccessGenerator
                      [ERROR] Generator 'com.sencha.gxt.data.rebind.PropertyAccessGenerator' threw an exception while rebinding 'org.bitbucket.treklab.client.model.GeofenceProperties'
        java.lang.NullPointerException
        at com.sencha.gxt.data.rebind.ValueProviderCreator.typesMatch(ValueProviderCreator.java:315)
        at com.sencha.gxt.data.rebind.ValueProviderCreator.getSetterExpression(ValueProviderCreator.java:297)
        at com.sencha.gxt.data.rebind.ValueProviderCreator.appendSetterBody(ValueProviderCreator.java:134)
        at com.sencha.gxt.data.rebind.ValueProviderCreator.create(ValueProviderCreator.java:93)
        at com.sencha.gxt.core.rebind.AbstractCreator.create(AbstractCreator.java:48)
        at com.sencha.gxt.data.rebind.PropertyAccessGenerator.generate(PropertyAccessGenerator.java:94)
        at com.google.gwt.core.ext.IncrementalGenerator.generateNonIncrementally(IncrementalGenerator.java:40)
        at com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncrementally(StandardGeneratorContext.java:760)
        at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:160)
        at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(StandardRebindOracle.java:79)
        at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:276)
        at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:265)
        at com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPossibleRebindAnswers(DistillerRebindPermutationOracle.java:87)
        at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.createStaticRebindExpression(UnifyAst.java:485)
        at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.createRebindExpression(UnifyAst.java:443)
        at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.handleMagicMethodCall(UnifyAst.java:576)
        at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.endVisit(UnifyAst.java:306)
        at com.google.gwt.dev.jjs.ast.JMethodCall.traverse(JMethodCall.java:248)
        at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285)
        at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:128)
        at com.google.gwt.dev.jjs.ast.JCastOperation.traverse(JCastOperation.java:67)
        at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285)
        at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:128)
        at com.google.gwt.dev.jjs.ast.JDeclarationStatement.traverse(JDeclarationStatement.java:49)
        at com.google.gwt.dev.jjs.ast.JModVisitor$ListContext.traverse(JModVisitor.java:95)
        at com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemove(JModVisitor.java:351)
        at com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:92)
        at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
        at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:149)
        at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:145)
        at com.google.gwt.dev.jjs.ast.JMethodBody.traverse(JMethodBody.java:83)
        at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285)
        at com.google.gwt.dev.jjs.ast.JMethod.visitChildren(JMethod.java:600)
        at com.google.gwt.dev.jjs.ast.JMethod.traverse(JMethod.java:569)
        at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285)
        at com.google.gwt.dev.jjs.impl.UnifyAst.mainLoop(UnifyAst.java:1505)
        at com.google.gwt.dev.jjs.impl.UnifyAst.exec(UnifyAst.java:870)
        at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.unifyJavaAst(JavaToJavaScriptCompiler.java:1305)
        at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.constructJavaAst(JavaToJavaScriptCompiler.java:1038)
        at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.precompile(JavaToJavaScriptCompiler.java:954)
        at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler.precompile(MonolithicJavaToJavaScriptCompiler.java:303)
        at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:38)
        at com.google.gwt.dev.Precompile.precompile(Precompile.java:286)
        at com.google.gwt.dev.Precompile.precompile(Precompile.java:229)
        at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
        at com.google.gwt.dev.Compiler.run(Compiler.java:206)
        at com.google.gwt.dev.codeserver.Recompiler.doCompile(Recompiler.java:333)
        at com.google.gwt.dev.codeserver.Recompiler.compile(Recompiler.java:161)
        at com.google.gwt.dev.codeserver.Recompiler.recompile(Recompiler.java:119)
        at com.google.gwt.dev.codeserver.Outbox.recompile(Outbox.java:128)
        at com.google.gwt.dev.codeserver.JobRunner.recompile(JobRunner.java:81)
        at com.google.gwt.dev.codeserver.JobRunner.access$100(JobRunner.java:34)
        at com.google.gwt.dev.codeserver.JobRunner$2.run(JobRunner.java:73)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
             [ERROR] Errors in 'org/bitbucket/treklab/client/view/DeviceView.java'
                [ERROR] Line 145: Failed to resolve 'org.bitbucket.treklab.client.model.GeofenceProperties' via deferred binding
             Computing all possible rebind results for 'org.bitbucket.treklab.client.resources.Resources'
                Rebinding org.bitbucket.treklab.client.resources.Resources
                   Invoking generator com.google.gwt.resources.rebind.context.InlineClientBundleGenerator
                      Preparing method cogWheel
                         [WARN] Resource 'org/bitbucket/treklab/client/theme/icon/cogWheel.png' was located via ClassLoader. As a result changes in that resource will not be reflected in per-file recompiles. It should be registered via   or  entry in your .gwt.xml. In a future version of GWT, we will remove this fallback and your application will stop compiling
             [WARN] For the following type(s), generated source was never committed (did you forget to call commit()?)
                [WARN] org.bitbucket.treklab.client.model.GeofencePropertiesImpl
                [WARN] org.bitbucket.treklab.client.model.Geofence_coordinates_ValueProviderImpl
             Computing all possible rebind results for 'org.bitbucket.treklab.client.model.GeofenceProperties'
                Rebinding org.bitbucket.treklab.client.model.GeofenceProperties
                   Invoking generator com.sencha.gxt.data.rebind.PropertyAccessGenerator
                      [ERROR] Generator 'com.sencha.gxt.data.rebind.PropertyAccessGenerator' threw an exception while rebinding 'org.bitbucket.treklab.client.model.GeofenceProperties'
        java.lang.NullPointerException
        at com.sencha.gxt.data.rebind.ValueProviderCreator.typesMatch(ValueProviderCreator.java:315)
        at com.sencha.gxt.data.rebind.ValueProviderCreator.getSetterExpression(ValueProviderCreator.java:297)
        at com.sencha.gxt.data.rebind.ValueProviderCreator.appendSetterBody(ValueProviderCreator.java:134)
        at com.sencha.gxt.data.rebind.ValueProviderCreator.create(ValueProviderCreator.java:93)
        at com.sencha.gxt.core.rebind.AbstractCreator.create(AbstractCreator.java:48)
        at com.sencha.gxt.data.rebind.PropertyAccessGenerator.generate(PropertyAccessGenerator.java:94)
        at com.google.gwt.core.ext.IncrementalGenerator.generateNonIncrementally(IncrementalGenerator.java:40)
        at com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncrementally(StandardGeneratorContext.java:760)
        at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:160)
        at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(StandardRebindOracle.java:79)
        at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:276)
        at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:265)
        at com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPossibleRebindAnswers(DistillerRebindPermutationOracle.java:87)
        at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.createStaticRebindExpression(UnifyAst.java:485)
        at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.createRebindExpression(UnifyAst.java:443)
        at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.handleMagicMethodCall(UnifyAst.java:576)
        at com.google.gwt.dev.jjs.impl.UnifyAst$UnifyVisitor.endVisit(UnifyAst.java:306)
        at com.google.gwt.dev.jjs.ast.JMethodCall.traverse(JMethodCall.java:248)
        at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285)
        at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:128)
        at com.google.gwt.dev.jjs.ast.JCastOperation.traverse(JCastOperation.java:67)
        at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285)
        at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:128)
        at com.google.gwt.dev.jjs.ast.JDeclarationStatement.traverse(JDeclarationStatement.java:49)
        at com.google.gwt.dev.jjs.ast.JModVisitor$ListContext.traverse(JModVisitor.java:95)
        at com.google.gwt.dev.jjs.ast.JModVisitor.acceptWithInsertRemove(JModVisitor.java:351)
        at com.google.gwt.dev.jjs.ast.JBlock.traverse(JBlock.java:92)
        at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
        at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:149)
        at com.google.gwt.dev.jjs.ast.JVisitor.accept(JVisitor.java:145)
        at com.google.gwt.dev.jjs.ast.JMethodBody.traverse(JMethodBody.java:83)
        at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285)
        at com.google.gwt.dev.jjs.ast.JMethod.visitChildren(JMethod.java:600)
        at com.google.gwt.dev.jjs.ast.JConstructor.traverse(JConstructor.java:142)
        at com.google.gwt.dev.jjs.ast.JModVisitor.traverse(JModVisitor.java:381)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:293)
        at com.google.gwt.dev.jjs.ast.JModVisitor.accept(JModVisitor.java:285)
        at com.google.gwt.dev.jjs.impl.UnifyAst.mainLoop(UnifyAst.java:1505)
        at com.google.gwt.dev.jjs.impl.UnifyAst.exec(UnifyAst.java:870)
        at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.unifyJavaAst(JavaToJavaScriptCompiler.java:1305)
        at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.constructJavaAst(JavaToJavaScriptCompiler.java:1038)
        at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler$Precompiler.precompile(JavaToJavaScriptCompiler.java:954)
        at com.google.gwt.dev.jjs.MonolithicJavaToJavaScriptCompiler.precompile(MonolithicJavaToJavaScriptCompiler.java:303)
        at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:38)
        at com.google.gwt.dev.Precompile.precompile(Precompile.java:286)
        at com.google.gwt.dev.Precompile.precompile(Precompile.java:229)
        at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
        at com.google.gwt.dev.Compiler.run(Compiler.java:206)
        at com.google.gwt.dev.codeserver.Recompiler.doCompile(Recompiler.java:333)
        at com.google.gwt.dev.codeserver.Recompiler.compile(Recompiler.java:161)
        at com.google.gwt.dev.codeserver.Recompiler.recompile(Recompiler.java:119)
        at com.google.gwt.dev.codeserver.Outbox.recompile(Outbox.java:128)
        at com.google.gwt.dev.codeserver.JobRunner.recompile(JobRunner.java:81)
        at com.google.gwt.dev.codeserver.JobRunner.access$100(JobRunner.java:34)
        at com.google.gwt.dev.codeserver.JobRunner$2.run(JobRunner.java:73)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
             [ERROR] Errors in 'org/bitbucket/treklab/client/Application.java'
                [ERROR] Line 43: Failed to resolve 'org.bitbucket.treklab.client.model.GeofenceProperties' via deferred binding
             [WARN] For the following type(s), generated source was never committed (did you forget to call commit()?)
                [WARN] org.bitbucket.treklab.client.model.Geofence_coordinates_ValueProviderImpl
                [WARN] org.bitbucket.treklab.client.model.GeofencePropertiesImpl
             Unification traversed 1267 fields and methods and 1208 types. 18 are considered part of the current module and 18 had all of their fields and methods traversed.
             [WARN] Some stale types ([org.bitbucket.treklab.client.model.Geofence_description_ValueProviderImpl, org.bitbucket.treklab.client.model.GeofencePropertiesImpl, org.bitbucket.treklab.client.model.Geofence_userId_ValueProviderImpl, org.bitbucket.treklab.client.model.Geofence_coordinates_ValueProviderImpl, org.bitbucket.treklab.client.model.Geofence_radius_ValueProviderImpl, org.bitbucket.treklab.client.model.Geofence_name_ValueProviderImpl, org.bitbucket.treklab.client.model.Geofence_id_ModelKeyProviderImpl, org.bitbucket.treklab.client.model.Geofence_empty_ValueProviderImpl, org.bitbucket.treklab.client.model.Geofence_id_ValueProviderImpl]) were not reprocessed as was expected. This is either a compiler bug or a Generator has legitimately stopped creating these types.
          [ERROR] Compiler returned false
          [WARN] recompile failed
          [WARN] continuing to serve previous version</p>
  </blockquote>
  
  <p>But when I change </p>
  
  <pre><code>Coordinate[] 
  </code></pre>
  
  <p>to </p>
  
  <pre><code>List&lt;Coordinate&gt;
  </code></pre>
  
  <p>all works fine. Where I made a mistake?</p>