I am having a similar problem after upgrading to 2.0.6. I do see an error 
in my console for url http://reviewboard.cctechnol.com/r/new/. The error 
happens after I select a file from browse and try to upload. 

TypeError: rsp is null

with the following details:

(function(){RB.PostCommitModel=Backbone.Model.extend({defaults:{repository:null,branch:null}});RB.PreCommitModel=Backbone.Model.extend({defaults:{basedir:null,changeNumber:null,diffFile:null,diffValid:false,error:null,parentDiffFile:null,repository:null,state:0},State:{PROMPT_FOR_DIFF:0,PROMPT_FOR_BASEDIR:1,PROPMT_FOR_CHANGE_NUMBER:2,PROCESSING_DIFF:3,UPLOADING:4,PROMPT_FOR_PARENT_DIFF:5,ERROR:6},initialize:function(){_super(this).initialize.apply(this,arguments);this.on("change:diffFile
 change:parentDiffFile change:basedir "+"change:changeNumber 
change:diffValid",this._updateState,this)},startOver:function(){this.set({basedir:null,changeNumber:null,diffFile:null,diffValid:false,error:null,parentDiffFile:null,state:this.State.PROMPT_FOR_DIFF})},_updateState:function(){var
 
basedir=this.get("basedir"),changeNumber=this.get("changeNumber"),diff=this.get("diffFile"),diffValid=this.get("diffValid"),parentDiff=this.get("parentDiffFile"),repository=this.get("repository"),requiresBasedir=repository.get("requiresBasedir"),requiresChangeNumber=repository.get("requiresChangeNumber"),state=this.get("state");switch(state){case
 
this.State.PROMPT_FOR_DIFF:if(diff){if(requiresBasedir&&!basedir){this.set("state",this.State.PROMPT_FOR_BASEDIR)}else
 
if(requiresChangeNumber&&!changeNumber){this.set("state",this.State.PROMPT_FOR_CHANGE_NUMBER)}else{this.set("state",this.State.PROCESSING_DIFF);this._tryValidate()}}break;case
 
this.State.PROMPT_FOR_PARENT_DIFF:if(diff&&parentDiff){this.set("state",this.State.PROCESSING_DIFF);this._tryValidate()}break;case
 this.State.PROMPT_FOR_BASEDIR:console.assert(diff,"cannot be in basedir prompt 
state without a 
diff");if(basedir){if(requiresChangeNumber&&!changeNumber){this.set("state",this.State.PROMPT_FOR_CHANGE_NUMBER)}else{this.set("state",this.State.PROCESSING_DIFF);this._tryValidate()}}break;case
 this.State.PROMPT_FOR_CHANGE_NUMBER:console.assert(diff,"cannot be in 
changenum prompt state without a 
diff");if(changeNumber){this.set("state",this.State.PROCESSING_DIFF);this._tryValidate()}break;case
 
this.State.PROCESSING_DIFF:if(diffValid){this.set("state",this.State.UPLOADING);this._createReviewRequest()}break;case
 this.State.UPLOADING:break;case 
this.State.ERROR:break}},_tryValidate:function(){var 
diff=this.get("diffFile"),parentDiff=this.get("parentDiffFile"),repository=this.get("repository"),uploader=new
 
RB.ValidateDiffModel;this.set("diffValid",false);console.assert(diff);uploader.set({repository:repository.get("id"),localSitePrefix:repository.get("localSitePrefix"),basedir:this.get("basedir"),diff:diff,parentDiff:parentDiff});uploader.save({success:_.bind(this._onValidateSuccess,this),error:_.bind(this._onValidateError,this)})},_onValidateSuccess:function(){this.set("diffValid",true)},_onValidateError:function(model,xhr){var
 
rsp=$.parseJSON(xhr.responseText),newState=this.State.ERROR,error;switch(rsp.err.code){case
 
RB.APIErrors.REPO_FILE_NOT_FOUND:if(this.get("repository").get("scmtoolName")==="Git"&&rsp.revision.length!==40){error=gettext("The
 uploaded diff uses short revisions, but Review Board requires full 
revisions.<br />Please generate a new diff using the <code>--full-index</code> 
parameter.")}else{error=interpolate(gettext('The file "%s" (revision %s) was 
not found in the 
repository.'),[rsp.file,rsp.revision]);if(this.get("parentDiffFile")===null){newState=this.State.PROMPT_FOR_PARENT_DIFF}}break;case
 RB.APIErrors.DIFF_PARSE_ERROR:error=rsp.err.msg+"<br />"+"Line 
"+rsp.linenum+": 
"+rsp.reason;break;default:error=rsp.err.msg;break}if(error){this.set({state:newState,error:error})}},_createReviewRequest:function(){var
 repository=this.get("repository"),reviewRequest=new 
RB.ReviewRequest({commitID:this.get("changeNumber"),localSitePrefix:repository.get("localSitePrefix"),repository:repository.get("id")});reviewRequest.save({success:function(){var
 
diff=reviewRequest.createDiff();diff.set({basedir:this.get("basedir"),diff:this.get("diffFile"),parentDiff:this.get("parentDiffFile")});diff.url=reviewRequest.get("links").diffs.href;diff.save({success:function(){window.location=reviewRequest.get("reviewURL")},error:this._onValidateError},this)},error:this._onValidateError},this)}});RB.NewReviewRequest=Backbone.Model.extend({defaults:{repositories:[]}});RB.CollectionView=Backbone.View.extend({itemViewType:null,initialize:function(options){var
 
collection=options.collection;this.collection=collection;this.views=[];collection.each(this._add,this);collection.on({add:this._add,remove:this._remove},this)},render:function(){this._rendered=true;this.$el.empty();_.each(this.views,function(view){this.$el.append(view.render().el)},this);return
 this},_add:function(item){var 
view;console.assert(this.itemViewType,"itemViewType must be defined by the 
subclass");view=new 
this.itemViewType({model:item});this.views.push(view);if(this._rendered){this.$el.append(view.render().el)}},_remove:function(item){var
 grouped=_.groupBy(this.views,function(view){return 
view.model===item?"toRemove":"toKeep"});this.views=grouped.toKeep||[];if(this._rendered){_.each(grouped.toRemove,function(view){view.remove()})}}});RB.BranchView=Backbone.View.extend({tagName:"option",render:function(){this.$el.text(this.model.get("name")).attr("selected",this.model.get("isDefault"));return
 
this}});RB.BranchesView=RB.CollectionView.extend({tagName:"select",itemViewType:RB.BranchView,events:{change:"_onChange"},render:function(){_super(this).render.apply(this,arguments);this.collection.each(function(branch){if(branch.get("isDefault")){this.trigger("selected",branch)}},this);return
 
this},_add:function(branch){_super(this)._add.apply(this,arguments);if(this._rendered&&branch.get("isDefault")){this.trigger("selected",branch)}},_onChange:function(){var
 
selectedIx=this.$el.prop("selectedIndex");this.trigger("selected",this.collection.models[selectedIx])}});RB.CommitView=Backbone.View.extend({className:"commit",template:_.template(['<div
 class="progress"></div>','<div class="summary">'," <%- summary %>","  <% if 
(reviewRequestURL) { %>",'   <div class="rb-icon rb-icon-jump-to 
jump-to-commit"/>',"  <% } %>","</div>","<div><%= details 
%></div>"].join("")),events:{click:"_onClick"},render:function(){var 
commitID=this.model.get("id");if(commitID.length===40){commitID=commitID.slice(0,7)}this.$el.html(this.template(_.defaults({details:interpolate(gettext('Revision
 %(revision)s by <span class="author">%(author)s</span>, <time 
class="timesince" 
datetime="%(date)s"></time>.'),{revision:_.escape(commitID),author:_.escape(this.model.get("authorName")),date:this.model.get("date").toISOString()},true)},this.model.attributes)));this.$(".timesince").timesince();return
 this},_onClick:function(){var 
url=this.model.get("reviewRequestURL");if(url){window.location=url}else{this.model.trigger("create",this.model)}},showProgress:function(){this.$(".progress").show()},cancelProgress:function(){this.$(".progress").hide()}});RB.CommitsView=RB.CollectionView.extend({className:"commits",itemViewType:RB.CommitView,render:function(){_super(this).render.call(this);$("#new-review-request
 .main").scroll(_.bind(this._onScroll,this));return 
this},setPending:function(commit){_.each(this.views,function(view){if(view.model===commit){view.showProgress()}else{view.cancelProgress()}})},cancelPending:function(){_.each(this.views,function(view){view.cancelProgress()})},_onScroll:function(ev){var
 
scrollThresholdPx=50;if(ev.target.scrollTop+ev.target.offsetHeight>ev.target.scrollHeight-scrollThresholdPx){this.collection.fetchNext()}}});RB.RepositoryView=Backbone.View.extend({className:"repository",template:_.template(["<div><%-
 name 
%></div>"].join("")),events:{click:"_onClick"},render:function(){this.$el.html(this.template(this.model.attributes));this.lowerName=this.model.get("name").toLowerCase();return
 
this},_onClick:function(){this.model.trigger("selected",this.model)}});RB.RepositorySelectionView=RB.CollectionView.extend({className:"repository-selector",itemViewType:RB.RepositoryView,events:{"click
 .repository-search-icon":"_onSearchClicked","input 
.repository-search":"_onSearchChanged"},initialize:function(){_super(this).initialize.apply(this,arguments);this._selected=null;this._searchActive=false;this.listenTo(this.collection,"selected",this._onRepositorySelected)},render:function(){_super(this).render.apply(this,arguments);this._$header=$("<h3>").text(gettext("Repositories")).prependTo(this.$el);this._$searchIconWrapper=$("<div/>").addClass("search-icon-wrapper").prependTo(this.$el);this._$searchIcon=$("<div/>").addClass("rb-icon
 rb-icon-search 
repository-search-icon").prependTo(this._$searchIconWrapper);this._$searchBox=$("<input/>").addClass("repository-search").prependTo(this.$el);this._iconOffset=this.$el.innerWidth()-this._$searchIcon.outerWidth(true);this._$searchIconWrapper.css("left",this._iconOffset);return
 
this},_onRepositorySelected:function(item){this._selected=item;_.each(this.views,function(view){if(view.model===item){view.$el.addClass("selected")}else{view.$el.removeClass("selected")}});this.trigger("selected",item)},_onSearchClicked:function(){var
 
parentWidth=this.$el.innerWidth(),$searchBox=this._$searchBox,searchBoxRightEdge=$searchBox.position().left+$searchBox.outerWidth(),searchBoxRightMargin=parentWidth-searchBoxRightEdge,animationSpeedMS=200;this._searchActive=!this._searchActive;if(this._searchActive){this._$searchIconWrapper.animate({left:"0px"},animationSpeedMS);this._$searchBox.css("visibility","visible").animate({width:this._iconOffset-searchBoxRightMargin*2},{duration:animationSpeedMS,complete:function(){$searchBox.focus()}});this._$header.animate({width:0},animationSpeedMS)}else{this._$header.animate({width:"100%"},animationSpeedMS);this._$searchIconWrapper.animate({left:this._iconOffset},animationSpeedMS);this._$searchBox.animate({width:0},{duration:animationSpeedMS,complete:function(){$searchBox.css("visibility","hidden")}})}},_onSearchChanged:function(){var
 
searchTerm=this._$searchBox.val().toLowerCase();_.each(this.views,function(view){view.$el.setVisible(view.lowerName.indexOf(searchTerm)!==-1)})}});RB.PostCommitView=Backbone.View.extend({className:"post-commit",initialize:function(){var
 
model=this.model,repository=model.get("repository"),branches=repository.branches;if(!branches.loaded){branches.fetch({success:function(){branches.loaded=true}})}this._branchesView=new
 
RB.BranchesView({collection:branches});this._branchesView.on("selected",function(branch){model.set("branch",branch)},this);this.listenTo(model,"change:branch",this._onBranchChanged)},render:function(){var
 $branch=$("<div/>").addClass("branches 
section-header");this._rendered=true;$branch.append(gettext("New Review Request 
for Committed 
Change:")).append(this._branchesView.render().el).appendTo(this.$el);if(this._commitsView){this.$el.append(this._commitsView.render().el)}return
 
this},_onBranchChanged:function(model,branch){if(this._commitsView){this.stopListening(this._commitsCollection);this._commitsView.remove()}this._commitsCollection=this.model.get("repository").getCommits({branch:branch.id});this._commitsCollection.fetch();this.listenTo(this._commitsCollection,"create",this._onCreateReviewRequest);this._commitsView=new
 
RB.CommitsView({collection:this._commitsCollection});if(this._rendered){this.$el.append(this._commitsView.render().el)}},_onCreateReviewRequest:function(commit){var
 
repository=this.model.get("repository"),reviewRequest;if(this._createPending){return}this._createPending=true;this._commitsView.setPending(commit);reviewRequest=new
 
RB.ReviewRequest({repository:repository.id,localSitePrefix:repository.get("localSitePrefix")});reviewRequest.createFromCommit({commitID:commit.id,success:function(){window.location=reviewRequest.get("reviewURL")},error:function(model,xhr){this._commitsView.setPending(null);this._createPending=false;alert(xhr.errorText)}},this)}});RB.PreCommitView=Backbone.View.extend({className:"pre-commit",template:_.template(['<div
 class="section-header"><%- pendingChangeHeader %></div>','<div class="tip">'," 
<strong><%- tipHeader %></strong>"," <%= tip %>","</div>",'<div class="input 
dnd" id="prompt-for-diff">'," <form>","  <%= selectDiff %>"," 
</form>","</div>",'<div class="input dnd" id="prompt-for-parent-diff">'," 
<form>",'  <div id="parent-diff-error-contents" />',"  <%= selectParentDiff 
%>"," </form>",' <a href="#" class="startover"><%- startOver 
%></a>',"</div>",'<div class="input" id="prompt-for-basedir">',' <form 
id="basedir-form">',"  <%- baseDir %>",'  <input id="basedir-input" />','  
<input type="submit" value="<%- ok %>" />'," </form>",' <a href="#" 
class="startover"><%- startOver %></a>',"</div>",'<div class="input" 
id="prompt-for-change-number">',' <form id="changenum-form">',"  <%- changeNum 
%>",'  <input type="number" step="1" id="changenum-input" />','  <input 
type="submit" value="<%- ok %>" />'," </form>",' <a href="#" 
class="startover"><%- startOver %></a>',"</div>",'<div class="input" 
id="processing-diff"></div>','<div class="input" 
id="uploading-diffs"></div>','<div class="input" id="error-indicator">',' <div 
id="error-contents" />',' <a href="#" class="startover"><%- startOver 
%></a>',"</div>"].join("")),events:{"dragenter .dnd":"_onDragEnter","dragover 
.dnd":"_onDragOver","dragleave .dnd":"_onDragLeave","drop 
.dnd":"_onDrop","submit #basedir-form":"_onBasedirSubmit","submit 
#changenum-form":"_onChangenumSubmit","click 
.startover":"_onStartOverClicked","click 
#select-diff-file":"_onSelectFileClicked","click 
#select-parent-diff-file":"_onSelectFileClicked"},initialize:function(){this.listenTo(this.model,"change:state",this._onStateChanged);this.listenTo(this.model,"change:error",this._onErrorChanged)},render:function(){var
 self=this;this.$el.html(this.template({pendingChangeHeader:gettext("New Review 
Request for Pending Change"),tipHeader:gettext("Tip:"),tip:gettext('We 
recommend using <code>rbt post</code> from <a 
href="https://www.reviewboard.org/docs/rbtools/dev/";>RBTools</a> to create and 
update review requests.'),selectDiff:gettext('<input type="button" 
id="select-diff-file" value="Select"> or drag and drop a diff file to 
begin.'),selectParentDiff:gettext('<input type="button" 
id="select-parent-diff-file" value="Select"> or drag and drop a parent diff 
file if you have one.'),baseDir:gettext("What is the base directory for this 
diff?"),changeNum:gettext("What is the change number for this 
diff?"),startOver:gettext("Start 
Over"),ok:gettext("OK")}));this._$fileInput=$('<input type="file" 
/>').hide().appendTo(this.$el).change(function(){self._handleFiles(self._$fileInput.get(0).files)});this._$promptForDiff=this.$("#prompt-for-diff");this._$promptForParentDiff=this.$("#prompt-for-parent-diff");this._$promptForBasedir=this.$("#prompt-for-basedir");this._$promptForChangeNumber=this.$("#prompt-for-change-number");this._$processingDiff=this.$("#processing-diff");this._$uploading=this.$("#uploading-diffs");this._$error=this.$("#error-indicator");this._$errorContents=this.$("#error-contents");this._$diffRevisionError=this.$("#parent-diff-error-contents");this._onStateChanged(this.model,this.model.get("state"));return
 this},_onErrorChanged:function(model,error){var errorHTML='<div class="rb-icon 
rb-icon-warning"></div>'+error,innerHeight,outerHeight;this._$errorContents.html(errorHTML);this._$diffRevisionError.html(errorHTML);innerHeight=this._$errorContents.height();outerHeight=this._$error.height();this._$errorContents.css({top:Math.floor((outerHeight-innerHeight)/2)+"px"})},_onStateChanged:function(model,state){this._$promptForDiff.setVisible(state===this.model.State.PROMPT_FOR_DIFF);this._$promptForParentDiff.setVisible(state===this.model.State.PROMPT_FOR_PARENT_DIFF);this._$promptForBasedir.setVisible(state===this.model.State.PROMPT_FOR_BASEDIR);this._$processingDiff.setVisible(state===this.model.State.PROCESSING_DIFF);this._$promptForChangeNumber.setVisible(state===this.model.State.PROMPT_FOR_CHANGE_NUMBER);this._$uploading.setVisible(state===this.model.State.UPLOADING);this._$error.setVisible(state===this.model.State.ERROR)},_onDragEnter:function(event){event.stopPropagation();event.preventDefault();this.$(".dnd").addClass("drag-hover");return
 false},_onDragOver:function(event){var 
dt=event.originalEvent.dataTransfer;event.stopPropagation();event.preventDefault();if(dt){dt.dropEffect="copy"}return
 false},_onDragLeave:function(event){var 
dt=event.originalEvent.dataTransfer;event.stopPropagation();event.preventDefault();this.$(".dnd").removeClass("drag-hover");if(dt){dt.dropEffect="none"}return
 false},_onDrop:function(event){var 
dt=event.originalEvent.dataTransfer,files=dt&&dt.files;event.stopPropagation();event.preventDefault();if(files){this._handleFiles(files)}},_handleFiles:function(files){switch(this.model.get("state")){case
 
this.model.State.PROMPT_FOR_DIFF:this.model.set("diffFile",files[0]);break;case 
this.model.State.PROMPT_FOR_PARENT_DIFF:this.model.set("parentDiffFile",files[0]);break;default:console.assert("File
 received in wrong state")}},_onBasedirSubmit:function(){var 
basedir=this.$("#basedir-input").val();if(basedir){this.model.set("basedir",basedir)}return
 false},_onChangenumSubmit:function(){var 
changenum=this.$("#changenum-input").val();if(changenum){this.model.set("changeNumber",changenum)}return
 false},_onStartOverClicked:function(){var 
input=this._$fileInput.clone(true);this._$fileInput.replaceWith(input);this._$fileInput=input;this.model.startOver();return
 
false},_onSelectFileClicked:function(){this._$fileInput.click()}});(function(){var
 
FilesOnlyPreCommitModel,FilesOnlyPreCommitView;FilesOnlyPreCommitModel=Backbone.Model.extend({defaults:_.defaults({repository:null})});FilesOnlyPreCommitView=Backbone.View.extend({className:"files-only",template:_.template(["<p><%-
 description %></p>","</p>",'<input type="submit" class="primary large" 
id="files-only-create"','       value="<%- buttonText %>" 
/>'].join("")),events:{"click 
#files-only-create":"_onCreateClicked"},render:function(){this.$el.html(this.template({description:gettext("You
 won't be able to add any diffs to this review request. The review request will 
only be usable for reviewing graphics, screenshots and file 
attachments."),buttonText:gettext("Create Review Request")}));return 
this},_onCreateClicked:function(){var 
repository=this.model.get("repository"),reviewRequest=new 
RB.ReviewRequest({localSitePrefix:repository.get("localSitePrefix")});reviewRequest.save({success:function(){window.location=reviewRequest.get("reviewURL")},error:function(){}});return
 
false}});RB.NewReviewRequestView=Backbone.View.extend({el:"#new-review-request",template:_.template(['<div
 class="sidebar"></div>','<div class="main">',' <div class="hint"><%- hint 
%></div>',"</div>"].join("")),initialize:function(){this._repositorySelectionView=new
 
RB.RepositorySelectionView({collection:this.model.get("repositories")});this.listenTo(this._repositorySelectionView,"selected",this._onRepositorySelected);$(window).resize(_.bind(this._onResize,this))},render:function(){var
 
repositories=this.model.get("repositories").models;this._rendered=true;this.$el.html(this.template({hint:gettext("Select
 a 
repository")}));this._$sidebar=this.$(".sidebar");this._$content=this.$(".main");this._$hint=this.$(".hint");this._$sidebar.append(this._repositorySelectionView.el);this._repositorySelectionView.render();if(this._preCommitView){this._$hint.hide();this._$content.append(this._preCommitView.render().el)}if(this._postCommitView){this._$hint.hide();this._$content.append(this._postCommitView.render().el)}this.$el.show();this._onResize();if(repositories.length===2){repositories[1].trigger("selected",repositories[1])}return
 this},_onResize:function(){var 
$window,windowWidth,windowHeight,elTop,height;if(this._rendered){$window=$(window);windowWidth=$window.width();windowHeight=$window.height();elTop=this.$el.offset().top;height=windowHeight-elTop-14+"px";this.$el.height(height);this.$(".repository-selector,
 
.main").height(height);this.$(".hint").css({height:height,"line-height":height})}},_onRepositorySelected:function(repository){if(this._preCommitView){this._preCommitView.remove();this._preCommitView=null}if(this._postCommitView){this._postCommitView.remove();this._postCommitView=null}this.model.set("repository",repository);if(repository.get("filesOnly")){this._preCommitView=new
 FilesOnlyPreCommitView({model:new 
FilesOnlyPreCommitModel({repository:repository})})}else{this._preCommitView=new 
RB.PreCommitView({model:new 
RB.PreCommitModel({repository:repository})});if(repository.get("supportsPostCommit")){this._postCommitView=new
 RB.PostCommitView({model:new 
RB.PostCommitModel({repository:repository})})}}if(this._rendered){this._$hint.hide();this._$content.append(this._preCommitView.render().el);if(this._postCommitView){this._$content.append(this._postCommitView.render().el)}}}})})()}).call(this);


Like the other poster, I've narrowed it down to just a couple of files that 
are breaking things, but they don't seem to have any unusual content.

Sara


On Thursday, September 4, 2014 12:52:18 AM UTC-5, koval...@gmail.com wrote:
>
> Yes, I use some extentions in Firifox, but with turned off extentions 
> situation is the same.
> I don't have proxy. Reviewboard is installed on local computer, it's url 
> is http://localhost:8090/reviewboard.
>

-- 
Get the Review Board Power Pack at http://www.reviewboard.org/powerpack/
---
Sign up for Review Board hosting at RBCommons: https://rbcommons.com/
---
Happy user? Let us know at http://www.reviewboard.org/users/
--- 
You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to reviewboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to