oria / gridx

Just another powerful Dojo grid
Other
162 stars 78 forks source link

Sometime the action of the grid store is later than that of the fetchbyID, then data can't be obtained by the grid.row, and throw error #378

Closed leonlr closed 7 years ago

leonlr commented 8 years ago

Client error:

Error in Body._buildRowContent: Row is not in cache: 25declare._buildRowContent @ /shapplication/themes/default/admin/plugins/dojo/gridx/modules/Body.js:846array.forEach @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/array.js:247(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/modules/Body.js:823finish @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/Model.js:440(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:387when @ /shapplication/themes/default/admin/plugins/dojo/dojo/when.js:40(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:383fetchByIndex @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:120(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:382fetchById @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:85declare.when @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:381declare._call @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/_Extension.js:67declare._call @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/_Extension.js:67f @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/extensions/ClientFilter.js:145declare.when @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/extensions/ClientFilter.js:157declare._call @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/_Extension.js:67declare._call @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/_Extension.js:67declare._call @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/_Extension.js:67(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/Model.js:449array.map @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/array.js:289declare._cmdRequest @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/Model.js:433func @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/Model.js:477signalListener @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:37then.promise.then @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:258when @ /shapplication/themes/default/admin/plugins/dojo/dojo/when.js:51func @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/Model.js:479signalListener @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:37signalWaiting @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:28resolve @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:192notify @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:187complete @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:168resolve.callback @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:248addResult @ /shapplication/themes/default/admin/plugins/dojo/dojo/DeferredList.js:54(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/dojo/DeferredList.js:37notify @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:187complete @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:168resolve.callback @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:248(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:396when @ /shapplication/themes/default/admin/plugins/dojo/dojo/when.js:40(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:383notify @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:187complete @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:168resolve.callback @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:248addResult @ /shapplication/themes/default/admin/plugins/dojo/dojo/DeferredList.js:54(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/dojo/DeferredList.js:37notify @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:187complete @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:168resolve.callback @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:248onComplete @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Sync.js:373signalListener @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:37signalWaiting @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:28resolve @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:192notify @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:187complete @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:168resolve.callback @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:248notify @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:204complete @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:168resolve.callback @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:248notify @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:196complete @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:168resolve.callback @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:248(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/xhr.js:627signalListener @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:37signalWaiting @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:28resolve @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:192signalDeferred @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:81signalListener @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:52signalWaiting @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:28resolve @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:192signalDeferred @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:81signalListener @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:58signalWaiting @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:28resolve @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:192signalDeferred @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:81signalListener @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:52signalWaiting @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:28resolve @ /shapplication/themes/default/admin/plugins/dojo/dojo/Deferred.js:192handleResponse @ /shapplication/themes/default/admin/plugins/dojo/dojo/request/xhr.js:78onLoad @ /shapplication/themes/default/admin/plugins/dojo/dojo/request/xhr.js:104XMLHttpRequest.send (async)xhr @ /shapplication/themes/default/admin/plugins/dojo/dojo/request/xhr.js:242dojo.xhr @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/xhr.js:615declare.query @ /shapplication/themes/default/admin/plugins/dojo/dojo/store/JsonRest.js:209declare._storeFetch @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Sync.js:388(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:117array.map @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/array.js:289fetchByIndex @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:116(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:382fetchById @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:85declare.when @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Async.js:381declare._call @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/_Extension.js:67declare._call @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/_Extension.js:67f @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/extensions/ClientFilter.js:145declare.when @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/extensions/ClientFilter.js:157declare._call @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/_Extension.js:67declare._call @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/_Extension.js:67declare._call @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/_Extension.js:67(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/Model.js:449array.map @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/array.js:289declare._cmdRequest @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/Model.js:433func @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/Model.js:477declare._exec @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/Model.js:494declare.when @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/Model.js:334declare._buildUncachedRows @ /shapplication/themes/default/admin/plugins/dojo/gridx/modules/Body.js:821declare.renderRows @ /shapplication/themes/default/admin/plugins/dojo/gridx/modules/Body.js:623dispatcher.around.advice @ /shapplication/themes/default/admin/plugins/dojo/dojo/aspect.js:110target.(anonymous function).dispatcher @ /shapplication/themes/default/admin/plugins/dojo/dojo/aspect.js:92(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/modules/Body.js:480notify @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:187promise.then.then @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/Deferred.js:330declare.refresh @ /shapplication/themes/default/admin/plugins/dojo/gridx/modules/Body.js:428(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/gridx/modules/Body.js:543setTimeout (async)declare.lazyRefresh @ /shapplication/themes/default/admin/plugins/dojo/gridx/modules/Body.js:541declare._updateBody @ /shapplication/themes/default/admin/plugins/dojo/gridx/modules/Pagination.js:274declare._onSizeChange @ /shapplication/themes/default/admin/plugins/dojo/gridx/modules/Pagination.js:290(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/lang.js:384target.(anonymous function).dispatcher @ /shapplication/themes/default/admin/plugins/dojo/dojo/aspect.js:98declare._onSizeChange @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/Model.js:425declare._onNew @ /shapplication/themes/default/admin/plugins/dojo/gridx/core/model/cache/Sync.js:447(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/lang.js:384target.(anonymous function).dispatcher @ /shapplication/themes/default/admin/plugins/dojo/dojo/aspect.js:98declare.done @ /shapplication/themes/default/admin/js/ModalForm.js:62(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/lang.js:384target.(anonymous function).dispatcher @ /shapplication/themes/default/admin/plugins/dojo/dojo/aspect.js:98declare._onClick @ /shapplication/themes/default/admin/plugins/dojo/dijit/form/_ButtonMixin.js:58(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/lang.js:384declare.__onClick @ /shapplication/themes/default/admin/plugins/dojo/dijit/form/_ButtonMixin.js:45(anonymous function) @ /shapplication/themes/default/admin/plugins/dojo/dojo/_base/lang.js:384

Server Log:

15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 1 of 13 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 context.HttpSessionSecurityContextRepository:192 - Obtained a valid SecurityContext from SPRING_SECURITY_CONTEXT: 'org.springframework.security.core.context.SecurityContextImpl@bf58024a: Authentication: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@bf58024a: Principal: org.springframework.security.core.userdetails.User@586034f: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_ADMIN; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@fffbcba8: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: BB5B25AD2E9D7D1E1D60D6F8D30CF1A5; Granted Authorities: ROLE_ADMIN' 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 2 of 13 in additional filter chain; firing Filter: 'WebAsyncManagerIntegrationFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 3 of 13 in additional filter chain; firing Filter: 'HeaderWriterFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 writers.HstsHeaderWriter:128 - Not injecting HSTS header since it did not match the requestMatcher org.springframework.security.web.header.writers.HstsHeaderWriter$SecureRequestMatcher@661a3dc3 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 4 of 13 in additional filter chain; firing Filter: 'LogoutFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 matcher.AntPathRequestMatcher:151 - Checking match of request : '/admin/groupmanager/153'; against '/logout' 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 5 of 13 in additional filter chain; firing Filter: 'CaptchaUsernamePasswordAuthenticationFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 matcher.AntPathRequestMatcher:151 - Checking match of request : '/admin/groupmanager/153'; against '/admin/dologin' 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 6 of 13 in additional filter chain; firing Filter: 'BasicAuthenticationFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 7 of 13 in additional filter chain; firing Filter: 'RequestCacheAwareFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 8 of 13 in additional filter chain; firing Filter: 'SecurityContextHolderAwareRequestFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 9 of 13 in additional filter chain; firing Filter: 'RememberMeAuthenticationFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 rememberme.RememberMeAuthenticationFilter:153 - SecurityContextHolder not populated with remember-me token, as it already contained: 'org.springframework.security.authentication.UsernamePasswordAuthenticationToken@bf58024a: Principal: org.springframework.security.core.userdetails.User@586034f: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_ADMIN; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@fffbcba8: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: BB5B25AD2E9D7D1E1D60D6F8D30CF1A5; Granted Authorities: ROLE_ADMIN' 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 10 of 13 in additional filter chain; firing Filter: 'AnonymousAuthenticationFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 authentication.AnonymousAuthenticationFilter:106 - SecurityContextHolder not populated with anonymous token, as it already contained: 'org.springframework.security.authentication.UsernamePasswordAuthenticationToken@bf58024a: Principal: org.springframework.security.core.userdetails.User@586034f: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_ADMIN; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@fffbcba8: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: BB5B25AD2E9D7D1E1D60D6F8D30CF1A5; Granted Authorities: ROLE_ADMIN' 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 11 of 13 in additional filter chain; firing Filter: 'SessionManagementFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 12 of 13 in additional filter chain; firing Filter: 'ExceptionTranslationFilter' 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:324 - /admin/groupmanager/153 at position 13 of 13 in additional filter chain; firing Filter: 'FilterSecurityInterceptor' 15:15:08,060 DEBUG http-bio-8080-exec-3 matcher.AntPathRequestMatcher:151 - Checking match of request : '/admin/groupmanager/153'; against '/admin/**' 15:15:08,060 DEBUG http-bio-8080-exec-3 intercept.FilterSecurityInterceptor:218 - Secure object: FilterInvocation: URL: /admin/groupmanager/153; Attributes: [hasRole('ROLE_ADMIN')] 15:15:08,060 DEBUG http-bio-8080-exec-3 intercept.FilterSecurityInterceptor:347 - Previously Authenticated: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@bf58024a: Principal: org.springframework.security.core.userdetails.User@586034f: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_ADMIN; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@fffbcba8: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: BB5B25AD2E9D7D1E1D60D6F8D30CF1A5; Granted Authorities: ROLE_ADMIN 15:15:08,060 DEBUG http-bio-8080-exec-3 vote.AffirmativeBased:65 - Voter: org.springframework.security.web.access.expression.WebExpressionVoter@1072b841, returned: 1 15:15:08,060 DEBUG http-bio-8080-exec-3 intercept.FilterSecurityInterceptor:242 - Authorization successful 15:15:08,060 DEBUG http-bio-8080-exec-3 intercept.FilterSecurityInterceptor:255 - RunAsManager did not change Authentication object 15:15:08,060 DEBUG http-bio-8080-exec-3 web.FilterChainProxy:309 - /admin/groupmanager/153 reached end of additional filter chain; proceeding with original chain 15:15:08,060 DEBUG http-bio-8080-exec-3 support.DefaultListableBeanFactory:250 - Returning cached instance of singleton bean 'adminController' 15:15:08,060 DEBUG http-bio-8080-exec-3 internal.LogicalConnectionImpl:226 - Obtaining JDBC connection 15:15:08,060 DEBUG http-bio-8080-exec-3 internal.LogicalConnectionImpl:232 - Obtained JDBC connection 15:15:08,076 DEBUG http-bio-8080-exec-3 spi.AbstractTransactionImpl:160 - begin 15:15:08,092 DEBUG http-bio-8080-exec-3 jdbc.JdbcTransaction:69 - initial autocommit status: false 15:15:08,092 DEBUG http-bio-8080-exec-3 internal.AbstractSaveEventListener:131 - Generated identifier: 153, using strategy: org.hibernate.id.Assigned 15:15:08,092 DEBUG http-bio-8080-exec-3 spi.AbstractTransactionImpl:175 - committing 15:15:08,092 DEBUG http-bio-8080-exec-3 internal.AbstractFlushingEventListener:149 - Processing flush-time cascades 15:15:08,092 DEBUG http-bio-8080-exec-3 internal.AbstractFlushingEventListener:189 - Dirty checking collections 15:15:08,092 DEBUG http-bio-8080-exec-3 internal.AbstractFlushingEventListener:123 - Flushed: 1 insertions, 0 updates, 0 deletions to 1 objects 15:15:08,092 DEBUG http-bio-8080-exec-3 internal.AbstractFlushingEventListener:130 - Flushed: 0 (re)creations, 0 updates, 0 removals to 0 collections 15:15:08,092 DEBUG http-bio-8080-exec-3 util.EntityPrinter:114 - Listing entities: 15:15:08,092 DEBUG http-bio-8080-exec-3 util.EntityPrinter:121 - com.shapplicationplatform.entity.user.Group{group_name=33333, id=153} 15:15:08,092 DEBUG http-bio-8080-exec-3 hibernate.SQL:109 - insert into groups (group_name, id) values (?, ?) Hibernate: insert into groups (group_name, id) values (?, ?) 15:15:08,092 DEBUG http-bio-8080-exec-3 internal.BatchingBatch:119 - Executing batch size: 1

JanezStupar commented 6 years ago

@leonlr did you find a way around your issue? I am seeing same issue. Sporadically, store.query request gets triggered even before store.add is finished.