java.lang.Exception

There are no available Samebug tips for this exception. Do you have an idea how to solve this issue? A short tip would help users who saw this issue last week.

  • This was originally reported in the field where looking up ~350 coaches via {{UPortalPersonAttributesService#getCoaches()}} was taking ~1.5m. In that case we demonstrated that only a negligible portion of that time could be attributed to the "core" LDAP search. Further, even searches with result sets smaller by an order of magnitude would take several seconds to return, which is rather unexpected for what should be heavily cached data. The fix in the field was to dramatically increase the TTLs on the {{org.jasig.services.persondir.USER_INFO.merged}} cache, which did fix the perceived poor performance, but meant that changes in external attribute stores (LDAP) would be very slow to appear in SSP (Platform). Replicating the problem locally was difficult until I added a third PersonAttributeDAO to the default two uPortal-internal DAOs, in which case I could get even small datasets, e.g. 2 coaches, to take up to a second to return and larger datasets, e.g. 40 coaches, to take up to 15 seconds to return. I think this happens because the query pattern triggered by {{PersonLookupHelperImpl#searchForPeople}} has at least two problems: # Before the "main" search runs, the attribute filter ends up querying each DAO for each possible attribute as if it were a username. # After the "main" search runs the results are filtered for user-scoped visibility (i.e. only return the users for which the current user has permissions to see), which results in each found user being queried for again, but by username #1 seems like a flat out bug. I don't understand why that would ever make sense to do. Need to talk with the uPortal guys about that one. #2 seems like we both need to recommend that all "external" DAOs need a caching wrapper and that we need that wrapper to always cache both query results and per-username results so that if the app turns around immediately and asks for the same users by username we're not going to hit the underlying data store. It's still going to be terribly inefficient, but would be an improvement (and, FWIW, not all that dissimilar from the Hibernate identity cache). Lastly, to avoid regressions in this area and because we can't set per-search cache policies on the platform side, we should probably implement one or more caches on the SSP side... maybe some simple wrappers on the {{PersonAttributesService}} interface? (http://docs.spring.io/spring/docs/3.1.4.RELEASE/spring-framework-reference/htmlsingle/#cache) Here is an example of problem #1 where I captured a stack trace just to demonstrate where the call was coming from. You should expect to see ~10 similar lookups, basically one for every possible user attribute: {noformat} getPeopleWithMultivaluedAttributes: {username=[givenName]}. Stack trace to follow java.lang.Exception: Ignore me at org.jasig.portal.persondir.support.DiscriminatingStubPersonAttributeDao.getPeopleWithMultivaluedAttributes(DiscriminatingStubPersonAttributeDao.java:40) at org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54) at org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138) at org.jasig.services.persondir.support.CachingPersonAttributeDaoImpl.getPeopleWithMultivaluedAttributes(CachingPersonAttributeDaoImpl.java:332) at org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54) at org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138) at org.jasig.services.persondir.support.AbstractDefaultAttributePersonAttributeDao.getPerson(AbstractDefaultAttributePersonAttributeDao.java:77) at org.jasig.portal.portlets.swapper.OverwritingPersonAttributeDao.getPerson(OverwritingPersonAttributeDao.java:99) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.contains(PersonAttributesGroupStore.java:150) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroupsForEntity(PersonAttributesGroupStore.java:269) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroups(PersonAttributesGroupStore.java:252) at org.jasig.portal.groups.ReferenceIndividualGroupService.findContainingGroups(ReferenceIndividualGroupService.java:207) at org.jasig.portal.groups.ReferenceCompositeGroupService.findContainingGroups(ReferenceCompositeGroupService.java:76) at org.jasig.portal.groups.GroupMemberImpl.initializeContainingGroupKeys(GroupMemberImpl.java:281) at org.jasig.portal.groups.GroupMemberImpl.getGroupKeys(GroupMemberImpl.java:222) at org.jasig.portal.groups.GroupMemberImpl.getContainingGroups(GroupMemberImpl.java:180) at org.jasig.portal.groups.GroupMemberImpl.primGetAllContainingGroups(GroupMemberImpl.java:344) at org.jasig.portal.groups.GroupMemberImpl.getAllContainingGroups(GroupMemberImpl.java:139) at org.jasig.portal.security.provider.AuthorizationImpl.primGetPermissionsForPrincipal(AuthorizationImpl.java:924) at org.jasig.portal.security.provider.AuthorizationImpl.getPermissionsForPrincipal(AuthorizationImpl.java:665) at org.jasig.portal.security.provider.AnyUnblockedGrantPermissionPolicy.doesPrincipalHavePermission(AnyUnblockedGrantPermissionPolicy.java:100) at org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:466) at org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:430) at org.jasig.portal.security.provider.AuthorizationPrincipalImpl.hasPermission(AuthorizationPrincipalImpl.java:236) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.getAvailableAttributes(PersonLookupHelperImpl.java:260) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.getAvailableAttributes(PersonLookupHelperImpl.java:246) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.searchForPeople(PersonLookupHelperImpl.java:155) at org.jasig.portal.rest.PeopleRESTController.getPeople(PeopleRESTController.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) at org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.doInvoke(SimpleCrossContextRestApiInvoker.java:177) at org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.invoke(SimpleCrossContextRestApiInvoker.java:93) at org.jasig.ssp.service.impl.UPortalPersonAttributesService.searchForUsers(UPortalPersonAttributesService.java:209) at org.jasig.ssp.service.impl.UPortalPersonAttributesService.getCoaches(UPortalPersonAttributesService.java:260) at org.jasig.ssp.service.impl.PersonServiceImpl.getAllCoachUsernamesFromDirectory(PersonServiceImpl.java:567) at org.jasig.ssp.service.impl.PersonServiceImpl.syncCoaches(PersonServiceImpl.java:638) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy262.syncCoaches(Unknown Source) at org.jasig.ssp.service.impl.ScheduledTaskWrapperServiceImpl.syncCoaches(ScheduledTaskWrapperServiceImpl.java:442) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) {noformat} And here is an example of #2. You should expect to see one of these for each person returned from the "main" coach search: {noformat} getPeopleWithMultivaluedAttributes: {username=[stub1username]}. Stack trace to follow java.lang.Exception: Ignore me at org.jasig.portal.persondir.support.DiscriminatingStubPersonAttributeDao.getPeopleWithMultivaluedAttributes(DiscriminatingStubPersonAttributeDao.java:40) at org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54) at org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138) at org.jasig.services.persondir.support.CachingPersonAttributeDaoImpl.getPeopleWithMultivaluedAttributes(CachingPersonAttributeDaoImpl.java:332) at org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54) at org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138) at org.jasig.services.persondir.support.AbstractDefaultAttributePersonAttributeDao.getPerson(AbstractDefaultAttributePersonAttributeDao.java:77) at org.jasig.portal.portlets.swapper.OverwritingPersonAttributeDao.getPerson(OverwritingPersonAttributeDao.java:99) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.contains(PersonAttributesGroupStore.java:150) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroupsForEntity(PersonAttributesGroupStore.java:269) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroups(PersonAttributesGroupStore.java:252) at org.jasig.portal.groups.ReferenceIndividualGroupService.findContainingGroups(ReferenceIndividualGroupService.java:207) at org.jasig.portal.groups.ReferenceCompositeGroupService.findContainingGroups(ReferenceCompositeGroupService.java:76) at org.jasig.portal.groups.GroupMemberImpl.initializeContainingGroupKeys(GroupMemberImpl.java:281) at org.jasig.portal.groups.GroupMemberImpl.getGroupKeys(GroupMemberImpl.java:222) at org.jasig.portal.groups.GroupMemberImpl.getContainingGroups(GroupMemberImpl.java:180) at org.jasig.portal.groups.GroupMemberImpl.primGetAllContainingGroups(GroupMemberImpl.java:344) at org.jasig.portal.groups.GroupMemberImpl.getAllContainingGroups(GroupMemberImpl.java:139) at org.jasig.portal.security.provider.AuthorizationImpl.primGetPermissionsForPrincipal(AuthorizationImpl.java:924) at org.jasig.portal.security.provider.AuthorizationImpl.getPermissionsForPrincipal(AuthorizationImpl.java:665) at org.jasig.portal.security.provider.AnyUnblockedGrantPermissionPolicy.doesPrincipalHavePermission(AnyUnblockedGrantPermissionPolicy.java:100) at org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:466) at org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:430) at org.jasig.portal.security.provider.AuthorizationPrincipalImpl.hasPermission(AuthorizationPrincipalImpl.java:236) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.getVisiblePerson(PersonLookupHelperImpl.java:282) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.searchForPeople(PersonLookupHelperImpl.java:187) at org.jasig.portal.rest.PeopleRESTController.getPeople(PeopleRESTController.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) at org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.doInvoke(SimpleCrossContextRestApiInvoker.java:177) at org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.invoke(SimpleCrossContextRestApiInvoker.java:93) at org.jasig.ssp.service.impl.UPortalPersonAttributesService.searchForUsers(UPortalPersonAttributesService.java:209) at org.jasig.ssp.service.impl.UPortalPersonAttributesService.getCoaches(UPortalPersonAttributesService.java:260) at org.jasig.ssp.service.impl.PersonServiceImpl.getAllCoachUsernamesFromDirectory(PersonServiceImpl.java:567) at org.jasig.ssp.service.impl.PersonServiceImpl.syncCoaches(PersonServiceImpl.java:638) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy262.syncCoaches(Unknown Source) at org.jasig.ssp.service.impl.ScheduledTaskWrapperServiceImpl.syncCoaches(ScheduledTaskWrapperServiceImpl.java:442) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) {noformat}
    via by Dan McCallum,
  • This was originally reported in the field where looking up ~350 coaches via {{UPortalPersonAttributesService#getCoaches()}} was taking ~1.5m. In that case we demonstrated that only a negligible portion of that time could be attributed to the "core" LDAP search. Further, even searches with result sets smaller by an order of magnitude would take several seconds to return, which is rather unexpected for what should be heavily cached data. The fix in the field was to dramatically increase the TTLs on the {{org.jasig.services.persondir.USER_INFO.merged}} cache, which did fix the perceived poor performance, but meant that changes in external attribute stores (LDAP) would be very slow to appear in SSP (Platform). Replicating the problem locally was difficult until I added a third PersonAttributeDAO to the default two uPortal-internal DAOs, in which case I could get even small datasets, e.g. 2 coaches, to take up to a second to return and larger datasets, e.g. 40 coaches, to take up to 15 seconds to return. I think this happens because the query pattern triggered by {{PersonLookupHelperImpl#searchForPeople}} has at least two problems: # Before the "main" search runs, the attribute filter ends up querying each DAO for each possible attribute as if it were a username. # After the "main" search runs the results are filtered for user-scoped visibility (i.e. only return the users for which the current user has permissions to see), which results in each found user being queried for again, but by username #1 seems like a flat out bug. I don't understand why that would ever make sense to do. Need to talk with the uPortal guys about that one. #2 seems like we both need to recommend that all "external" DAOs need a caching wrapper and that we need that wrapper to always cache both query results and per-username results so that if the app turns around immediately and asks for the same users by username we're not going to hit the underlying data store. It's still going to be terribly inefficient, but would be an improvement (and, FWIW, not all that dissimilar from the Hibernate identity cache). Lastly, to avoid regressions in this area and because we can't set per-search cache policies on the platform side, we should probably implement one or more caches on the SSP side... maybe some simple wrappers on the {{PersonAttributesService}} interface? (http://docs.spring.io/spring/docs/3.1.4.RELEASE/spring-framework-reference/htmlsingle/#cache) Here is an example of problem #1 where I captured a stack trace just to demonstrate where the call was coming from. You should expect to see ~10 similar lookups, basically one for every possible user attribute: {noformat} getPeopleWithMultivaluedAttributes: {username=[givenName]}. Stack trace to follow java.lang.Exception: Ignore me at org.jasig.portal.persondir.support.DiscriminatingStubPersonAttributeDao.getPeopleWithMultivaluedAttributes(DiscriminatingStubPersonAttributeDao.java:40) at org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54) at org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138) at org.jasig.services.persondir.support.CachingPersonAttributeDaoImpl.getPeopleWithMultivaluedAttributes(CachingPersonAttributeDaoImpl.java:332) at org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54) at org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138) at org.jasig.services.persondir.support.AbstractDefaultAttributePersonAttributeDao.getPerson(AbstractDefaultAttributePersonAttributeDao.java:77) at org.jasig.portal.portlets.swapper.OverwritingPersonAttributeDao.getPerson(OverwritingPersonAttributeDao.java:99) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.contains(PersonAttributesGroupStore.java:150) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroupsForEntity(PersonAttributesGroupStore.java:269) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroups(PersonAttributesGroupStore.java:252) at org.jasig.portal.groups.ReferenceIndividualGroupService.findContainingGroups(ReferenceIndividualGroupService.java:207) at org.jasig.portal.groups.ReferenceCompositeGroupService.findContainingGroups(ReferenceCompositeGroupService.java:76) at org.jasig.portal.groups.GroupMemberImpl.initializeContainingGroupKeys(GroupMemberImpl.java:281) at org.jasig.portal.groups.GroupMemberImpl.getGroupKeys(GroupMemberImpl.java:222) at org.jasig.portal.groups.GroupMemberImpl.getContainingGroups(GroupMemberImpl.java:180) at org.jasig.portal.groups.GroupMemberImpl.primGetAllContainingGroups(GroupMemberImpl.java:344) at org.jasig.portal.groups.GroupMemberImpl.getAllContainingGroups(GroupMemberImpl.java:139) at org.jasig.portal.security.provider.AuthorizationImpl.primGetPermissionsForPrincipal(AuthorizationImpl.java:924) at org.jasig.portal.security.provider.AuthorizationImpl.getPermissionsForPrincipal(AuthorizationImpl.java:665) at org.jasig.portal.security.provider.AnyUnblockedGrantPermissionPolicy.doesPrincipalHavePermission(AnyUnblockedGrantPermissionPolicy.java:100) at org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:466) at org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:430) at org.jasig.portal.security.provider.AuthorizationPrincipalImpl.hasPermission(AuthorizationPrincipalImpl.java:236) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.getAvailableAttributes(PersonLookupHelperImpl.java:260) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.getAvailableAttributes(PersonLookupHelperImpl.java:246) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.searchForPeople(PersonLookupHelperImpl.java:155) at org.jasig.portal.rest.PeopleRESTController.getPeople(PeopleRESTController.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) at org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.doInvoke(SimpleCrossContextRestApiInvoker.java:177) at org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.invoke(SimpleCrossContextRestApiInvoker.java:93) at org.jasig.ssp.service.impl.UPortalPersonAttributesService.searchForUsers(UPortalPersonAttributesService.java:209) at org.jasig.ssp.service.impl.UPortalPersonAttributesService.getCoaches(UPortalPersonAttributesService.java:260) at org.jasig.ssp.service.impl.PersonServiceImpl.getAllCoachUsernamesFromDirectory(PersonServiceImpl.java:567) at org.jasig.ssp.service.impl.PersonServiceImpl.syncCoaches(PersonServiceImpl.java:638) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy262.syncCoaches(Unknown Source) at org.jasig.ssp.service.impl.ScheduledTaskWrapperServiceImpl.syncCoaches(ScheduledTaskWrapperServiceImpl.java:442) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) {noformat} And here is an example of #2. You should expect to see one of these for each person returned from the "main" coach search: {noformat} getPeopleWithMultivaluedAttributes: {username=[stub1username]}. Stack trace to follow java.lang.Exception: Ignore me at org.jasig.portal.persondir.support.DiscriminatingStubPersonAttributeDao.getPeopleWithMultivaluedAttributes(DiscriminatingStubPersonAttributeDao.java:40) at org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54) at org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138) at org.jasig.services.persondir.support.CachingPersonAttributeDaoImpl.getPeopleWithMultivaluedAttributes(CachingPersonAttributeDaoImpl.java:332) at org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54) at org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138) at org.jasig.services.persondir.support.AbstractDefaultAttributePersonAttributeDao.getPerson(AbstractDefaultAttributePersonAttributeDao.java:77) at org.jasig.portal.portlets.swapper.OverwritingPersonAttributeDao.getPerson(OverwritingPersonAttributeDao.java:99) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.contains(PersonAttributesGroupStore.java:150) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroupsForEntity(PersonAttributesGroupStore.java:269) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroups(PersonAttributesGroupStore.java:252) at org.jasig.portal.groups.ReferenceIndividualGroupService.findContainingGroups(ReferenceIndividualGroupService.java:207) at org.jasig.portal.groups.ReferenceCompositeGroupService.findContainingGroups(ReferenceCompositeGroupService.java:76) at org.jasig.portal.groups.GroupMemberImpl.initializeContainingGroupKeys(GroupMemberImpl.java:281) at org.jasig.portal.groups.GroupMemberImpl.getGroupKeys(GroupMemberImpl.java:222) at org.jasig.portal.groups.GroupMemberImpl.getContainingGroups(GroupMemberImpl.java:180) at org.jasig.portal.groups.GroupMemberImpl.primGetAllContainingGroups(GroupMemberImpl.java:344) at org.jasig.portal.groups.GroupMemberImpl.getAllContainingGroups(GroupMemberImpl.java:139) at org.jasig.portal.security.provider.AuthorizationImpl.primGetPermissionsForPrincipal(AuthorizationImpl.java:924) at org.jasig.portal.security.provider.AuthorizationImpl.getPermissionsForPrincipal(AuthorizationImpl.java:665) at org.jasig.portal.security.provider.AnyUnblockedGrantPermissionPolicy.doesPrincipalHavePermission(AnyUnblockedGrantPermissionPolicy.java:100) at org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:466) at org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:430) at org.jasig.portal.security.provider.AuthorizationPrincipalImpl.hasPermission(AuthorizationPrincipalImpl.java:236) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.getVisiblePerson(PersonLookupHelperImpl.java:282) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.searchForPeople(PersonLookupHelperImpl.java:187) at org.jasig.portal.rest.PeopleRESTController.getPeople(PeopleRESTController.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) at org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.doInvoke(SimpleCrossContextRestApiInvoker.java:177) at org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.invoke(SimpleCrossContextRestApiInvoker.java:93) at org.jasig.ssp.service.impl.UPortalPersonAttributesService.searchForUsers(UPortalPersonAttributesService.java:209) at org.jasig.ssp.service.impl.UPortalPersonAttributesService.getCoaches(UPortalPersonAttributesService.java:260) at org.jasig.ssp.service.impl.PersonServiceImpl.getAllCoachUsernamesFromDirectory(PersonServiceImpl.java:567) at org.jasig.ssp.service.impl.PersonServiceImpl.syncCoaches(PersonServiceImpl.java:638) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy262.syncCoaches(Unknown Source) at org.jasig.ssp.service.impl.ScheduledTaskWrapperServiceImpl.syncCoaches(ScheduledTaskWrapperServiceImpl.java:442) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) {noformat}
    via by Dan McCallum,
    • java.lang.Exception: Ignore me at org.jasig.portal.persondir.support.DiscriminatingStubPersonAttributeDao.getPeopleWithMultivaluedAttributes(DiscriminatingStubPersonAttributeDao.java:40) at org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54) at org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138) at org.jasig.services.persondir.support.CachingPersonAttributeDaoImpl.getPeopleWithMultivaluedAttributes(CachingPersonAttributeDaoImpl.java:332) at org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54) at org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138) at org.jasig.services.persondir.support.AbstractDefaultAttributePersonAttributeDao.getPerson(AbstractDefaultAttributePersonAttributeDao.java:77) at org.jasig.portal.portlets.swapper.OverwritingPersonAttributeDao.getPerson(OverwritingPersonAttributeDao.java:99) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.contains(PersonAttributesGroupStore.java:150) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroupsForEntity(PersonAttributesGroupStore.java:269) at org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroups(PersonAttributesGroupStore.java:252) at org.jasig.portal.groups.ReferenceIndividualGroupService.findContainingGroups(ReferenceIndividualGroupService.java:207) at org.jasig.portal.groups.ReferenceCompositeGroupService.findContainingGroups(ReferenceCompositeGroupService.java:76) at org.jasig.portal.groups.GroupMemberImpl.initializeContainingGroupKeys(GroupMemberImpl.java:281) at org.jasig.portal.groups.GroupMemberImpl.getGroupKeys(GroupMemberImpl.java:222) at org.jasig.portal.groups.GroupMemberImpl.getContainingGroups(GroupMemberImpl.java:180) at org.jasig.portal.groups.GroupMemberImpl.primGetAllContainingGroups(GroupMemberImpl.java:344) at org.jasig.portal.groups.GroupMemberImpl.getAllContainingGroups(GroupMemberImpl.java:139) at org.jasig.portal.security.provider.AuthorizationImpl.primGetPermissionsForPrincipal(AuthorizationImpl.java:924) at org.jasig.portal.security.provider.AuthorizationImpl.getPermissionsForPrincipal(AuthorizationImpl.java:665) at org.jasig.portal.security.provider.AnyUnblockedGrantPermissionPolicy.doesPrincipalHavePermission(AnyUnblockedGrantPermissionPolicy.java:100) at org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:466) at org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:430) at org.jasig.portal.security.provider.AuthorizationPrincipalImpl.hasPermission(AuthorizationPrincipalImpl.java:236) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.getVisiblePerson(PersonLookupHelperImpl.java:282) at org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.searchForPeople(PersonLookupHelperImpl.java:187) at org.jasig.portal.rest.PeopleRESTController.getPeople(PeopleRESTController.java:78) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436) at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488) at org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.doInvoke(SimpleCrossContextRestApiInvoker.java:177) at org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.invoke(SimpleCrossContextRestApiInvoker.java:93) at org.jasig.ssp.service.impl.UPortalPersonAttributesService.searchForUsers(UPortalPersonAttributesService.java:209) at org.jasig.ssp.service.impl.UPortalPersonAttributesService.getCoaches(UPortalPersonAttributesService.java:260) at org.jasig.ssp.service.impl.PersonServiceImpl.getAllCoachUsernamesFromDirectory(PersonServiceImpl.java:567) at org.jasig.ssp.service.impl.PersonServiceImpl.syncCoaches(PersonServiceImpl.java:638) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy262.syncCoaches(Unknown Source) at org.jasig.ssp.service.impl.ScheduledTaskWrapperServiceImpl.syncCoaches(ScheduledTaskWrapperServiceImpl.java:442) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680)
    No Bugmate found.