java.lang.Exception: Ignore me

Apereo Issues | Dan McCallum | 3 years ago
  1. 0

    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}

    Apereo Issues | 3 years ago | Dan McCallum
    java.lang.Exception: Ignore me
  2. 0

    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}

    Apereo Issues | 3 years ago | Dan McCallum
    java.lang.Exception: Ignore me
  3. 0

    Hide JUnit's stack trace when testing by creating a "new Exception()" that isn't thrown?

    Stack Overflow | 3 years ago | kenyee
    java.lang.Exception: ignore exception at ...testSomething
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    Clojure classes graph (was chart.png)

    Google Groups | 8 years ago | Chouser
    clojure.lang.Compiler$CompilerException: NO_SOURCE_FILE:5: No such var: swank/ignore-protocol-version
  6. 0

    setUncaughtExceptionHandler not working in Maven project

    Stack Overflow | 1 year ago | Tom Jenkins
    java.lang.reflect.InvocationTargetException

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.Exception

      Ignore me

      at org.jasig.portal.persondir.support.DiscriminatingStubPersonAttributeDao.getPeopleWithMultivaluedAttributes()
    2. org.jasig.portal
      DiscriminatingStubPersonAttributeDao.getPeopleWithMultivaluedAttributes
      1. org.jasig.portal.persondir.support.DiscriminatingStubPersonAttributeDao.getPeopleWithMultivaluedAttributes(DiscriminatingStubPersonAttributeDao.java:40)
      1 frame
    3. Person Directory Implementations
      AbstractDefaultAttributePersonAttributeDao.getPerson
      1. org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54)
      2. org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138)
      3. org.jasig.services.persondir.support.CachingPersonAttributeDaoImpl.getPeopleWithMultivaluedAttributes(CachingPersonAttributeDaoImpl.java:332)
      4. org.jasig.services.persondir.support.MergingPersonAttributeDaoImpl.getAttributesFromDao(MergingPersonAttributeDaoImpl.java:54)
      5. org.jasig.services.persondir.support.AbstractAggregatingDefaultQueryPersonAttributeDao.getPeopleWithMultivaluedAttributes(AbstractAggregatingDefaultQueryPersonAttributeDao.java:138)
      6. org.jasig.services.persondir.support.AbstractDefaultAttributePersonAttributeDao.getPerson(AbstractDefaultAttributePersonAttributeDao.java:77)
      6 frames
    4. org.jasig.portal
      PeopleRESTController.getPeople
      1. org.jasig.portal.portlets.swapper.OverwritingPersonAttributeDao.getPerson(OverwritingPersonAttributeDao.java:99)
      2. org.jasig.portal.groups.pags.PersonAttributesGroupStore.contains(PersonAttributesGroupStore.java:150)
      3. org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroupsForEntity(PersonAttributesGroupStore.java:269)
      4. org.jasig.portal.groups.pags.PersonAttributesGroupStore.findContainingGroups(PersonAttributesGroupStore.java:252)
      5. org.jasig.portal.groups.ReferenceIndividualGroupService.findContainingGroups(ReferenceIndividualGroupService.java:207)
      6. org.jasig.portal.groups.ReferenceCompositeGroupService.findContainingGroups(ReferenceCompositeGroupService.java:76)
      7. org.jasig.portal.groups.GroupMemberImpl.initializeContainingGroupKeys(GroupMemberImpl.java:281)
      8. org.jasig.portal.groups.GroupMemberImpl.getGroupKeys(GroupMemberImpl.java:222)
      9. org.jasig.portal.groups.GroupMemberImpl.getContainingGroups(GroupMemberImpl.java:180)
      10. org.jasig.portal.groups.GroupMemberImpl.primGetAllContainingGroups(GroupMemberImpl.java:344)
      11. org.jasig.portal.groups.GroupMemberImpl.getAllContainingGroups(GroupMemberImpl.java:139)
      12. org.jasig.portal.security.provider.AuthorizationImpl.primGetPermissionsForPrincipal(AuthorizationImpl.java:924)
      13. org.jasig.portal.security.provider.AuthorizationImpl.getPermissionsForPrincipal(AuthorizationImpl.java:665)
      14. org.jasig.portal.security.provider.AnyUnblockedGrantPermissionPolicy.doesPrincipalHavePermission(AnyUnblockedGrantPermissionPolicy.java:100)
      15. org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:466)
      16. org.jasig.portal.security.provider.AuthorizationImpl.doesPrincipalHavePermission(AuthorizationImpl.java:430)
      17. org.jasig.portal.security.provider.AuthorizationPrincipalImpl.hasPermission(AuthorizationPrincipalImpl.java:236)
      18. org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.getVisiblePerson(PersonLookupHelperImpl.java:282)
      19. org.jasig.portal.portlets.lookup.PersonLookupHelperImpl.searchForPeople(PersonLookupHelperImpl.java:187)
      20. org.jasig.portal.rest.PeopleRESTController.getPeople(PeopleRESTController.java:78)
      20 frames
    5. Java RT
      Method.invoke
      1. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      2. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      3. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      4. java.lang.reflect.Method.invoke(Method.java:597)
      4 frames
    6. Spring
      HandlerMethodInvoker.invokeHandlerMethod
      1. org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
      1 frame
    7. Spring MVC
      FrameworkServlet.doGet
      1. org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
      2. org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
      3. org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
      4. org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
      5. org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
      6. org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
      6 frames
    8. JavaServlet
      HttpServlet.service
      1. javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
      2. javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      2 frames
    9. Glassfish Core
      ApplicationDispatcher.include
      1. org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      2. org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      3. org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
      4. org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
      5. org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
      5 frames
    10. org.jasig.portlet
      SimpleCrossContextRestApiInvoker.invoke
      1. org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.doInvoke(SimpleCrossContextRestApiInvoker.java:177)
      2. org.jasig.portlet.utils.rest.SimpleCrossContextRestApiInvoker.invoke(SimpleCrossContextRestApiInvoker.java:93)
      2 frames
    11. org.jasig.ssp
      PersonServiceImpl.syncCoaches
      1. org.jasig.ssp.service.impl.UPortalPersonAttributesService.searchForUsers(UPortalPersonAttributesService.java:209)
      2. org.jasig.ssp.service.impl.UPortalPersonAttributesService.getCoaches(UPortalPersonAttributesService.java:260)
      3. org.jasig.ssp.service.impl.PersonServiceImpl.getAllCoachUsernamesFromDirectory(PersonServiceImpl.java:567)
      4. org.jasig.ssp.service.impl.PersonServiceImpl.syncCoaches(PersonServiceImpl.java:638)
      4 frames
    12. Java RT
      Method.invoke
      1. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      2. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      3. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      4. java.lang.reflect.Method.invoke(Method.java:597)
      4 frames
    13. Spring AOP
      ReflectiveMethodInvocation.proceed
      1. org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
      2. org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
      3. org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
      3 frames
    14. Spring Tx
      TransactionInterceptor.invoke
      1. org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
      1 frame
    15. Spring AOP
      JdkDynamicAopProxy.invoke
      1. org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
      2. org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
      2 frames
    16. Unknown
      $Proxy262.syncCoaches
      1. $Proxy262.syncCoaches(Unknown Source)
      1 frame
    17. org.jasig.ssp
      ScheduledTaskWrapperServiceImpl.syncCoaches
      1. org.jasig.ssp.service.impl.ScheduledTaskWrapperServiceImpl.syncCoaches(ScheduledTaskWrapperServiceImpl.java:442)
      1 frame
    18. Java RT
      Method.invoke
      1. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      2. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      3. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      4. java.lang.reflect.Method.invoke(Method.java:597)
      4 frames
    19. Spring Context
      DelegatingErrorHandlingRunnable.run
      1. org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64)
      2. org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53)
      2 frames
    20. Java RT
      Thread.run
      1. java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
      2. java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
      3. java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
      4. java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
      5. java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
      6. java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
      7. java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      8. java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      9. java.lang.Thread.run(Thread.java:680)
      9 frames