javascript - Breeze underlying array is null error at save -


i got "500 (internal server error) underlying error null" error message when want save entity created.

scenario:

  • the user opens modal window can create/edit blog entry
  • he can select tags
  • he can create new tags
  • if there tag doesn't exist yet system creates automatically

the error occurs when system want save new tag. don't array null?! if write out newly created entity see healthy entity created breeze , there no null value, except 1 (blog description field, not required field)

what did find locate defect:

  • double-check code - done
  • checking caching - done - disabled
  • googling - done - seems rare issue
  • place code controller whether scoping issue - done - result same
  • checking rest controller, changed 71 days ago last time, however, in other cases works well
  • sleeping... helps - done, awesome didn't help
  • restart machine - done - nothing
  • i think ran out of ideas...

here code. nothing new in it. code works without problem in other places in app.

this function called ontagadding method of ngtags-input stuff , placed in service.

function ontagadding(tag)         {             console.log("ontagadding");             var select = 'id, name';             var p = new predicate('name', filterqueryop.equals, tag.name);              datacontext.tag.getall(select, p).then(function (result)             {                 if (result.length < 1)                 {                     //add new tag                     var newtag = datacontext.tag.create();                     newtag.name = tag.name;                     console.log('tag ontagadding', tag);                     console.log('newtag  ontagadding', newtag);                 }                  datacontext.save().then(function (saveresult)                 {                     console.log('saved tag  ontagadding');                     if (typeof (saveresult) !== 'undefined')                     {                         lastsavedtag = saveresult.entities[0];                     }                 });             });         } 

controller calls service method:

function ontagadding(tag)         {             dataservicetaghelper.ontagadding(tag);         } 

request payload:

"entities": [{     "id": -1,     "name": "sdfsdfsdf",     "desc": null,     "entityaspect": {         "entitytypename": "tag:#sayusiando.dilib.model.model.db.model.blog",         "defaultresourcename": "tags",         "entitystate": "added",         "originalvaluesmap": {          },         "autogeneratedkey": {             "propertyname": "id",             "autogeneratedkeytype": "identity"         }     } }], "saveoptions": {  } 

here full error message:

error: [dilib error]  save failed!the underlying array null.     @ createerror (http://dev.dilib.local/ui/scripts/breeze.debug.js:15821:15)     @ handlehttperror (http://dev.dilib.local/ui/scripts/breeze.debug.js:15811:15)     @ object.breeze.abstractdataserviceadapter.proto.savechanges.ajaximpl.ajax.error (http://dev.dilib.local/ui/scripts/breeze.debug.js:15687:9)     @ errorfn (http://dev.dilib.local/ui/scripts/breeze.debug.js:16026:14)     @ http://dev.dilib.local/ui/scripts/angular.js:9415:11     @ processqueue (http://dev.dilib.local/ui/scripts/angular.js:13248:27)     @ http://dev.dilib.local/ui/scripts/angular.js:13264:27     @ scope.$get.scope.$eval (http://dev.dilib.local/ui/scripts/angular.js:14466:28)     @ scope.$get.scope.$digest (http://dev.dilib.local/ui/scripts/angular.js:14282:31)     @ scope.$get.scope.$apply (http://dev.dilib.local/ui/scripts/angular.js:14571:24) 

server side:

stacktrace: "   @ system.arraysegment`1.system.collections.ienumerable.getenumerator() ↵   @ system.data.entity.core.objects.entityentry.takesnapshotofrelationships() ↵   @ system.data.entity.core.objects.objectcontext.addobject(string entitysetname, object entity) ↵   @ breeze.contextprovider.ef6.efcontextprovider`1.addobjectstateentry(efentityinfo entityinfo) ↵   @ breeze.contextprovider.ef6.efcontextprovider`1.processentity(efentityinfo entityinfo) ↵   @ breeze.contextprovider.ef6.efcontextprovider`1.processsaves(dictionary`2 savemap) ↵   @ breeze.contextprovider.ef6.efcontextprovider`1.savechangescore(saveworkstate saveworkstate) ↵   @ breeze.contextprovider.contextprovider.openandsave(saveworkstate saveworkstate) ↵   @ breeze.contextprovider.contextprovider.savechanges(jobject savebundle, transactionsettings transactionsettings) ↵   @ sayusiando.dilib.service.webapi.controllers.breeze.dilibcontroller.savechanges(jobject savebundle) in c:\projects\sayusiando.visualstudio.com\dilib\dev\branches\dilib-dev\src\digitallibrary\app\dilib\service\dilib.service.webapi\controllers\breeze\dilibcontroller.cs:line 29 ↵   @ lambda_method(closure , object , object[] ) ↵   @ system.web.http.controllers.reflectedhttpactiondescriptor.actionexecutor.<>c__displayclass10.<getexecutor>b__9(object instance, object[] methodparameters) ↵   @ system.web.http.controllers.reflectedhttpactiondescriptor.executeasync(httpcontrollercontext controllercontext, idictionary`2 arguments, cancellationtoken cancellationtoken) ↵--- end of stack trace previous location exception thrown --- ↵   @ system.runtime.compilerservices.taskawaiter.throwfornonsuccess(task task) ↵   @ system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(task task) ↵   @ system.runtime.compilerservices.taskawaiter`1.getresult() ↵   @ system.web.http.controllers.apicontrolleractioninvoker.<invokeactionasynccore>d__0.movenext() ↵--- end of stack trace previous location exception thrown --- ↵   @ system.runtime.compilerservices.taskawaiter.throwfornonsuccess(task task) ↵   @ system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(task task) ↵   @ system.runtime.compilerservices.taskawaiter`1.getresult() ↵   @ system.web.http.filters.actionfilterattribute.<callonactionexecutedasync>d__5.movenext() ↵--- end of stack trace previous location exception thrown --- ↵   @ system.runtime.exceptionservices.exceptiondispatchinfo.throw() ↵   @ system.web.http.filters.actionfilterattribute.<callonactionexecutedasync>d__5.movenext() ↵--- end of stack trace previous location exception thrown --- ↵   @ system.runtime.compilerservices.taskawaiter.throwfornonsuccess(task task) ↵   @ system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(task task) ↵   @ system.web.http.filters.actionfilterattribute.<executeactionfilterasynccore>d__0.movenext() ↵--- end of stack trace previous location exception thrown --- ↵   @ system.runtime.compilerservices.taskawaiter.throwfornonsuccess(task task) ↵   @ system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(task task) ↵   @ system.runtime.compilerservices.taskawaiter`1.getresult() ↵   @ system.web.http.controllers.actionfilterresult.<executeasync>d__2.movenext() ↵--- end of stack trace previous location exception thrown --- ↵   @ system.runtime.compilerservices.taskawaiter.throwfornonsuccess(task task) ↵   @ system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(task task) ↵   @ system.runtime.compilerservices.taskawaiter`1.getresult() ↵   @ system.web.http.controllers.exceptionfilterresult.<executeasync>d__0.movenext() ↵--- end of stack trace previous location exception thrown --- ↵   @ system.runtime.exceptionservices.exceptiondispatchinfo.throw() ↵   @ system.web.http.controllers.exceptionfilterresult.<executeasync>d__0.movenext() ↵--- end of stack trace previous location exception thrown --- ↵   @ system.runtime.compilerservices.taskawaiter.throwfornonsuccess(task task) ↵   @ system.runtime.compilerservices.taskawaiter.handlenonsuccessanddebuggernotification(task task) ↵   @ system.runtime.compilerservices.taskawaiter`1.getresult() ↵   @ system.web.http.dispatcher.httpcontrollerdispatcher.<sendasync>d__1.movenext()" 

thanks in advance!

i found it. made 2 mistakes.

  • when created c# classes object model thought need array store blogentrytags, entered "array" , hit enter. resharper tried helpful put arraysegment instead of list. did not make defect far because haven't use part of app.
  • when checked possible issues did not checked possible issues between breeze , db.

now, working fine.

here change:

enter image description here


Comments

Popular posts from this blog

shopping cart - Page redirect not working PHP -

php - How to modify a menu to show sub-menus -

python - Installing PyDev in eclipse is failed -