Grails Upgrade from version 2.0.1 to 2.2.3

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Grails Upgrade from version 2.0.1 to 2.2.3

msriper
Hi,
I am trying to upgrade a grails application from 2.0.1 to 2.2.3.

Currently our grails app runs on version 2.0.1 with spring security plugin v 1.2.7.3 for security. We have role based access set up for app. And the user info is stored in mongodb for which we use grails mongodb plugin v 1.0.0.RC5.

I have upgraded the app to grails v 2.2.3 which led to upgrade of mongodb plugin to v 1.3.0.GA.

After the upgrade, when I try to login into the application through the UI using an existing user information, it seems to authenticate the login information but the page that shows up after says that user is not authorized to view the page(denied page).

In the log, there is Access denied exception that shows up. I ran Spring Security logging in debug mode and found that the roles are not being fetch from the db as I see ROLE_NO_ROLES being assigned as role for the user even though it seems like the authentication is successful.
I am not sure why the roles are being fetched from mongodb as the collections for user, user roles are there in the db. and the config.groovy file has these set up for spring secuirty from before(the upgrade):
grails.plugins.springsecurity.userLookup.userDomainClassName = 'com.paydiant.domain.adminportal.user.SecurityUser'
grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'com.paydiant.domain.adminportal.user.SecurityUserSecurityRole'
grails.plugins.springsecurity.authority.className = 'com.paydiant.domain.adminportal.user.SecurityRole'

Could someone please help me with this!

Here is a part of the log in springsecurity log in debug mode:


29 Aug 2013 16:15:15,519  DEBUG org.springframework.security.web.FilterChainProxy Candidate is: '/index.gsp'; pattern is /**; matched=true
29 Aug 2013 16:15:15,519  DEBUG org.springframework.security.web.FilterChainProxy /index.gsp at position 1 of 8 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter'
29 Aug 2013 16:15:15,519  DEBUG org.springframework.security.web.context.HttpSessionSecurityContextRepository Obtained a valid SecurityContext from SPRING_SECURITY_CONTEXT: 'org.springframework.security.core.context.SecurityContextImpl@88b707d4: Authentication: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@88b707d4: Principal: org.codehaus.groovy.grails.plugins.springsecurity.GrailsUser@586034f: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_NO_ROLES; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@43458: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: 3AE55CB76226E3BE4E510AC8ACA78313; Granted Authorities: ROLE_NO_ROLES'
29 Aug 2013 16:15:15,519  DEBUG org.springframework.security.web.FilterChainProxy /index.gsp at position 2 of 8 in additional filter chain; firing Filter: 'MutableLogoutFilter'
29 Aug 2013 16:15:15,519  DEBUG org.springframework.security.web.FilterChainProxy /index.gsp at position 3 of 8 in additional filter chain; firing Filter: 'RequestHolderAuthenticationFilter'
29 Aug 2013 16:15:15,519  DEBUG org.springframework.security.web.FilterChainProxy /index.gsp at position 4 of 8 in additional filter chain; firing Filter: 'SecurityContextHolderAwareRequestFilter'
29 Aug 2013 16:15:15,519  DEBUG org.springframework.security.web.FilterChainProxy /index.gsp at position 5 of 8 in additional filter chain; firing Filter: 'RememberMeAuthenticationFilter'
29 Aug 2013 16:15:15,519  DEBUG org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter SecurityContextHolder not populated with remember-me token, as it already contained: 'org.springframework.security.authentication.UsernamePasswordAuthenticationToken@88b707d4: Principal: org.codehaus.groovy.grails.plugins.springsecurity.GrailsUser@586034f: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_NO_ROLES; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@43458: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: 3AE55CB76226E3BE4E510AC8ACA78313; Granted Authorities: ROLE_NO_ROLES'
29 Aug 2013 16:15:15,519  DEBUG org.springframework.security.web.FilterChainProxy /index.gsp at position 6 of 8 in additional filter chain; firing Filter: 'AnonymousAuthenticationFilter'
29 Aug 2013 16:15:15,520  DEBUG org.springframework.security.web.authentication.AnonymousAuthenticationFilter SecurityContextHolder not populated with anonymous token, as it already contained: 'org.springframework.security.authentication.UsernamePasswordAuthenticationToken@88b707d4: Principal: org.codehaus.groovy.grails.plugins.springsecurity.GrailsUser@586034f: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_NO_ROLES; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@43458: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: 3AE55CB76226E3BE4E510AC8ACA78313; Granted Authorities: ROLE_NO_ROLES'
29 Aug 2013 16:15:15,520  DEBUG org.springframework.security.web.FilterChainProxy /index.gsp at position 7 of 8 in additional filter chain; firing Filter: 'ExceptionTranslationFilter'
29 Aug 2013 16:15:15,520  DEBUG org.springframework.security.web.FilterChainProxy /index.gsp at position 8 of 8 in additional filter chain; firing Filter: 'FilterSecurityInterceptor'
29 Aug 2013 16:15:15,520  DEBUG org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory Returning cached instance of singleton bean 'groovyPagesTemplateEngine'
29 Aug 2013 16:15:15,520  DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory Returning cached instance of singleton bean 'pluginManager'
29 Aug 2013 16:15:15,520  DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory Returning cached instance of singleton bean 'grailsApplication'
29 Aug 2013 16:15:15,520  DEBUG org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory Returning cached instance of singleton bean 'groovyPagesUriService'
29 Aug 2013 16:15:15,520  DEBUG org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory Returning cached instance of singleton bean 'messageSource'
29 Aug 2013 16:15:15,520  DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory Returning cached instance of singleton bean 'grailsApplication'
29 Aug 2013 16:15:15,520  DEBUG org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory Returning cached instance of singleton bean 'multipartResolver'
29 Aug 2013 16:15:15,520  DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory Returning cached instance of singleton bean 'grailsApplication'
29 Aug 2013 16:15:15,521  DEBUG org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory Returning cached instance of singleton bean 'multipartResolver'
29 Aug 2013 16:15:15,521  DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory Returning cached instance of singleton bean 'pluginManager'
29 Aug 2013 16:15:15,523  DEBUG org.springframework.security.web.access.intercept.FilterSecurityInterceptor Secure object: FilterInvocation: URL: /index.gsp; Attributes: [ROLE_ADMIN, ROLE_PORTAL_USER]
29 Aug 2013 16:15:15,523  DEBUG org.springframework.security.web.access.intercept.FilterSecurityInterceptor Previously Authenticated: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@88b707d4: Principal: org.codehaus.groovy.grails.plugins.springsecurity.GrailsUser@586034f: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_NO_ROLES; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@43458: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: 3AE55CB76226E3BE4E510AC8ACA78313; Granted Authorities: ROLE_NO_ROLES
29 Aug 2013 16:15:15,523  DEBUG org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl getReachableGrantedAuthorities() - From the roles [ROLE_NO_ROLES] one can reach [ROLE_NO_ROLES] in zero or more steps.
29 Aug 2013 16:15:15,534  ERROR StackTrace Full Stack Trace:
org.springframework.security.access.AccessDeniedException: Access is denied
        at org.codehaus.groovy.grails.plugins.springsecurity.AuthenticatedVetoableDecisionManager.deny(AuthenticatedVetoableDecisionManager.java:111)
        at org.codehaus.groovy.grails.plugins.springsecurity.AuthenticatedVetoableDecisionManager.checkOtherVoters(AuthenticatedVetoableDecisionManager.java:103)
        at org.codehaus.groovy.grails.plugins.springsecurity.AuthenticatedVetoableDecisionManager.decide(AuthenticatedVetoableDecisionManager.java:44)
        at org.springframework.security.access.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:204)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:106)
        at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
        at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
        at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
        at org.codehaus.groovy.grails.plugins.springsecurity.RequestHolderAuthenticationFilter.doFilter(RequestHolderAuthenticationFilter.java:40)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
        at org.codehaus.groovy.grails.plugins.springsecurity.MutableLogoutFilter.doFilter(MutableLogoutFilter.java:79)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
        at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:66)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
29 Aug 2013 16:15:15,536  ERROR StackTrace Full Stack Trace:
org.springframework.security.access.AccessDeniedException: Access is denied
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
29 Aug 2013 16:15:15,536  DEBUG org.springframework.security.web.access.ExceptionTranslationFilter Access is denied (user is not anonymous); delegating to AccessDeniedHandler
org.springframework.security.access.AccessDeniedException: Access is denied
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
29 Aug 2013 16:15:15,537  DEBUG org.springframework.security.web.context.SecurityContextPersistenceFilter SecurityContextHolder now cleared, as request processing completed
29 Aug 2013 16:15:15,537  DEBUG org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter Cleared Grails thread-bound request context: org.apache.catalina.connector.RequestFacade@31ee29d
29 Aug 2013 16:15:15,565  DEBUG org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory Returning cached instance of singleton bean 'groovyPagesTemplateEngine'
29 Aug 2013 16:15:15,566  DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory Returning cached instance of singleton bean 'pluginManager'
29 Aug 2013 16:15:15,566  DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory Returning cached instance of singleton bean 'grailsApplication'
29 Aug 2013 16:15:15,566  DEBUG org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory Returning cached instance of singleton bean 'groovyPagesUriService'
29 Aug 2013 16:15:15,566  DEBUG org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory Returning cached instance of singleton bean 'messageSource'
29 Aug 2013 16:15:15,566  DEBUG org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter Bound Grails request context to thread: org.apache.catalina.connector.RequestFacade@31ee29d
29 Aug 2013 16:15:15,566  DEBUG org.springframework.security.web.FilterChainProxy Converted URL to lowercase, from: '/login/denied'; to: '/login/denied'
29 Aug 2013 16:15:15,566  DEBUG org.springframework.security.web.FilterChainProxy Candidate is: '/login/denied'; pattern is /api/**; matched=false
29 Aug 2013 16:15:15,566  DEBUG org.springframework.security.web.FilterChainProxy Converted URL to lowercase, from: '/login/denied'; to: '/login/denied'
29 Aug 2013 16:15:15,566  DEBUG org.springframework.security.web.FilterChainProxy Candidate is: '/login/denied'; pattern is /offercampaignrest/**; matched=false
29 Aug 2013 16:15:15,566  DEBUG org.springframework.security.web.FilterChainProxy Converted URL to lowercase, from: '/login/denied'; to: '/login/denied'
29 Aug 2013 16:15:15,566  DEBUG org.springframework.security.web.FilterChainProxy Candidate is: '/login/denied'; pattern is /**; matched=true
29 Aug 2013 16:15:15,566  DEBUG org.springframework.security.web.FilterChainProxy /login/denied at position 1 of 8 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter'
29 Aug 2013 16:15:15,567  DEBUG org.springframework.security.web.context.HttpSessionSecurityContextRepository Obtained a valid SecurityContext from SPRING_SECURITY_CONTEXT: 'org.springframework.security.core.context.SecurityContextImpl@88b707d4: Authentication: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@88b707d4: Principal: org.codehaus.groovy.grails.plugins.springsecurity.GrailsUser@586034f: Username: admin; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: true; Granted Authorities: ROLE_NO_ROLES; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@43458: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: 3AE55CB76226E3BE4E510AC8ACA78313; Granted Authorities: ROLE_NO_ROLES'


Thank you,
Mayuri
Reply | Threaded
Open this post in threaded view
|

Re: Grails Upgrade from version 2.0.1 to 2.2.3

burtbeckwith
Do you have a custom UserDetailsService?

Burt

msriper wrote
Hi,
I am trying to upgrade a grails application from 2.0.1 to 2.2.3.

Currently our grails app runs on version 2.0.1 with spring security plugin v 1.2.7.3 for security. We have role based access set up for app. And the user info is stored in mongodb for which we use grails mongodb plugin v 1.0.0.RC5.

I have upgraded the app to grails v 2.2.3 which led to upgrade of mongodb plugin to v 1.3.0.GA.

After the upgrade, when I try to login into the application through the UI using an existing user information, it seems to authenticate the login information but the page that shows up after says that user is not authorized to view the page(denied page).

In the log, there is Access denied exception that shows up. I ran Spring Security logging in debug mode and found that the roles are not being fetch from the db as I see ROLE_NO_ROLES being assigned as role for the user even though it seems like the authentication is successful.
I am not sure why the roles are being fetched from mongodb as the collections for user, user roles are there in the db. and the config.groovy file has these set up for spring secuirty from before(the upgrade):
grails.plugins.springsecurity.userLookup.userDomainClassName = 'com.paydiant.domain.adminportal.user.SecurityUser'
grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'com.paydiant.domain.adminportal.user.SecurityUserSecurityRole'
grails.plugins.springsecurity.authority.className = 'com.paydiant.domain.adminportal.user.SecurityRole'

Could someone please help me with this!

<SNIP>

Thank you,
Mayuri
Reply | Threaded
Open this post in threaded view
|

Re: Grails Upgrade from version 2.0.1 to 2.2.3

msriper
Hi Burt,
No I am not using one.
I think I found a solution to this, we are using dbrefs and since it was no longer applied by default by Mongodb plugin v 1.1 and above, this was breaking.

 It is working now, where I can login and am able to look at the pages/records etc once I put this in the config file:
grails.mongo.default.mapping = {
'*'(reference: true)
}

But I now have a problem with the next_id document structure changing in  mongodb plugin version 1.2.0 and 1.3.0 vs 1.1.0 or less. 
The issue is the document for next_id for a collection 1.0.0RC5 version just contained the id which was the sequence number. But 1.2.0 and 1.3.0 version of mongodb plugin, the document for next_id for a collection has 2 fields, an id with the collection name and a field next_id with the sequence number. The sequence number seems to have started to 1, which is causing the issue of duplicate key:

E11000 duplicate key error index: pay_self_service_portal.securityUser.$_id_  dup key: { : 2 }. Stacktrace follows:
org.springframework.dao.DataIntegrityViolationException: E11000 duplicate key error index: pay_self_service_portal.securityUser.$_id_  dup key: { : 2 }
at org.grails.datastore.mapping.mongo.MongoSession$1.doInDB(MongoSession.java:172)
at org.grails.datastore.mapping.mongo.MongoSession.flushPendingInserts(MongoSession.java:143)
at org.grails.datastore.mapping.core.AbstractSession.flush(AbstractSession.java:258)
at org.grails.datastore.mapping.mongo.MongoSession.flush(MongoSession.java:126)
at org.grails.datastore.gorm.GormInstanceApi.doSave(GormInstanceApi.groovy:193)
at org.grails.datastore.gorm.GormInstanceApi$_save_closure5.doCall(GormInstanceApi.groovy:163)
at org.grails.datastore.mapping.core.DatastoreUtils.execute(DatastoreUtils.java:302)
at org.grails.datastore.gorm.AbstractDatastoreApi.execute(AbstractDatastoreApi.groovy:34)
at org.grails.datastore.gorm.GormInstanceApi.save(GormInstanceApi.groovy:162)
at org.grails.datastore.gorm.InstanceMethodInvokingClosure.call(GormEnhancer.groovy:261)
at com.paydiant.domain.adminportal.user.CampaignSponsorUserController.save(CampaignSponsorUserController.groovy:232)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

I will try researching bit more on this and see if we need to write some sort of migration script to set the next_ids to the last sequence number which already existing previously for each of the collections or if one has been provided already somewhere.
Please let me know if you have thoughts on this.

Thank you for replying. 

I will reply to my post with the answer that I needed to set the default mongo mapping to dbrefs.

Thank you,
Mayuri. 


Reply | Threaded
Open this post in threaded view
|

Re: Grails Upgrade from version 2.0.1 to 2.2.3

Spark42
Were you able to come up with a work around for the E11000 duplicate key error?