java - Gradle complains it can't convert long to int even while the method takes long as parameter -


when running "gradle build" got following error 1 of our projects, couple of classes following compile error:

cannot applied given types;                 this._logfilter.setfirstresult(firstresult);                                ^   required: int   found: long   reason: actual argument long cannot converted int method invocation conversion 

even though, method setfirstresult takes long parameter. here code:

public void setfirstresult(long firstresult) {     this._firstresult = firstresult; } 

i have tried --refresh-dependencies , cleared out cache etc. none of worked me. in addition, project maven project, converted on use gradle instead.

edit:

i'm adding additional context here per request comments:

here source code this._logfilter

public class globalmessagelogfilter {     private long _firstresult = 0l;      private long _maxresults = 100l;      private application _application;      private severitylevelenum _severitylevel;      private environmentenum _environment;      private string _username;      private category _category;      public environmentenum getenvironment() {         return this._environment;     }      public void setenvironment(environmentenum environment) {         this._environment = environment;     }      public long getfirstresult() {         return this._firstresult;     }      public void setfirstresult(long firstresult) {         this._firstresult = firstresult;     }      public long getmaxresults() {         return this._maxresults;     }      public void setmaxresults(long maxresults) {         this._maxresults = maxresults;     }      public application getapplication() {         return this._application;     }      public void setapplication(application application) {         this._application = application;     }      public severitylevelenum getseveritylevel() {         return this._severitylevel;     }      public void setseveritylevel(severitylevelenum severitylevel) {         this._severitylevel = severitylevel;     }      public string getusername() {         return this._username;     }      public void setusername(string username) {         this._username = username;     }      public category getcategory() {         return this._category;     }      public void setcategory(category category) {         this._category = category;     } } 

here full stack-trace

λ gradle build :compilejava c:\java source\wicket\administration\globalmessagelogprovider.java:36: error: method setfirstresult in class globalmessagelogfilter cannot applied given types;                 this._logfilter.setfirstresult(firstresult);                                ^   required: int   found: long   reason: actual argument long cannot converted int method invocation conversion c:\java source\wicket\administration\globalmessagelogprovider.java:37: error: method setmaxresults in class globalmessagelogfilter cannot applied given types;                 this._logfilter.setmaxresults(maxresults);                                ^   required: int   found: long   reason: actual argument long cannot converted int method invocation conversion c:\java source\wicket\administration\users\usersecurityprovider.java:35: error: method setfirst in class usersearchfilter cannot applied given types;                 this._filter.setfirst(first);                             ^   required: int   found: long   reason: actual argument long cannot converted int method invocation conversion c:\java source\wicket\administration\users\usersecurityprovider.java:36: error: method setcount in class usersearchfilter cannot applied given types;                 this._filter.setcount(count);                             ^   required: int   found: long   reason: actual argument long cannot converted int method invocation conversion 

edit: added source code of globalmessagelogprovider

public class globalmessagelogprovider extends sortabledataprovider<globalmessagelog, string> {     @springbean     private globalmessagelogrepository _globalmessagelogrepository;     private globalmessagelogfilter _logfilter;     private boolean _searchallowed = false;       public globalmessagelogprovider(globalmessagelogfilter globalmessagelogfilter)     {         injector.get().inject(this);         this._logfilter = globalmessagelogfilter;     }       @override     public iterator<? extends globalmessagelog> iterator(long firstresult, long maxresults)     {         this._logfilter.setfirstresult(firstresult);         this._logfilter.setmaxresults(maxresults);         iterator<globalmessagelog> results = arrays.<globalmessagelog> aslist().iterator();          if (this._searchallowed)         {             if (super.getsort() == null)             {                 results = this._globalmessagelogrepository.search(this._logfilter, "id", false).iterator();             } else             {                 results =                         this._globalmessagelogrepository.search(this._logfilter,                                 super.getsort().getproperty(),                                 super.getsort().isascending()).iterator();             }         }         return results;     } } 

i found out issue , able resolved. majority comment pointed out setfirstresult(int firstresult) wrong version of class been using. correct.

bascially, globalmessagelogprovider been changed, latest verison of jar has never been pushed nexus sever(our own private third party dependency server). so, whenever pull jar down, reference old one.

after manually push latest jar nexus server , able build project gradle without error.

so take-away question: need create build process automatically build/push latest version of jar nexus server. i'm thinking create build/push process through our teamcity build server customized command/script. (please feel free provide better suggestion/practice tips if there are).

thank kindness help, sincerely appreciated.


Comments