IU Jira marked for 2-0 contribution

advertisement

[EN-2973] Rice 1.0.3 bug -- cancel action does not work for maintenance documents when the document is only in initiated status.

Created: 21/Jan/11 Updated:

10/Sep/12 Resolved: 22/Jan/11

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

Fix Version/s: Post 2.0 Contribution

Type: Problem Report

Reporter:

Resolution:

Labels:

None

Shannon Hess

Fixed

None

Not Specified Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Description

To reproduce:

Priority:

Assignee:

Votes:

Major

Shannon Hess

0

Open up a campus maintenance document, select cancel and then yes. If you search for the document in doc search, it is still in intiated status.

Conversation for more details:

3:58 PMFox, L Allen hey shannon quick question got a second?

4:01 PMHess, Shannon sure

4:01 PMFox, L Allen so in DocumentServiceImpl in Rice there is a method called documentExists(documentHeaderId) that confirms if a doc exists

4:02 PMHess, Shannon ok

4:02 PMFox, L Allen return getDocumentHeaderService().getDocumentHeaderById(documentHeaderId) != null; is returning null when a document is initiated but not routed or anything yet as its doing a query on the krns_document_header_t table and there is no entry on initiate..has this changed? basically our cancel action is broken due to thsi returning false

4:03 PMHess, Shannon do you mean changed from 1.0.1.1 to 1.0.3, or changed in prod and this is broken in prod?

4:04 PMFox, L Allen changed from 1.0.1.1 to 1.0.3 ...sorry should not assume your a mind reader

4:04 PMHess, Shannon

I'm always thinking 1.0.3, so I gotta check sometimes. I'm not sure how this changed. Let me check and get back to you

4:05 PMFox, L Allen great just lmk when you get a chance thanks !

This conversation is being saved in the Conversation History folder in your Outlook mailbox.

4:24 PMHess, Shannon

I can't see anything that changed, except for the fact that we're now passing documentHeaderId into getDocumentHeaderById as a String instead of a long. You are passing documentHeaderId into documentExists as a string I presume, else you'd be getting compile errors. I'm going to debug to see I can find anything.

4:25 PMFox, L Allen cool yea its weird... its coming from the cancel action in kualidocumentactionbase if that helps

4:26 PMHess, Shannon ok, i'll look there too.

4:27 PMHess, Shannon so if you open a doc, then hit the cancel button you are getting an error?

4:28 PMFox, L Allen no its never canceling because the document does exist per that method i sent you

4:29 PMHess, Shannon so the document status just stays as "ENROUTE"?

4:31 PMFox, L Allen no its only initiatied..thats why its not in the krns_document_header_t table i just wonder why it "used' to work

4:31 PMHess, Shannon i'm trying to recreate right now – i just brought up a campus maintenance doc, its in inititated status

4:32 PMFox, L Allen so check in your krns_document_header_t table for the entry where document_hrd_id = ?

4:37 PMHess, Shannon it's not working for me either – well crapola

4:38 PMFox, L Allen yea it must be when documenets get intiitated its not putting it in the doc hdr table anymore the krns one anyway

4:38 PMHess, Shannon

I dig more and see why that changed. and find wher the change actually takes place. I'm going to open a jira for this if that's ok

4:39 PMFox, L Allen cool sounds good..make me a watcher so i can know wahts up?

4:39 PMHess, Shannon ok, I will

4:41 PMHess, Shannon btw, I just tested on old side and it doesn't put a row in the krns_document_header_t either. so the difference must be elsewhere

Comments

Comment by Shannon Hess

[ 21/Jan/11 5:19 PM ]

This is a side effect of the following change – https://jira.kuali.org/browse/KULRICE-4447

Inside of KualiDocumentActionBase.cancel :

// KULRICE-4447 Call cancelDocument() only if the document exists if ( getDocumentService().documentExists(kualiDocumentFormBase.getDocId()))

{ getDocumentService().cancelDocument(kualiDocumentFormBase.getDocument(), kualiDocumentFormBase.getAnnotation()); }

This change makes is so that the document is still in initiated status. Perhaps this was the intended result, so it could not be easily found by doc search. However, if you do a doc search and look for initiated documents and attempt to open the "canceled" document, you still get the error screen which led to KULRICE-4447 in the first place.

I need to dig through the release notes to see if this was an impacting change.

Comment by Shannon Hess

[ 22/Jan/11 10:57 PM ]

I've reverted the change that was made for KULRICE-4447. As far as I can tell, KULRICE-

4447 was opened because canceling an unsaved document left an unopenable workflow document header. The fix for KULRICE-4447 still leaves an unopenable workflow document, but the document is in initiated status instead of a status of canceled even when the cancel button is selected.

Eric, if there is a better way to handle this or you know of another reason that the fix for

KULRICE-4447 needs to be in the iu-rice code please let me know.

Allen, can you please pull the client jars? I've included this change in the newest version of them.

Thanks,

Shannon

Comment by Eric Westfall

[ 23/Jan/11 11:45 AM ]

Shannon, based on the rice jira I think the "new" behavior was intended, but if it's causing the kinds of problems that Allen is describing, can you go ahead and create a Rice jira about this as soon as possible, being sure to link it to KULRICE-4447 and describe the problem with that solution? Thanks.

[EN-2972] RE: kc prd: ProposalDevelopmentForm:OJB operation failed; nested exception is org.apache.ojb.broker.OptimisticLockException: Object has been modified or deleted by someone else: pessimisticLock(id,ownedByPrincipalIdentifier,lockDescriptor,generatedTime...

Created: 05/Dec/11 Updated: 10/Sep/12 Resolved: 07/Dec/11

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

Fix Version/s: Post 2.0 Contribution

Type: Bug

Reporter:

Labels:

Resolution:

None

Terry Durkin

Resolved

None

Remaining

Estimate:

Not Specified

Not Specified Time Spent:

Original

Estimate:

Description

Not Specified

Priority:

Assignee:

Votes:

Major

Shannon Hess

0

Terry,

Unless someone on my team notices something I don't, I don't see a reason why we couldn't just suppress the OptimisticLockException in PessimisticLockServiceImpl. releaseAllLocksForUser. Does the error almost always come from this particular method? I'm creating a JIRA for documentation purposes.

Thanks,

Shannon

--------

From: Durkin, Terrence Andrew

Sent: Monday, December 05, 2011 9:03 AM

To: Hess, Shannon

Subject: FW: kc prd: ProposalDevelopmentForm:OJB operation failed; nested exception is org.apache.ojb.broker.OptimisticLockException: Object has been modified or deleted by someone else: pessimisticLock(id,ownedByPrincipalIdentifier,lockDescriptor,generatedTime...

Hi Shannon -

We get this exception pretty frequently in our logs and emailed in from users. I'm wondering if it's possible to put some logic in to the delete pessimistic locks code to fail silently on the delete action if the lock

is missing; or whether optimistic locking can/should just be disabled for this function since there's no business logic related to the transaction.

What do you think?

Terry

On 12/2/11 4:30 PM, "Christi Arnett" <charnett@IUPUI.EDU> wrote:

>Document Id: 9636221

>User Email: charnett@iupui.edu

>Person User Identifier: charnett

>User Input: I cannot access this routing

>component: ProposalDevelopmentForm

>errorMessage: OJB operation failed; nested exception is

>org.apache.ojb.broker.OptimisticLockException: Object has been modified

>or deleted by someone else:

>pessimisticLock(id,ownedByPrincipalIdentifier,lockDescriptor,generatedTime

>stamp,documentNumber)=(94160,0002569041,9636221-PROPOSAL,2011-12-02

>15:33:21.0,9636221)

>org.springmodules.orm.ojb.OjbOperationException: OJB operation failed;

>nested exception is org.apache.ojb.broker.OptimisticLockException: Object

>has been modified or deleted by someone else:

>pessimisticLock(id,ownedByPrincipalIdentifier,lockDescriptor,generatedTime

>stamp,documentNumber)=(94160,0002569041,9636221-PROPOSAL,2011-12-02

>15:33:21.0,9636221)

> at

>org.springmodules.orm.ojb.OjbAccessor.convertOjbAccessException(OjbAccesso

>r.java:92)

> at

>org.springmodules.orm.ojb.PersistenceBrokerTemplate.execute(PersistenceBro

>kerTemplate.java:144)

> at

>org.springmodules.orm.ojb.PersistenceBrokerTemplate.delete(PersistenceBrok

>erTemplate.java:253)

> at

>org.kuali.rice.kns.dao.impl.BusinessObjectDaoOjb.delete(BusinessObjectDaoO

>jb.java:247)

> at

>org.kuali.rice.kns.dao.proxy.BusinessObjectDaoProxy.delete(BusinessObjectD

>aoProxy.java:112)

> at sun.reflect.GeneratedMethodAccessor1064.invoke(Unknown Source)

> at

>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm

>pl.java:25)

> at java.lang.reflect.Method.invoke(Method.java:597)

> at

>org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Ao

>pUtils.java:307)

> at

>org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoi

>nt(ReflectiveMethodInvocation.java:182)

> at

>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refle

>ctiveMethodInvocation.java:149)

> at

>org.springframework.transaction.interceptor.TransactionInterceptor.invoke(

>TransactionInterceptor.java:106)

> at

>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refle

>ctiveMethodInvocation.java:171)

> at

>org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopP

>roxy.java:204)

> at $Proxy38.delete(Unknown Source)

> at

>org.kuali.rice.kns.service.impl.BusinessObjectServiceImpl.delete(BusinessO

>bjectServiceImpl.java:226)

> at sun.reflect.GeneratedMethodAccessor1063.invoke(Unknown Source)

> at

>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm

>pl.java:25)

> at java.lang.reflect.Method.invoke(Method.java:597)

> at

>org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Ao

>pUtils.java:307)

> at

>org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoi

>nt(ReflectiveMethodInvocation.java:182)

> at

>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refle

>ctiveMethodInvocation.java:149)

> at

>org.springframework.transaction.interceptor.TransactionInterceptor.invoke(

>TransactionInterceptor.java:106)

> at

>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refle

>ctiveMethodInvocation.java:171)

> at

>org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopP

>roxy.java:204)

> at $Proxy39.delete(Unknown Source)

> at

>org.kuali.rice.kns.service.impl.PessimisticLockServiceImpl.delete(Pessimis

>ticLockServiceImpl.java:87)

> at

>org.kuali.rice.kns.service.impl.PessimisticLockServiceImpl.releaseAllLocks

>ForUser(PessimisticLockServiceImpl.java:159)

> at sun.reflect.GeneratedMethodAccessor1330.invoke(Unknown Source)

> at

>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm

>pl.java:25)

> at java.lang.reflect.Method.invoke(Method.java:597)

> at

>org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(Ao

>pUtils.java:307)

> at

>org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoi

>nt(ReflectiveMethodInvocation.java:182)

> at

>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refle

>ctiveMethodInvocation.java:149)

> at

>org.springframework.transaction.interceptor.TransactionInterceptor.invoke(

>TransactionInterceptor.java:106)

> at

>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refle

>ctiveMethodInvocation.java:171)

> at

>org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopP

>roxy.java:204)

> at $Proxy55.releaseAllLocksForUser(Unknown Source)

> at

>org.kuali.kra.web.struts.action.KraTransactionalDocumentActionBase.populat

>eAuthorizationFields(KraTransactionalDocumentActionBase.java:454)

> at

>org.kuali.rice.kns.web.struts.action.KualiDocumentActionBase.execute(Kuali

>DocumentActionBase.java:203)

> at

>org.kuali.kra.web.struts.action.KraTransactionalDocumentActionBase.execute

>(KraTransactionalDocumentActionBase.java:134)

> at

>org.kuali.kra.proposaldevelopment.web.struts.action.ProposalDevelopmentAct

>ion.execute(ProposalDevelopmentAction.java:229)

> at

>org.kuali.kra.proposaldevelopment.web.struts.action.ProposalDevelopmentAct

>ionsAction.execute(ProposalDevelopmentActionsAction.java:140)

> at

>org.kuali.kra.proposaldevelopment.web.struts.action.ProposalDevelopmentApp

>roverViewAction.execute(ProposalDevelopmentApproverViewAction.java:37)

> at

>org.kuali.rice.kns.web.struts.action.KualiRequestProcessor$1.doInTransacti

>on(KualiRequestProcessor.java:505)

> at

>org.springframework.transaction.support.TransactionTemplate.execute(Transa

>ctionTemplate.java:128)

> at

>org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processActionPe

>rform(KualiRequestProcessor.java:501)

> at

>org.kuali.kra.web.struts.action.KraRequestProcessor.processActionPerform(K

>raRequestProcessor.java:76)

> at

>org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:23

>6)

> at

>org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRe

>questProcessor.java:103)

> at

>org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)

> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)

> at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)

> at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

> at

>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati

>onFilterChain.java:269)

> at

>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter

>Chain.java:188)

> at

>org.kuali.kra.web.filter.RequestLoggingFilter.doFilter(RequestLoggingFilte

>r.java:97)

> at

>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati

>onFilterChain.java:215)

> at

>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter

>Chain.java:188)

> at

>edu.iu.kra.rice.kew.web.KcIuUserLoginFilter.doFilter(KcIuUserLoginFilter.j

>ava:79)

> at

>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati

>onFilterChain.java:215)

> at

>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter

>Chain.java:188)

> at

>org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:

>273)

> at

>edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410)

> at

>edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336)

> at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315)

> at

>org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:

>266)

> at

>org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:164)

> at

>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati

>onFilterChain.java:215)

> at

>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter

>Chain.java:188)

> at

>org.kuali.kra.web.filter.PerformanceLoggingFilter.doFilter(PerformanceLogg

>ingFilter.java:73)

> at

>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati

>onFilterChain.java:215)

> at

>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter

>Chain.java:188)

> at

>org.kuali.kra.web.filter.SessionExpiredFilter.doFilter(SessionExpiredFilte

>r.java:46)

> at

>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati

>onFilterChain.java:215)

> at

>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter

>Chain.java:188)

> at

>edu.iu.uis.rice.web.KCTransactionFilter.doFilter(KCTransactionFilter.java:

>60)

> at

>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati

>onFilterChain.java:215)

> at

>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter

>Chain.java:188)

> at

>org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilt

>er.java:125)

> at

>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati

>onFilterChain.java:215)

> at

>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter

>Chain.java:188)

> at

>org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.j

>ava:66)

> at

>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati

>onFilterChain.java:215)

> at

>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter

>Chain.java:188)

> at

>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.

>java:213)

> at

>org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.

>java:172)

> at

>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:1

>27)

> at

>org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.j

>ava:347)

> at

>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:1

>17)

> at

>org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAcces

>sLogValve.java:482)

> at

>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.ja

>va:108)

> at

>org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174

>)

> at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)

> at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)

> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)

> at

>org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:70

>3)

> at

>org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.ja

>va:895)

> at

>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.j

>ava:689)

> at java.lang.Thread.run(Thread.java:662)

>Caused by: org.apache.ojb.broker.OptimisticLockException: Object has been

>modified or deleted by someone else:

>pessimisticLock(id,ownedByPrincipalIdentifier,lockDescriptor,generatedTime

>stamp,documentNumber)=(94160,0002569041,9636221-PROPOSAL,2011-12-02

>15:33:21.0,9636221)

> at

>org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeDelete(JdbcAccessI

>mpl.java:126)

> at

>org.apache.ojb.broker.core.PersistenceBrokerImpl.performDeletion(Persisten

>ceBrokerImpl.java:608)

> at

>org.apache.ojb.broker.core.PersistenceBrokerImpl.doDelete(PersistenceBroke

>rImpl.java:582)

> at

>org.apache.ojb.broker.core.PersistenceBrokerImpl.delete(PersistenceBrokerI

>mpl.java:512)

> at

>org.apache.ojb.broker.core.PersistenceBrokerImpl.delete(PersistenceBrokerI

>mpl.java:525)

> at

>org.apache.ojb.broker.core.DelegatingPersistenceBroker.delete(DelegatingPe

>rsistenceBroker.java:215)

> at

>org.apache.ojb.broker.core.DelegatingPersistenceBroker.delete(DelegatingPe

>rsistenceBroker.java:215)

> at

>org.springmodules.orm.ojb.PersistenceBrokerTemplate$10.doInPersistenceBrok

>er(PersistenceBrokerTemplate.java:255)

> at

>org.springmodules.orm.ojb.PersistenceBrokerTemplate.execute(PersistenceBro

>kerTemplate.java:141)

> ... 98 more

Comments

Comment by Terry Durkin

[ 05/Dec/11 2:24 PM ]

Shannon - I did a spot check from the email reports of this and it does look like it's coming from the releaseAllLocksForUser method.

Thanks,

Terry

On 12/5/11 9:25 AM, "Hess, Shannon" <shahess@indiana.edu> wrote:

>Terry,

>

>Unless someone on my team notices something I don't, I don't see a reason

>why we couldn't just suppress the OptimisticLockException in

>PessimisticLockServiceImpl. releaseAllLocksForUser. Does the error

>almost always come from this particular method? I'm creating a JIRA for

>documentation purposes.

>

>Thanks,

>Shannon

>

>--------

>From: Durkin, Terrence Andrew

>Sent: Monday, December 05, 2011 9:03 AM

>To: Hess, Shannon

>Subject: FW: kc prd: ProposalDevelopmentForm:OJB operation failed; nested

>exception is org.apache.ojb.broker.OptimisticLockException: Object has

>been modified or deleted by someone else:

>pessimisticLock(id,ownedByPrincipalIdentifier,lockDescriptor,generatedTime

>...

>

>Hi Shannon -

>

>We get this exception pretty frequently in our logs and emailed in from

>users. I'm wondering if it's possible to put some logic in to the delete

>pessimistic locks code to fail silently on the delete action if the lock

>is missing; or whether optimistic locking can/should just be disabled for

>this function since there's no business logic related to the transaction.

>

>What do you think?

>

>Terry

>

>On 12/2/11 4:30 PM, "Christi Arnett" <charnett@IUPUI.EDU> wrote:

>

>>Document Id: 9636221

>>User Email: charnett@iupui.edu

>>Person User Identifier: charnett

>>User Input: I cannot access this routing

>>component: ProposalDevelopmentForm

>>errorMessage: OJB operation failed; nested exception is

>>org.apache.ojb.broker.OptimisticLockException: Object has been modified

>>or deleted by someone else:

>>pessimisticLock(id,ownedByPrincipalIdentifier,lockDescriptor,generatedTim

>>e

>>stamp,documentNumber)=(94160,0002569041,9636221-PROPOSAL,2011-12-02

>>15:33:21.0,9636221)

>>org.springmodules.orm.ojb.OjbOperationException: OJB operation failed;

>>nested exception is org.apache.ojb.broker.OptimisticLockException: Object

>>has been modified or deleted by someone else:

>>pessimisticLock(id,ownedByPrincipalIdentifier,lockDescriptor,generatedTim

>>e

>>stamp,documentNumber)=(94160,0002569041,9636221-PROPOSAL,2011-12-02

>>15:33:21.0,9636221)

>> at

>>org.springmodules.orm.ojb.OjbAccessor.convertOjbAccessException(OjbAccess

>>o

>>r.java:92)

>> at

>>org.springmodules.orm.ojb.PersistenceBrokerTemplate.execute(PersistenceBr

>>o

>>kerTemplate.java:144)

>> at

>>org.springmodules.orm.ojb.PersistenceBrokerTemplate.delete(PersistenceBro

>>k

>>erTemplate.java:253)

>> at

>>org.kuali.rice.kns.dao.impl.BusinessObjectDaoOjb.delete(BusinessObjectDao

>>O

>>jb.java:247)

>> at

>>org.kuali.rice.kns.dao.proxy.BusinessObjectDaoProxy.delete(BusinessObject

>>D

>>aoProxy.java:112)

>> at sun.reflect.GeneratedMethodAccessor1064.invoke(Unknown Source)

>> at

>>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI

>>m

>>pl.java:25)

>> at java.lang.reflect.Method.invoke(Method.java:597)

>> at

>>org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(A

>>o

>>pUtils.java:307)

>> at

>>org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpo

>>i

>>nt(ReflectiveMethodInvocation.java:182)

>> at

>>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refl

>>e

>>ctiveMethodInvocation.java:149)

>> at

>>org.springframework.transaction.interceptor.TransactionInterceptor.invoke

>>(

>>TransactionInterceptor.java:106)

>> at

>>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refl

>>e

>>ctiveMethodInvocation.java:171)

>> at

>>org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAop

>>P

>>roxy.java:204)

>> at $Proxy38.delete(Unknown Source)

>> at

>>org.kuali.rice.kns.service.impl.BusinessObjectServiceImpl.delete(Business

>>O

>>bjectServiceImpl.java:226)

>> at sun.reflect.GeneratedMethodAccessor1063.invoke(Unknown Source)

>> at

>>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI

>>m

>>pl.java:25)

>> at java.lang.reflect.Method.invoke(Method.java:597)

>> at

>>org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(A

>>o

>>pUtils.java:307)

>> at

>>org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpo

>>i

>>nt(ReflectiveMethodInvocation.java:182)

>> at

>>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refl

>>e

>>ctiveMethodInvocation.java:149)

>> at

>>org.springframework.transaction.interceptor.TransactionInterceptor.invoke

>>(

>>TransactionInterceptor.java:106)

>> at

>>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refl

>>e

>>ctiveMethodInvocation.java:171)

>> at

>>org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAop

>>P

>>roxy.java:204)

>> at $Proxy39.delete(Unknown Source)

>> at

>>org.kuali.rice.kns.service.impl.PessimisticLockServiceImpl.delete(Pessimi

>>s

>>ticLockServiceImpl.java:87)

>> at

>>org.kuali.rice.kns.service.impl.PessimisticLockServiceImpl.releaseAllLock

>>s

>>ForUser(PessimisticLockServiceImpl.java:159)

>> at sun.reflect.GeneratedMethodAccessor1330.invoke(Unknown Source)

>> at

>>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI

>>m

>>pl.java:25)

>> at java.lang.reflect.Method.invoke(Method.java:597)

>> at

>>org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(A

>>o

>>pUtils.java:307)

>> at

>>org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpo

>>i

>>nt(ReflectiveMethodInvocation.java:182)

>> at

>>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refl

>>e

>>ctiveMethodInvocation.java:149)

>> at

>>org.springframework.transaction.interceptor.TransactionInterceptor.invoke

>>(

>>TransactionInterceptor.java:106)

>> at

>>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(Refl

>>e

>>ctiveMethodInvocation.java:171)

>> at

>>org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAop

>>P

>>roxy.java:204)

>> at $Proxy55.releaseAllLocksForUser(Unknown Source)

>> at

>>org.kuali.kra.web.struts.action.KraTransactionalDocumentActionBase.popula

>>t

>>eAuthorizationFields(KraTransactionalDocumentActionBase.java:454)

>> at

>>org.kuali.rice.kns.web.struts.action.KualiDocumentActionBase.execute(Kual

>>i

>>DocumentActionBase.java:203)

>> at

>>org.kuali.kra.web.struts.action.KraTransactionalDocumentActionBase.execut

>>e

>>(KraTransactionalDocumentActionBase.java:134)

>> at

>>org.kuali.kra.proposaldevelopment.web.struts.action.ProposalDevelopmentAc

>>t

>>ion.execute(ProposalDevelopmentAction.java:229)

>> at

>>org.kuali.kra.proposaldevelopment.web.struts.action.ProposalDevelopmentAc

>>t

>>ionsAction.execute(ProposalDevelopmentActionsAction.java:140)

>> at

>>org.kuali.kra.proposaldevelopment.web.struts.action.ProposalDevelopmentAp

>>p

>>roverViewAction.execute(ProposalDevelopmentApproverViewAction.java:37)

>> at

>>org.kuali.rice.kns.web.struts.action.KualiRequestProcessor$1.doInTransact

>>i

>>on(KualiRequestProcessor.java:505)

>> at

>>org.springframework.transaction.support.TransactionTemplate.execute(Trans

>>a

>>ctionTemplate.java:128)

>> at

>>org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processActionP

>>e

>>rform(KualiRequestProcessor.java:501)

>> at

>>org.kuali.kra.web.struts.action.KraRequestProcessor.processActionPerform(

>>K

>>raRequestProcessor.java:76)

>> at

>>org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:2

>>3

>>6)

>> at

>>org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiR

>>e

>>questProcessor.java:103)

>> at

>>org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)

>> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)

>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)

>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat

>>i

>>onFilterChain.java:269)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte

>>r

>>Chain.java:188)

>> at

>>org.kuali.kra.web.filter.RequestLoggingFilter.doFilter(RequestLoggingFilt

>>e

>>r.java:97)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat

>>i

>>onFilterChain.java:215)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte

>>r

>>Chain.java:188)

>> at

>>edu.iu.kra.rice.kew.web.KcIuUserLoginFilter.doFilter(KcIuUserLoginFilter.

>>j

>>ava:79)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat

>>i

>>onFilterChain.java:215)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte

>>r

>>Chain.java:188)

>> at

>>org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java

>>:

>>273)

>> at

>>edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410

>>)

>> at

>>edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336

>>)

>> at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315)

>> at

>>org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java

>>:

>>266)

>> at

>>org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:164)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat

>>i

>>onFilterChain.java:215)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte

>>r

>>Chain.java:188)

>> at

>>org.kuali.kra.web.filter.PerformanceLoggingFilter.doFilter(PerformanceLog

>>g

>>ingFilter.java:73)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat

>>i

>>onFilterChain.java:215)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte

>>r

>>Chain.java:188)

>> at

>>org.kuali.kra.web.filter.SessionExpiredFilter.doFilter(SessionExpiredFilt

>>e

>>r.java:46)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat

>>i

>>onFilterChain.java:215)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte

>>r

>>Chain.java:188)

>> at

>>edu.iu.uis.rice.web.KCTransactionFilter.doFilter(KCTransactionFilter.java

>>:

>>60)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat

>>i

>>onFilterChain.java:215)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte

>>r

>>Chain.java:188)

>> at

>>org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFil

>>t

>>er.java:125)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat

>>i

>>onFilterChain.java:215)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte

>>r

>>Chain.java:188)

>> at

>>org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.

>>j

>>ava:66)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat

>>i

>>onFilterChain.java:215)

>> at

>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte

>>r

>>Chain.java:188)

>> at

>>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve

>>.

>>java:213)

>> at

>>org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve

>>.

>>java:172)

>> at

>>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:

>>1

>>27)

>> at

>>org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.

>>j

>>ava:347)

>> at

>>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:

>>1

>>17)

>> at

>>org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAcce

>>s

>>sLogValve.java:482)

>> at

>>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.j

>>a

>>va:108)

>> at

>>org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:17

>>4

>>)

>> at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)

>> at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)

>> at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)

>> at

>>org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:7

>>0

>>3)

>> at

>>org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.j

>>a

>>va:895)

>> at

>>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.

>>j

>>ava:689)

>> at java.lang.Thread.run(Thread.java:662)

>>Caused by: org.apache.ojb.broker.OptimisticLockException: Object has been

>>modified or deleted by someone else:

>>pessimisticLock(id,ownedByPrincipalIdentifier,lockDescriptor,generatedTim

>>e

>>stamp,documentNumber)=(94160,0002569041,9636221-PROPOSAL,2011-12-02

>>15:33:21.0,9636221)

>> at

>>org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeDelete(JdbcAccess

>>I

>>mpl.java:126)

>> at

>>org.apache.ojb.broker.core.PersistenceBrokerImpl.performDeletion(Persiste

>>n

>>ceBrokerImpl.java:608)

>> at

>>org.apache.ojb.broker.core.PersistenceBrokerImpl.doDelete(PersistenceBrok

>>e

>>rImpl.java:582)

>> at

>>org.apache.ojb.broker.core.PersistenceBrokerImpl.delete(PersistenceBroker

>>I

>>mpl.java:512)

>> at

>>org.apache.ojb.broker.core.PersistenceBrokerImpl.delete(PersistenceBroker

>>I

>>mpl.java:525)

>> at

>>org.apache.ojb.broker.core.DelegatingPersistenceBroker.delete(DelegatingP

>>e

>>rsistenceBroker.java:215)

>> at

>>org.apache.ojb.broker.core.DelegatingPersistenceBroker.delete(DelegatingP

>>e

>>rsistenceBroker.java:215)

>> at

>>org.springmodules.orm.ojb.PersistenceBrokerTemplate$10.doInPersistenceBro

>>k

>>er(PersistenceBrokerTemplate.java:255)

>> at

>>org.springmodules.orm.ojb.PersistenceBrokerTemplate.execute(PersistenceBr

>>o

>>kerTemplate.java:141)

>> ... 98 more

>

Comment by Shannon Hess

[ 05/Dec/11 4:32 PM ]

Terry,

I've made this change and created new rice client jars. Can you pull in the new jars and do some testing to verify everything still works as you would expect?

Jar locations rice-impl - https://onestart.iu.edu/nxs-prd/content/groups/public/edu/iu/es/esi/rice/riceimpl/1.0.3_20111205-iu/ rice-api - https://onestart.iu.edu/nxs-prd/content/groups/public/edu/iu/es/esi/rice/riceapi/1.0.3_20111205-iu/ rice-extras - https://onestart.iu.edu/nxs-prd/content/groups/public/edu/iu/es/esi/rice/riceextras/1.0.3_20111205-iu/

Thanks,

Shannon

Comment by Terry Durkin

[ 05/Dec/11 4:35 PM ]

Adding Neal as a watcher.

Neal - Can you take the new JARs and rebuild?

Comment by Nianen Chen

[ 05/Dec/11 9:00 PM ]

Sure, I'll do it ASAP.

Neal

Comment by Shannon Hess

[ 07/Dec/11 5:47 PM ]

I'm going to go ahead and close this issue, but if you have any problems with the change just let me know.

Thanks,

Shannon

Comment by Nianen Chen

[ 07/Dec/11 7:32 PM ]

Shannon,

The client jars have been adopted and deployed to KC STG. We'll keep an eye on it and let you know if it happens again.

Thanks,

Neal

[EN-2971] Broken workflow after document change

Created: 09/Aug/11 Updated:

10/Sep/12 Resolved: 13/Oct/11

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Post 2.0 Contribution

Type: Bug

Reporter: Nianen Chen

Resolution: Resolved

None Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Relates is related to

UITSRA-

718

Description

Hi,

Priority:

Assignee:

Votes:

Major

Shannon Hess

0

Workflow Problem when budget personne...

Closed

In KCIU we encountered several cases where workflow is broken due to the change of the proposal development document. Here is one example:

When the proposal was completed a personnel was added into the proposal budget that has a different home unit IN-PATH. According to our workflow logic, the IN-PATH-

Approver group was added into routing path, and one of the members from the IN-PATH-Approver unit approved the document. However, when this proposal gets to the higher level approval unit group based on IU Unit Hierarchy, i.e. the IN-IN-Approver group, this personnel was removed, as well as the approval unit though the unit has already approved the document. This actually broke the workflow by throwing the following exception: errorMessage: Problem running report: Error running simulation for document id 8953080 org.kuali.rice.kew.exception.WorkflowException: Problem running report: Error running simulation for document id 8953080 at org.kuali.rice.kew.routemodule.service.impl.RoutingReportServiceImpl.report(RoutingReportServiceImpl.java:38) at sun.reflect.GeneratedMethodAccessor2054.invoke(Unknown Source) 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:307) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy154.report(Unknown Source) at org.kuali.rice.kew.service.impl.WorkflowUtilityWebServiceImpl.routingReport(WorkflowUtilityWebServiceImpl.java:850) at sun.reflect.GeneratedMethodAccessor1771.invoke(Unknown Source)

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:307) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy81.routingReport(Unknown Source) at org.kuali.rice.kew.service.WorkflowInfo.routingReport(WorkflowInfo.java:401) at org.kuali.kra.proposaldevelopment.web.struts.action.ProposalDevelopmentActionsAction.canGenerateMultipleApprovalRequests(ProposalDevelopmentActionsAction.java:244) at org.kuali.kra.proposaldevelopment.web.struts.action.ProposalDevelopmentActionsAction.canGenerateRequestsInFuture(ProposalDevelopmentActionsAction.java:237) at org.kuali.kra.proposaldevelopment.web.struts.action.ProposalDevelopmentActionsAction.approve(ProposalDevelopmentActionsAction.java:159) 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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270) at org.kuali.rice.kns.web.struts.action.KualiAction.dispatchMethod(KualiAction.java:189) at org.kuali.kra.web.struts.action.KraTransactionalDocumentActionBase.dispatchMethod(KraTransactionalDocumentActionBase.java:156) at org.kuali.rice.kns.web.struts.action.KualiAction.execute(KualiAction.java:140) at org.kuali.rice.kns.web.struts.action.KualiDocumentActionBase.execute(KualiDocumentActionBase.java:158) at org.kuali.kra.web.struts.action.KraTransactionalDocumentActionBase.execute(KraTransactionalDocumentActionBase.java:135) at org.kuali.kra.proposaldevelopment.web.struts.action.ProposalDevelopmentAction.execute(ProposalDevelopmentAction.java:251) at org.kuali.kra.proposaldevelopment.web.struts.action.ProposalDevelopmentActionsAction.execute(ProposalDevelopmentActionsAction.java:136) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor$1.doInTransaction(KualiRequestProcessor.java:505) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processActionPerform(KualiRequestProcessor.java:501) at org.kuali.kra.web.struts.action.KraRequestProcessor.processActionPerform(KraRequestProcessor.java:58) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:103) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.kra.web.filter.RequestLoggingFilter.doFilter(RequestLoggingFilter.java:97) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at edu.iu.kra.rice.kew.web.KcIuUserLoginFilter.doFilter(KcIuUserLoginFilter.java:79) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:273) at edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410) at edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336) at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:266) at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:164) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

at org.kuali.kra.web.filter.PerformanceLoggingFilter.doFilter(PerformanceLoggingFilter.java:73) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.kra.web.filter.SessionExpiredFilter.doFilter(SessionExpiredFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at edu.iu.uis.rice.web.KCTransactionFilter.doFilter(KCTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:347) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:482) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:662)

Caused by: org.kuali.rice.kew.exception.DocumentSimulatedRouteException: Error running simulation for document id 8953080 at org.kuali.rice.kew.engine.simulation.SimulationEngine.process(SimulationEngine.java:140) at org.kuali.rice.kew.engine.simulation.SimulationEngine.runSimulation(SimulationEngine.java:64) at org.kuali.rice.kew.routemodule.service.impl.RoutingReportServiceImpl.report(RoutingReportServiceImpl.java:32)

... 93 more

Caused by: java.lang.NullPointerException at org.kuali.rice.kew.engine.node.hierarchyrouting.HierarchyRoutingNode.canTransitionFrom(HierarchyRoutingNode.java:242) at org.kuali.rice.kew.engine.node.hierarchyrouting.HierarchyRoutingNode.transitioningOutOf(HierarchyRoutingNode.java:155) at org.kuali.rice.kew.engine.transition.DynamicTransitionEngine.transitionFrom(DynamicTransitionEngine.java:73) at org.kuali.rice.kew.engine.StandardWorkflowEngine.invokeTransition(StandardWorkflowEngine.java:288) at org.kuali.rice.kew.engine.StandardWorkflowEngine.invokeTransition(StandardWorkflowEngine.java:293) at org.kuali.rice.kew.engine.StandardWorkflowEngine.processNodeInstance(StandardWorkflowEngine.java:175) at org.kuali.rice.kew.engine.simulation.SimulationEngine.process(SimulationEngine.java:119)

... 95 more

Since according to the KC business logic it's impossible to avoid modifying the document in any stage of the routing until it is finalized, I'm wondering if there is anything Rice can do to help solve the problem.

Thanks,

Neal

KCIU Implementation Team

Comments

Comment by Shannon Hess

[ 11/Aug/11 1:50 PM ]

Neal,

I made it so that this Null pointer exception will no longer occur, but now the error that pops up is in your code in

IUProposalDevelopmentServiceImpl.getApprovalProposalUnits() line 168. Can you take a look to see if having no proposalDocuments at this point should produce an error or continue on?

ProposalDevelopmentDocument proposalDocument = proposalDocuments.get(0);

Here's the new stack trace:

2011-08-11 12:36:02,070 [TP-Processor23] D: U:shahess INFO org.kuali.rice.kew.routelog.web.RouteLogAction :: Unable to determine Future Action Requests org.kuali.rice.kew.exception.WorkflowException: Problem running report: Error running simulation for document id 8953080 at org.kuali.rice.kew.routemodule.service.impl.RoutingReportServiceImpl.report(RoutingReportServiceImpl.java:38) 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:307) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy443.report(Unknown Source) at org.kuali.rice.kew.service.impl.WorkflowUtilityWebServiceImpl.routingReport(WorkflowUtilityWebServiceImpl.java:850) 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:307) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy81.routingReport(Unknown Source) 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.kuali.rice.core.resourceloader.ContextClassLoaderProxy.invokeInternal(ContextClassLoaderProxy.java:142) at org.kuali.rice.core.proxy.BaseInvocationHandler.invoke(BaseInvocationHandler.java:59) at $Proxy89.routingReport(Unknown Source) 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.kuali.rice.ksb.messaging.bam.BAMServerProxy.invokeInternal(BAMServerProxy.java:56) at org.kuali.rice.core.proxy.BaseInvocationHandler.invoke(BaseInvocationHandler.java:59) at $Proxy89.routingReport(Unknown Source) 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:307) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.remoting.support.RemoteInvocationTraceInterceptor.invoke(RemoteInvocationTraceInterceptor.java:77) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy89.routingReport(Unknown Source) 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.remoting.support.RemoteInvocation.invoke(RemoteInvocation.java:205) at org.springframework.remoting.support.DefaultRemoteInvocationExecutor.invoke(DefaultRemoteInvocationExecutor.java:38) at org.springframework.remoting.support.RemoteInvocationBasedExporter.invoke(RemoteInvocationBasedExporter.java:78) at org.springframework.remoting.support.RemoteInvocationBasedExporter.invokeAndCreateResult(RemoteInvocationBasedExporter.java:114) at org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter.handleRequest(HttpInvokerServiceExporter.java:74) at org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle(HttpRequestHandlerAdapter.java:49) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at org.kuali.rice.ksb.messaging.servlet.KSBDispatcherServlet.service(KSBDispatcherServlet.java:153) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.kra.web.filter.PerformanceLoggingFilter.doFilter(PerformanceLoggingFilter.java:73) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.kra.web.filter.SessionExpiredFilter.doFilter(SessionExpiredFilter.java:46) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at edu.iu.uis.rice.web.KCTransactionFilter.doFilter(KCTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:347) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:482) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:662) at org.springframework.remoting.support.RemoteInvocationUtils.fillInClientStackTraceIfPossible(RemoteInvocationUtils.java:47) at org.springframework.remoting.support.RemoteInvocationResult.recreate(RemoteInvocationResult.java:115) at org.springframework.remoting.support.RemoteInvocationBasedAccessor.recreateRemoteInvocationResult(RemoteInvocationBasedAccessor.java:85) at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:147) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy569.routingReport(Unknown Source) 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.kuali.rice.ksb.messaging.bam.BAMClientProxy.invokeInternal(BAMClientProxy.java:55) at org.kuali.rice.core.proxy.BaseInvocationHandler.invoke(BaseInvocationHandler.java:59) at $Proxy569.routingReport(Unknown Source) 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.kuali.rice.ksb.messaging.BusClientFailureProxy.invokeInternal(BusClientFailureProxy.java:77) at org.kuali.rice.core.proxy.BaseInvocationHandler.invoke(BaseInvocationHandler.java:59) at $Proxy569.routingReport(Unknown Source) at org.kuali.rice.kew.routelog.web.RouteLogAction.populateRouteLogFutureRequests(RouteLogAction.java:238) at org.kuali.rice.kew.routelog.web.RouteLogAction.execute(RouteLogAction.java:108) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor$1.doInTransaction(KualiRequestProcessor.java:505) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processActionPerform(KualiRequestProcessor.java:501) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:103) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) at javax.servlet.http.HttpServlet.service(HttpServlet.java:627) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:80) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92) at edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:115) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:273) at edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:488) at edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:422) at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:401)

at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:266) at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:164) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:347) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:482) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:662)

Caused by: org.kuali.rice.kew.exception.DocumentSimulatedRouteException: Error running simulation for document id 8953080 at org.kuali.rice.kew.engine.simulation.SimulationEngine.process(SimulationEngine.java:140) at org.kuali.rice.kew.engine.simulation.SimulationEngine.runSimulation(SimulationEngine.java:64) at org.kuali.rice.kew.routemodule.service.impl.RoutingReportServiceImpl.report(RoutingReportServiceImpl.java:32)

... 166 more

Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at edu.iu.uits.kra.proposaldevelopment.service.impl.IUProposalDevelopmentServiceImpl.getApprovalProposalUnits(IUProposalDevelopmentServiceImpl.java:168) at edu.iu.uits.kra.workflow.engine.node.hierarchyrouting.SimpleHierarchyProvider.createProposalUnitDocument(SimpleHierarchyProvider.java:201) at edu.iu.uits.kra.workflow.engine.node.hierarchyrouting.SimpleHierarchyProvider.init(SimpleHierarchyProvider.java:92) at edu.iu.uits.kra.workflow.engine.node.hierarchyrouting.SimpleHierarchyRoutingNode.getHierarchyProvider(SimpleHierarchyRoutingNode.java:17) at org.kuali.rice.kew.engine.node.hierarchyrouting.HierarchyRoutingNode.transitioningOutOf(HierarchyRoutingNode.java:140) at org.kuali.rice.kew.engine.transition.DynamicTransitionEngine.transitionFrom(DynamicTransitionEngine.java:73) at org.kuali.rice.kew.engine.StandardWorkflowEngine.invokeTransition(StandardWorkflowEngine.java:288) at org.kuali.rice.kew.engine.StandardWorkflowEngine.invokeTransition(StandardWorkflowEngine.java:293) at org.kuali.rice.kew.engine.StandardWorkflowEngine.processNodeInstance(StandardWorkflowEngine.java:175) at org.kuali.rice.kew.engine.simulation.SimulationEngine.process(SimulationEngine.java:119)

... 168 more

Comment by Nianen Chen

[ 23/Aug/11 1:36 PM ]

Hi, Shannon

This line is:

ProposalDevelopmentDocument proposalDocument = proposalDocuments.get(0); where we tried to obtain a proposal document by using the document number. So far I'm not able to figure out why would this happen. Could you please tell me what did you do to try to fix the issue? BTW another document having the similar problem so that we can do investigation on is: 8996733.

Thanks

Comment by Shannon Hess

[ 24/Aug/11 8:55 AM ]

Neal,

I added what I think was a missing null check. The original code has a check to see if requestNodeStop is not equal to null before continuing on. So I added the same check before the LOG.debug statement above the original if check. So it looks like this situation is happening when provider.getStop(requestNode) is null.

Do you know when this would be the case?

ORIGINAL CODE:

Stop requestNodeStop = provider.getStop(requestNode);

LOG.debug("Request node: " + requestNode.getRouteNodeInstanceId() + " has stop " + requestNodeStop.toString()); if (requestNodeStop != null && provider.equals(currentStop, requestNodeStop)) { LOG.debug("Skipping node " + requestNode.getName() + " because it is associated with the current stop"); continue; }

NEW CODE:

Stop requestNodeStop = provider.getStop(requestNode); if (requestNodeStop != null) { LOG.debug("Request node: " + requestNode.getRouteNodeInstanceId() + " has stop " + requestNodeStop.toString()); } if (requestNodeStop != null && provider.equals(currentStop, requestNodeStop)) { LOG.debug("Skipping node " + requestNode.getName() + " because it is associated with the current stop"); continue; }

}

Comment by Nianen Chen

[ 24/Aug/11 9:33 AM ]

Shannon,

So where did you add this new code? Is there a new branch I can try to adopt and test? Thanks.

Comment by Shannon Hess

[ 24/Aug/11 1:53 PM ]

If you pull new client jars, the change has been made in them. Also, the code has been deployed to all of the test environments.

Thanks,

Shannon

Comment by Shannon Hess

[ 12/Sep/11 11:51 PM ]

Neal,

I'm going to go ahead and close this issue since the change that I made is now in production. If you are still having problems and feel it's an issue on our end let me know and I can re-open it.

Thanks,

Shannon

Comment by Nianen Chen

[ 13/Sep/11 9:00 AM ]

Hi, Shannon

Is it possible for us to keep this open for a little bit longer? Previously I was overwhelmed by other critical KC issues and haven't gotten a chance to test your change yet. But now I plan to start working on this issue. If your change works, quite a few of our documents will be able to move on instead of being stuck in workflow. I'll let you know the result by this week. Thanks!

Comment by Shannon Hess

[ 13/Sep/11 9:12 AM ]

Sure, I just re-opened it.

Thanks,

Shannon

Comment by Nianen Chen

[ 18/Sep/11 4:28 PM ]

Hi, Shannon

After testing in STG, your change did avoid the exception we encountered before and make the workflow move on. However, there are still two issues:

1. In production we still have documents that have broken workflow. You mentioned that the change was already in production, so there may be some other scenarios that your solution does not cover. I plan to ask for a KC production db copy to REG to verify that.

2. Your solution does make the workflow continue. However, sometimes we may want to skip instead of continuing the approvals. So I did some further changes to achieve the goal. Most of my changes are in our enhancement code. There is only one line of change in Rice code in org.kuali.rice.kew.engine.node.hierarchyrouting.HierarchyRoutingNode:

/**

@param parent

@param child

@return true - if child or one of it's eventual parents reports to parent false - if child or one of it's eventual parents does not report to parent

*/ private boolean hasAsParent(HierarchyProvider provider, Stop parent, Stop child)

Unknown macro: { /* IU Customization Starts */ if (child == null || provider.isRoot(child)) { /* IU Customization Ends */ return false; } else if

(provider.equals(parent, child)) { return true; } else { child = provider.getParent(child); return hasAsParent(provider, parent, child); } }

Here I added a null check for "child". So if you feel safe about this change, could you please adopt it in your new version of client jar?

Thanks

Comment by Shannon Hess

[ 20/Sep/11 4:53 PM ]

I added Vivek as a watcher on this issue. I've updated the code with Neal's change and created new client jars. Can you update your client jars to verify it works as expected?

Thanks,

Shannon

Comment by Nianen Chen

[ 20/Sep/11 8:06 PM ]

Thanks Shannon. We'll test this as soon as possible.

Comment by Shannon Hess

[ 12/Oct/11 6:05 PM ]

Hi Neal,

Have you had a chance to test this?

Thanks,

Shannon

Comment by Nianen Chen

[ 13/Oct/11 7:14 AM ]

I tested it and this worked as expected in our testing environment. However we haven't had our functional users to test it yet. So I think we can close this JIRA at this moment and reopen if necessary.

Thanks!

[EN-2970] kr-prd: problem with attachments

Created: 11/Jan/11 Updated: 10/Sep/12 Resolved: 18/Feb/11

Status:

Project:

Resolved

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Post 2.0 Contribution

Type: Bug

Reporter:

Resolution:

Robert J. Piercy II

Fixed

None Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links:

Priority:

Votes:

Assignee:

Major

Greg Patterson

0

Discovered discovered EN-2062 Need to inject usersession before che... Closed

Relates relates to TK-1375 Editing timesheet note w/ attachment ... Closed

Impacted

Client(s):

Description

TK

Hello, we seem to have a mismatch between our plug in notes component, which still does not override this method: public abstract boolean isAuthorizedToRetrieveAttachments() throws java.lang.Exception;

The parent class is org.kuali.rice.kew.notes.CustomNoteAttribute

Can someone look at the source that is currently deployed and verify this for me? I think our users can live with this til after the freeze, but I just wanted to verify.

Comments

Comment by Robert J. Piercy II

[ 11/Jan/11 2:08 PM ]

We have only about 4 departments that make extensive use of attachment/notes. They will typically attach an email from the employee asking the supervisor to edit the timesheet (usually because they didn't clock in/out).

Our component lives in our plug in. The currently deployed version does not override that method, so that would explain the abstract method exception.

Let me make sure I didn't pull something down from iu-rice that I shouldn't have. more later, bob

Comment by Robert J. Piercy II

[ 11/Jan/11 2:38 PM ]

Ok, running rice locally I noticed in the attachment servlet, around line 94 we have this

DocumentRouteHeaderValue routeHeader =

KEWServiceLocator.getRouteHeaderService().getRouteHeader(noteService.getNoteByNoteId(attachment.getNoteId()).getRouteHeaderId()); if(!secureChecks || routeHeader != null){//If we can get a valid routeHeader based on the requested attachment ID boolean authorized = KEWServiceLocator.getDocumentSecurityService().routeLogAuthorized(userSession, routeHeader, new

SecuritySession(userSession)); boolean customAttributeAuthorized = routeHeader.getCustomNoteAttribute().isAuthorizedToRetrieveAttachments(); if(!secureChecks || (authorized && customAttributeAuthorized)){//If this user can see this document, they can get the attachment(s) // download attahcment }

This should be:

DocumentRouteHeaderValue routeHeader =

KEWServiceLocator.getRouteHeaderService().getRouteHeader(noteService.getNoteByNoteId(attachment.getNoteId()).getRouteHeaderId()); boolean customAttributeAuthorized = false;

CustomNoteAttribute customNoteAttribute = null;

DocumentRouteHeaderValue routeHeader = getRouteHeaderService().getRouteHeader(routeHeader.); if (routeHeader != null) { customNoteAttribute = routeHeader.getCustomNoteAttribute(); if (customNoteAttribute != null) { // need to inject the user session since it is null when pulled from the route header - we do this in other custom note operations customNoteAttribute.setUserSession(getUserSession(request)); customAttributeAuthorized = customNoteAttribute.isAuthorizedToRetrieveAttachments(); }

} boolean authorized = KEWServiceLocator.getDocumentSecurityService().routeLogAuthorized(userSession, routeHeader, new

SecuritySession(userSession)); if(!secureChecks || (authorized && customAttributeAuthorized)){//If this user can see this document, they can get the attachment(s) .... }

Comment by Greg Patterson

[ 11/Jan/11 3:02 PM ]

If I'm reading this right, you're asking us to inject the usersession before we check the custom note attribute's permission, is that correct?

Comment by Robert J. Piercy II

[ 11/Jan/11 4:16 PM ]

Yes - I in our other methods we override, this is done in the rice code. Check out NoteAction.save() at around line 137 in my version. It grabs the custom note from the route header then sets the usersession.

Comment by Robert J. Piercy II

[ 11/Jan/11 6:09 PM ]

I found another problem with this.

When a user saves a note, then they go and try to edit it and save it again, the attachment disappears. I stepped through the noteaction.save() method, and I think something is not posting from the form. If you do another edit on the same not, the attachment reappears until you save again.

around line 174:

FormFile uploadedFile = (FormFile)noteForm.getFile(); uploadedFile is "null" in the save method.

Comment by Robert J. Piercy II

[ 11/Jan/11 6:16 PM ]

More on the disappearing attachment. It comes back when you close and re-open the timesheet. Try kr-stg document 6712758. You may have to backdoor as rpiercy to have access to this doc.

Comment by Robert J. Piercy II

[ 12/Jan/11 6:00 PM ]

Ok, both the abstract method error and the disappearing attachment problem are in prod. We would like to fix these and deploy after the change. i have reproduced these errors in kr-stg, doc 6712758.

I am going to deploy a new plugin component CustomNoteAttribute to STG that has the correct behavior for that, but I am not sure why the notes are disappearing. to reproduce that one: backdoor in as rpiercy and open doc go to the notes and create one, add attachment, and save go to that same not and select edit then save, the attachment is no longer there. once you hit edit, it shows up again, but disappears on save. if you close and open the doc, the attachment reappears.

Comment by Greg Patterson

[ 12/Jan/11 7:20 PM ]

I'm planning to try and take a look at the attachments issue tomorrow, I ended up not getting to it today (though I was able to reproduce it).

Comment by Robert J. Piercy II

[ 13/Jan/11 10:39 AM ]

Thanks Greg!

Comment by Robert J. Piercy II

[ 17/Feb/11 10:33 AM ]

Ok, we are almost there.

The attachments are fine, but we found one more note problem. See kr-stg doc 8007902 (you can backdoor as me, rpiercy).

When you add a second note WITHOUT an attachment, it embeds the incident screen in the note section with an NPE at line 165 of

NoteAction.java.

Comment by Robert J. Piercy II

[ 17/Feb/11 10:35 AM ]

Here is the stack trace:

Please use the Incident Report form below to report the problems

This information will be forwarded to our support team. Please describe what action you were taking when the problem occurred

Document Id

Error Message

The system has encountered an error and is unable to complete your request at this time. Please provide more information regarding this error by completing this Incident Report.

User Input

***************** Stack Trace-Only shown when not in production ****************

java.lang.NullPointerException at org.kuali.rice.kew.notes.web.NoteAction.save(NoteAction.java:165) at sun.reflect.GeneratedMethodAccessor777.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270) at org.kuali.rice.kns.web.struts.action.KualiAction.dispatchMethod(KualiAction.java:172) at org.kuali.rice.kns.web.struts.action.KualiAction.execute(KualiAction.java:123) at org.kuali.rice.kew.notes.web.NoteAction.execute(NoteAction.java:64) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor$1.doInTransaction(KualiRequestProcessor.java:503) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processActionPerform(KualiRequestProcessor.java:499) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:101) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:80) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92) at edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:115) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:273) at edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:488) at edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:422) at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:401) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:266) at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:164) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:347) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:482) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)

at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:662)

Comment by Robert J. Piercy II

[ 17/Feb/11 10:37 AM ]

This also happens when you delete the notes, then try to add one. It also occurs when trying to save any subsequent note without an attachment.

Comment by Greg Patterson

[ 17/Feb/11 3:44 PM ]

I'm going to venture a guess here and say that this probably doesn't happen before the patch, is that correct? I'll take a look at this later this afternoon.

Edit: I've confirmed via Fisheye that this is a direct result of the change: noteToSave.setAttachments(getNoteService().getNoteByNoteId(noteToSave.getNoteId()).getAttachments());

I'll get to this by the end of the day.

-Greg

Comment by Greg Patterson

[ 17/Feb/11 5:20 PM ]

Bob,

I've committed a patch and will let you know once new jars are out there for you to pull.

The problem here lies in the fact that the previous fix was in the 'save' method which is called upon saving both new and edited notes, and in the case of a new note there is no associated ID (yet) so attachment retrieval is pointless since it will already be setup appropriately.

-Greg

*Edit: New client jars should be out there now, feel free to give them a shot whenever you've got a chance.

Comment by Robert J. Piercy II

[ 18/Feb/11 10:01 AM ]

Thanks Greg, I let you know if we have any problems.

Comment by Robert J. Piercy II

[ 18/Feb/11 10:43 AM ]

This is working now, thanks.

[EN-2969] Need eDocs for 4078 for student

Created: 09/Nov/10 Updated: 10/Sep/12 Resolved: 04/Jan/11

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Post 2.0 Contribution

Type: Improvement

Reporter:

Resolution:

Sandy Thompson

Fixed

Priority:

Assignee:

Votes:

Major

Shannon Hess

0

Labels:

Remaining

Estimate:

Time Spent:

None

Not Specified

Original

Estimate:

Description

Not Specified

Not Specified

You did send it to the right email address, but I think the subject might have confused the situation because this never created a new JIRA issue for us. I'm carboning workflow@indiana.edu< workflow@indiana.edu

>, and I removed the jira info from the subject.

From: Thompson, Sandra W

Sent: Tuesday, November 09, 2010 9:15 AM

To: Hess, Shannon

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Shannon,

Just wanted to make sure you got this as I'm not sure I sent it to the right place...

From: Thompson, Sandra W

Sent: Tuesday, November 09, 2010 8:37 AM

To: ONESTART WORKFLOW

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Group,

Could you check out the string below and let us know what the problem might be?

Thanks in advance,

Sandy

From: Fyffe, Mark W

Sent: Monday, November 08, 2010 5:41 PM

To: Thompson, Sandra W

Subject: RE: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Sandy,

I have made the adjustment Eric is recommending to most of the SISE code already, due to the lack of emails coming out of eDrop/eAdd and eGC for a similar reason. Using the KIM person lookup in PRD, I do not get any match on Principal ID 0001457828 which is the same lookup as what Eric recommends below. Following the same steps in REG, I find a user named

"bwjohnso" with both Principal ID and EmplId (aka Entity ID) populated with the correct value and showing a status of active. It would seem that this problem is due to a missing record rather than improper API usage.

Since the user cannot be found in PRD via the KIM person lookup using the preferred key criteria, we'll need ESI to explain further why this student can't be found in order to get to the bottom on this one. I can submit a workflow request for this if you like - let me know.

FWIW - Correct, doc 2302460 is an eDrop and was disapproved.

Mark

From: Thompson, Sandra W

Sent: Monday, November 08, 2010 5:25 PM

To: Fyffe, Mark W

Cc: Thompson, Sandra W

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Mark,

I think we have already researched something like this before. However, I dug up an email that

Eric Westfall sent back in Mar, 2010:

Hi everyone, I wanted to share this information to ensure that no one else encounters this issue.

The HR team discovered that they were having problems with some of their KEW

RoleAttributes that were resolving users using instances of EmplId. Here is a code snippet of what this might look like:

List<Id> users = new ArrayList<Id>(); users.add(new EmplId(emplidParent));

This works fine so long as the person is not a historical person and is available in the main identity store. In the case that the person is historical it fails to resolve the person because Kuali

Identity management does not provide identity archive access to entity lookups based on

Employee Id. Of course, ideally we wouldn't have any historical users in any of our routing setup. Realistically, this ends up happening in a few places.

The solution here is to use PrincipalId instead of EmplId since in our IU implementation of

KIM, the PrincipalId is the same as the person's empl id.

So, if you have any custom KEW RoleAttributes, please check them for usage of the EmplId class and replace with PrinciplaId.

I know Eric says that ideally we wouldn't have any historical users, but the Registrars do need

the ability to look up historical data from the student perspective. I do not know what application this was, but I'm guessing it was eDrop/eAdd based on the timing. Your thoughts?

Thanks, sandy

From: SIS Technical Account

Sent: Monday, November 08, 2010 3:25 PM

To: Thompson, Sandra W

Subject: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Issue (View Online< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054 >)

Key:

< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054 >

Issue Type:

[Bug]< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054 >Bug

Status:

[Open]Open

Priority:

[Major]Major

Assignee:

Unassigned

Reporter:

Amy Anderson< https://uisapp2.iu.edu/jira-prd/secure/ViewProfile.jspa?name=abretts >

Operations https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View all< https://uisapp2.iu.edu/jira-prd/browse/SCT-

3054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View comments< https://uisapp2.iu.edu/jira-prd/browse/SCT-

3054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View history< https://uisapp2.iu.edu/jira-prd/browse/SCT-

3054?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistory-tabpanel >

PRD issue: need eDocs for 4078 for student...< https://uisapp2.iu.edu/jira-prd/browse/SCT-

3054 >

Updated: 08/Nov/10 03:23 PM Created: 08/Nov/10 03:23 PM

Project:

Student Information Systems (SIS) Technical < https://uisapp2.iu.edu/jira-prd/browse/SCT >

Components:

SR

Description

Sandy,

This might be a joint workflow/SR issue?

We have a SR PRD issue that we couldn't research within OneStart document search due the student ID not being recognized in the system. Empl is 0001457828, term in question is 4078.

We did find one eDoc when we searched on the eDoc number itself, which the student had printed in 2009 (eDoc: 2302460). But couldn't find the rest since a search on principle or entity

ID didn't return anything, name search within KEW didn't either.

I was able to grab the eDocs from an IUIE query, so for the student's sake...we can take care of things. But still wanted to report to you since our front line folks use search by ID and also expect that eDocs will remain available online for searching indefinitely.

Thanks!

Amy

This message was automatically generated by Atlassian

JIRA< http://www.atlassian.com/c/JIRA/10140 > Professional Edition, Version: 3.13.5-360 -

Bug/feature request< http://jira.atlassian.com/default.jsp?clicked=footer >.

If you think it was sent incorrectly, contact one of this server's administrators< https://uisapp2.iu.edu/jira-prd/secure/Administrators.jspa

>.

Comments

Comment by Shannon Hess

[ 09/Nov/10 10:40 AM ]

Sandy,

Mark mentioned that by following the same steps in REG, he found a user named "bwjohnso" with both Principal ID and EmplId populated with the correct value and showing a status of active. I am not seeing this, and was wondering if you could find out what steps he took to see the user in REG?

In all of the environments, I can only find bwjohnso in the KRIM_ENTITY_CACHE_T, which is used to populate name data on the action list, ect. However, he is not in the KRIM_PRNCPL_T or the KRIM_ENTITY_T even as an inactive user. This is very strange because we rarely delete people from those tables.

I've sent an email to the IMS team to see if this person is listed as an active user in their data.

Thanks,

Shannon

Comment by Sandy Thompson

[ 09/Nov/10 1:10 PM ]

Mark,

Can you answer Shannon’s question?

Thanks,

Sandy

From: ONESTART WORKFLOW

Sent: Tuesday, November 09, 2010 10:44 AM

To: Thompson, Sandra W

Subject: [IU Jira] Commented: (WFR-12588) Need eDocs for 4078 for student

Issue (View Online< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >)

Key:

WFR-12588< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >

Issue Type:

[Task]< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >Task

Status:

[Open]Open

Priority:

[Major]Major

Assignee:

Unassigned

Reporter:

Sandy Thompson< https://uisapp2.iu.edu/jira-prd/secure/ViewProfile.jspa?name=sthomps >

Operations https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View all< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View comments< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View history< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistorytabpanel >

Need eDocs for 4078 for student< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >

Updated: 09/Nov/10 10:40 AM Created: 09/Nov/10 10:17 AM

The following comment has been added to this issue:

[ Permalink< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=182422#action_182422 > ]

Author: Shannon Hess< https://uisapp2.iu.edu/jira-prd/secure/ViewProfile.jspa?name=shahess >

Date: 09/Nov/10 10:40 AM

Comment:

Sandy,

Mark mentioned that by following the same steps in REG, he found a user named "bwjohnso" with both Principal ID and EmplId populated with the correct value and showing a status of active. I am not seeing this, and was wondering if you could find out what steps he took to see the user in REG?

In all of the environments, I can only find bwjohnso in the KRIM_ENTITY_CACHE_T, which is used to populate name data on the action list, ect. However, he is not in the KRIM_PRNCPL_T or the KRIM_ENTITY_T even as an inactive user. This is very strange because we rarely delete people from those tables.

I've sent an email to the IMS team to see if this person is listed as an active user in their data.

Thanks,

Shannon

Project:

Workflow Request< https://uisapp2.iu.edu/jira-prd/browse/WFR >

Description

You did send it to the right email address, but I think the subject might have confused the situation because this never created a new JIRA issue for us. I'm carboning workflow@indiana.edu< workflow@indiana.edu

>< workflow@indiana.edu

< workflow@indiana.edu

>>, and I removed the jira info from the subject.

From: Thompson, Sandra W

Sent: Tuesday, November 09, 2010 9:15 AM

To: Hess, Shannon

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Shannon,

Just wanted to make sure you got this as I'm not sure I sent it to the right place...

From: Thompson, Sandra W

Sent: Tuesday, November 09, 2010 8:37 AM

To: ONESTART WORKFLOW

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Group,

Could you check out the string below and let us know what the problem might be?

Thanks in advance,

Sandy

From: Fyffe, Mark W

Sent: Monday, November 08, 2010 5:41 PM

To: Thompson, Sandra W

Subject: RE: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Sandy,

I have made the adjustment Eric is recommending to most of the SISE code already, due to the lack of emails coming out of eDrop/eAdd and eGC for a similar reason. Using the KIM person lookup in PRD, I do not get any match on Principal ID 0001457828 which is the same lookup as what Eric recommends below. Following the same steps in REG, I find a user named "bwjohnso" with both

Principal ID and EmplId (aka Entity ID) populated with the correct value and showing a status of active. It would seem that this problem is due to a missing record rather than improper API usage.

Since the user cannot be found in PRD via the KIM person lookup using the preferred key criteria, we'll need ESI to explain further why this student can't be found in order to get to the bottom on this one. I can submit a workflow request for this if you like - let me know.

FWIW - Correct, doc 2302460 is an eDrop and was disapproved.

Mark

From: Thompson, Sandra W

Sent: Monday, November 08, 2010 5:25 PM

To: Fyffe, Mark W

Cc: Thompson, Sandra W

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Mark,

I think we have already researched something like this before. However, I dug up an email that Eric Westfall sent back in Mar, 2010:

Hi everyone, I wanted to share this information to ensure that no one else encounters this issue.

The HR team discovered that they were having problems with some of their KEW RoleAttributes that were resolving users using instances of EmplId. Here is a code snippet of what this might look like:

List<Id> users = new ArrayList<Id>(); users.add(new EmplId(emplidParent));

This works fine so long as the person is not a historical person and is available in the main identity store. In the case that the person is historical it fails to resolve the person because Kuali Identity management does not provide identity archive access to entity lookups based on Employee Id. Of course, ideally we wouldn't have any historical users in any of our routing setup. Realistically, this ends up happening in a few places.

The solution here is to use PrincipalId instead of EmplId since in our IU implementation of KIM, the PrincipalId is the same as the person's empl id.

So, if you have any custom KEW RoleAttributes, please check them for usage of the EmplId class and replace with PrinciplaId.

I know Eric says that ideally we wouldn't have any historical users, but the Registrars do need the ability to look up historical data from the student perspective. I do not know what application this was, but I'm guessing it was eDrop/eAdd based on the timing. Your thoughts?

Thanks, sandy

From: SIS Technical Account

Sent: Monday, November 08, 2010 3:25 PM

To: Thompson, Sandra W

Subject: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Issue (View Online< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054&gt < https://uisapp2.iu.edu/jira-prd/browse/SCT-3054%3e )>

Key:

< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054 >

Issue Type:

[Bug]< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054&gt;Bug < https://uisapp2.iu.edu/jira-prd/browse/SCT-3054%3eBug >

Status:

[Open]Open

Priority:

[Major]Major

Assignee:

Unassigned

Reporter:

Amy Anderson< https://uisapp2.iu.edu/jira-prd/secure/ViewProfile.jspa?name=abretts >

Operations https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View all< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View comments< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View history< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistorytabpanel >

PRD issue: need eDocs for 4078 for student...< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054 >

Updated: 08/Nov/10 03:23 PM Created: 08/Nov/10 03:23 PM

Project:

Student Information Systems (SIS) Technical < https://uisapp2.iu.edu/jira-prd/browse/SCT >

Components:

SR

Description

Sandy,

This might be a joint workflow/SR issue?

We have a SR PRD issue that we couldn't research within OneStart document search due the student ID not being recognized in the system. Empl is 0001457828, term in question is 4078. We did find one eDoc when we searched on the eDoc number itself, which the student had printed in 2009 (eDoc: 2302460). But couldn't find the rest since a search on principle or entity ID didn't return anything, name search within KEW didn't either.

I was able to grab the eDocs from an IUIE query, so for the student's sake...we can take care of things. But still wanted to report to you since our front line folks use search by ID and also expect that eDocs will remain available online for searching indefinitely.

Thanks!

Amy

This message was automatically generated by Atlassian JIRA< http://www.atlassian.com/c/JIRA/10140 > Professional Edition, Version: 3.13.5-360 - Bug/feature request< http://jira.atlassian.com/default.jsp?clicked=footer >.

If you think it was sent incorrectly, contact one of this server's administrators< https://uisapp2.iu.edu/jira-prd/secure/Administrators.jspa

>.

This message was automatically generated by Atlassian JIRA< http://www.atlassian.com/c/JIRA/10140 > Professional Edition, Version: 3.13.5-360 - Bug/feature request< http://jira.atlassian.com/default.jsp?clicked=footer >.

If you think it was sent incorrectly, contact one of this server's administrators< https://uisapp2.iu.edu/jira-prd/secure/Administrators.jspa

>.

Comment by Shannon Hess

[ 09/Nov/10 1:12 PM ]

Added mark as a watcher to this JIRA

Comment by Mark Fyffe

[ 09/Nov/10 1:29 PM ]

Shannon,

I am not finding this user in any environment today via the Person lookup. I recall finding the user in REG that way yesterday afternoon, but don't recall exactly which steps I took first. Unless your test environments were updated in some capacity last night, it is possible that I was confused . If I backdoor in REG as abretts and use doc search to find 2302460, I can click through to the Person inquiry screen from the initiator column in the search results. I can then modify the URL to view the same user in PRD: https://onestart.iu.edu/kr-prd/kr/inquiry.do?methodToCall=continueWithInquiry&principalId=0001457828&businessObjectClassName=org.kuali.rice.kim.bo.impl.PersonImpl

Mark

Comment by Shannon Hess

[ 09/Nov/10 1:55 PM ]

Mark,

It's possible that the test environments were updated last night, as we do a nightly synch of KIM data from production. That would mean that the user was updated yesterday in production and then you happened to look in reg before the change could be synched. However, I checked one of our environments which doesn't have the nightly refresh set up and this particular environment was populated from production about 2 month ago. The user id 0001457828 isn't out there either, so I think the data has been gone from production for some time.

Here is a different view of his data in production: https://onestart.iu.edu/krprd/kim/identityManagementPersonInquiry.do?businessObjectClassName=org.kuali.rice.kim.bo.impl.PersonImpl&methodToCall=inquiry&principalId=0001457828&command=initiate#topOfForm .

This is the same view you would get from a person search.

If you select the initiator name in the action list or in a document search or on a route log, the data is retrieved from the KRIM_ENTITY_CACHE_T or IMS History tables if nothing is found in the other KIM tables. That prevents errors that were being thrown in production due to people being only in the historical database. That is the reason that his data is so sparse on the inquiry screen.

It sounds like you are saying that we need the person look up to return any data it can find, regardless if it is found in the KRIM_ENTITY_CACHE_T tables, the IMS history tables, or the KIM tables. Is that correct?

Shannon

Comment by Mark Fyffe

[ 09/Nov/10 2:03 PM ]

Thanks Shannon.

I don't think that the use of Person lookup is the issue per se, though that would help this scenario. The real issue here is in attempting to use doc search to look up documents by initiator id. For this user's emplid, no documents come up even though we have an example of one specific doc that the user initiated.

Mark

Comment by Shannon Hess

[ 09/Nov/10 2:14 PM ]

Mark,

The document search doesn't work for anyone if you search by emplid - it only works if you search for documents by principal name. If you enter bwjohnso in the Initiator field in doc search, 4 documents are returned including 2302460. I agree that having the person lookup return these types of users would be of great help, especially if you don't know the principal name.

Shannon

Comment by Sandy Thompson

[ 09/Nov/10 2:40 PM ]

Shannon,

What would be the chance of getting this added?

The document search doesn't work for anyone if you search by emplid - it only works if you search for documents by principal name. If you enter bwjohnso in the Initiator field in doc search, 4 documents are returned including 2302460. I agree that having the person lookup return these types of users would be of great help, especially if you don't know the principal name.

Thanks,

Sandy

From: ONESTART WORKFLOW

Sent: Tuesday, November 09, 2010 2:15 PM

To: Thompson, Sandra W

Subject: [IU Jira] Commented: (WFR-12588) Need eDocs for 4078 for student

Issue (View Online< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >)

Key:

WFR-12588< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >

Issue Type:

[Task]< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >Task

Status:

[Open]Open

Priority:

[Major]Major

Assignee:

Unassigned

Reporter:

Sandy Thompson< https://uisapp2.iu.edu/jira-prd/secure/ViewProfile.jspa?name=sthomps >

Operations https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View all< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View comments< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View history< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistorytabpanel >

Need eDocs for 4078 for student< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >

Updated: 09/Nov/10 02:14 PM Created: 09/Nov/10 10:17 AM

The following comment has been added to this issue:

[ Permalink< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=182457#action_182457 > ]

Author: Shannon Hess< https://uisapp2.iu.edu/jira-prd/secure/ViewProfile.jspa?name=shahess >

Date: 09/Nov/10 02:14 PM

Comment:

Mark,

The document search doesn't work for anyone if you search by emplid - it only works if you search for documents by principal name. If you enter bwjohnso in the Initiator field in doc search, 4 documents are returned including 2302460. I agree that having the person lookup return these types of users would be of great help, especially if you don't know the principal name.

Shannon

Project:

Workflow Request< https://uisapp2.iu.edu/jira-prd/browse/WFR >

Description

You did send it to the right email address, but I think the subject might have confused the situation because this never created a new JIRA issue for us. I'm carboning workflow@indiana.edu< workflow@indiana.edu

>< workflow@indiana.edu

< workflow@indiana.edu

>>, and I removed the jira info from the subject.

From: Thompson, Sandra W

Sent: Tuesday, November 09, 2010 9:15 AM

To: Hess, Shannon

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Shannon,

Just wanted to make sure you got this as I'm not sure I sent it to the right place...

From: Thompson, Sandra W

Sent: Tuesday, November 09, 2010 8:37 AM

To: ONESTART WORKFLOW

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Group,

Could you check out the string below and let us know what the problem might be?

Thanks in advance,

Sandy

From: Fyffe, Mark W

Sent: Monday, November 08, 2010 5:41 PM

To: Thompson, Sandra W

Subject: RE: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Sandy,

I have made the adjustment Eric is recommending to most of the SISE code already, due to the lack of emails coming out of eDrop/eAdd and eGC for a similar reason. Using the KIM person lookup in PRD, I do not get any match on Principal ID 0001457828 which is the same lookup as what Eric recommends below. Following the same steps in REG, I find a user named "bwjohnso" with both

Principal ID and EmplId (aka Entity ID) populated with the correct value and showing a status of active. It would seem that this problem is due to a missing record rather than improper API usage.

Since the user cannot be found in PRD via the KIM person lookup using the preferred key criteria, we'll need ESI to explain further why this student can't be found in order to get to the bottom on this one. I can submit a workflow request for this if you like - let me know.

FWIW - Correct, doc 2302460 is an eDrop and was disapproved.

Mark

From: Thompson, Sandra W

Sent: Monday, November 08, 2010 5:25 PM

To: Fyffe, Mark W

Cc: Thompson, Sandra W

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Mark,

I think we have already researched something like this before. However, I dug up an email that Eric Westfall sent back in Mar, 2010:

Hi everyone, I wanted to share this information to ensure that no one else encounters this issue.

The HR team discovered that they were having problems with some of their KEW RoleAttributes that were resolving users using instances of EmplId. Here is a code snippet of what this might look like:

List<Id> users = new ArrayList<Id>(); users.add(new EmplId(emplidParent));

This works fine so long as the person is not a historical person and is available in the main identity store. In the case that the person is historical it fails to resolve the person because Kuali Identity management does not provide identity archive access to entity lookups based on Employee Id. Of course, ideally we wouldn't have any historical users in any of our routing setup. Realistically, this ends up happening in a few places.

The solution here is to use PrincipalId instead of EmplId since in our IU implementation of KIM, the PrincipalId is the same as the person's empl id.

So, if you have any custom KEW RoleAttributes, please check them for usage of the EmplId class and replace with PrinciplaId.

I know Eric says that ideally we wouldn't have any historical users, but the Registrars do need the ability to look up historical data from the student perspective. I do not know what application this was, but I'm guessing it was eDrop/eAdd based on the timing. Your thoughts?

Thanks, sandy

From: SIS Technical Account

Sent: Monday, November 08, 2010 3:25 PM

To: Thompson, Sandra W

Subject: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Issue (View Online< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054&gt < https://uisapp2.iu.edu/jira-prd/browse/SCT-3054%3e )>

Key:

< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054 >

Issue Type:

[Bug]< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054&gt;Bug < https://uisapp2.iu.edu/jira-prd/browse/SCT-3054%3eBug >

Status:

[Open]Open

Priority:

[Major]Major

Assignee:

Unassigned

Reporter:

Amy Anderson< https://uisapp2.iu.edu/jira-prd/secure/ViewProfile.jspa?name=abretts >

Operations https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View all< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View comments< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View history< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistorytabpanel >

PRD issue: need eDocs for 4078 for student...< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054 >

Updated: 08/Nov/10 03:23 PM Created: 08/Nov/10 03:23 PM

Project:

Student Information Systems (SIS) Technical < https://uisapp2.iu.edu/jira-prd/browse/SCT >

Components:

SR

Description

Sandy,

This might be a joint workflow/SR issue?

We have a SR PRD issue that we couldn't research within OneStart document search due the student ID not being recognized in the system. Empl is 0001457828, term in question is 4078. We did find one eDoc when we searched on the eDoc number itself, which the student had printed in 2009 (eDoc: 2302460). But couldn't find the rest since a search on principle or entity ID didn't return anything, name search within KEW didn't either.

I was able to grab the eDocs from an IUIE query, so for the student's sake...we can take care of things. But still wanted to report to you since our front line folks use search by ID and also expect that eDocs will remain available online for searching indefinitely.

Thanks!

Amy

This message was automatically generated by Atlassian JIRA< http://www.atlassian.com/c/JIRA/10140 > Professional Edition, Version: 3.13.5-360 - Bug/feature request< http://jira.atlassian.com/default.jsp?clicked=footer >.

If you think it was sent incorrectly, contact one of this server's administrators< https://uisapp2.iu.edu/jira-prd/secure/Administrators.jspa

>.

This message was automatically generated by Atlassian JIRA< http://www.atlassian.com/c/JIRA/10140 > Professional Edition, Version: 3.13.5-360 - Bug/feature request< http://jira.atlassian.com/default.jsp?clicked=footer >.

If you think it was sent incorrectly, contact one of this server's administrators< https://uisapp2.iu.edu/jira-prd/secure/Administrators.jspa

>.

Comment by Shannon Hess

[ 09/Nov/10 2:49 PM ]

Sandy,

Eric is out of the office at Kuali Days this week, but I'll talk to him next week to see if having the person lookup return any type of user would be an enhancement we could make.

Shannon

Comment by Sandy Thompson

[ 09/Nov/10 2:52 PM ]

Thank you, Shannon!

From: ONESTART WORKFLOW

Sent: Tuesday, November 09, 2010 2:51 PM

To: Thompson, Sandra W

Subject: [IU Jira] Commented: (WFR-12588) Need eDocs for 4078 for student

Issue (View Online< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >)

Key:

WFR-12588< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >

Issue Type:

[Task]< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >Task

Status:

[Open]Open

Priority:

[Major]Major

Assignee:

Unassigned

Reporter:

Sandy Thompson< https://uisapp2.iu.edu/jira-prd/secure/ViewProfile.jspa?name=sthomps >

Operations https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View all< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View comments< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View history< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistorytabpanel >

Need eDocs for 4078 for student< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588 >

Updated: 09/Nov/10 02:49 PM Created: 09/Nov/10 10:17 AM

The following comment has been added to this issue:

[ Permalink< https://uisapp2.iu.edu/jira-prd/browse/WFR-12588?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=182465#action_182465 > ]

Author: Shannon Hess< https://uisapp2.iu.edu/jira-prd/secure/ViewProfile.jspa?name=shahess >

Date: 09/Nov/10 02:49 PM

Comment:

Sandy,

Eric is out of the office at Kuali Days this week, but I'll talk to him next week to see if having the person lookup return any type of user would be an enhancement we could make.

Shannon

Project:

Workflow Request< https://uisapp2.iu.edu/jira-prd/browse/WFR >

Description

You did send it to the right email address, but I think the subject might have confused the situation because this never created a new JIRA issue for us. I'm carboning workflow@indiana.edu< workflow@indiana.edu

>< workflow@indiana.edu

< workflow@indiana.edu

>>, and I removed the jira info from the subject.

From: Thompson, Sandra W

Sent: Tuesday, November 09, 2010 9:15 AM

To: Hess, Shannon

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Shannon,

Just wanted to make sure you got this as I'm not sure I sent it to the right place...

From: Thompson, Sandra W

Sent: Tuesday, November 09, 2010 8:37 AM

To: ONESTART WORKFLOW

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Group,

Could you check out the string below and let us know what the problem might be?

Thanks in advance,

Sandy

From: Fyffe, Mark W

Sent: Monday, November 08, 2010 5:41 PM

To: Thompson, Sandra W

Subject: RE: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Sandy,

I have made the adjustment Eric is recommending to most of the SISE code already, due to the lack of emails coming out of eDrop/eAdd and eGC for a similar reason. Using the KIM person lookup in PRD, I do not get any match on Principal ID 0001457828 which is the same lookup as what Eric recommends below. Following the same steps in REG, I find a user named "bwjohnso" with both

Principal ID and EmplId (aka Entity ID) populated with the correct value and showing a status of active. It would seem that this problem is due to a missing record rather than improper API usage.

Since the user cannot be found in PRD via the KIM person lookup using the preferred key criteria, we'll need ESI to explain further why this student can't be found in order to get to the bottom on this one. I can submit a workflow request for this if you like - let me know.

FWIW - Correct, doc 2302460 is an eDrop and was disapproved.

Mark

From: Thompson, Sandra W

Sent: Monday, November 08, 2010 5:25 PM

To: Fyffe, Mark W

Cc: Thompson, Sandra W

Subject: FW: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Mark,

I think we have already researched something like this before. However, I dug up an email that Eric Westfall sent back in Mar, 2010:

Hi everyone, I wanted to share this information to ensure that no one else encounters this issue.

The HR team discovered that they were having problems with some of their KEW RoleAttributes that were resolving users using instances of EmplId. Here is a code snippet of what this might look like:

List<Id> users = new ArrayList<Id>(); users.add(new EmplId(emplidParent));

This works fine so long as the person is not a historical person and is available in the main identity store. In the case that the person is historical it fails to resolve the person because Kuali Identity management does not provide identity archive access to entity lookups based on Employee Id. Of course, ideally we wouldn't have any historical users in any of our routing setup. Realistically, this ends up happening in a few places.

The solution here is to use PrincipalId instead of EmplId since in our IU implementation of KIM, the PrincipalId is the same as the person's empl id.

So, if you have any custom KEW RoleAttributes, please check them for usage of the EmplId class and replace with PrinciplaId.

I know Eric says that ideally we wouldn't have any historical users, but the Registrars do need the ability to look up historical data from the student perspective. I do not know what application this was, but I'm guessing it was eDrop/eAdd based on the timing. Your thoughts?

Thanks, sandy

From: SIS Technical Account

Sent: Monday, November 08, 2010 3:25 PM

To: Thompson, Sandra W

Subject: [IU Jira] Created: () PRD issue: need eDocs for 4078 for student...

Issue (View Online< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054&gt < https://uisapp2.iu.edu/jira-prd/browse/SCT-3054%3e )>

Key:

< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054 >

Issue Type:

[Bug]< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054&gt;Bug < https://uisapp2.iu.edu/jira-prd/browse/SCT-3054%3eBug >

Status:

[Open]Open

Priority:

[Major]Major

Assignee:

Unassigned

Reporter:

Amy Anderson< https://uisapp2.iu.edu/jira-prd/secure/ViewProfile.jspa?name=abretts >

Operations https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View all< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View comments< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel > https://uisapp2.iu.edu/jira-prd/images/icons/bullet_creme.gif

View history< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistorytabpanel >

PRD issue: need eDocs for 4078 for student...< https://uisapp2.iu.edu/jira-prd/browse/SCT-3054 >

Updated: 08/Nov/10 03:23 PM Created: 08/Nov/10 03:23 PM

Project:

Student Information Systems (SIS) Technical < https://uisapp2.iu.edu/jira-prd/browse/SCT >

Components:

SR

Description

Sandy,

This might be a joint workflow/SR issue?

We have a SR PRD issue that we couldn't research within OneStart document search due the student ID not being recognized in the system. Empl is 0001457828, term in question is 4078. We did find one eDoc when we searched on the eDoc number itself, which the student had printed in 2009 (eDoc: 2302460). But couldn't find the rest since a search on principle or entity ID didn't return anything, name search within KEW didn't either.

I was able to grab the eDocs from an IUIE query, so for the student's sake...we can take care of things. But still wanted to report to you since our front line folks use search by ID and also expect that eDocs will remain available online for searching indefinitely.

Thanks!

Amy

This message was automatically generated by Atlassian JIRA< http://www.atlassian.com/c/JIRA/10140 > Professional Edition, Version: 3.13.5-360 - Bug/feature request< http://jira.atlassian.com/default.jsp?clicked=footer >.

If you think it was sent incorrectly, contact one of this server's administrators< https://uisapp2.iu.edu/jira-prd/secure/Administrators.jspa

>.

This message was automatically generated by Atlassian JIRA< http://www.atlassian.com/c/JIRA/10140 > Professional Edition, Version: 3.13.5-360 - Bug/feature request< http://jira.atlassian.com/default.jsp?clicked=footer >.

If you think it was sent incorrectly, contact one of this server's administrators< https://uisapp2.iu.edu/jira-prd/secure/Administrators.jspa

>.

Comment by Shannon Hess

[ 18/Nov/10 6:03 AM ]

We had a chance to talk to Eric about this issue, and it would be possible to retrieve users from the KRIM_ENTITY_CACHE_T or the IMS Historical table, but only if the user selects the Active

Indicator of No as part of the search criteria. Which hopefully will meet your needs seeing as the user is technically inactive.

This will take some code changes, so I'm not sure of the time line for getting this out into production. I will continue to update this JIRA as we make progress.

Thanks,

Shannon

Comment by Sandy Thompson

[ 19/Nov/10 4:08 PM ]

Thanks, Shannon

Comment by Shannon Hess

[ 07/Dec/10 5:24 PM ]

I've been working on the fix for this, and I hope to have it in test by the end of the week. If testing goes well, we can push the change to production next Thursday or the week after that.

Comment by Eric Westfall

[ 30/Dec/10 10:03 AM ]

Shannon, is this change in the set of changes we will be moving to production next week?

Comment by Shannon Hess

[ 04/Jan/11 12:33 PM ]

Yes, this change is currently in test and will be going to production on Thursday. I'm going to go ahead and close this issue.

Thanks,

Shannon

Comment by Amy Bretts

[ 07/Jan/11 10:26 AM ]

Just checking to see if this moved into PRD yesterday?

Thanks,

Amy

Comment by Shannon Hess

[ 18/Jan/11 9:35 AM ]

Amy,

Yes, this change was moved into prod on Jan 6th. Sorry about the delay in response.

Thanks,

Shannon

[EN-2960] Unable to Save/Submit changes to a Workflow Group

Created:

31/Aug/12 Updated: 10/Sep/12 Resolved: 05/Sep/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Patch 5 - Rice 2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Major

Reporter: Sean Pendergast Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Attachments: Screen shot 2012-08-31 at 3.01.28 PM.png

Issue Links: Relates relates to OVPRA-11932 IT Request - access to edoc lite appl... Closed

Description

Hi,

I am trying to add to new users to the OVPR.InternalFundingBlanketApprovers group. So I looked-up their member ids and [Add] – that worked. But when I tried to save or submit, i get an error saying

Errors found in this Section:

Member ID 3345768 does not exist for the selected member type.

The ID references another OVPR group – OVPR.SuperUserGroup. Not sure what to do.

Attached is the page with the error

[cid:63FDAD1A-53A8-47DE-A899-BB6E5619B93D]

Comments

Comment by James Bennett

[ 04/Sep/12 1:35 PM ]

Sean,

It appears that this is a code problem and I believe I've found a solution to fix it. I'm going to move this issue to our other queue so we can track the code change and I was wondering if you'd be able to test this out in one of our testing environments tomorrow? If we can verify that the fix works as expected it will be fixed in production on Thursday.

Thanks,

James

Comment by Sean Pendergast

[ 04/Sep/12 1:47 PM ]

Hi James – yes, I'll be happy to test

Comment by James Bennett

[ 05/Sep/12 10:42 AM ]

Hello Sean,

My change is out in our testing environments if you can try it out there. Here's a link to the group lookup where you can start: https://test.uisapp2.iu.edu/krcnv/kr/lookup.do?methodToCall=start&businessObjectClassName=org.kuali.rice.kim.impl.group.GroupBo&docFormKey=88888888&returnLocation=https://test.uisapp2.iu.edu/krcnv/portal.do&hideReturnLink=true

Please let me know if you have any issues.

Thanks,

James

Comment by Sean Pendergast

[ 05/Sep/12 3:15 PM ]

Hi James – I tested: added a new user to the group and submitted and got success message:

Document was successfully submitted

Comment by James Bennett

[ 05/Sep/12 3:19 PM ]

Great, thanks Sean. I'm going to go ahead and close this issue since it sounds like it is fixed and it should be ready for you to edit the group in production tomorrow.

[EN-2952] Add the ability to "groupMembers" on NetworkIdRoleAttribute

Created: 29/Aug/12 Updated: 10/Sep/12

Status: Open

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Patch 6 - Rice 2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Improvement Priority: Critical

Reporter: Eric Westfall Assignee: Greg Patterson

Resolution: Unresolved

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Description

In working with Ranji's group, they were wondering how they might route to a dynamic list of people but only require one person in the list to approve (similar to a statically defined Group in

KIM/KEW).

I knew that we had the NetworkIdRoleAttribute class in KEW, so I wrote up this document about it: https://uisapp2.iu.edu/confluence-prd/display/KULWF/KEW+-

+Using+NetworkIdRoleAttribute+for+Dynamic+Routing

However, in doing this I noticed that it does not have the ability to "group" people together which is a requirement in order to do first-approve routing. In the document, I included an example of defining <groupTogether>true</groupTogether> which would need to be implemented in order for that to work.

Comments

Comment by Eric Westfall

[ 29/Aug/12 2:13 PM ]

By the way, this will actually need to be done from AbstractRoleIdAttribute. Also, groupTogether should default to false if not specified and if it is false the code should work exactly the way it does today. If it's true, then you need to be sure that only one string is returned from getQualifiedRoleNames, but then inside of resolveQualifiedRole you should add each person as recipients on the ResolvedQualifiedRole.

[EN-2945] Document type individual preferences are not working

Created:

27/Aug/12 Updated: 10/Sep/12 Resolved: 30/Aug/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Patch 5 - Rice 2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Critical

Reporter: Shannon Hess Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Discovered discovered by EN-2925 Emails are being sent to secondary ap... Closed

Description

More details on

Comments

Comment by Shannon Hess

[ 27/Aug/12 1:39 PM ]

For document type preferences,

I'm manually hitting and dubgging

KEWServiceLocator.getActionListEmailService().sendImmediateReminder(actionItem, false) and it's attempting to send all of the emails that should be sent. However, when I run in kr-unt I don't get the emails as expected

In KR.KR1UNT, I set myself up so that I should get emails when I'm sent a country maintenance doc, but only weekly for other emails. When I created doc 11515440 and sent it to grpatter and myself, I only got the email for grpatter.

I have to think that sendImmediateReminder is not getting hit when a document is submitted, etc, but need to find out how the emails are sent in this situation. I'm going to put some debug statements and turn them on in test to see what's going on.

[EN-2934] Inline action list view display error

Created: 21/Aug/12 Updated: 10/Sep/12 Resolved:

22/Aug/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Patch 4 - Rice 2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Critical

Reporter: James Bennett Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Comments

Comment by James Bennett

[ 21/Aug/12 5:07 PM ]

The inline action list view for TK is not working due to a typo in the ActionList.jsp

[EN-2904] WSDL for WorkflowDocumentActionsService has some invalid types

Created: 14/Aug/12 Updated: 10/Sep/12 Resolved: 15/Aug/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Patch 3 - Rice 2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Critical

Reporter: James Bennett Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Comments

Comment by James Bennett

[ 14/Aug/12 2:13 PM ]

Examples:

<xs:element name="adHocToGroup" nillable="true" type="xs:anyType"/>

<xs:element name="adHocToPrincipal" nillable="true" type="xs:anyType"/>

<xs:complexType name="adHocToPrincipal">

<xs:sequence>

<xs:element minOccurs="0" name="parameters" type="tns:DocumentActionParametersType"/>

<xs:element minOccurs="0" ref="tns:adHocToPrincipal"/>

</xs:sequence>

</xs:complexType>

<wsdl:operation name="adHocToPrincipal">

<wsdl:input message="tns:adHocToPrincipal" name="adHocToPrincipal"></wsdl:input>

<wsdl:output message="tns:adHocToPrincipalResponse" name="adHocToPrincipalResponse"></wsdl:output>

<wsdl:fault message="tns:InvalidDocumentContentException" name="InvalidDocumentContentException"></wsdl:fault>

<wsdl:fault message="tns:RiceIllegalArgumentException" name="RiceIllegalArgumentException"></wsdl:fault>

<wsdl:fault message="tns:InvalidActionTakenException" name="InvalidActionTakenException"></wsdl:fault>

</wsdl:operation>

Comment by James Bennett

[ 15/Aug/12 12:46 PM ]

This fix is in place in the testing environments and Greg and I verified that they work as expected from an older version of the JARs

[EN-2901] XML Attributes (Searchable) are not ordered

Created: 13/Aug/12 Updated:

10/Sep/12 Resolved: 29/Aug/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

Patch 3 - Rice 2.1.1

, Rice 2.0 Implementation

Fix Version/s: Patch 4 - Rice 2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Major

Reporter: Greg Patterson Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Duplicate duplicates WFR-15793 Search Attributes Closed

Description

It looks like xml based attributes (specficially dropdowns) are no longer ordered appropriately

(or, as defined in the attribute definition) when searched against. This is probably due to a change in the map used for these behind the scenes (eg hashmap vs linked hashmap) or something similar. For an example, take a look at the OVPR.ProgramSearchableAttribute

Comments

Comment by Eric Westfall

[ 13/Aug/12 11:20 PM ]

Greg, we fixed a similar problem somewhere along the way for Rule attributes in HR so you should see if you can find that EN jira somewhere. But yeah, it's probably somewhere where we aren't using LinkedHashMap.

Comment by Eric Westfall

[ 13/Aug/12 11:28 PM ]

Ok, here is the original jira I was thinking of: https://jira.kuali.org/browse/KULRICE-7585

I'm not sure then if this is really related to the above. But I bet it does have to do with hashmap vs. linkedhashmap regardless.

Comment by James Bennett

[ 24/Aug/12 1:47 PM ]

I believe I've fixed this and I'll deploy the change to the testing environments later this afternoon.

Comment by Jennifer Young Rigsby

[ 10/Sep/12 9:38 AM ]

I realized I never responded to this. The fix worked.

Thanks!

Jennifer

[EN-2898] EDocLite Performance is not up to par

Created: 13/Aug/12 Updated: 10/Sep/12

Status:

Project:

Open

Kuali Rice

Component/s: None

Affects

Version/s:

Patch 3 - Rice 2.1.1

Fix Version/s: Patch 6 - Rice 2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Improvement Priority: Critical

Reporter:

Resolution:

Greg Patterson

Unresolved

Assignee:

Votes:

Greg Patterson

0

Labels:

Remaining

Estimate:

Time Spent:

None

Not Specified

Original

Estimate:

Description

Not Specified

Not Specified

EDocLite performance (loading) is not up to par and we should investigate.

Comments

Comment by Greg Patterson

[ 13/Aug/12 1:41 PM ]

We should look at iterating through field to config processor mappings less, as well as avoid recreating an xpath instance where it is not absolutely necessary.

We should be able to add a xpath instance into the EDLContext and use a single instance from there during a EDL requests lifespan fairly easily.

Comment by Greg Patterson

[ 13/Aug/12 1:43 PM ]

We should also be able to watch the configProcessors, see which are most common, and effectively cache their respective classes in order to avoid iterating over all of them for each node definition on the edl.

Comment by Greg Patterson

[ 13/Aug/12 1:44 PM ]

Before the above changes: kr2-unt, OVPRA: 8875ms (6439ms building controller chain)

2012-08-13 13:55:40,703 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 3ms, EDocLite:

Controller initialized

2012-08-13 13:55:46,565 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 5865ms, EDocLite:

Controller Config Processors loaded

2012-08-13 13:55:46,565 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 5865ms, EDocLite:

Controller Pre Processors loaded

2012-08-13 13:55:46,566 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 5866ms, EDocLite:

Controller Post Processors loaded

2012-08-13 13:55:46,566 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 5866ms, EDocLite:

Controller State Components loaded

2012-08-13 13:55:47,115 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 6415ms, EDocLite:

Controller Style loaded

2012-08-13 13:55:47,116 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 6438ms, EDocLite: edl controller found by edl name.

2012-08-13 13:55:47,117 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 6439ms, EDocLite: edl controller chain initialized.

2012-08-13 13:55:47,456 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.edl.impl.components.WorkflowDocumentActions - Created document

11049209

...

2012-08-13 13:55:49,553 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 8875ms, EDocLite: edl controller chain rendered EDL.

Comment by Greg Patterson

[ 13/Aug/12 1:44 PM ]

After the xpath changes to EDLContext, here are the timings from kr2-unt, OVPRA: 6490ms

(5116ms building controller chain)

2012-08-13 14:01:07,321 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 0ms, EDocLite: User session established.

2012-08-13 14:01:07,321 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 0ms, EDocLite:

Fetching edl controller.

2012-08-13 14:01:07,333 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 1ms, EDocLite:

Controller initialized

2012-08-13 14:01:09,776 [KSB-Scheduled-pool-20-thread-2] u:/d: INFO org.kuali.rice.ksb.impl.bus.ServiceBusImpl - Found service changes during synchronization: remoteNewServices=0, remoteRemovedServices=0, localServicesToPublish=62, localServicesToUpdate=0, localServicesToRemove=0

2012-08-13 14:01:12,236 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 4904ms, EDocLite:

Controller Config Processors loaded

2012-08-13 14:01:12,236 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 4904ms, EDocLite:

Controller Pre Processors loaded

2012-08-13 14:01:12,236 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 4904ms, EDocLite:

Controller Post Processors loaded

2012-08-13 14:01:12,236 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 4904ms, EDocLite:

Controller State Components loaded

2012-08-13 14:01:12,436 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 5104ms, EDocLite:

Controller Style loaded

2012-08-13 14:01:12,437 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 5116ms, EDocLite: edl controller found by edl name.

2012-08-13 14:01:12,437 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 5116ms, EDocLite: edl controller chain initialized.

2012-08-13 14:01:12,530 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.edl.impl.components.WorkflowDocumentActions - Created document

11049211

...

2012-08-13 14:01:13,811 [http-bio-8080-exec-5] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 6490ms, EDocLite: edl controller chain rendered EDL.

After both changes, here are the timings from kr2-unt, OVPRA: 1357ms (242ms building controller chain)

2012-08-13 14:06:22,206 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 0ms, EDocLite: User session established.

2012-08-13 14:06:22,206 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 0ms, EDocLite:

Fetching edl controller.

2012-08-13 14:06:22,215 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 1ms, EDocLite:

Controller initialized

2012-08-13 14:06:22,301 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 87ms, EDocLite:

Controller Config Processors loaded

2012-08-13 14:06:22,301 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 87ms, EDocLite:

Controller Pre Processors loaded

2012-08-13 14:06:22,301 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 87ms, EDocLite:

Controller Post Processors loaded

2012-08-13 14:06:22,301 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 87ms, EDocLite:

Controller State Components loaded

2012-08-13 14:06:22,447 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 233ms, EDocLite:

Controller Style loaded

2012-08-13 14:06:22,448 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 242ms, EDocLite: edl controller found by edl name.

2012-08-13 14:06:22,448 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 242ms, EDocLite: edl controller chain initialized.

2012-08-13 14:06:22,513 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.edl.impl.components.WorkflowDocumentActions - Created document

11049221

...

2012-08-13 14:06:23,563 [http-bio-8080-exec-8] u:grpatter/d: INFO org.kuali.rice.kew.util.PerformanceLogger - Time: 1357ms, EDocLite: edl controller chain rendered EDL.

Comment by Greg Patterson

[ 13/Aug/12 2:13 PM ]

Changes committed, crucible review created ( https://test.uisapp2.iu.edu/fisheye-stg/cru/EN-20 )

Comment by Greg Patterson

[ 21/Aug/12 1:13 PM ]

We should also look at adding caching to the style service to improve performance here.

Appears there is potential for some significant delay when retrieving it from the DB, especially while under load.

Also may need to look into EDLControllerFactory#loadPreProcessors as it appears to be a major source of slowdown during load as well.

Timings from a DT session on 21-Aug:

EDLControllerFactory.java:

#loadConfigProcessors = 16s

#loadPreProcessors = 141s

#loadStyle = 47s

[EN-2889] Frequent "Invalid Address in String" error messages

Created:

13/Aug/12 Updated: 10/Sep/12 Resolved: 13/Aug/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Patch 3 - Rice 2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Critical

Reporter: Eric Westfall Assignee: Unassigned

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Description

Is this a new error in Rice 2? I'm not sure. I suspect it just because we may have some entities with no email address? But I think it's worth taking a look. We seem to have quite a few of these across multiple servers:

2012-08-13 05:59:39,108 [ajp-bio-/10.0.108.46-8009-exec-4] D: U: ERROR org.kuali.rice.kew.mail.service.impl.ActionListEmailServiceImpl :: Error sending Action List email to java.lang.RuntimeException: javax.mail.internet.AddressException: Illegal address in string ``'' at org.kuali.rice.core.mail.MailerImpl.sendEmail(MailerImpl.java:122) at org.kuali.rice.kew.mail.service.impl.ActionListEmailServiceImpl.sendEmail(ActionListEmailServiceImpl.java:165) at org.kuali.rice.kew.mail.service.impl.CustomizableActionListEmailServiceImpl.sendImmediateReminder(CustomizableActionListEmailServiceImpl.java:89) 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:318) 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 $Proxy168.sendImmediateReminder(Unknown Source) at org.kuali.rice.kew.impl.mail.ImmediateEmailReminderQueueImpl.sendReminder(ImmediateEmailReminderQueueImpl.java:45) 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.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173)

at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89) at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:61) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188) at org.kuali.rice.ksb.messaging.servlet.CXFServletControllerAdapter.handleRequest(CXFServletControllerAdapter.java:47) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at org.kuali.rice.ksb.messaging.servlet.KSBDispatcherServlet.service(KSBDispatcherServlet.java:138) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) 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:662)

Caused by: javax.mail.internet.AddressException: Illegal address in string ``'' at javax.mail.internet.InternetAddress.<init>(InternetAddress.java:114) at org.kuali.rice.core.mail.MailerImpl.sendEmail(MailerImpl.java:112)

... 76 more

Comments

Comment by Eric Westfall

[ 13/Aug/12 6:32 AM ]

Based on grepping around old error logs, this does not appear to have happened in the 1.0.3 code.

Comment by James Bennett

[ 13/Aug/12 9:19 AM ]

This appears to happen when the action list email service tries to send an email to the SISE user.

In 1.0.3 that service used the IU authenticated email service which checked the to address before sending an email so that's why we never saw this error before. I've fixed the action list email service to correct the issue.

[EN-2867] Group lookup by principal is returning groups where member is inactive

Created: 08/Aug/12 Updated: 10/Sep/12 Resolved: 08/Aug/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Rice 2.0 Release , Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Blocker

Reporter:

Resolution:

Labels:

Remaining

Estimate:

Time Spent:

Akash Shah

Fixed

None

Not Specified

Assignee:

Votes:

Shannon Hess

0

Original

Estimate:

Description

Not Specified

Not Specified

Note from Akash - I was doing some final spot checking of Rice 2.0 in I removed a user

(srearick) from a couple of workgroups in kr2-stg (workgroups: BL.DFAC.BLACADFINAL1 and BL.DFAC.BLACADFINAL2) but when I search her via the Group Lookup by entering her userid (srearick) the result set still brings the above two workgroups.

I verified that when search by principal id, both inactive and active groups are returned.

Comments

Comment by Shannon Hess

[ 08/Aug/12 11:21 AM ]

Akash,

This has been fixed and will be deployed to the testing environment at 12:30 today.

Thanks,

Shannon

Comment by Akash Shah

[ 08/Aug/12 11:25 AM ]

Hi Shannon,

Thanks, I'll test this out once the deploy is in.

-Akash

Comment by Akash Shah

[ 08/Aug/12 12:54 PM ]

Shannon,

I've tested this out in kr2-stg and its working now as intended.

Thanks,

Akash

[EN-2865] Modify the GlobalResourceLoaderServiceFactoryBean to use a

ThreadLocal

Created: 07/Aug/12 Updated: 10/Sep/12 Resolved: 08/Aug/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Rice 2.0 Release , Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Blocker

Reporter:

Resolution:

Labels:

James Bennett

Fixed

None

Not Specified

Assignee:

Votes:

James Bennett

0

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Issue Links: Fix fixes UITSRA-1168 Fwd: unt:KualiMaintenanceForm:Could n... Resolved

Comments

Comment by James Bennett

[ 08/Aug/12 10:16 AM ]

Added Jeff as a watcher

Comment by James Bennett

[ 08/Aug/12 2:47 PM ]

Contributed in https://jira.kuali.org/browse/KULRICE-7847 . Closing this out since we haven't seen this in our load tests so far and Jeff reported that this corrected the problem they were seeing in KC.

[EN-2848] Create UI for encrypting/decrypting document content

Created:

03/Aug/12 Updated: 10/Sep/12 Resolved: 06/Aug/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 2 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Critical

Reporter: James Bennett Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Fix fixes WFR-15590 KC Proposal Log Maintenance Documents... Resolved

Comments

Comment by James Bennett

[ 03/Aug/12 1:53 PM ]

Added Jeff as a watcher. Jeff, I discussed this with Eric and we agreed that it sounded like a good idea to create a new screen where we could do this through the web application so that we could easily change this sort of thing without having to run a special batch job or something. I'll work with you to test this out once I get it working.

Comment by Jeff Largent

[ 03/Aug/12 1:56 PM ]

Thanks James, this sounds like it will be a very useful enhancement. I'll look forward to hearing about your progress!

-Jeff

Comment by James Bennett

[ 03/Aug/12 5:50 PM ]

Jeff,

I've created the UI and it is out in our testing environments now. You'll need to backdoor as me to use the screen but you can access it here: https://apps-test.iu.edu/kr2-unt/kew/DocumentContentOperation.do

I made it so that screen will not work in production since I doubt we want to edit the content there using this sort of functionality. I also added the ability to enter a comma-separated list of document IDs but I haven't tested it. Please go ahead and test that out when you get the chance and let me know if you come across any issues with this new screen.

Thanks,

James

Comment by Jeff Largent

[ 04/Aug/12 1:50 PM ]

James,

I tried supplying the UI decrypter with a comma-separated list of all the currently-encrypted KR2@KR1CNV docs, and it threw this error: org.kuali.rice.core.api.exception.RiceIllegalArgumentException: qualification was null at org.kuali.rice.kim.impl.permission.PermissionServiceImpl.incomingParamCheck(PermissionServiceImpl.java:848) at org.kuali.rice.kim.impl.permission.PermissionServiceImpl.isAuthorizedByTemplate(PermissionServiceImpl.java:169) at edu.iu.uis.rice.kim.service.impl.IUPermissionServiceImpl.isAuthorizedByTemplate(IUPermissionServiceImpl.java:74) at sun.reflect.GeneratedMethodAccessor1236.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196) at $Proxy877.isAuthorizedByTemplate(Unknown Source) at sun.reflect.GeneratedMethodAccessor1236.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196) at $Proxy878.isAuthorizedByTemplate(Unknown Source) at org.kuali.rice.kew.documentoperation.web.DocumentContentOperationAction.checkPermissions(DocumentContentOperationAction.java:80) at org.kuali.rice.kew.documentoperation.web.DocumentContentOperationAction.decryptContent(DocumentContentOperationAction.java:62) 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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269) at org.kuali.rice.kns.web.struts.action.KualiAction.dispatchMethod(KualiAction.java:168) at org.kuali.rice.kns.web.struts.action.KualiAction.execute(KualiAction.java:129) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor$1.doInTransaction(KualiRequestProcessor.java:486) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processActionPerform(KualiRequestProcessor.java:482) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processFormActionAndForward(KualiRequestProcessor.java:215) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.strutsProcess(KualiRequestProcessor.java:202) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:89) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:78) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:62) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:89) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:77) at edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:134) at edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:74) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:271) at edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410) at edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336) at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:162) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) 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:662)

The full list that I used was this:

10642859,10651469,10651481,10651485,10640739,10646797,10646388,10651408,10639767,10640367,10640565,10647279,10646840,10640681,10646320,10639868,10639726,10647296,10646348,10647285,10647270,10639735,10646845,10647306,10647295,10651412,10640904,10640623,10640027,10

646801,10647337,10639806,10641769,10643684,10646794,10651447,10646837,10647318,10647334,10640423,10651436,10647344,10639855,10640232,10646790,10646779,10640604,10640605,10647335,10640542,10646518,10646784,10640095,10639906,10639982,10651423,10640864,10640034,1065

1475,10639872,10640084,10639870,10647280,10646610,10647293,10646866,10647276,10647278,10639717,10646869,10639709,10647299,10640442,10640582,10640064,10646812,10640187,10646807,10639885,10639903,10651441,10651404,10643663,10639888,10646792,10647345,10640790,106488

11,10651461,10639892,10647324,10650984,10647350,10641674,10646768,10646771,10646386,10639928,10646803,10640088,10639802,10640025,10648812,10640533,10651414,10646319,10639925,10639731,10642406,10646393,10647274,10646828,10647269,10647302,10646851,10647322,10639883

,10640922,10639862,10640396,10640023,10640030,10646816,10646806,10639787,10639823,10646815,10639772,10651030,10646848,10646370,10646383,10651415,10646786,10639740,10651484,10651476,10651477,10641031,10647320,10651419,10639942,10640417,10646788,10646780,10640685,1

0639741,10646800,10642535,10640958,10640024,10640028,10650630,10651464,10640805,10646777,10645750,10640682,10639904,10646321,10647349,10647340,10647264,10646827,10639713,10639714,10647316,10646856,10640911,10640083,10640947,10639910,10640031,10644182,10640734,106

47283,10651401,10648748,10639844,10646770,10639846,10640089,10640090,10646767,10646387,10640693,10651427,10640416,10640303,10647298,10640144,10640673,10646324,10639926,10646342,10646824,10646870,10646865,10646852,10647271,10646822,10646836,10651411,10640882,10640

183,10640026,10639944,10646799,10639887,10639826,10639867,10639930,10643685,10647305,10651029,10651406,10651471,10651409,10651463,10651457,10639842,10651473,10639848,10640954,10651443,10646389,10646390,10646811,10647339,10639946,10640384,10640304,10646789,1064056

6,10639986,10651402,10640814,10640351,10640662,10640666,10651452,10651470,10639727,10646781,10646574,10651438,10651445,10639708,10646787,10646791,10640326,10640449,10640184,10640085,10639886,10640963,10639789,10639905,10641730,10646863,10639742,10650627,10641045,

10651413,10651433,10645636,10646391,10640603,10646323,10651502,10648810,10651435,10640674,10639924,10647281,10639721,10646782,10639722,10651455,10639738,10647275,10640921,10640188,10640092,10640511,10640062,10640202,10639775,10639786,10646810,10651420,10644694,10

641540,10647325,10647307,10648809,10647312,10646372,10651444,10651403,10640401,10640737,10647314,10647315,10646796,10646769,10646394,10646699,10640418,10640383,10647319,10640008,10640033,10651467,10639763,10647288,10639764,10646322,10646371,10647263,10647267,1064

7284,10647289,10646345,10646859,10646841,10646864,10646834,10646843,10639962,10640086,10640323,10639863,10646804,10639932,10639827,10646814,10651424,10651453,10647348,10651451,10651421,10651462,10639893,10640736,10646778,10640686,10646802,10639988,10640093,106513

97,10651449,10640142,10640860,10639702,10639725,10646349,10646833,10640371,10651410,10640097,10640122,10640003,10639913,10640584,10642165,10646813,10651468,10642097,10647313,10651458,10651482,10639845,10639929,10647290,10646798,10645637,10640404,10639784,10651407

,10651442,10639762,10651039,10639984,10640670,10640669,10639728,10639730,10646572,10647294,10646343,10639716,10646861,10639734,10646820,10646862,10639710,10639711,10647346,10640099,10640189,10639774,10639914,10639909,10651446,10646819,10647292,10651416,10647321,1

0650994,10639850,10640738,10646775,10646818,10651456,10647326,10640022,10647268,10640486,10640691,10640607,10639843,10639871,10639875,10647282,10639724,10646350,10640185,10639830,10640162,10640622,10640004,10639882,10639824,10640450,10639931,10639769,10640909,106

51465,10643686,10643687,10643683,10639889,10640733,10643688,10647317,10651466,10651478,10647336,10646395,10646776,10639788,10646766,10647338,10647311,10640362,10650632,10651425,10651460,10645916,10640865,10640907,10647327,10646367,10647301,10647303,10646392,10646

606,10647273,10639715,10646849,10646857,10646831,10646842,10646860,10646993,10640186,10639829,10639922,10640327,10640098,10640103,10646805,10651426,10639770,10639790,10651450,10646858,10640774,10651459,10639891,10647343,10647323,10640405,10639773,10640957,1064074

1,10639890,10640740,10647341,10646384,10645591,10640244,10640690,10640385,10640859,10650629,10651429,10643682,10640917,10646773,10651439,10651472,10640143,10639907,10640671,10650626,10647347,10639873,10639803,10646364,10646835,10647277,10639733,10646382,10646639,

10646846,10646855,10646868,10646829,10647287,10647297,10646853,10640912,10640395,10640007,10640910,10639915,10641782,10639916,10639908,10640569,10647329,10651480,10646817,10639945,10639847,10640237,10640692,10651405,10640397,10640368,10640029,10651437,10640918,10

646774,10640154,10639703,10639729,10646519,10646830,10647291,10639732,10646823,10646839,10639943,10640287,10640288,10640509,10646808,10639781,10640373,10640606,10642852,10651483,10640419,10646772,10647266,10646793,10639927,10640380,10646785,10650631,10639987,1065

1418,10640946,10639874,10639704,10646867,10639719,10646847,10639723,10639736,10647304,10646832,10646850,10647308,10639718,10639712,10646854,10647342,10640905,10640322,10647330,10639923,10640447,10640102,10645058,10640964,10640451,10639771,10640913,10642164,106514

40,10640735,10651428,10651479,10651432,10640982,10640165,10647333,10640403,10640602,10640286,10640956,10651430,10646838,10651431,10651474,10646844,10639985,10640012,10640002,10647331,10639705,10647286,10646344,10646826,10646825,10639737,10647272,10650628,10646821

,10647309,10646783,10647300,10651422,10639963,10640325,10639864,10639822,10640445,10640962,10639912,10639865,10646809,10651417,10651031,10647265,10647328,10647332,10646795

It threw this same error when I tried just one document ID, as well as a smaller, 3-item comma-separated list.

Thanks,

-Jeff

Comment by James Bennett

[ 06/Aug/12 8:54 AM ]

Jeff,

I think that I've fixed this error and the change will be in the testing environments at noon. Can you please try again then?

Thanks,

James

Comment by Jeff Largent

[ 06/Aug/12 9:11 AM ]

Sure James, that's no problem. I'll let you know if I find anything else.

Also, I may just blatantly steal your code to make a similar page for decrypting/encrypting the maintenance docs on KC's side-- does that sound okay to you?

Thanks,

-Jeff

Comment by James Bennett

[ 06/Aug/12 9:12 AM ]

Sure, feel free to copy whatever you need to fix the documents on your side.

Thanks,

James

Comment by Jeff Largent

[ 06/Aug/12 3:26 PM ]

James, I've tested encrypting and decrypting single document IDs and that seems to work fine. However, decrypting a comma-separated list is still giving me some problems: javax.crypto.IllegalBlockSizeException: last block incomplete in decryption at org.bouncycastle.jce.provider.JCEBlockCipher.engineDoFinal(Unknown Source) at javax.crypto.Cipher.doFinal(DashoA13*..) at org.kuali.rice.kew.documentoperation.web.DocumentContentOperationAction.decrypt(DocumentContentOperationAction.java:199) at org.kuali.rice.kew.documentoperation.web.DocumentContentOperationAction.decryptContent(DocumentContentOperationAction.java:70) 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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269) at org.kuali.rice.kns.web.struts.action.KualiAction.dispatchMethod(KualiAction.java:168) at org.kuali.rice.kns.web.struts.action.KualiAction.execute(KualiAction.java:129) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor$1.doInTransaction(KualiRequestProcessor.java:486) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processActionPerform(KualiRequestProcessor.java:482) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processFormActionAndForward(KualiRequestProcessor.java:215) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.strutsProcess(KualiRequestProcessor.java:202) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:89) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:78) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:62) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:89) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:77) at edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:134) at edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:74) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:271) at edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410) at edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336) at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:162) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) 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:662)

These were the doc IDs I gave it were 10642859,10651469,10651481.

Thanks,

-Jeff

Comment by Jeff Largent

[ 06/Aug/12 4:27 PM ]

James, I tried this again on kr2-cnv with doc IDs 10651527,10652723,10651522 and got the same error.

I double checked this on the krew_doc_hdr_t and via the Document Operation screen, and they all appear to be encrypted Proposal Development documents.

Let me know if I can be of any more assistance.

-Jeff

Comment by James Bennett

[ 06/Aug/12 4:54 PM ]

Closing this out since I've fixed the last bug Jeff had with this so this functionality should be good to go.

[EN-2837] Rice 2.1 - Doc Search not clearing Document Status

Created: 02/Aug/12 Updated:

10/Sep/12 Resolved: 06/Aug/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 2 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Major

Reporter: Kyle Trinkle Assignee: Shannon Hess

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Impacted

Client(s):

Description

TK

On Document Search screen, clicking Clear button does not clear out the values selected in

Document Status field. Screen should clear all values (as it currently does in PRD), so user can enter criteia for another search.

Comments

Comment by Shannon Hess

[ 06/Aug/12 11:41 AM ]

Kyle,

This fix for this will be deployed to the testing environments at 12:15 today, so it will be working out there this afternoon.

I did discover while working on this that it is also currently a production problem as well.

Thanks,

Shannon

[EN-2836] In RoleServiceImpl.principalHasRole method we need to be sure that we are always wrapping calls to RoleTypeService within a loop with try/catch

Created: 02/Aug/12 Updated: 10/Sep/12 Resolved: 02/Aug/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

Resolution:

Labels: None

Not Specified

Fix Version/s: Release Candidate 2 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Critical

Reporter:

Release Candidate 1 - r2.1.1

Eric Westfall

Fixed

Assignee:

Votes:

James Bennett

0

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Description

We did this in a few places already, and things are wrapped at the outermost level of that method, but consider the following code: for (String roleId : allRoleIds) {

RoleTypeService roleTypeService = getRoleTypeService(roleId);

if (roleTypeService != null) {

List<String> attributesForExactMatch = roleTypeService.getQualifiersForExactMatch();

if (CollectionUtils.isNotEmpty(attributesForExactMatch)) {

copyRoleIds.remove(roleId); rps.addAll(getStoredRolePrincipalsForPrincipalIdAndRoleIds(Collections.singletonList(roleId), principalId, populateQualifiersForExactMatch(qualification, attributesForExactMatch)));

}

}

}

If any one of the role type service calls in this loop fails, then it immediately aborts principalHasRole and returns false, rather than continuing and checking the remaining role ids.

This is affecting KC whenever the KFS application is offline.

Comments

Comment by James Bennett

[ 02/Aug/12 2:48 PM ]

This is a duplicate of . I did discover that the contribution I made from that issue was incorrect so I created https://jira.kuali.org/browse/KULRICE-7788 to fix it.

Comment by James Bennett

[ 02/Aug/12 5:05 PM ]

This issue is actually coming from a different part of the code but needs to be fixed in the same way we fixed

Comment by James Bennett

[ 02/Aug/12 5:21 PM ]

Found and fixed the issue that was affecting KC and reported https://jira.kuali.org/browse/KULRICE-7789 to fix that in the foundation code.

Comment by James Bennett

[ 08/Aug/12 2:48 PM ]

KULRICE-7788 and 7789 have both been contributed now.

[EN-2829] Rice2.0- TVL2-stg: ERROR org.kuali.rice.kew.engine.simulation.SimulationEngine.process() :: Error running simulation for document type TravelTripReimbursement

Created:

01/Aug/12 Updated: 10/Sep/12 Resolved: 06/Aug/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

Fix Version/s: Release Candidate 2 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Blocker

Reporter:

Resolution:

Labels:

Remaining

Estimate:

None

Anne Bartlett Stowers

Fixed

None

Not Specified

Assignee:

Votes:

James Bennett

0

Time Spent:

Original

Estimate:

Issue Links:

Not Specified

Not Specified

Discovered discovered by FSNKT-92 Content Level Routing: Failure proces... Resolved

Impacted

Client(s):

Description

Travel

We received an error when attempting to route a Reimbursement to Content Level which performs a validation first to see whether the document would stop at the Content Level.

Comments

Comment by Anne Bartlett Stowers

[ 01/Aug/12 3:06 PM ]

2012-08-01 15:01:10,816 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.utilities.TvlRequestProcessor.?() :: --TVL-- processing: /tvl2stg/TripAction.do

2012-08-01 15:01:10,818 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.action.TvlBaseAction.?() :: --TVL-- /tvl2-stg/TripAction.do:

==>btnRoute<==

2012-08-01 15:01:10,819 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.service.impl.TripServiceImpl.?() :: --TVL-- validateOutOfPolicy() - is the trip out of policy?

2012-08-01 15:01:10,819 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.service.impl.TripServiceImpl.?() :: --TVL-- isTripOutOfPolicy() - is the trip out of policy and should it

require a letter of justification?

2012-08-01 15:01:10,819 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.service.impl.TripServiceImpl.?() :: --TVL-- initiatedByAdmin=false

2012-08-01 15:01:10,820 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.service.impl.TripServiceImpl.?() :: --TVL-- days till out of policy is <= 60: 28

2012-08-01 15:01:10,821 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- createAndRouteDocument()

2012-08-01 15:01:10,821 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- getNewWorkflowDocument()

2012-08-01 15:01:11,016 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- End get route header id from WorkflowDocument-1300

8744

2012-08-01 15:01:11,026 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.service.impl.WorkflowDocumentTripServiceImpl.?() :: --TVL-- save()

2012-08-01 15:01:11,030 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.service.impl.TravelerServiceImpl.?() :: --TVL-- getTravelerByNetworkId()

2012-08-01 15:01:11,044 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- validateDocument()

2012-08-01 15:01:11,044 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- addRouteLevelAttributes()

2012-08-01 15:01:11,047 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- addTravelerRouteLevelAttributes()

2012-08-01 15:01:11,047 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL--

TravelerRouteLevel: isApplicationUserTraveler:true

2012-08-01 15:01:11,048 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- did not add traveler route level attributes becaus e the traveler initiated the document

2012-08-01 15:01:11,048 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- addContentRouteLevelAttributes()

2012-08-01 15:01:11,297 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- adding traveler's CHART: BL; ORG: SPEA to document

2012-08-01 15:01:11,299 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- addInternalTRMSRouteLevelAttributes()

2012-08-01 15:01:11,299 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- adding

TRMS route level: will route to TRMS with a ttribute value: AB-IP-Y-S

2012-08-01 15:01:11,299 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- addOutOfPolicyRouteLevelAttributes()

2012-08-01 15:01:11,593 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.routing.TravelPostProcessor.?() :: --TVL-- doActionTaken(13008744): SAVED

2012-08-01 15:01:14,280 [TP-Processor18:merflynn (anbartle)] WARN org.kuali.rice.krad.datadictionary.DataDictionaryIndexMapper.getDocumentEntry() :: Unable to find document entry for key:

TravelTripReimbursement

2012-08-01 15:01:14,288 [TP-Processor18:merflynn (anbartle)] WARN org.kuali.rice.krad.datadictionary.DataDictionaryIndexMapper.getDocumentEntry() :: Unable to find document entry for key:

TravelTripReimbursement

2012-08-01 15:01:14,293 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- validateReimbursement()

2012-08-01 15:01:14,293 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.?() :: --TVL-- validateContentRouteLevel() - is the accounting line required for this traveler?

2012-08-01 15:01:14,389 [TP-Processor18:merflynn (anbartle)] INFO org.kuali.rice.kew.engine.simulation.SimulationEngine.process() :: Processing document for Simulation: -10

2012-08-01 15:01:14,550 [TP-Processor18:merflynn (anbartle)] INFO edu.iu.uis.tvl.dao.ojb.WorkflowDocumentTripDaoOjb.?() :: --TVL-- Did not find any trips associated with RouteHeaderId: -10

2012-08-01 15:01:14,551 [TP-Processor18:merflynn (anbartle)] ERROR org.kuali.rice.kew.engine.simulation.SimulationEngine.process() :: Error running simulation for document type TravelTripReimbursement java.lang.NullPointerException

at edu.iu.uis.tvl.workflow.routing.RouteNodeSplitApprovalNoApproval.process(RouteNodeSplitApprovalNoApproval.java:25)

at org.kuali.rice.kew.engine.transition.SplitTransitionEngine.isComplete(SplitTransitionEngine.java:37)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.processNodeInstance(StandardWorkflowEngine.java:183)

at org.kuali.rice.kew.engine.simulation.SimulationEngine.process(SimulationEngine.java:155)

at org.kuali.rice.kew.engine.simulation.SimulationEngine.runSimulation(SimulationEngine.java:99)

at org.kuali.rice.kew.routemodule.service.impl.RoutingReportServiceImpl.report(RoutingReportServiceImpl.java:31)

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:318)

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 $Proxy412.report(Unknown Source)

at org.kuali.rice.kew.impl.action.WorkflowDocumentActionsServiceImpl.executeSimulation(WorkflowDocumentActionsServiceImpl.java:379)

at org.kuali.rice.kew.impl.action.WorkflowDocumentActionsServiceImpl.routeNodeHasApproverActionRequest(WorkflowDocumentActionsServiceImpl.java:1095)

at org.kuali.rice.kew.impl.action.WorkflowDocumentActionsServiceImpl.routeNodeHasApproverActionRequest(WorkflowDocumentActionsServiceImpl.java:1072)

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:318)

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 $Proxy182.routeNodeHasApproverActionRequest(Unknown Source)

at edu.iu.uis.tvl.workflow.TravelDocument.doesContentLevelHaveApproverActionRequest(TravelDocument.java:765)

at edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.validateContentRouteLevel(WorkflowServiceImpl.java:1796)

at edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.validateReimbursement(WorkflowServiceImpl.java:1761)

at edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.validateDocument(WorkflowServiceImpl.java:1717)

at edu.iu.uis.tvl.workflow.service.impl.WorkflowServiceImpl.createAndRouteDocument(WorkflowServiceImpl.java:483)

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:318)

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 $Proxy17.createAndRouteDocument(Unknown Source)

at edu.iu.uis.tvl.action.administration.TripAction.route(TripAction.java:410)

at edu.iu.uis.tvl.action.administration.TripAction.execute(TripAction.java:94)

at edu.iu.uis.tvl.action.TvlBaseAction.execute(TvlBaseAction.java:115)

at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:113)

at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)

at edu.iu.uis.tvl.utilities.TvlRequestProcessor.process(TvlRequestProcessor.java:142)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)

at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

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 edu.iu.uis.tvl.utilities.TravelAdministrationFilter.doFilter(TravelAdministrationFilter.java:68)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410)

at edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336)

at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315)

at edu.iu.uis.tvl.utilities.TravelLoginFilter.doFilter(TravelLoginFilter.java:42)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at edu.iu.uis.tvl.utilities.PerRequestLoggerFilter.doFilter(PerRequestLoggerFilter.java:45)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:347)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)

at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)

at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:774)

at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)

at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:896)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)

at java.lang.Thread.run(Thread.java:662)

2012-08-01 15:01:14,553 [TP-Processor18:merflynn (anbartle)] INFO org.kuali.rice.kew.util.PerformanceLogger.log() :: Time: 165ms, docId=-10,

Time to run simulation.

Comment by James Bennett

[ 02/Aug/12 11:24 AM ]

Do you have a document ID that causes this error?

Thanks,

James

Comment by Anne Bartlett Stowers

[ 02/Aug/12 11:54 AM ]

This error occurs when the document is created, and I assume because it fails I doesn't actually save the document. The log shows that document 13008744 was saved edu.iu.uis.tvl.workflow.routing.TravelPostProcessor.?() :: -- doActionTaken(13008744): SAVED but I assume it gets rolled back because of the error. I can't find that document using Doc Search.

Comment by Anne Bartlett Stowers

[ 04/Aug/12 7:30 PM ]

I used RouteContext.isSimulation() to get past the problems in the split node. However, I've run into a similar problem on a custom role attribute. I'm a little worried about how this is working and trying to fake out a document route path. Is there any way to get the original document id from the RouteContext when it's a simulation so I can use that to look up information about the trip? I don't have any information about the trip or the traveler (which is what I need for the TravelerRoleAttribute) with a simulated document id. Do you think RouteContext.getDocumentContent() returns the content for the fake document? Is that a copy of the document content on the actual document?

Thanks,

-annie

Comment by Eric Westfall

[ 04/Aug/12 8:37 PM ]

Yes, it should return the document content for the simulated document. So if that would help out your situation I would say go for it.

Comment by Anne Bartlett Stowers

[ 04/Aug/12 8:43 PM ]

Using debugging I can see that getDocumentContent() does return the doc content that was on the real document, but we don't add the document id to the doc content.

Unfortunately, I didn't see anywhere else in the RouteContext where I could get the original document id.

Comment by Eric Westfall

[ 04/Aug/12 9:22 PM ]

Can you attach here or point me to the code from where you are running this simulation as well as the attribute code which is having problems? Just want to make sure I understand exactly what your simulation is trying to accomplish so I can help figure out what's happening with it at the moment.

Comment by Anne Bartlett Stowers

[ 04/Aug/12 9:32 PM ]

Hi Eric,

The code is attempting to check whether the document would stop at the Content Level.

TravelDocument.doesContentLevelHaveApproverActionRequest() calls

WorkflowDocumentActionsService.routeNodeHasApproverActionRequest(TravelDocument.getDocumentType(), TravelDocument.getDocumentAttributeContent(),

TravelWorkflowConstants.WRKFLW_ROUTE_LEVEL_NODE_NAME_CONTENT)

James was looking at this on Friday and thinks that in 1.0.3 this evaluated the rules for the level requested, in this case, Content Level. But in 2.0 it now runs a simulation of the routing from the top of the route path to determine whether the document will stop at the requested route level. This is causing more problems though because the simulation is using a fake document id but our custom nodes and attributes (which are getting accessed during the simulation) rely on the actual document id to get data about the trip from the travel tables.

The Travel source code is in cvs at FPS/TRAVEL/TVL and the branch is rice-upgrade-2-0-2012-04-02-br.

Thanks!

-annie

Comment by Eric Westfall

[ 06/Aug/12 12:58 AM ]

@James - I think the code here was converted incorrectly. Currently it's executing the simulation as follows:

RoutingReportCriteria.Builder builder = RoutingReportCriteria.Builder.createByDocumentTypeName(documentType.getName()); builder.setTargetNodeName(node.getName()); builder.setXmlContent(docContent);

DocumentDetail docDetail = executeSimulation(builder.build());

The targetNodeName tells the simulation at which node to terminate when it's starting at the beginning. I think in order to get equivalent behavior with the old way, it needs to set

"nodeNames" as follows:

RoutingReportCriteria.Builder builder = RoutingReportCriteria.Builder.createByDocumentTypeName(documentType.getName()); builder.setNodeNames(Collections.singletonList(node.getName())); builder.setXmlContent(docContent);

DocumentDetail docDetail = executeSimulation(builder.build());

Give that a try, and let's see if it fixes the problem. Then Annie shouldn't have to do anything special in her split node or other code.

By the way, if you look at SimulationEngine.installSimulationNodeInstances(...) you can kind of see where it's trying to set this stuff up.

Comment by James Bennett

[ 06/Aug/12 9:04 AM ]

Annie,

I made the change that Eric suggested and then new JARs are building now. Can you pull those in when you get the chance and let me know if that resolves the errors you're getting?

Thanks,

James

Comment by James Bennett

[ 06/Aug/12 9:27 AM ]

This one was accidentally closed

Comment by James Bennett

[ 06/Aug/12 4:55 PM ]

Marking this as "Development Complete" since we are fairly certain that this is fixed with our most recent change. Annie, once you can test to see if that fix corrected the issue please let us know so we can close this out. Thanks!

Comment by Anne Bartlett Stowers

[ 06/Aug/12 4:57 PM ]

Hi James,

I was able to test this in dev and it looks good there. I'll deploy it to the test environments this evening.

Thanks!

-annie

[EN-2811] Rice 2.0 Testing: Super User search failing

Created: 26/Jul/12 Updated:

10/Sep/12 Resolved: 27/Jul/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 2 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Blocker

Reporter: Akash Shah Assignee: James Bennett

Resolution:

Labels:

Remaining

Estimate:

Time Spent:

Fixed

None

Not Specified

Votes: 0

Original

Estimate:

Not Specified

Not Specified

Environment: kr2-stg

HRE Impacted

Client(s):

Description

Routed eDoc 12999886 and then from the regular doc search using the superuser search(same thing happens for HREEDocs v2 Type doc superuser search) when trying to access the document as a Super User and when I click on the 12999886 I get the below error:

HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.el.PropertyNotFoundException: Property 'canceled' not readable on type boolean org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:548) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1083) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:396) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processFormActionAndForward(KualiRequestProcessor.java:219)

org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.strutsProcess(KualiRequestProcessor.java:202) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:89) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:88) org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:78) org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:62) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:89) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:77) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:134) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:74) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:271) edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410) edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336) edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:162) org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) root cause javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.el.PropertyNotFoundException: Property 'canceled' not readable on type boolean org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:907) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840) org.apache.jsp.kew.WEB_002dINF.jsp.superuser.SuperUser_jsp._jspService(SuperUser_jsp.java:165) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1083) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:396) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processFormActionAndForward(KualiRequestProcessor.java:219) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.strutsProcess(KualiRequestProcessor.java:202) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:89) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:88) org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:78) org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:62) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:89)

org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:77) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:134) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:74) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:271) edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410) edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336) edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:162) org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) root cause javax.el.PropertyNotFoundException: Property 'canceled' not readable on type boolean javax.el.BeanELResolver$BeanProperty.read(BeanELResolver.java:291) javax.el.BeanELResolver$BeanProperty.access$000(BeanELResolver.java:239) javax.el.BeanELResolver.getValue(BeanELResolver.java:85) javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67) org.apache.el.parser.AstValue.getValue(AstValue.java:169) org.apache.el.parser.AstNot.getValue(AstNot.java:44) org.apache.el.parser.AstAnd.getValue(AstAnd.java:38) org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:985) org.apache.jsp.kew.WEB_002dINF.jsp.superuser.SuperUser_jsp._jspx_meth_c_005fif_005f0(SuperUser_jsp.java:318) org.apache.jsp.kew.WEB_002dINF.jsp.superuser.SuperUser_jsp.access$4(SuperUser_jsp.java:307) org.apache.jsp.kew.WEB_002dINF.jsp.superuser.SuperUser_jsp$Helper.invoke0(SuperUser_jsp.java:1437) org.apache.jsp.kew.WEB_002dINF.jsp.superuser.SuperUser_jsp$Helper.invoke(SuperUser_jsp.java:1473) org.apache.jsp.tag.web.kr.page_tag.doTag(page_tag.java:877) org.apache.jsp.kew.WEB_002dINF.jsp.superuser.SuperUser_jsp._jspx_meth_kul_005fpage_005f0(SuperUser_jsp.java:222) org.apache.jsp.kew.WEB_002dINF.jsp.superuser.SuperUser_jsp._jspService(SuperUser_jsp.java:157) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1083) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:396) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processFormActionAndForward(KualiRequestProcessor.java:219) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.strutsProcess(KualiRequestProcessor.java:202) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:89) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:88) org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:78)

org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:62) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:89) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:77) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:134) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:74) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:271) edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410) edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336) edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:162) org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.21 logs.

Apache Tomcat/7.0.21

Please move this to the workflow team if its Rice related issue.

Thanks,

Akash

Comments

Comment by James Bennett

[ 26/Jul/12 5:09 PM ]

Allen,

This has been fixed and I'll deploy it to the testing environments soon. You might want to check your projects and copy the latest version of SuperUser.jsp if you have it in your projects anywhere.

Thanks,

James

Comment by James Bennett

[ 27/Jul/12 10:48 AM ]

Allen,

I just checked in our testing environment and it appears that this issue has been fixed so I'm going to go ahead and close this. If you come across this error again please let us know.

Thanks,

James

Comment by Akash Shah

[ 27/Jul/12 10:51 AM ]

James,

Yes this error seems to have been fixed now, although testing this issue out I did find another un-related issue that seems to be happeing when trying to SU approve under "Super User

Action on Action Requests".

Thanks,

Akash

[EN-2807] Blanket approve not process

Created: 25/Jul/12 Updated: 10/Sep/12 Resolved: 27/Jul/12

Status:

Project:

Closed

Kuali Rice

Component/s: Workflow (KEW)

Affects

Version/s:

None

Fix Version/s: Release Candidate 2 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Blocker

Reporter:

Resolution:

Mark Fyffe

Fixed

None

Assignee:

Votes:

James Bennett

0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Relates relates to SCT-4826 Rice 2.0 upgrade eDrop - blanket appr... Closed

Impacted

Client(s):

Description

Workflow team,

SIS

See comments at the bottom of . STG document 12999807 is in EXCEPTION status, caused by a processing failure typically seen in production. Using a normal blanket approve operation to resolve this error is unsuccessful - the document stays in EXCEPTION status.

In investigating this transaction, it appears that documentOrchestrationQueue does transition the document to R status, but doesn't save the route header so the status stays E. txm:begin:3:rw:ksbMessage...............00:00.000 00:00.114 229.538M 0 kew:pre-lock:12999807:true..............00:00.010 00:00.124 227.628M -1.908M xadb:timeout:900........................00:00.000 00:00.124 227.248M -

390.515k jdbc:rice2:o:1st:59ec1e07...............00:00.001 00:00.125 227.248M 0 kew:lock:12999807.......................00:00.008 00:00.133 223.048M -4.198M xadb:timeout:900........................00:00.401 00:00.534 424.095M 201.045M jdbc:sis:o:1st:299f1c...................00:00.000 00:00.534 424.095M 0 s:pre-init..............................00:00.098 00:00.632 402.131M -21.962M s:inject:1.691kB........................00:00.000 00:00.632 402.131M 0 s:init:e4b8d555-9461-4b73-811b-dc12a5b7300:00.016 00:00.648 400.498M -1.633M t:mwfyffe@indiana.edu...................00:00.000 00:00.648 400.498M 0 u:emorrica (mwfyffe)....................00:00.000 00:00.648 400.498M 0 deny sis:ads:BL-UITS-SIS-SR-E-Initiator-00:00.011 00:00.659 398.494M -2.002M deny sis:ps:SR+E+Initiator+2+DA.........00:00.007 00:00.666 393.357M -5.136M deny sis:ps:SR+E+Approver+1.............00:00.000 00:00.666 393.357M 0 deny sis:ps:IUSISDEV....................00:00.000 00:00.666 393.357M 0

deny sis:ps:UPG_DEVREAD.................00:00.000 00:00.666 393.357M 0 allow sis:ps:DEVREAD....................00:00.000 00:00.666 393.357M 0 allow:all...............................00:00.000 00:00.666 393.357M 0 ads:BL-UITS-SIS-JAVA-DEV:allow..........00:00.000 00:00.666 393.357M 0 sw:override mwfyffe dev.................00:00.000 00:00.666 393.357M 0 kew:statusChange:12999807...............00:00.018 00:00.684 390.509M -2.846M kew:status:old:E........................00:00.000 00:00.684 390.509M 0 kew:status:new:R........................00:00.000 00:00.684 390.509M 0 kew:adapt:true:null.....................00:01.382 00:02.066 379.604M -10.904M kew:pre-lock:12999807:true..............00:00.007 00:02.073 379.604M 0 kew:lock:12999807.......................00:00.004 00:02.077 377.770M -1.833M cxf:send:getServiceDescriptor...........00:00.322 00:02.399 313.060M -64.709M cxf:recv:getServiceDescriptorResponse...00:00.055 00:02.454 312.285M -

793.492k cxf:send:getServiceDescriptor...........00:00.016 00:02.470 307.350M -4.934M cxf:recv:getServiceDescriptorResponse...00:00.047 00:02.517 306.575M -

793.601k cxf:send:getServiceDescriptor...........00:00.031 00:02.548 305.025M -1.549M cxf:recv:getServiceDescriptorResponse...00:00.047 00:02.595 301.925M -3.099M s:success:e4b8d555-9461-4b73-811b-dc12a500:00.321 00:02.916 170.834M -

131.089M s:commit:e4b8d555-9461-4b73-811b-dc12a5b00:00.021 00:02.937 163.854M -6.980M jdbc:sis:x:1st:299f1c...................00:00.002 00:02.939 163.854M 0 jdbc:rice2:x:1st:59ec1e07...............00:00.140 00:03.079 125.871M -37.982M txm:commit:3:rw:ksbMessage..............00:00.003 00:03.082 125.095M -

794.039k

Right after this call, a call to documentProcessingQueue takes place that does nothing - note that before and after take place in quick succession with no level or status changes taking place. txm:begin:3:rw:ksbMessage...............00:00.000 00:00.196 391.159M 0 kew:pre-lock:12999807:true..............00:00.015 00:00.211 387.201M -3.957M xadb:timeout:900........................00:00.001 00:00.212 387.201M 0 jdbc:rice2:o:1st:49b2bdf................00:00.000 00:00.212 387.201M 0 kew:lock:12999807.......................00:00.015 00:00.227 383.547M -3.653M xadb:timeout:900........................00:00.195 00:00.422 203.334M -

180.212M jdbc:sis:o:1st:6c0c4220.................00:00.000 00:00.422 203.166M -

173.359k s:pre-init..............................00:00.004 00:00.426 200.223M -2.942M s:inject:1.691kB........................00:00.000 00:00.426 200.223M 0 s:init:e4b8d555-9461-4b73-811b-dc12a5b7300:00.015 00:00.441 194.713M -5.509M t:mwfyffe@indiana.edu...................00:00.000 00:00.441 194.713M 0 u:emorrica (mwfyffe)....................00:00.000 00:00.441 194.713M 0 deny sis:ads:BL-UITS-SIS-SR-E-Initiator-00:00.010 00:00.451 189.429M -5.283M deny sis:ps:SR+E+Initiator+2+DA.........00:00.006 00:00.457 186.817M -2.611M deny sis:ps:SR+E+Approver+1.............00:00.000 00:00.457 186.817M 0 deny sis:ps:IUSISDEV....................00:00.000 00:00.457 186.817M 0 deny sis:ps:UPG_DEVREAD.................00:00.000 00:00.457 186.817M 0 allow sis:ps:DEVREAD....................00:00.000 00:00.457 186.817M 0 allow:all...............................00:00.000 00:00.457 186.817M 0 ads:BL-UITS-SIS-JAVA-DEV:allow..........00:00.000 00:00.457 186.817M 0 sw:override mwfyffe dev.................00:00.000 00:00.457 186.817M 0 kew:documentIdsToLock:12999807..........00:00.015 00:00.472 184.501M -2.315M kew:before:12999807.....................00:00.727 00:01.199 95.706M -88.794M kew:adapt:true:null.....................00:00.003 00:01.202 95.483M -227.914k kew:after:12999807......................00:00.008 00:01.210 93.431M -2.050M kew:adapt:true:null.....................00:00.003 00:01.213 93.208M -228.054k s:success:e4b8d555-9461-4b73-811b-dc12a500:00.016 00:01.229 86.562M -6.645M s:commit:e4b8d555-9461-4b73-811b-dc12a5b00:00.012 00:01.241 85.525M -1.036M jdbc:sis:x:1st:6c0c4220.................00:00.002 00:01.243 85.525M 0 jdbc:rice2:x:1st:49b2bdf................00:00.007 00:01.250 85.525M 0 txm:commit:3:rw:ksbMessage..............00:00.005 00:01.255 85.302M -227.976k

Please assist in deciphering what is going on with this blanket approve action - we are looking for this attempt to reprocess the document and move to FINAL status... or at least to retry and move back to EXCEPTION due to a processing error.

Thanks,

Mark

Comments

Comment by Shannon Hess

[ 26/Jul/12 7:40 AM ]

Mark,

Are you able to debug into this to see what's going on when the documentProcessingQueue is called? i.e. Do you happen to know what url is called? I just noticed that for SISSRDA there are three documentProcessingQueue service registry entries, and one is for localhost.

SVC_NM SVC_URL

APPL_ID

------------------------------------------------------- -------------------

-------------------------------------------------------------------------- -

---------

{http://rice.kuali.org/kew/v2_0}documentProcessingQueue http://localhost:8080/sissrdadev/rice2/remoting/soap/kew/v2_0/documentProcessingQueue SISSRDA

{http://rice.kuali.org/kew/v2_0}documentProcessingQueue https://test2.uisapp2.iu.edu/sissrdastg/rice2/remoting/soap/kew/v2_0/documentProcessingQueue SISSRDA

{http://rice.kuali.org/kew/v2_0}documentProcessingQueue https://test2.uisapp2.iu.edu/sissrdastg/rice2/remoting/soap/kew/v2_0/documentProcessingQueue SISSRDA

Thanks,

Shannon

Comment by Mark Fyffe

[ 26/Jul/12 8:20 AM ]

Shannon,

I have log files with a high level of detail including all SQLs and can pull a transaction up in

Eclipse debugger. We can also reproduce this in STG to capture transactions in dynaTrace. Are you looking for something specific? The logs I posted are from my DEV environment, pointed at KR1STG. These are embedded workflow transactions, so process on the same node as the web request posting the blanket approve action. The remote service entries are filtered out on the SIS side when in dev, and the localhost is filtered out in test - either way KSB asynchronous messaging takes place on the same node.

I can see the document transition to ENROUTE, but it never saves that way. After documentOrchestrationQueue is complete, the document is still in EXCEPTION status. I expect the reason documentProcessingQueue is not doing anything is because the document is not

ENROUTE so there is no transition to perform. Is this expected?

The document initially routed to APPROVED status, then to EXCEPTION while transitioning to PROCESSED. Is it possible the document is not transitioning back to ENROUTE because all action requests in the route path have already been satisfied?

Mark

Comment by James Bennett

[ 26/Jul/12 4:40 PM ]

Mark,

I made the changes we discussed and the new client JARs are ready for you to download. I discussed this with Eric and the change I made is definitely the best way to fix this error. All of the other actions which change the route status (ApproveAction, DisapproveAction,

CancelAction, etc) also saved the route header before continuing with their processing. Please pull in the new JARs and let me know if that corrects this problem.

Thanks,

James

Comment by Mark Fyffe

[ 27/Jul/12 8:01 AM ]

Thanks James. This appears to be fixed this morning. I'll ask testers to confirm.

Mark

Comment by James Bennett

[ 27/Jul/12 9:06 AM ]

Great. I'm going to go ahead and close this out but if the testers find any other issues related to this please let us know and we can reopen this issue.

Thanks,

James

[EN-2801] Rice mailer implementation doesn't handle connecting to a secure mail SMTP server

Created: 23/Jul/12 Updated: 10/Sep/12 Resolved: 24/Jul/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 2 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Critical

Reporter:

Resolution:

Labels:

James Bennett

Fixed

None

Not Specified

Assignee:

Votes:

James Bennett

0

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Issue Links: Fix fixes UITSRA-1159 Incident Report Form Not Working Prop... Resolved

Comments

Comment by James Bennett

[ 23/Jul/12 2:03 PM ]

Added Jeff as a watcher

Comment by James Bennett

[ 23/Jul/12 2:03 PM ]

Seems like something like this is going on: http://forum.springsource.org/showthread.php?17638-JavaMailSenderImpl-halts-when-using-

SSL-secure-server

I think this will need to get fixed in the MailSenderFactoryBean class.

Comment by James Bennett

[ 24/Jul/12 1:35 PM ]

Jeff,

I've just committed a code fix to get this to work. I made a simple client which let me reproduce the error you were experiencing then after I made a code change I was able to send an email with the following configuration properties set:

<param name="mail.smtps.auth">true</param>

<param name="mail.smtp.host">mail-relay.iu.edu</param>

<param name="mail.smtp.port">465</param>

<param name="mail.smtp.username">...</param>

<param name="mail.smtp.password">...</param>

<param name="mail.transport.protocol">smtps</param>

<param name="mail.smtp.starttls.enable">true</param>

Can you pull in the latest client JARs in a few minutes and let me know if that fixes the issue on your side?

Thanks,

James

Comment by Jeff Largent

[ 24/Jul/12 4:26 PM ]

James,

That seems to have done the trick! I was able to successfully send out an incident report.

Thanks for your help,

-Jeff

Comment by James Bennett

[ 24/Jul/12 4:33 PM ]

Jeff,

Great. I'm going to close this out but please let us know if that problem comes back.

Thanks,

James

[EN-2785] Service Registry JSP should show cached service entries

Created:

19/Jul/12 Updated: 10/Sep/12 Resolved: 02/Aug/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 2 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Major

Reporter: Terry Durkin Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Relates relates to EN-2784 Add ability to ServiceRegistry page t... Open

Impacted

Client(s):

Description

KC, KFS

This request comes out of the outage that KC experienced on 7/19 related to the kfs app code change to kfs2 in production. The registry entries were deleted from the Rice KSB registry entry table but KC held onto these. The entries weren't showing on http://onestart.iu.edu/kcprd/ksb/ServiceRegistry.do

but the application was still trying to use them.

Comments

Comment by James Bennett

[ 31/Jul/12 5:28 PM ]

I added a new screen to add this functionality since I don't think that the service registry JSP isn't really the correct place for it. You can see it in the KR2 testing environments here: https://apps-test.iu.edu/kr2-stg/ksb/ServiceBus.do

If you'd like to add this to your application you'll need to pull in these two files from IU Rice along with the newest client JARs:

 rice-war/src/main/webapp/ksb/WEB-INF/struts-config.xml rice-war/src/main/webapp/ksb/WEB-INF/jsp/bus/ServiceBus.jsp

If you have any questions please let me know.

Comment by James Bennett

[ 02/Aug/12 9:24 AM ]

Terry,

I'm going to close this out since the functionality is in place in IU Rice but if you need any help bringing it into KC please let me know.

Thanks,

James

Comment by Terry Durkin

[ 02/Aug/12 9:26 AM ]

Thanks James.

Jeff - Can you make sure to pull the JSP and struts dependencies into KC?

[EN-2783] Initiator name on doc search results is incorrect when principal name is null in IMS tables

Created: 19/Jul/12 Updated: 10/Sep/12 Resolved: 24/Jul/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 2 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Critical

Reporter:

Resolution:

Labels:

Shannon Hess

Fixed

None

Not Specified

Assignee:

Votes:

Shannon Hess

0

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Issue Links: Discovered discovered by SCT-4738 Rice 2.0 upgrade eDrop/Add - route lo... Closed

Relates relates to EN-2701 Doc search initiator column doesn't l... Resolved relates to EN-2765 Broken route log - incomplete initiat... Closed

Description

The principal name for both Tevin Coleman and Drew Berger is both Unavailable. I'm not positive, but I think to get the initiator name for the document search results, it's just grabbing the first Unavailable it finds. We need to change this so it gets the name from the principal ID rather than the principal name.

See https://uisapp2.iu.edu/jira-prd/browse/SCT-4738 for more information

Comments

Comment by Mark Fyffe

[ 24/Jul/12 1:38 PM ]

ESI team,

Please up this priority of this issue to critical - we are concerned about getting this in before the upgrade because the wrong name appears when this occurs. If the missing name was blank rather than wrong, this would not be as serious.

Thanks,

Mark

Comment by Shannon Hess

[ 24/Jul/12 4:56 PM ]

Mark,

I've fixed this and tested locally to verify document 12184637 has the correct initiator in document search results. I will deploy this to the KR2 environments shortly after 5.

Thanks,

Shannon

[EN-2775] Add SocketTimeoutException as a service removal exception

Created:

18/Jul/12 Updated: 10/Sep/12 Resolved: 18/Jul/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 1 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Blocker

Reporter: James Bennett Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Relates relates to EN-2676 KC2 Tomcat Instances Crash every morn... Closed

[EN-2760] Exception on server side manifests as a security error on the client side of Kuali Rice web services

Created: 16/Jul/12 Updated: 10/Sep/12 Resolved: 20/Jul/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 1 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Critical

Reporter:

Resolution:

Labels:

Remaining

Estimate:

Time Spent:

Eric Westfall

Fixed

None

Not Specified

Original

Estimate:

Description

Not Specified

Not Specified

Noticed this when trying to test SAV.

Assignee:

Votes:

James Bennett

0

Here's the error on the server side:

2012-07-16 18:27:51,576 [ajp-bio-/192.168.220.49-8009-exec-410] D: U: INFO org.kuali.rice.ksb.messaging.servlet.KSBDispatcherServlet

:: Calling service {http://rice.kuali.org/kew/v2_0}workflowDocumentActionsService

2012-07-16 18:27:51,641 [ajp-bio-/192.168.220.49-8009-exec-410] D: U: WARN org.kuali.rice.kew.dto.DTOConverter ::

AttributeDefinition lookup (findByClassName) returned multiple attribute for the same class name. This should not happen, investigation recommended for classname: edu.iu.uis.eden.routetemplate.attribute.AccountAttribute which has 2 entries.

2012-07-16 18:27:51,642 [ajp-bio-/192.168.220.49-8009-exec-410] D: U: FATAL org.kuali.rice.core.framework.persistence.jta.KualiTransactionInterceptor :: Exception caught by Transaction Interceptor, this will cause a rollback at the end of the transaction. org.kuali.rice.core.api.resourceloader.ResourceLoaderException: Could not materialize object from definition, using classname: edu.iu.uis.eden.routetemplate.attribute.AccountAttribute at org.kuali.rice.core.framework.resourceloader.ObjectDefinitionResolver.handleException(ObjectDefinitionResolver.java:105) at org.kuali.rice.core.framework.resourceloader.ObjectDefinitionResolver.createObject(ObjectDefinitionResolver.java:91) at org.kuali.rice.core.framework.resourceloader.BaseResourceLoader.getObject(BaseResourceLoader.java:62) at org.kuali.rice.core.api.resourceloader.ResourceLoaderContainer.getObject(ResourceLoaderContainer.java:155) at org.kuali.rice.core.api.resourceloader.GlobalResourceLoader.getObject(GlobalResourceLoader.java:148) at org.kuali.rice.kew.dto.DTOConverter.createDocumentContentSection(DTOConverter.java:165) at org.kuali.rice.kew.dto.DTOConverter.buildUpdatedDocumentContent(DTOConverter.java:104) at org.kuali.rice.kew.impl.action.WorkflowDocumentActionsServiceImpl.init(WorkflowDocumentActionsServiceImpl.java:235) at org.kuali.rice.kew.impl.action.WorkflowDocumentActionsServiceImpl.executeActionInternal(WorkflowDocumentActionsServiceImpl.java:1345) at org.kuali.rice.kew.impl.action.WorkflowDocumentActionsServiceImpl.route(WorkflowDocumentActionsServiceImpl.java:585) at sun.reflect.GeneratedMethodAccessor3620.invoke(Unknown Source) 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:318) 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 $Proxy142.route(Unknown Source) at sun.reflect.GeneratedMethodAccessor3620.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89) at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:61) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188) at org.kuali.rice.ksb.messaging.servlet.CXFServletControllerAdapter.handleRequest(CXFServletControllerAdapter.java:47) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at org.kuali.rice.ksb.messaging.servlet.KSBDispatcherServlet.service(KSBDispatcherServlet.java:138) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) 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:662)

Caused by: java.lang.NoSuchMethodException: No such accessible constructor on object: edu.iu.uis.eden.routetemplate.attribute.AccountAttribute at org.apache.commons.beanutils.ConstructorUtils.invokeConstructor(ConstructorUtils.java:163) at org.kuali.rice.core.framework.resourceloader.ObjectDefinitionResolver.loadObject(ObjectDefinitionResolver.java:98) at org.kuali.rice.core.framework.resourceloader.ObjectDefinitionResolver$1.call(ObjectDefinitionResolver.java:78) at org.kuali.rice.core.api.util.ContextClassLoaderBinder.doInContextClassLoader(ContextClassLoaderBinder.java:87) at org.kuali.rice.core.framework.resourceloader.ObjectDefinitionResolver.createObject(ObjectDefinitionResolver.java:71)

... 79 more

2012-07-16 18:27:51,647 [ajp-bio-/192.168.220.49-8009-exec-410] D: U: WARN org.apache.cxf.phase.PhaseInterceptorChain :: Application

{http://rice.kuali.org/kew/v2_0}workflowDocumentActionsService#{http://rice.kuali.org/kew/v2_0}route has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Could not materialize object from definition, using classname: edu.iu.uis.eden.routetemplate.attribute.AccountAttribute at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:155) at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:86) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:121) at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:61) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188) at org.kuali.rice.ksb.messaging.servlet.CXFServletControllerAdapter.handleRequest(CXFServletControllerAdapter.java:47) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at org.kuali.rice.ksb.messaging.servlet.KSBDispatcherServlet.service(KSBDispatcherServlet.java:138) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) 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:662)

Caused by: org.kuali.rice.core.api.resourceloader.ResourceLoaderException: Could not materialize object from definition, using classname: edu.iu.uis.eden.routetemplate.attribute.AccountAttribute at org.kuali.rice.core.framework.resourceloader.ObjectDefinitionResolver.handleException(ObjectDefinitionResolver.java:105) at org.kuali.rice.core.framework.resourceloader.ObjectDefinitionResolver.createObject(ObjectDefinitionResolver.java:91) at org.kuali.rice.core.framework.resourceloader.BaseResourceLoader.getObject(BaseResourceLoader.java:62) at org.kuali.rice.core.api.resourceloader.ResourceLoaderContainer.getObject(ResourceLoaderContainer.java:155) at org.kuali.rice.core.api.resourceloader.GlobalResourceLoader.getObject(GlobalResourceLoader.java:148) at org.kuali.rice.kew.dto.DTOConverter.createDocumentContentSection(DTOConverter.java:165) at org.kuali.rice.kew.dto.DTOConverter.buildUpdatedDocumentContent(DTOConverter.java:104) at org.kuali.rice.kew.impl.action.WorkflowDocumentActionsServiceImpl.init(WorkflowDocumentActionsServiceImpl.java:235) at org.kuali.rice.kew.impl.action.WorkflowDocumentActionsServiceImpl.executeActionInternal(WorkflowDocumentActionsServiceImpl.java:1345) at org.kuali.rice.kew.impl.action.WorkflowDocumentActionsServiceImpl.route(WorkflowDocumentActionsServiceImpl.java:585) at sun.reflect.GeneratedMethodAccessor3620.invoke(Unknown Source) 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:318) 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 $Proxy142.route(Unknown Source) at sun.reflect.GeneratedMethodAccessor3620.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)

... 56 more

Caused by: java.lang.NoSuchMethodException: No such accessible constructor on object: edu.iu.uis.eden.routetemplate.attribute.AccountAttribute at org.apache.commons.beanutils.ConstructorUtils.invokeConstructor(ConstructorUtils.java:163) at org.kuali.rice.core.framework.resourceloader.ObjectDefinitionResolver.loadObject(ObjectDefinitionResolver.java:98) at org.kuali.rice.core.framework.resourceloader.ObjectDefinitionResolver$1.call(ObjectDefinitionResolver.java:78) at org.kuali.rice.core.api.util.ContextClassLoaderBinder.doInContextClassLoader(ContextClassLoaderBinder.java:87) at org.kuali.rice.core.framework.resourceloader.ObjectDefinitionResolver.createObject(ObjectDefinitionResolver.java:71)

... 79 more

2012-07-16 18:27:51,649 [ajp-bio-/192.168.220.49-8009-exec-410] D: U: WARN org.apache.cxf.jaxws.interceptors.WebFaultOutInterceptor

:: Exception occurred while writing fault. org.apache.cxf.interceptor.Fault: Marshalling Error: class org.kuali.rice.core.api.resourceloader.ResourceLoaderException nor any of its super class is known to this context. at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:259) at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169) at org.apache.cxf.jaxws.interceptors.WebFaultOutInterceptor.handleMessage(WebFaultOutInterceptor.java:118) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:99) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:315) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188) at org.kuali.rice.ksb.messaging.servlet.CXFServletControllerAdapter.handleRequest(CXFServletControllerAdapter.java:47) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at org.kuali.rice.ksb.messaging.servlet.KSBDispatcherServlet.service(KSBDispatcherServlet.java:138) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.core.web.Log4JContextClearingFilter.doFilterInternal(Log4JContextClearingFilter.java:37) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) 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:662)

Caused by: javax.xml.bind.JAXBException: class org.kuali.rice.core.api.resourceloader.ResourceLoaderException nor any of its super class is known to this context. at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:594) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:482) at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:315) at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:244) at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:110) at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:552) at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:248)

... 52 more

And here's how this was presented on the client side. It's almost like it's throwing an error 500 or something as opposed to treating this as a generic SOAP fault

(which is what I would expect it to do).

2012-07-16 18:27:51,509 [http-bio-8080-exec-10] u:/d: DEBUG org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor - WSS4JInInterceptor: enter handleMessage()

2012-07-16 18:27:51,516 [http-bio-8080-exec-10] u:/d: WARN org.apache.xml.security.signature.Reference - Verification failed for URI

"#id-2248"

2012-07-16 18:27:51,516 [http-bio-8080-exec-10] u:/d: WARN org.apache.xml.security.signature.Reference - Expected Digest: edrxh6Lib4Wr6NCqDWx+AvfDhNM=

2012-07-16 18:27:51,516 [http-bio-8080-exec-10] u:/d: WARN org.apache.xml.security.signature.Reference - Actual Digest:

4OwMEKo2QBV2gE/i18mXtKnecZ4=

2012-07-16 18:27:51,519 [http-bio-8080-exec-10] u:/d: WARN org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor - org.apache.ws.security.WSSecurityException: The signature or decryption was invalid at org.apache.ws.security.processor.SignatureProcessor.verifyXMLSignature(SignatureProcessor.java:636) at org.apache.ws.security.processor.SignatureProcessor.handleToken(SignatureProcessor.java:116) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:328) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:245) at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:219) at org.kuali.rice.ksb.security.soap.CXFWSS4JInInterceptor.handleMessage(CXFWSS4JInInterceptor.java:93) at org.kuali.rice.ksb.security.soap.CXFWSS4JInInterceptor.handleMessage(CXFWSS4JInInterceptor.java:41) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:733) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2201) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2071) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1925) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:662) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) at $Proxy104.route(Unknown Source) 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 com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231) at org.kuali.rice.ksb.messaging.BusClientFailureProxy.invokeInternal(BusClientFailureProxy.java:99) at org.kuali.rice.core.api.util.reflect.BaseInvocationHandler.invoke(BaseInvocationHandler.java:58) at $Proxy105.route(Unknown Source) 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 com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231) at org.kuali.rice.ksb.api.bus.support.LazyServiceFactoryBean$LazyInvocationHandler.invoke(LazyServiceFactoryBean.java:152) at $Proxy76.route(Unknown Source) at org.kuali.rice.kew.impl.document.WorkflowDocumentImpl.route(WorkflowDocumentImpl.java:331) at edu.iu.uits.ii.RoutingService.notifyWorkflow(RoutingService.java:69) at edu.iu.uits.ii.RoutingService$notifyWorkflow.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128) at RequestVirtualController$_closure12.doCall(RequestVirtualController.groovy:452) 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 com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) at RequestVirtualController$_closure12.doCall(RequestVirtualController.groovy) 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 com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231)

at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047) at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877) at groovy.lang.Closure.call(Closure.java:412) at RequestVirtualController$_closure12.call(RequestVirtualController.groovy) at groovy.lang.Closure.call(Closure.java:406) at RequestVirtualController$_closure12.call(RequestVirtualController.groovy) at java_util_concurrent_Callable$call.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112) at RequestVirtualController.save_step5(RequestVirtualController.groovy) 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 com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231) at org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper.invoke(MixedGrailsControllerHelper.java:67) at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleAction(AbstractGrailsControllerHelper.java:330) at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.executeAction(AbstractGrailsControllerHelper.java:211) at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:177) at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:116) at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:72) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:325) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:311) at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:276) at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:267) at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:209) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.obtainContent(GrailsPageFilter.java:200) at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:151) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at javax.servlet.FilterChain$doFilter.call(Unknown Source)

at org.grails.plugin.resource.DevModeSanityFilter.doFilter(DevModeSanityFilter.groovy:44) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:65) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:487) at edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:421) at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:400) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) 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)

2012-07-16 18:27:51,523 [http-bio-8080-exec-10] u:/d: WARN org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for

{http://rice.kuali.org/kew/v2_0}workflowDocumentActionsService#{http://rice.kuali.org/kew/v2_0}route has thrown exception, unwinding now org.apache.cxf.binding.soap.SoapFault: The signature or decryption was invalid at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.createSoapFault(WSS4JInInterceptor.java:680) at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:280) at org.kuali.rice.ksb.security.soap.CXFWSS4JInInterceptor.handleMessage(CXFWSS4JInInterceptor.java:93) at org.kuali.rice.ksb.security.soap.CXFWSS4JInInterceptor.handleMessage(CXFWSS4JInInterceptor.java:41) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:733) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2201) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2071) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1925) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:662) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:247) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) at $Proxy104.route(Unknown Source) 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 com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231) at org.kuali.rice.ksb.messaging.BusClientFailureProxy.invokeInternal(BusClientFailureProxy.java:99) at org.kuali.rice.core.api.util.reflect.BaseInvocationHandler.invoke(BaseInvocationHandler.java:58) at $Proxy105.route(Unknown Source) 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 com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231) at org.kuali.rice.ksb.api.bus.support.LazyServiceFactoryBean$LazyInvocationHandler.invoke(LazyServiceFactoryBean.java:152) at $Proxy76.route(Unknown Source) at org.kuali.rice.kew.impl.document.WorkflowDocumentImpl.route(WorkflowDocumentImpl.java:331) at edu.iu.uits.ii.RoutingService.notifyWorkflow(RoutingService.java:69) at edu.iu.uits.ii.RoutingService$notifyWorkflow.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128) at RequestVirtualController$_closure12.doCall(RequestVirtualController.groovy:452) 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 com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:226) at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141) at RequestVirtualController$_closure12.doCall(RequestVirtualController.groovy) 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 com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047) at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877) at groovy.lang.Closure.call(Closure.java:412) at RequestVirtualController$_closure12.call(RequestVirtualController.groovy) at groovy.lang.Closure.call(Closure.java:406) at RequestVirtualController$_closure12.call(RequestVirtualController.groovy) at java_util_concurrent_Callable$call.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112) at RequestVirtualController.save_step5(RequestVirtualController.groovy) 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 com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231) at org.codehaus.groovy.grails.web.servlet.mvc.MixedGrailsControllerHelper.invoke(MixedGrailsControllerHelper.java:67) at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleAction(AbstractGrailsControllerHelper.java:330) at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.executeAction(AbstractGrailsControllerHelper.java:211) at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:177) at org.codehaus.groovy.grails.web.servlet.mvc.AbstractGrailsControllerHelper.handleURI(AbstractGrailsControllerHelper.java:116) at org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.handleRequest(SimpleGrailsController.java:72)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDispatch(GrailsDispatcherServlet.java:325) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:311) at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:276) at org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMappingInfo(WebUtils.java:267) at org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFilterInternal(UrlMappingsFilter.java:209) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.obtainContent(GrailsPageFilter.java:200) at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:151) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at javax.servlet.FilterChain$doFilter.call(Unknown Source) at org.grails.plugin.resource.DevModeSanityFilter.doFilter(DevModeSanityFilter.groovy:44) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doFilterInternal(GrailsWebRequestFilter.java:69) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:65) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:487) at edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:421) at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:400) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) 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)

Caused by: org.apache.ws.security.WSSecurityException: The signature or decryption was invalid at org.apache.ws.security.processor.SignatureProcessor.verifyXMLSignature(SignatureProcessor.java:636) at org.apache.ws.security.processor.SignatureProcessor.handleToken(SignatureProcessor.java:116) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:328) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:245) at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:219)

... 149 more

2012-07-16 18:27:51,526 [http-bio-8080-exec-10] u:/d: DEBUG org.apache.cxf.phase.PhaseInterceptorChain - Invoking handleFault on interceptor org.kuali.rice.ksb.security.soap.CXFWSS4JInInterceptor@16ae079

2012-07-16 18:27:51,526 [http-bio-8080-exec-10] u:/d: DEBUG org.apache.cxf.phase.PhaseInterceptorChain - Invoking handleFault on interceptor org.apache.cxf.binding.soap.interceptor.StartBodyInterceptor@40ae49d5

2012-07-16 18:27:51,526 [http-bio-8080-exec-10] u:/d: DEBUG org.apache.cxf.phase.PhaseInterceptorChain - Invoking handleFault on interceptor org.apache.cxf.binding.soap.interceptor.SoapActionInInterceptor@331e965f

2012-07-16 18:27:51,526 [http-bio-8080-exec-10] u:/d: DEBUG org.apache.cxf.phase.PhaseInterceptorChain - Invoking handleFault on interceptor org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor@267e9611

2012-07-16 18:27:51,526 [http-bio-8080-exec-10] u:/d: DEBUG org.apache.cxf.phase.PhaseInterceptorChain - Invoking handleFault on interceptor org.apache.cxf.interceptor.StaxInInterceptor@1dcbdd11

2012-07-16 18:27:51,526 [http-bio-8080-exec-10] u:/d: DEBUG org.apache.cxf.phase.PhaseInterceptorChain - Invoking handleFault on interceptor org.apache.cxf.interceptor.AttachmentInInterceptor@3aa6d0a4

2012-07-16 18:27:51,527 [http-bio-8080-exec-10] u:/d: INFO org.kuali.rice.ksb.messaging.BusClientFailureProxy - Checking for Service

Removal Exception: java.lang.reflect.InvocationTargetException

Comments

Comment by James Bennett

[ 20/Jul/12 2:28 PM ]

The problem here is that the security interceptors for the web service were never added to the list of fault interceptors so they weren't used when a SOAP fault occurs. I corrected that issue and that fixed this problem.

[EN-2758] Make routing methods in MaintenanceDocumentAuthorizerBase non-final

Created: 16/Jul/12 Updated: 10/Sep/12 Resolved: 19/Jul/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 1 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Major

Reporter:

Resolution:

Labels:

Jeff Largent

Fixed

None

Not Specified

Assignee:

Votes:

Shannon Hess

0

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Impacted

Client(s):

Description

KC

I was recently trying to override the MaintenanceDocumentAuthorizerBase.java class to provide more fine-tuned permission handle with regards to Rolodex Maint Docs, but noticed that the canCreate, canMaintain, and canCreateOrMaintain methods in that class are all marked as final, so I can't override them to achieve this. I was going to simply look for other methods to achieve this, but Geoff mentioned that this change had already been made by the Foundation in

KULRICE-7147.

Do you have any idea when this change will be coming to the IU Rice jars? The methods still appear to be marked "final" as of version 2.1.1-iu-m12-SNAPSHOT, which I am currently using.

Comments

Comment by Shannon Hess

[ 16/Jul/12 11:50 AM ]

Jeff,

Actually, KULRICE-7147 updated only DocumentAuthorizerBase.java and not

MaintenanceDocumentAuthorizerBase.java so it looks like the methods in

MaintenanceDocumentAuthorizerBase.java also need to be updated. I'm going to move this over to our EN queue. Is this a blocker for you? If not, what is the priority?

Thanks,

Shannon

Comment by Shannon Hess

[ 16/Jul/12 11:51 AM ] https://jira.kuali.org/browse/KULRICE-7147

Comment by Jeff Largent

[ 16/Jul/12 12:00 PM ]

Thanks Shannon. I would definitely not consider this a blocker, and would be okay keeping it at major priority.

The issue is that we want any user to be able to create Rolodex entries but not edit and delete them-- there is currently no way to separate these functions in the maintenance doc links. So while users are being incorrectly presented the edit and delete links on Rolodex lookup, once they click on those links they are not allowed to submit Edit and Delete docs as we intend. It's just confusing for our users to see those links when they don't really have the permissions to use them.

-Jeff

Comment by Shannon Hess

[ 19/Jul/12 9:20 PM ]

Jeff,

This has been completed and new rice client jars have been created.

Link to rice-extras jar - https://onestart.iu.edu/nxs-prd/content/groups/publicsnapshot/edu/iu/es/esi/rice/rice-extras/2.1.1-iu-m12-SNAPSHOT/

Link to rice-all jar - https://onestart.iu.edu/nxs-prd/content/groups/publicsnapshot/edu/iu/es/esi/rice/rice-all/2.1.1-iu-m12-SNAPSHOT/

Thanks,

Shannon

[EN-2755] Document requeuer does not appear to be using application id correctly

Created: 14/Jul/12 Updated: 10/Sep/12 Resolved: 17/Jul/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 1 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Blocker

Reporter:

Resolution:

Labels:

Eric Westfall

Resolved

None

Not Specified

Assignee:

Votes:

Shannon Hess

0

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Comments

Comment by Eric Westfall

[ 14/Jul/12 2:21 PM ]

I was peeking through the kr2-stg logs and saw this. Looks like it's trying to requeue document and process it on the rice server rather than calling back to HR: at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

at $Proxy52.afterProcess(Unknown Source)

at org.kuali.rice.krad.workflow.postprocessor.KualiPostProcessor.afterProcess(KualiPostProcessor.java:109)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:693)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:676)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.process(StandardWorkflowEngine.java:163)

at org.kuali.rice.kew.impl.document.DocumentRefreshQueueImpl.refreshDocument(DocumentRefreshQueueImpl.java:95)

at sun.reflect.GeneratedMethodAccessor1517.invoke(Unknown Source)

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:318)

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 $Proxy156.refreshDocument(Unknown Source)

at sun.reflect.GeneratedMethodAccessor2702.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker.invokeService(MessageServiceInvoker.java:149)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker$1.doInTransaction(MessageServiceInvoker.java:64)

at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker.run(MessageServiceInvoker.java:59)

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:662)

2012-07-13 16:31:16,915 [RICE/KSB-pool-1-thread-2] D: U: FATAL org.kuali.rice.core.framework.persistence.jta.KualiTransactionInterceptor :: Exception caught by Transaction Interceptor, this will cause a rollback at the end of the transaction.

java.lang.RuntimeException: post processor caught exception while handling after process change: unable to get class for unknown documentTypeName 'TerminateEmployeeDocument'

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.logAndRethrow(PostProcessorServiceImpl.java:349)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.access$200(PostProcessorServiceImpl.java:49)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl$5.call(PostProcessorServiceImpl.java:259)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl$5.call(PostProcessorServiceImpl.java:236)

at org.kuali.rice.krad.util.GlobalVariables.doInNewGlobalVariables(GlobalVariables.java:191)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.afterProcess(PostProcessorServiceImpl.java:235)

at sun.reflect.GeneratedMethodAccessor1677.invoke(Unknown Source)

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:318)

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 $Proxy51.afterProcess(Unknown Source)

at sun.reflect.GeneratedMethodAccessor1677.invoke(Unknown Source)

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:318)

at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.kuali.rice.core.framework.persistence.jpa.NoResultExceptionInterceptor.invoke(NoResultExceptionInterceptor.java:33)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

at $Proxy52.afterProcess(Unknown Source)

at org.kuali.rice.krad.workflow.postprocessor.KualiPostProcessor.afterProcess(KualiPostProcessor.java:109)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:693)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:676)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.process(StandardWorkflowEngine.java:163)

at org.kuali.rice.kew.impl.document.DocumentRefreshQueueImpl.refreshDocument(DocumentRefreshQueueImpl.java:95)

at sun.reflect.GeneratedMethodAccessor1517.invoke(Unknown Source)

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:318)

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 $Proxy156.refreshDocument(Unknown Source)

at sun.reflect.GeneratedMethodAccessor2702.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker.invokeService(MessageServiceInvoker.java:149)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker$1.doInTransaction(MessageServiceInvoker.java:64)

at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker.run(MessageServiceInvoker.java:59)

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:662)

Caused by: org.kuali.rice.krad.datadictionary.exception.UnknownDocumentTypeException: unable to get class for unknown documentTypeName 'TerminateEmployeeDocument'

at org.kuali.rice.krad.service.impl.DocumentServiceImpl.getDocumentClassByTypeName(DocumentServiceImpl.java:812)

at org.kuali.rice.krad.service.impl.DocumentServiceImpl.getByDocumentHeaderId(DocumentServiceImpl.java:764)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl$5.call(PostProcessorServiceImpl.java:245)

... 48 more

2012-07-13 16:31:16,916 [RICE/KSB-pool-1-thread-2] D: U: FATAL org.kuali.rice.core.framework.persistence.jta.KualiTransactionInterceptor :: Exception caught by Transaction Interceptor, this will cause a rollback at the end of the transaction. org.kuali.rice.kew.api.WorkflowRuntimeException: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor

at org.kuali.rice.kew.impl.document.DocumentRefreshQueueImpl.refreshDocument(DocumentRefreshQueueImpl.java:97)

at sun.reflect.GeneratedMethodAccessor1517.invoke(Unknown Source)

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:318)

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 $Proxy156.refreshDocument(Unknown Source)

at sun.reflect.GeneratedMethodAccessor2702.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker.invokeService(MessageServiceInvoker.java:149)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker$1.doInTransaction(MessageServiceInvoker.java:64)

at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker.run(MessageServiceInvoker.java:59)

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:662)

Caused by: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor

at org.kuali.rice.kew.engine.StandardWorkflowEngine.process(StandardWorkflowEngine.java:166)

at org.kuali.rice.kew.impl.document.DocumentRefreshQueueImpl.refreshDocument(DocumentRefreshQueueImpl.java:95)

... 20 more

Caused by: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor.

at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:695)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:676)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.process(StandardWorkflowEngine.java:163)

... 21 more

Caused by: java.lang.RuntimeException: post processor caught exception while handling after process change: unable to get class for unknown documentTypeName 'TerminateEmployeeDocument'

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.logAndRethrow(PostProcessorServiceImpl.java:349)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.access$200(PostProcessorServiceImpl.java:49)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl$5.call(PostProcessorServiceImpl.java:259)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl$5.call(PostProcessorServiceImpl.java:236)

at org.kuali.rice.krad.util.GlobalVariables.doInNewGlobalVariables(GlobalVariables.java:191)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.afterProcess(PostProcessorServiceImpl.java:235)

at sun.reflect.GeneratedMethodAccessor1677.invoke(Unknown Source)

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:318)

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 $Proxy51.afterProcess(Unknown Source)

at sun.reflect.GeneratedMethodAccessor1677.invoke(Unknown Source)

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:318)

at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.kuali.rice.core.framework.persistence.jpa.NoResultExceptionInterceptor.invoke(NoResultExceptionInterceptor.java:33)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

at $Proxy52.afterProcess(Unknown Source)

at org.kuali.rice.krad.workflow.postprocessor.KualiPostProcessor.afterProcess(KualiPostProcessor.java:109)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:693)

... 23 more

Caused by: org.kuali.rice.krad.datadictionary.exception.UnknownDocumentTypeException: unable to get class for unknown documentTypeName 'TerminateEmployeeDocument'

at org.kuali.rice.krad.service.impl.DocumentServiceImpl.getDocumentClassByTypeName(DocumentServiceImpl.java:812)

at org.kuali.rice.krad.service.impl.DocumentServiceImpl.getByDocumentHeaderId(DocumentServiceImpl.java:764)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl$5.call(PostProcessorServiceImpl.java:245)

... 48 more

2012-07-13 16:31:16,921 [RICE/KSB-pool-1-thread-2] D: U: ERROR org.kuali.rice.ksb.messaging.MessageServiceInvoker :: Error processing message: [RouteQueue: , routeQueueId=58066735, ipNumber=134.68.26.95applicationId=RICE, serviceName={http://rice.kuali.org/kew/v2_0}documentRefreshQueue, methodName=refreshDocument, queueStatus=R, queuePriority=10, queueDate=2012-07-13 16:31:01.914]

org.kuali.rice.ksb.messaging.MessageProcessingException: java.lang.reflect.InvocationTargetException

at org.kuali.rice.ksb.messaging.MessageServiceInvoker$1.doInTransaction(MessageServiceInvoker.java:68)

at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker.run(MessageServiceInvoker.java:59)

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:662)

Caused by: java.lang.reflect.InvocationTargetException

at sun.reflect.GeneratedMethodAccessor2702.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker.invokeService(MessageServiceInvoker.java:149)

at org.kuali.rice.ksb.messaging.MessageServiceInvoker$1.doInTransaction(MessageServiceInvoker.java:64)

... 5 more

Caused by: org.kuali.rice.kew.api.WorkflowRuntimeException: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor

at org.kuali.rice.kew.impl.document.DocumentRefreshQueueImpl.refreshDocument(DocumentRefreshQueueImpl.java:97)

at sun.reflect.GeneratedMethodAccessor1517.invoke(Unknown Source)

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:318)

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 $Proxy156.refreshDocument(Unknown Source)

... 10 more

Caused by: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor

at org.kuali.rice.kew.engine.StandardWorkflowEngine.process(StandardWorkflowEngine.java:166)

at org.kuali.rice.kew.impl.document.DocumentRefreshQueueImpl.refreshDocument(DocumentRefreshQueueImpl.java:95)

... 20 more

Caused by: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor.

at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:695)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:676)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.process(StandardWorkflowEngine.java:163)

... 21 more

Caused by: java.lang.RuntimeException: post processor caught exception while handling after process change: unable to get class for unknown documentTypeName 'TerminateEmployeeDocument'

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.logAndRethrow(PostProcessorServiceImpl.java:349)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.access$200(PostProcessorServiceImpl.java:49)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl$5.call(PostProcessorServiceImpl.java:259)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl$5.call(PostProcessorServiceImpl.java:236)

at org.kuali.rice.krad.util.GlobalVariables.doInNewGlobalVariables(GlobalVariables.java:191)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.afterProcess(PostProcessorServiceImpl.java:235)

at sun.reflect.GeneratedMethodAccessor1677.invoke(Unknown Source)

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:318)

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 $Proxy51.afterProcess(Unknown Source)

at sun.reflect.GeneratedMethodAccessor1677.invoke(Unknown Source)

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:318)

at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

at org.kuali.rice.core.framework.persistence.jpa.NoResultExceptionInterceptor.invoke(NoResultExceptionInterceptor.java:33)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

at $Proxy52.afterProcess(Unknown Source)

at org.kuali.rice.krad.workflow.postprocessor.KualiPostProcessor.afterProcess(KualiPostProcessor.java:109)

at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:693)

... 23 more

Caused by: org.kuali.rice.krad.datadictionary.exception.UnknownDocumentTypeException: unable to get class for unknown documentTypeName 'TerminateEmployeeDocument'

at org.kuali.rice.krad.service.impl.DocumentServiceImpl.getDocumentClassByTypeName(DocumentServiceImpl.java:812)

at org.kuali.rice.krad.service.impl.DocumentServiceImpl.getByDocumentHeaderId(DocumentServiceImpl.java:764)

at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl$5.call(PostProcessorServiceImpl.java:245)

... 48 more

Comment by Shannon Hess

[ 16/Jul/12 2:07 PM ]

The logs seem to be giving a different error since lunchtime. It looks to be hitting https://test.uisapp2.iu.edu/hredoc2-stg/remoting/soap/kew/v2_0/documentRefreshQueue but then getting the "The signature or decryption was invalid" error

2012-07-16 13:42:50,858 [ContainerBackgroundProcessor[StandardEngine[Esi3_1Engine]]] D: U: INFO org.kuali.rice.krad.maintenance.MaintenanceUtils :: starting checkForLockingDocument (by MaintenanceDocument)

2012-07-16 13:43:33,603 [RICE/KSB-pool-1-thread-2] D: U:ashoover WARN org.apache.xml.security.signature.Reference :: Verification failed for URI "#id-754"

2012-07-16 13:43:33,603 [RICE/KSB-pool-1-thread-2] D: U:ashoover WARN org.apache.xml.security.signature.Reference :: Expected Digest: kZNUxvCN8kGt8Z5d7phGryRcjt8=

2012-07-16 13:43:33,604 [RICE/KSB-pool-1-thread-2] D: U:ashoover WARN org.apache.xml.security.signature.Reference :: Actual Digest: RRj5FJvVTPWcdErMg0DBpa2/Xz8=

2012-07-16 13:43:33,604 [RICE/KSB-pool-1-thread-2] D: U:ashoover WARN org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor :: org.apache.ws.security.WSSecurityException: The signature or decryption was invalid at org.apache.ws.security.processor.SignatureProcessor.verifyXMLSignature(SignatureProcessor.java:636) at org.apache.ws.security.processor.SignatureProcessor.handleToken(SignatureProcessor.java:116) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:328) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:245) at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:219) at org.kuali.rice.ksb.security.soap.CXFWSS4JInInterceptor.handleMessage(CXFWSS4JInInterceptor.java:93) at org.kuali.rice.ksb.security.soap.CXFWSS4JInInterceptor.handleMessage(CXFWSS4JInInterceptor.java:41) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:795) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2407) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2241) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2084) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:732) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:544) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:341) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:294) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) at $Proxy1360.refreshDocument(Unknown Source) 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.kuali.rice.ksb.messaging.BusClientFailureProxy.invokeInternal(BusClientFailureProxy.java:99) at org.kuali.rice.core.api.util.reflect.BaseInvocationHandler.invoke(BaseInvocationHandler.java:58) at $Proxy1361.refreshDocument(Unknown Source) 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.kuali.rice.ksb.messaging.MessageServiceInvoker.invokeService(MessageServiceInvoker.java:149) at org.kuali.rice.ksb.messaging.MessageServiceInvoker$1.doInTransaction(MessageServiceInvoker.java:64) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.kuali.rice.ksb.messaging.MessageServiceInvoker.run(MessageServiceInvoker.java:59) 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:662)

2012-07-16 13:43:33,605 [RICE/KSB-pool-1-thread-2] D: U:ashoover WARN org.apache.cxf.phase.PhaseInterceptorChain :: Interceptor for {http://rice.kuali.org/kew/v2_0}documentRefreshQueue#{http://rice.kuali.org/kew/v2_0}refreshDocument has thrown exception, unwinding now org.apache.cxf.binding.soap.SoapFault: The signature or decryption was invalid at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.createSoapFault(WSS4JInInterceptor.java:680) at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:280)

at org.kuali.rice.ksb.security.soap.CXFWSS4JInInterceptor.handleMessage(CXFWSS4JInInterceptor.java:93) at org.kuali.rice.ksb.security.soap.CXFWSS4JInInterceptor.handleMessage(CXFWSS4JInInterceptor.java:41) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:795) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2407) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2241) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2084) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:732) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:544) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:341) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:294) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) at $Proxy1360.refreshDocument(Unknown Source) 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.kuali.rice.ksb.messaging.BusClientFailureProxy.invokeInternal(BusClientFailureProxy.java:99) at org.kuali.rice.core.api.util.reflect.BaseInvocationHandler.invoke(BaseInvocationHandler.java:58) at $Proxy1361.refreshDocument(Unknown Source) 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.kuali.rice.ksb.messaging.MessageServiceInvoker.invokeService(MessageServiceInvoker.java:149) at org.kuali.rice.ksb.messaging.MessageServiceInvoker$1.doInTransaction(MessageServiceInvoker.java:64) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.kuali.rice.ksb.messaging.MessageServiceInvoker.run(MessageServiceInvoker.java:59) 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:662)

Caused by: org.apache.ws.security.WSSecurityException: The signature or decryption was invalid at org.apache.ws.security.processor.SignatureProcessor.verifyXMLSignature(SignatureProcessor.java:636) at org.apache.ws.security.processor.SignatureProcessor.handleToken(SignatureProcessor.java:116) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:328) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:245) at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:219)

... 35 more

2012-07-16 13:43:33,606 [RICE/KSB-pool-1-thread-2] D: U:ashoover INFO org.kuali.rice.ksb.messaging.BusClientFailureProxy :: Checking for Service Removal Exception: java.lang.reflect.InvocationTargetException

2012-07-16 13:43:33,606 [RICE/KSB-pool-1-thread-2] D: U:ashoover INFO org.kuali.rice.ksb.messaging.BusClientFailureProxy :: Unwrapping Throwable cause to check for service removal exception from: java.lang.reflect.InvocationTargetException

2012-07-16 13:43:33,606 [RICE/KSB-pool-1-thread-2] D: U:ashoover INFO org.kuali.rice.ksb.messaging.BusClientFailureProxy :: Checking for Service Removal Exception: javax.xml.ws.WebServiceException

2012-07-16 13:43:33,606 [RICE/KSB-pool-1-thread-2] D: U:ashoover INFO org.kuali.rice.ksb.messaging.BusClientFailureProxy :: Unwrapping Throwable cause to check for service removal exception from: javax.xml.ws.WebServiceException

2012-07-16 13:43:33,606 [RICE/KSB-pool-1-thread-2] D: U:ashoover INFO org.kuali.rice.ksb.messaging.BusClientFailureProxy :: Checking for Service Removal Exception: org.apache.ws.security.WSSecurityException

2012-07-16 13:43:33,606 [RICE/KSB-pool-1-thread-2] D: U:ashoover WARN org.kuali.rice.ksb.messaging.MessageServiceInvoker :: Caught throwable making async service call [AsynchronousCall: serviceInfo=org.kuali.rice.ksb.api.bus.support.SoapServiceConfiguration@4fbddee8[serviceInterface=org.kuali.rice.kew.api.document.DocumentRefreshQueue,jaxWsService=true,serviceName={http://rice.kuali.org/kew/v2_0}documentRefreshQueue,endpointUrl=https://test.uisa

pp2.iu.edu/hredoc2-stg/remoting/soap/kew/v2_0/documentRefreshQueue,instanceId=HR-134.68.26.18,applicationId=HR,serviceVersion=2.1.1,type=SOAP,queue=true,priority=10,retryAttempts=0,millisToLive=-

1,messageExceptionHandler=<null>,busSecurity=true,credentialsType=<null>,basicAuthentication=false,_futureElements=<null>], methodName=refreshDocument, paramTypes=class [Ljava.lang.Class;[], arguments=class [Ljava.lang.Object;[]] java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcc

Also, I've tested the refreshing from doc opp, and it is working correctly and requeuing & refreshing the document over on the HR servers. public ActionForward queueDocumentRefresh(ActionMapping mapping, ActionForm form, HttpServletRequest request,

HttpServletResponse response) throws IOException, ServletException {

DocumentOperationForm docForm = (DocumentOperationForm) form;

DocumentRefreshQueue docRequeue = MessageServiceNames.getDocumentRequeuerService(docForm.getRouteHeader().getDocumentType().getApplicationId(), docForm.getRouteHeader().getDocumentId(), 0);

docRequeue.refreshDocument(docForm.getRouteHeader().getDocumentId());

}

ActionMessages messages = new ActionMessages();

messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("general.message", "Document Requeuer was successfully scheduled"));

saveMessages(request, messages);

return mapping.findForward("basic");

Comment by Shannon Hess

[ 16/Jul/12 2:20 PM ] more info from hredoc logs -

FATAL 2012-07-16 13:44:20,737 TN:[ajp-bio-192.168.220.188-8019-exec-3] -UID[WORKFLOW-KULUSER] Class: org.kuali.rice.core.framework.persistence.jta.KualiTransactionInterceptor - Exception caught by Transaction Interceptor, this will cause a rollback at the end of the transaction. org.kuali.rice.kew.api.WorkflowRuntimeException: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor at org.kuali.rice.kew.impl.document.DocumentRefreshQueueImpl.refreshDocument(DocumentRefreshQueueImpl.java:97) at sun.reflect.GeneratedMethodAccessor640.invoke(Unknown Source) 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:318) 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 $Proxy152.refreshDocument(Unknown Source) at sun.reflect.GeneratedMethodAccessor640.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89) at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:61) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188) at org.kuali.rice.ksb.messaging.servlet.CXFServletControllerAdapter.handleRequest(CXFServletControllerAdapter.java:47) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at org.kuali.rice.ksb.messaging.servlet.KSBDispatcherServlet.service(KSBDispatcherServlet.java:138) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307) 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:662)

Caused by: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor at org.kuali.rice.kew.engine.StandardWorkflowEngine.process(StandardWorkflowEngine.java:166) at org.kuali.rice.kew.impl.document.DocumentRefreshQueueImpl.refreshDocument(DocumentRefreshQueueImpl.java:95)

... 55 more

Caused by: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor. at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:695) at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:676) at org.kuali.rice.kew.engine.StandardWorkflowEngine.process(StandardWorkflowEngine.java:163)

... 56 more

Caused by: org.springframework.dao.DataAccessResourceFailureException: Could not open OJB PersistenceBroker; nested exception is org.apache.ojb.broker.PBFactoryException: Transaction synchronization failed - wrong status of external JTA tx. Expected was an

'active' or 'no transaction', found status is 'STATUS_MARKED_ROLLBACK' at org.springmodules.orm.ojb.OjbFactoryUtils.getPersistenceBroker(OjbFactoryUtils.java:102) at org.springmodules.orm.ojb.PersistenceBrokerTemplate.getPersistenceBroker(PersistenceBrokerTemplate.java:286) at org.springmodules.orm.ojb.PersistenceBrokerTemplate.execute(PersistenceBrokerTemplate.java:139) at org.springmodules.orm.ojb.PersistenceBrokerTemplate.executeFind(PersistenceBrokerTemplate.java:162) at org.springmodules.orm.ojb.PersistenceBrokerTemplate.getCollectionByQuery(PersistenceBrokerTemplate.java:193) at org.kuali.rice.krad.dao.impl.BusinessObjectDaoOjb.findMatching(BusinessObjectDaoOjb.java:123) at org.kuali.rice.krad.dao.proxy.BusinessObjectDaoProxy.findMatching(BusinessObjectDaoProxy.java:186) at sun.reflect.GeneratedMethodAccessor447.invoke(Unknown Source) 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:318) 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 $Proxy24.findMatching(Unknown Source) at org.kuali.rice.krad.service.impl.BusinessObjectServiceImpl.findMatching(BusinessObjectServiceImpl.java:172) at sun.reflect.GeneratedMethodAccessor446.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196) at $Proxy25.findMatching(Unknown Source) at org.kuali.rice.kim.impl.identity.IdentityServiceImpl.getPrincipalBoByPrincipalName(IdentityServiceImpl.java:756) at org.kuali.rice.kim.impl.identity.IdentityServiceImpl.getPrincipalByPrincipalName(IdentityServiceImpl.java:749) at edu.iu.uis.rice.kim.service.impl.IUIdentityServiceImpl.getPrincipalByPrincipalName(IUIdentityServiceImpl.java:57) at sun.reflect.GeneratedMethodAccessor570.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy102.getPrincipalByPrincipalName(Unknown Source) at sun.reflect.GeneratedMethodAccessor570.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213)

at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy103.getPrincipalByPrincipalName(Unknown Source) at org.kuali.rice.kim.impl.identity.IdentityCurrentAndArchivedServiceImpl.getPrincipalByPrincipalName(IdentityCurrentAndArchivedServiceImpl.java:462) at sun.reflect.GeneratedMethodAccessor570.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy102.getPrincipalByPrincipalName(Unknown Source) at sun.reflect.GeneratedMethodAccessor570.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy103.getPrincipalByPrincipalName(Unknown Source) at org.kuali.rice.kim.impl.identity.PersonServiceImpl.getPersonByPrincipalName(PersonServiceImpl.java:191) at org.kuali.rice.krad.UserSession.initPerson(UserSession.java:80) at org.kuali.rice.krad.UserSession.<init>(UserSession.java:70) at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.establishPostProcessorUserSession(PostProcessorServiceImpl.java:387) at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.afterProcess(PostProcessorServiceImpl.java:235) at sun.reflect.GeneratedMethodAccessor639.invoke(Unknown Source) 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:318) 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 $Proxy35.afterProcess(Unknown Source) at sun.reflect.GeneratedMethodAccessor639.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.kuali.rice.core.framework.persistence.jpa.NoResultExceptionInterceptor.invoke(NoResultExceptionInterceptor.java:33) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy36.afterProcess(Unknown Source) at org.kuali.rice.krad.workflow.postprocessor.KualiPostProcessor.afterProcess(KualiPostProcessor.java:109) at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:693)

... 58 more

Caused by: org.apache.ojb.broker.PBFactoryException: Transaction synchronization failed - wrong status of external JTA tx. Expected was an 'active' or 'no transaction', found status is 'STATUS_MARKED_ROLLBACK' at org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl.searchForValidTx(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl.createPersistenceBroker(Unknown Source) at org.apache.ojb.broker.PersistenceBrokerFactory.createPersistenceBroker(Unknown Source) at org.springmodules.orm.ojb.OjbFactoryUtils.getPersistenceBroker(OjbFactoryUtils.java:86)

... 160 more

WARN 2012-07-16 13:44:20,741 TN:[ajp-bio-192.168.220.188-8019-exec-3] -UID[WORKFLOW-KULUSER] Class: org.apache.cxf.phase.PhaseInterceptorChain - Application {http://rice.kuali.org/kew/v2_0}documentRefreshQueue#{http://rice.kuali.org/kew/v2_0}refreshDocument has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:155) at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMethodInvoker.java:86) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:121) at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:61) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188) at org.kuali.rice.ksb.messaging.servlet.CXFServletControllerAdapter.handleRequest(CXFServletControllerAdapter.java:47) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at org.kuali.rice.ksb.messaging.servlet.KSBDispatcherServlet.service(KSBDispatcherServlet.java:138) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307) 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:662)

Caused by: org.kuali.rice.kew.api.WorkflowRuntimeException: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor at org.kuali.rice.kew.impl.document.DocumentRefreshQueueImpl.refreshDocument(DocumentRefreshQueueImpl.java:97) at sun.reflect.GeneratedMethodAccessor640.invoke(Unknown Source) 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:318) 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 $Proxy152.refreshDocument(Unknown Source) at sun.reflect.GeneratedMethodAccessor640.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)

... 40 more

Caused by: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor at org.kuali.rice.kew.engine.StandardWorkflowEngine.process(StandardWorkflowEngine.java:166) at org.kuali.rice.kew.impl.document.DocumentRefreshQueueImpl.refreshDocument(DocumentRefreshQueueImpl.java:95)

... 55 more

Caused by: org.kuali.rice.kew.exception.RouteManagerException: Problems contacting PostProcessor. at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:695) at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:676) at org.kuali.rice.kew.engine.StandardWorkflowEngine.process(StandardWorkflowEngine.java:163)

... 56 more

Caused by: org.springframework.dao.DataAccessResourceFailureException: Could not open OJB PersistenceBroker; nested exception is org.apache.ojb.broker.PBFactoryException: Transaction synchronization failed - wrong status of external JTA tx. Expected was an

'active' or 'no transaction', found status is 'STATUS_MARKED_ROLLBACK' at org.springmodules.orm.ojb.OjbFactoryUtils.getPersistenceBroker(OjbFactoryUtils.java:102) at org.springmodules.orm.ojb.PersistenceBrokerTemplate.getPersistenceBroker(PersistenceBrokerTemplate.java:286) at org.springmodules.orm.ojb.PersistenceBrokerTemplate.execute(PersistenceBrokerTemplate.java:139) at org.springmodules.orm.ojb.PersistenceBrokerTemplate.executeFind(PersistenceBrokerTemplate.java:162) at org.springmodules.orm.ojb.PersistenceBrokerTemplate.getCollectionByQuery(PersistenceBrokerTemplate.java:193) at org.kuali.rice.krad.dao.impl.BusinessObjectDaoOjb.findMatching(BusinessObjectDaoOjb.java:123) at org.kuali.rice.krad.dao.proxy.BusinessObjectDaoProxy.findMatching(BusinessObjectDaoProxy.java:186) at sun.reflect.GeneratedMethodAccessor447.invoke(Unknown Source) 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:318) 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 $Proxy24.findMatching(Unknown Source) at org.kuali.rice.krad.service.impl.BusinessObjectServiceImpl.findMatching(BusinessObjectServiceImpl.java:172) at sun.reflect.GeneratedMethodAccessor446.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196) at $Proxy25.findMatching(Unknown Source) at org.kuali.rice.kim.impl.identity.IdentityServiceImpl.getPrincipalBoByPrincipalName(IdentityServiceImpl.java:756) at org.kuali.rice.kim.impl.identity.IdentityServiceImpl.getPrincipalByPrincipalName(IdentityServiceImpl.java:749) at edu.iu.uis.rice.kim.service.impl.IUIdentityServiceImpl.getPrincipalByPrincipalName(IUIdentityServiceImpl.java:57) at sun.reflect.GeneratedMethodAccessor570.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy102.getPrincipalByPrincipalName(Unknown Source) at sun.reflect.GeneratedMethodAccessor570.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy103.getPrincipalByPrincipalName(Unknown Source)

at org.kuali.rice.kim.impl.identity.IdentityCurrentAndArchivedServiceImpl.getPrincipalByPrincipalName(IdentityCurrentAndArchivedServiceImpl.java:462) at sun.reflect.GeneratedMethodAccessor570.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy102.getPrincipalByPrincipalName(Unknown Source) at sun.reflect.GeneratedMethodAccessor570.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy103.getPrincipalByPrincipalName(Unknown Source) at org.kuali.rice.kim.impl.identity.PersonServiceImpl.getPersonByPrincipalName(PersonServiceImpl.java:191) at org.kuali.rice.krad.UserSession.initPerson(UserSession.java:80) at org.kuali.rice.krad.UserSession.<init>(UserSession.java:70) at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.establishPostProcessorUserSession(PostProcessorServiceImpl.java:387) at org.kuali.rice.krad.service.impl.PostProcessorServiceImpl.afterProcess(PostProcessorServiceImpl.java:235) at sun.reflect.GeneratedMethodAccessor639.invoke(Unknown Source) 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:318) 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 $Proxy35.afterProcess(Unknown Source) at sun.reflect.GeneratedMethodAccessor639.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.kuali.rice.core.framework.persistence.jpa.NoResultExceptionInterceptor.invoke(NoResultExceptionInterceptor.java:33) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy36.afterProcess(Unknown Source) at org.kuali.rice.krad.workflow.postprocessor.KualiPostProcessor.afterProcess(KualiPostProcessor.java:109) at org.kuali.rice.kew.engine.StandardWorkflowEngine.notifyPostProcessorAfterProcess(StandardWorkflowEngine.java:693)

... 58 more

Caused by: org.apache.ojb.broker.PBFactoryException: Transaction synchronization failed - wrong status of external JTA tx. Expected was an 'active' or 'no transaction', found status is 'STATUS_MARKED_ROLLBACK' at org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl.searchForValidTx(Unknown Source) at org.apache.ojb.broker.core.PersistenceBrokerFactorySyncImpl.createPersistenceBroker(Unknown Source) at org.apache.ojb.broker.PersistenceBrokerFactory.createPersistenceBroker(Unknown Source) at org.springmodules.orm.ojb.OjbFactoryUtils.getPersistenceBroker(OjbFactoryUtils.java:86)

... 160 more

WARN 2012-07-16 13:44:20,742 TN:[ajp-bio-192.168.220.188-8019-exec-3] -UID[WORKFLOW-KULUSER] Class: org.apache.cxf.jaxws.interceptors.WebFaultOutInterceptor - Exception occurred while writing fault. org.apache.cxf.interceptor.Fault: Marshalling Error: class org.kuali.rice.kew.api.WorkflowRuntimeException nor any of its super class is known to this context. at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:259) at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:169)

at org.apache.cxf.jaxws.interceptors.WebFaultOutInterceptor.handleMessage(WebFaultOutInterceptor.java:118) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255) at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:99) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:315) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113) at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:188) at org.kuali.rice.ksb.messaging.servlet.CXFServletControllerAdapter.handleRequest(CXFServletControllerAdapter.java:47) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at org.kuali.rice.ksb.messaging.servlet.KSBDispatcherServlet.service(KSBDispatcherServlet.java:138) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307) 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:662)

Caused by: javax.xml.bind.JAXBException: class org.kuali.rice.kew.api.WorkflowRuntimeException nor any of its super class is known to this context. at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:594) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:482) at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:315) at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:244) at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:110) at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:552) at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:248)

... 36 more

Comment by Shannon Hess

[ 17/Jul/12 9:29 PM ]

I fixed this by changing getDelayedServiceAsynchronously in MessageServiceNames.java to use application ID. As far as I can tell, everything is working correctly.

I tested by changing a rule on ENROUTE document 12243751, adding myself and then removing myself to verify I was added to the route log and removed from it.

Route log for 12243751 - https://test.uisapp2.iu.edu/kr2-stg/kew/RouteLog.do?documentId=12243751

There are still errors in the HR logs, but when I changed this particular rule (desc of DEPT: BL-EALC; TYPE-ANY; PLAN-ANY; PTA DELEGATE) it affected 130+ documents and I think many of those documents are not in the HR database and it is erroring when it tries to grab the doc.

Logs from HR - at edu.iu.hrms.hredoc.workflow.service.WorkflowDocumentServiceImpl.getDocument(WorkflowDocumentServiceImpl.java:105) at edu.iu.hrms.hredoc.workflow.service.WorkflowDocumentServiceImpl.findByDocumentHeaderId(WorkflowDocumentServiceImpl.java:275) at org.kuali.rice.krad.service.impl.DocumentServiceImpl.getByDocumentHeaderId(DocumentServiceImpl.java:767)

[EN-2746] Groups tab on rule delegation maintenance documents don't have a lookup for groups

Created: 13/Jul/12 Updated: 10/Sep/12 Resolved: 17/Jul/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 1 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Blocker

Reporter:

Resolution:

Labels:

Eric Westfall

Fixed

None

Not Specified

Assignee:

Votes:

Shannon Hess

0

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Attachments: Screen Shot 2012-07-18 at 8.30.54 AM.jpg at 8.31.11 AM.jpg

Screen Shot 2012-07-18

Issue Links: Discovered discovered by EN-2729 Rice 2.0 Upgrade: Editing Delegations... Closed

Description

From :

Also missing on the "Groups" tab is the Namespace and Name lookups/Inquiry(magnifying glass icon lookup) that is present on our current PRD version. Further even if you enter a group name manually and try to add it it just refreshes the page and does nothing (same as adding persons).

Comments

Comment by Eric Westfall

[ 13/Jul/12 1:31 PM ]

Added Allen, Akash, and Lora as watchers on this one.

Comment by Akash Shah

[ 17/Jul/12 8:55 AM ]

Hi Eric,

Have there been any updates/solutions found for the groups tab lookup issue ? I know our workflow rule managers use this functionality a lot and we'd like this to be addressed before we go live.

Thanks,

Akash

Comment by Eric Westfall

[ 17/Jul/12 9:00 AM ]

Akash, I'm going to bump the priority of this to blocker in order to expedite a fix to it. It should be fairly simple to fix once we are able to pull it up and work on it.

Comment by Shannon Hess

[ 17/Jul/12 5:28 PM ]

Akash,

This has been fixed on the rule lookup screen, the group lookup when editing a rule, and the general delegation rule lookup screen. If you notice any other places I didn't notice just let me know.

Thanks,

Shannon

Comment by Akash Shah

[ 18/Jul/12 8:33 AM ]

Shannon,

I looked at the rule lookup screen and it appears that there is still one more field to add the group lookup to, it's the "Group Reviewer Namespace" field. If you notice that from the added screen shots (PRD v Rice 2.0, the Group Reviewer Namespace) lookup is missing on that field.

Let me know when you have added this and I can re-test. Please re-open the jira if need be.

Thanks,

Akash

Comment by Shannon Hess

[ 18/Jul/12 8:55 AM ]

Akash,

This is a bit of a difference in Kuali Rice 2.0, but the outcome is the same. If you notice in prod, both the group reviewer namespace and the Group Reviewer Name lookup icon take you to the same group lookup and populate the same two fields on the rule lookup when you return a workgroup. In 2.0, there is only one lookup icon on the Group Reviewer Name, but it takes you to the same group lookup as in prod and returns both the group reviewer namespace and the

Group Reviewer Name. So even though there is only one lookup icon now in 2.0, it provides the same lookup and returns the same information as it used to in production.

Thanks,

Shannon

Comment by Akash Shah

[ 18/Jul/12 9:00 AM ]

I did notice that, I guess it does not really matter to have it there then. I just thought you missed adding one since I was comparing PRD vs 2.0 rule lookup screen. It does make sense though, I guess we can leave this as is.

Other than that this looks good to me.

-Akash

Comment by Shannon Hess

[ 18/Jul/12 9:05 AM ]

Great, thanks!

[EN-2729] Rice 2.0 Upgrade: Editing Delegations (Adding, removing and updating persons) and Groups

Created: 10/Jul/12 Updated: 10/Sep/12 Resolved: 13/Jul/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 1 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Blocker

Reporter:

Resolution:

Labels:

Akash Shah

Fixed

None

Not Specified

Assignee:

Votes:

James Bennett

0

Remaining

Estimate:

Time Spent:

Original

Estimate:

Not Specified

Not Specified

Environment: kr2-stg

Attachments: PRD Delegation Edit.jpg screenshot-1.jpg

Rice 2.0 Delegation Edit.jpg

Issue Links: Discovered discovered EN-2746 Groups tab on rule delegation mainten... Closed

Impacted

Client(s):

Description

HRE

In kr2-stg https://test.uisapp2.iu.edu/kr2-stg/portal.do

On the Routing & Identity Management

Document Type Hierarchy and under "HRE EDocs Usability" if you search a delegation (Chart:

NW, Org: BUS) and try to edit one of the result set (I clicked on 'edit' 1380687 Rule ID, Dept:

NW-BUS Type: Any Delegation: Fiscal) and on the page even though there's already has an active userid "sujschae" as the delegate for the Fiscal rule it does not bring her under the (Old) person field that it should have brought in (see the current PRD vs Rice 2.0 screen shot).

Further even if you try to add someone (e.g: I tried to add 'sheburns' and clicked the 'add' button the page just refreshed and the user was not added. Looks like this functionality also seems to be broken.

Also missing on the "Groups" tab is the Namespace and Name lookups/Inquiry(magnifying glass icon lookup) that is present on our current PRD version. Further even if you enter a group name manually and try to add it it just refreshes the page and does nothing (same as adding persons).

Please move this to the Rice team JIRA as it seems to be related to their project.

Thanks,

Akash

Comments

Comment by Lora Dawn Headdy

[ 11/Jul/12 11:27 AM ]

I experience the same behavior with the editing of delegations and missing group lookup in the

TK delegation document. i have experienced the issue with teh added person disappearing, but it started working yesterday.

Comment by Shannon Hess

[ 11/Jul/12 11:38 AM ]

So it seems that once you save a document the missing people or groups appear, and then from then on it works again until a restart of the servers. I'm trying to figure out why this is the case.

Comment by Eric Westfall

[ 13/Jul/12 12:52 AM ]

Just an update on this one, we've been actively looking at this. Seems like a strange issue with a bug in Java actually if you can believe it or not. It has apparently been fixed in Java 7 but none of this stuff has really been tested on Java 7 yet (we're using Java 6) so it doesn't seem wise to try and upgrade to resolve this issue at this stage in the game. We are continuing to investigate a better solution.

Comment by Eric Westfall

[ 13/Jul/12 10:31 AM ]

We believe we have a fix for this. Our plan is to deploy this to the test environments at noon today.

Comment by Akash Shah

[ 13/Jul/12 10:33 AM ]

Great, I'll test this out later in the afternoon after you have deployed the fix.

Thanks,

Akash

Comment by Eric Westfall

[ 13/Jul/12 10:50 AM ]

Sounds good, we'll comment here once it's deployed and ready for testing to let you know when you can try it out.

Comment by Eric Westfall

[ 13/Jul/12 1:05 PM ]

This appears to be working in terms of showing people and allowing them and groups to be added (I didn't try to actually submit the rule because I didn't want to do something which might mess up your testing).

The remaining issue here is the lack of a lookup link on the group fields. I'm going to log those as a separate jira and then resolve this one.

Comment by Lora Dawn Headdy

[ 13/Jul/12 2:12 PM ]

I am able to add a new delegation and the person add works, and when i edit it now pulls in the old value for the person.

Comment by James Bennett

[ 13/Jul/12 2:26 PM ]

Great, I'm going to close this out but please let us know if you come across any other issues like this one. Thanks!

Comment by James Bennett

[ 13/Jul/12 2:26 PM ]

Also, for future reference this was fixed in https://jira.kuali.org/browse/KULRICE-7658

Comment by Lora Dawn Headdy

[ 13/Jul/12 4:33 PM ]

I am experiencing somethign strange with the TK delegation document... When i launch a new maint doc it just stalls at a white screen with the doc header at the top. i've tried a new browser but its still happening. i am attaching a screenshot.

Comment by Akash Shah

[ 13/Jul/12 4:37 PM ]

Hi,

I've Added a new delegation(Personnel Approver) and then tested it out with the person I put in as the delegate and it seems to be working, also when I edit it pulls in the old value as well. I'm going to test this more on Monday but so far it seems to be working.

Thanks,

Akash

Comment by James Bennett

[ 13/Jul/12 4:42 PM ]

Lora,

I seem to be able to open the maintenance documents for TK delegations without issue. Can you give me the steps you're following so I can try to reproduce that issue?

Thanks,

James

Comment by Lora Dawn Headdy

[ 14/Jul/12 1:03 PM ] yesterday no matter what i did the tk delegation docs wld not load. today they are working, not sure what happened.

[EN-2719] Potential Issue in BusClientFailoverProxy causing infinite loop

Created:

09/Jul/12 Updated: 10/Sep/12 Resolved: 17/Jul/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 1 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Blocker

Reporter: Greg Patterson Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Discovered discovered by EN-

2696

Duplicate is duplicated by

EN-

2732

Caused by: java.lang.ClassCastExcepti... Resolved

Error on 'isDynamicRoleMembership' me...

Closed

Description

This is related to , see the attached TVL log there. It appears there is a case where the

BusClientFailoverProxy attempts to call the same service method repeatedly until we get a stack overflow. The failoverproxy should be keeping track of tried endpoints and not retrying them if they fail, so this should not be happening.

Comments

Comment by James Bennett

[ 17/Jul/12 10:32 AM ]

I've fixed this issue in the BusClientFailureProxy. The problem was that each service on the service bus is wrapped in a BusClientFailureProxy which will handle the failure scenario if it fails again after the first failure. If there are multiple endpoints which fail (which there will nearly always be since we run clustered environments if they aren't taken offline properly) this code will go into an infinite loop and round-robin through the available endpoints endlessly.

The fix for this was to detect and remove the BusClientFailureProxy around a service when it handles a failure scenario so the same failure proxy will handle all of the alternate service calls like it should have been doing all along.

[EN-2710] Rice 2.0 Testing: Search Delegations result set (Chart Org Position

Type)

Created: 06/Jul/12 Updated: 10/Sep/12 Resolved: 17/Jul/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 1 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Blocker

Reporter:

Resolution:

Labels:

Akash Shah

Fixed

None

Not Specified

Assignee:

Votes:

Greg Patterson

0

Remaining

Estimate:

Time Spent:

Original

Estimate:

Not Specified

Not Specified

Environment: kr2-stg

Attachments: PRD Search Delegations.jpg Rice 2.0 Seach Delegations.jpg

Impacted

Client(s):

Description

TK

When searching for Delegations via HRE EDocs Usability and clicking Search Delegations. If for example you enter a Chart = BL, Org = BUS and then search, the result set that's being brought forward the fields for (Chart, Org and Position Type) bring in &nbsp ; instead of the the actual Chart Org and Position Type (see the attached screen shots from current PRD vs.

Rice 2.0 search screen), this is happening/true on all chart org search result set.

Thanks,

Akash

P.S: Please move this to the Kuali Rice project if this is related to the workflow team project.

Comments

Comment by Shannon Hess

[ 16/Jul/12 10:26 AM ]

Andy added as a watcher

Comment by Greg Patterson

[ 16/Jul/12 2:11 PM ]

Akash/Andy,

This should be fixed once HR pulls the latest IU Rice jars and redeploys.

Allen, those jars have just finished building and will be in the latest m12 snapshot: "2.1.1-ium12-20120716.*-9"

Thanks,

Greg

Comment by Akash Shah

[ 16/Jul/12 2:18 PM ]

Greg,

This issue was related to "HRE EDocs Usability" search delegations result set for eDocs chart, org and Pos Type, will your fix work when you redeploy for HRE EDocs Usability or does

Allen need to redeploy HREDOC application ?

Thanks,

Akash

Comment by Greg Patterson

[ 16/Jul/12 2:57 PM ]

Akash,

Good question. I believe we'll need to re-deploy the KR environments before this will work properly, and a HR deploy may not be necessary after all. We're planning to do that after 5 today.

Allen, you should still pull jars when you have the chance, of course.

-Greg

Comment by Eric Westfall

[ 17/Jul/12 2:10 AM ]

I checked just now, this appears to be fixed for me when i test it. Please check it out and close this issue if all looks good. Thanks!

Comment by Akash Shah

[ 17/Jul/12 8:00 AM ]

Hi Greg and Eric,

I've tested this out in kr2-stg and the chart, org and position type field values are now pulling in correctly. Please go ahead and close this one out(I do not have the ability to close out a Rice Jira option under the "More Actions" button).

Thanks,

Akash

[EN-2701] Doc search initiator column doesn't link to person inquiry

Created:

05/Jul/12 Updated: 10/Sep/12 Resolved: 03/Aug/12

Status: Resolved

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 2 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Critical

Reporter: Mark Fyffe Assignee: Greg Patterson

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Relates is related to EN-2783 Initiator name on doc search results ... Closed

Relies is relied upon by SCT-4762 Rice 2.0 upgrade eSOC - doc search re... Closed

Description

See . SIS testers report that the initiator name column in Rice 2.0 doc search (kr2-stg) is not a link to person inquiry as is the case in Rice 1.0.3. Please check on the behavior of this column.

Thanks,

Mark

Comments

Comment by Greg Patterson

[ 02/Aug/12 3:39 PM ]

Mark,

This fix is committed and I will redeploy at 5 to the test environments.

Thanks,

Greg

Comment by Greg Patterson

[ 02/Aug/12 5:57 PM ]

Mark,

This is out in the kr and kr2 environments and appears to be working to me. If you could confirm that'd be great.

Thanks,

Greg

Comment by Mark Fyffe

[ 03/Aug/12 9:46 AM ]

This looks OK to me.

Thanks,

Mark

[EN-2674] After debugging role and permission performance issues, make it so we can turn off the performance logging for this code

Created: 02/Jul/12 Updated:

10/Sep/12 Resolved: 18/Jul/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

Fix Version/s: Release Candidate 1 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Task Priority: Critical

Reporter:

Resolution:

Labels:

None

Eric Westfall

Fixed

None

Not Specified

Assignee:

Votes:

James Bennett

0

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Comments

Comment by James Bennett

[ 18/Jul/12 11:58 AM ]

I've made the necessary changes so that the performance logging for the KIM services is set to log at the debug level so that we can shut it off in log4j.

[EN-2647] Rice 2.0 -- Searchable XmlAttribute not working

Created: 20/Jun/12 Updated:

10/Sep/12 Resolved: 10/Jul/12

Status: Closed

Project: Kuali Rice

Component/s: Document Search

Affects

Version/s:

None

Fix Version/s: Release Candidate 1 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Critical

Reporter: Melinda J. Blakesley Assignee: Shannon Hess

Resolution:

Labels:

Remaining

Estimate:

Time Spent:

Fixed

None

Not Specified

Votes: 0

Original

Estimate:

Attachments:

Not Specified

Not Specified

Impacted

Client(s):

Description

SearchAttributeMissing.docm

SIS

Rule Attribute = SIS.EmplidSearchAttribute – defined as a SearchableXmlAttribute

Document type = SIS – has SIS.EmplidSearchAttribute

(-<attributes> -<attribute> <name>SIS.EmplidSearchAttribute</name> </attribute>

</attributes>)

But emplid is not showing up on the document search – see attachment. ()

Document type = SIS.SR (<parent>SIS</parent>) – uses SIS.EmplidSearchAttribute in security

( security> <routeLogAuthenticated>true</routeLogAuthenticated> <searchableAttribute name="emplid" idType="emplid"/> <groupName namespace="ADS">BL-UITS-SIS-SR-E-

APPROVER-1</groupName> <groupName namespace="ADS">BL-UITS-SIS-SR-E-

VIEWER-1</groupName> </security>) results in students not being able to see their docs in OneStart Track My eDocs and in Doc

Search results for students. ()

Comments

Comment by Sandy Thompson

[ 29/Jun/12 2:31 PM - Visible by: jira-users ]

Group,

Is there any update on this? We have two JIRAs out there that hinge on this. Thanks. Sandy

Comment by Greg Patterson

[ 29/Jun/12 6:02 PM ]

This is for reference on our side, but it looks like the processing is happening here and it's just rendering incorrectly.

For example, the field is actually on the page but is rendered hidden:

<tr>

<input type="hidden" name='documentAttribute.emplid' value='' />

Not sure yet what would cause this but will look into it.

Comment by Shannon Hess

[ 03/Jul/12 12:49 AM ]

The SIS.EmplidSearchAttribute serchableXmlAttribute was set up so that its visibility was false. I have changed this to true and re-ingested, which has corrected the document search issue so Student Emplid is now one of the search criteria. Is there a reason that this attribute needs to have the visibility set to false?

<ruleAttribute>

<name>SIS.EmplidSearchAttribute</name>

<className>org.kuali.rice.kew.docsearch.xml.StandardGenericXMLSearchableAttribute</className>

<label>SIS.EmplidSearchAttribute</label>

<description>SIS.EmplidSearchAttribute</description>

<type>SearchableXmlAttribute</type>

<searchingConfig>

<fieldDef name="emplid" title="Student Emplid">

<display>

<type>text</type>

</display>

<visibility>

<column visible="true" />

</visibility>

<searchDefinition />

<fieldEvaluation>

<xpathexpression>//emplid</xpathexpression>

</fieldEvaluation>

</fieldDef>

</searchingConfig>

</ruleAttribute>

Regarding issue , I'm not sure I'm understanding the problem exactly. The example in the attached document in explains that branblac gets the "one row filtered for security purposes” error message when searching for 9057283 in stg. Should that user be able to see the document because emplid on the document ID is 0002385080?

Comment by Melinda J. Blakesley

[ 03/Jul/12 8:37 AM ]

Shannon,

Thanks. The emplid is now showing up as a searchable field. I can't think of any reason we would ever want emplid to not be visible.

The second problem appears to be on SIS's side. I'll let you know if it isn't.

Thanks again. m

Comment by Shannon Hess

[ 03/Jul/12 8:55 AM ]

I have added this updated rule attribute to be ingested after the upgrade in /iu-rice/upgrade/1.0.3 to 2.1.1/ingest after upgrade/SIS update ATTR.xml

Comment by Melinda J. Blakesley

[ 03/Jul/12 10:23 AM ]

Shannon,

Actually the clients aren't happy. The emplid should be searchable BUT it shouldn't display in the returned results. m

Comment by Eric Westfall

[ 03/Jul/12 10:25 AM ]

What was probably set up there was visibility=false for the column in the result set. It's possible shannon this is a bug in the xml search attributes for rice 2 where it's not interpreting the configuration correctly.

Comment by Shannon Hess

[ 03/Jul/12 10:30 AM ]

Eric,

Yes, it looks like if <column visible="false" /> it also removes the field from the document search criteria. I'll look into why that is the case.

Thanks,

Shannon

Comment by Shannon Hess

[ 10/Jul/12 5:31 PM ]

This bug has been fixed here at IU. I reverted the original change to SIS.EmplidSearchAttribute, so column visible="false" again but the Student Emplid field is available in the search criteria.

[EN-2634] null pointer exception is thrown in

DocumentSecurityServiceImpl.getDocumentTypeSecurity() if doc type is not found

Created: 13/Jun/12 Updated: 10/Sep/12 Resolved: 13/Jun/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

Reporter:

Labels:

Resolution:

None

Fix Version/s: Milestone 10 - r2.0.2

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Major

Shannon Hess

Fixed

None

Assignee:

Votes:

Shannon Hess

0

Remaining

Estimate:

Not Specified

Time Spent:

Original

Estimate:

Description

Not Specified

Not Specified

2012-06-13 22:15:58,957 [ajp-bio-/192.168.220.49-8009-exec-41] D: U:jihokim WARN org.kuali.rice.kew.doctype.service.impl.DocumentSecurityServiceImpl t able to retrieve DocumentTypeSecurity from remote system for documentTypeName: EDENSERVICE-DOCS.DocumentType java.lang.NullPointerException at org.kuali.rice.kew.doctype.service.impl.DocumentSecurityServiceImpl.getDocumentTypeSecurity(DocumentSecurityServiceImpl.java:315) at org.kuali.rice.kew.doctype.service.impl.DocumentSecurityServiceImpl.checkAuthorizations(DocumentSecurityServiceImpl.java:103) at org.kuali.rice.kew.doctype.service.impl.DocumentSecurityServiceImpl.routeLogAuthorized(DocumentSecurityServiceImpl.java:75) at org.kuali.rice.kew.routelog.web.RouteLogAction.execute(RouteLogAction.java:86) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor$1.doInTransaction(KualiRequestProcessor.java:486) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processActionPerform(KualiRequestProcessor.java:482) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processFormActionAndForward(KualiRequestProcessor.java:215) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.strutsProcess(KualiRequestProcessor.java:202) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:89) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:78) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:62)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:88) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:76) at edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:134) at edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:74) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:271) at edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410) at edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336) at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:162) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) 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:662)

Comments

Comment by Shannon Hess

[ 13/Jun/12 10:26 PM ]

Changed code to account for the doc type being null so null pointer exception is not thrown.

[EN-2627] Rice 2.0 Upgrade: Routing & Identity Management Document Type

Hierarchy (Workflow, Delegations, Rule Maintainance) Not working

Created:

23/May/12 Updated: 10/Sep/12 Resolved: 12/Jul/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

Fix Version/s: Milestone 11 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Blocker

Reporter:

Resolution:

Labels:

None

Akash Shah

Fixed

None

Not Specified

Assignee:

Votes:

Eric Westfall

0

Remaining

Estimate:

Time Spent:

Original

Estimate:

Not Specified

Not Specified

Environment: CNV

Attachments: PRD Screen.jpg RICE 2.0 Screen.jpg

Issue Links: Fix fixes EN-2626 Rice 2.0 Upgrade: Add Delegation not

...

Resolved

Relates relates to EN-2670 Resolved is related to

HREDOC-

2350

Rule template missing in hierarchy ma...

Rice 2.0 Upgrade: Add a Rule Not

Working

Closed

Description

This might have to be passed on to the workflow team but creating a JIRA here and you can pass it on to them but when I go to the "Routing & Identity Management Document Type Hierarchy" thru the https://test.uisapp2.iu.edu/kr2-snd/portal.do

page to maintain rules and delegations and then clicking the "HRE EDocs Usability" and then clicking the Search Delegations link there are missing fields(see PRD vs RICE 2.0 screens):

Chart

Org

Position Type

Also when you are searching on the HRE EDocs Usability it should default in the "HREEDocs v2" as the Document Type.

Further when you search for a delegation and then try to click the "Delegation Rule Id" rule, I receive the below error, also not working is the "edit" or "copy" links and when I click that just receive a blank page:

This is a non-production environment (Test SND)

Incident Report

Please use the Incident Report form below to report the problems

This information will be forwarded to our support team. Please describe what action you were taking when the problem occurred

Document Id

Error Message

The system has encountered an error and is unable to complete your request at this time. Please provide more information regarding this error by completing this Incident Report.

Error Details: Caught error attempting to load WorkflowAttribute class: edu.iu.hrms.hredoc.workflow.attribute.HRMSFiscalUpaaDelegationAttribute

User Input

***************** Stack Trace-Only shown when not in production **************** java.lang.RuntimeException: Caught error attempting to load WorkflowAttribute class: edu.iu.hrms.hredoc.workflow.attribute.HRMSFiscalUpaaDelegationAttribute at org.kuali.rice.kew.rule.bo.RuleTemplateAttributeBo.isWorkflowAttribute(RuleTemplateAttributeBo.java:128) at org.kuali.rice.kew.rule.web.WebRuleUtils.getRuleTemplateRows(WebRuleUtils.java:299) at org.kuali.rice.kew.rule.web.WebRuleUtils.customizeSections(WebRuleUtils.java:265) at org.kuali.rice.kew.rule.bo.RuleBaseValuesInquirableImpl.getSections(RuleBaseValuesInquirableImpl.java:66) at org.kuali.rice.kns.web.struts.action.KualiInquiryAction.populateSections(KualiInquiryAction.java:407) at org.kuali.rice.kns.web.struts.action.KualiInquiryAction.continueWithInquiry(KualiInquiryAction.java:211) at org.kuali.rice.kns.web.struts.action.KualiInquiryAction.start(KualiInquiryAction.java:133) 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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269) at org.kuali.rice.kns.web.struts.action.KualiAction.dispatchMethod(KualiAction.java:168) at org.kuali.rice.kns.web.struts.action.KualiAction.execute(KualiAction.java:129) at org.kuali.rice.kns.web.struts.action.KualiInquiryAction.execute(KualiInquiryAction.java:110) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor$1.doInTransaction(KualiRequestProcessor.java:486) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processActionPerform(KualiRequestProcessor.java:482) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processFormActionAndForward(KualiRequestProcessor.java:215) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.strutsProcess(KualiRequestProcessor.java:202) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:89) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:78) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:62) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:88) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:76) at edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:134) at edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:74) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:271) at edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410) at edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336) at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315) at org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:162) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219) at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:300) 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:662)

Caused by: java.lang.RuntimeException: Caught error attempting to load attribute class: edu.iu.hrms.hredoc.workflow.attribute.HRMSFiscalUpaaDelegationAttribute at org.kuali.rice.kew.rule.bo.RuleTemplateAttributeBo.getAttribute(RuleTemplateAttributeBo.java:115) at org.kuali.rice.kew.rule.bo.RuleTemplateAttributeBo.isWorkflowAttribute(RuleTemplateAttributeBo.java:121)

... 78 more

Caused by: org.kuali.rice.kew.api.WorkflowRuntimeException: Could not find attribute HRMSFiscalUpaaDelegation v2

at org.kuali.rice.kew.rule.bo.RuleTemplateAttributeBo.getAttribute(RuleTemplateAttributeBo.java:108)

... 79 more

Comments

Comment by Shannon Hess

[ 26/Jun/12 11:54 PM ]

Link is now corrected, but there are issues with loading the HR attributes and that is causing the stack trace in here and in the following page - https://test.uisapp2.iu.edu/kr2-stg/kr/lookup.do?businessObjectClassName=org.kuali.rice.kew.rule.RuleDelegationBo&returnLocation=https%3a%2f%2ftest.uisapp2.iu.edu%2fkr2stg%2fportal.do&hideReturnLink=true&methodToCall=start&docFormKey=88888888&delegationRule.documentType.name=HREEDocs+v2&delegationRule.ruleTemplate.name=HRMS+Fiscal+UPAA+Delegation+v2

Comment by Shannon Hess

[ 27/Jun/12 8:08 AM ]

I contributed the changes for Search Delegations link in https://jira.kuali.org/browse/KULRICE-7551

Comment by Greg Patterson

[ 29/Jun/12 4:06 PM ]

The underlying issue here will require some re-architecting of the rule attribute handling and possible implementation of a mediator service. Handing this off to Eric to work on as per discussions.

Comment by Allen Fox

[ 02/Jul/12 9:12 AM ]

Appears to be working. Resolving for more functional user verification.

Comment by Akash Shah

[ 05/Jul/12 9:46 AM ]

So now the Chart and Org fields appear when clicking the "Search Delegations" link in STG but when I enter e.g: BL and BUS on the Chart and Org and click search the below error is received. I do not have a way to reopen this JIRA, so please let me know if you want me to create a new one, if not please re-open the JIRA from your end.

HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception java.lang.RuntimeException: Caught exception instantiating new edu.iu.hrms.hredoc.workflow.attribute.HRMSFiscalUpaaDelegationAttribute org.kuali.rice.kew.rule.bo.RuleTemplateAttribute.getWorkflowAttribute(RuleTemplateAttribute.java:145) org.kuali.rice.kew.rule.bo.RuleDelegationLookupableHelperServiceImpl.checkForAdditionalFields(RuleDelegationLookupableHelperServiceImpl.java:122) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

$Proxy917.checkForAdditionalFields(Unknown Source) org.kuali.rice.kns.lookup.KualiLookupableImpl.checkForAdditionalFields(KualiLookupableImpl.java:223) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

java.lang.reflect.Method.invoke(Method.java:597) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

$Proxy918.checkForAdditionalFields(Unknown Source) org.kuali.rice.kns.web.struts.form.LookupForm.populate(LookupForm.java:287) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processPopulate(KualiRequestProcessor.java:304) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:103) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:80) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:115) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:273) edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:488) edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:422) edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:401) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:266) org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:164) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66) edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:33) edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) root cause org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http:/hredoc-stg/remoting/ObjectRemoterService]; nested exception is java.lang.IllegalArgumentException:

Host name may not be null org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:211) org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:144) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

$Proxy1086.getRemotedClassURL(Unknown Source) sun.reflect.GeneratedMethodAccessor936.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.kuali.rice.ksb.messaging.bam.BAMClientProxy.invokeInternal(BAMClientProxy.java:55) org.kuali.rice.core.proxy.BaseInvocationHandler.invoke(BaseInvocationHandler.java:59)

$Proxy1166.getRemotedClassURL(Unknown Source) sun.reflect.GeneratedMethodAccessor936.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.kuali.rice.ksb.messaging.BusClientFailureProxy.invokeInternal(BusClientFailureProxy.java:77) org.kuali.rice.core.proxy.BaseInvocationHandler.invoke(BaseInvocationHandler.java:59)

$Proxy1166.getRemotedClassURL(Unknown Source) org.kuali.rice.ksb.messaging.RemoteResourceServiceLocatorImpl.getObject(RemoteResourceServiceLocatorImpl.java:376)

org.kuali.rice.core.resourceloader.ResourceLoaderContainer.getObject(ResourceLoaderContainer.java:139) org.kuali.rice.core.resourceloader.BaseResourceLoader.getObject(BaseResourceLoader.java:93) org.kuali.rice.core.resourceloader.ResourceLoaderContainer.getObject(ResourceLoaderContainer.java:139) org.kuali.rice.kew.rule.bo.RuleTemplateAttribute.getWorkflowAttribute(RuleTemplateAttribute.java:138) org.kuali.rice.kew.rule.bo.RuleDelegationLookupableHelperServiceImpl.checkForAdditionalFields(RuleDelegationLookupableHelperServiceImpl.java:122) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

$Proxy917.checkForAdditionalFields(Unknown Source) org.kuali.rice.kns.lookup.KualiLookupableImpl.checkForAdditionalFields(KualiLookupableImpl.java:223) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

$Proxy918.checkForAdditionalFields(Unknown Source) org.kuali.rice.kns.web.struts.form.LookupForm.populate(LookupForm.java:287) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processPopulate(KualiRequestProcessor.java:304) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:103) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:80) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:115) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:273) edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:488) edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:422) edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:401) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:266) org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:164) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66) edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:33) edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) root cause

java.lang.IllegalArgumentException: Host name may not be null org.apache.commons.httpclient.HttpHost.<init>(HttpHost.java:67) org.apache.commons.httpclient.HttpHost.<init>(HttpHost.java:106) org.apache.commons.httpclient.HttpMethodBase.setURI(HttpMethodBase.java:276) org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:217) org.apache.commons.httpclient.methods.ExpectContinueMethod.<init>(ExpectContinueMethod.java:92) org.apache.commons.httpclient.methods.EntityEnclosingMethod.<init>(EntityEnclosingMethod.java:118) org.apache.commons.httpclient.methods.PostMethod.<init>(PostMethod.java:105) org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor.createPostMethod(CommonsHttpInvokerRequestExecutor.java:150) org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor.doExecuteRequest(CommonsHttpInvokerRequestExecutor.java:126) org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:136) org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:191) org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:173) org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:141) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

$Proxy1086.getRemotedClassURL(Unknown Source) sun.reflect.GeneratedMethodAccessor936.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.kuali.rice.ksb.messaging.bam.BAMClientProxy.invokeInternal(BAMClientProxy.java:55) org.kuali.rice.core.proxy.BaseInvocationHandler.invoke(BaseInvocationHandler.java:59)

$Proxy1166.getRemotedClassURL(Unknown Source) sun.reflect.GeneratedMethodAccessor936.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.kuali.rice.ksb.messaging.BusClientFailureProxy.invokeInternal(BusClientFailureProxy.java:77) org.kuali.rice.core.proxy.BaseInvocationHandler.invoke(BaseInvocationHandler.java:59)

$Proxy1166.getRemotedClassURL(Unknown Source) org.kuali.rice.ksb.messaging.RemoteResourceServiceLocatorImpl.getObject(RemoteResourceServiceLocatorImpl.java:376) org.kuali.rice.core.resourceloader.ResourceLoaderContainer.getObject(ResourceLoaderContainer.java:139) org.kuali.rice.core.resourceloader.BaseResourceLoader.getObject(BaseResourceLoader.java:93) org.kuali.rice.core.resourceloader.ResourceLoaderContainer.getObject(ResourceLoaderContainer.java:139) org.kuali.rice.kew.rule.bo.RuleTemplateAttribute.getWorkflowAttribute(RuleTemplateAttribute.java:138) org.kuali.rice.kew.rule.bo.RuleDelegationLookupableHelperServiceImpl.checkForAdditionalFields(RuleDelegationLookupableHelperServiceImpl.java:122) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

$Proxy917.checkForAdditionalFields(Unknown Source) org.kuali.rice.kns.lookup.KualiLookupableImpl.checkForAdditionalFields(KualiLookupableImpl.java:223) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)

org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

$Proxy918.checkForAdditionalFields(Unknown Source) org.kuali.rice.kns.web.struts.form.LookupForm.populate(LookupForm.java:287) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processPopulate(KualiRequestProcessor.java:304) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:103) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:80) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:115) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:273) edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:488) edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:422) edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:401) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:266) org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:164) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66) edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:33) edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30) note The full stack trace of the root cause is available in the Apache Tomcat/7.0.21 logs.

Apache Tomcat/7.0.21

Comment by Akash Shah

[ 05/Jul/12 9:51 AM ]

Also STG seems to be really wonky, I get multiple HTTP 500 errors when I click on the search delegations or any other link. After clicking on other links and then the search delegations the page seems to reappear but once the error is received clicking on any links on the "HRE EDocs Usability" section seems to yield an error message.

Thanks,

Akash

Comment by Shannon Hess

[ 05/Jul/12 9:58 AM ]

Akash,

It looks like there is something wrong with your URLS - The beginning of the URL should be https://test.uisapp2.iu.edu/hredoc2-stg/remoting/soap/kew/v2_0 , not http:/hredoc-stg/remoting/ObjectRemoterService like it is in your stack trace. However, the services on the service registry look fine. Are you sure you are pointed at kr2-stg?

From stack trace above - Could not access HTTP invoker remote service at [http:/hredoc-stg/remoting/ObjectRemoterService]

Thanks,

Shannon

Comment by Shannon Hess

[ 05/Jul/12 10:00 AM ]

Akash,

I'm seeing those services on KR@KR1STG so you may just be pointing to the wrong KR database

{HR}ObjectRemoterService - http:/hredoc-stg/remoting/ObjectRemoterService

Shannon

Comment by Shannon Hess

[ 05/Jul/12 10:06 AM ]

Akash,

I'm sorry for the multiple updates. I just realized that you may be testing in https://test.uisapp2.iu.edu/kr-stg rather than https://test.uisapp2.iu.edu/kr2-stg . Can you try again in https://test.uisapp2.iu.edu/kr2-stg and see if that works for you?

Thanks,

Shannon

Comment by Akash Shah

[ 05/Jul/12 10:09 AM ]

Hi Shannon,

Sure, I'll give this a try there and will let you know what I find out.

Thanks,

Akash

Comment by Akash Shah

[ 05/Jul/12 10:21 AM ]

Thanks Shannon, Initial testing looks good and I'm able to pull up the search delegations, links and lookups seem to work. I'll do some more testing throughout the day and let you know if I find any further issues.

-Akash

Comment by Akash Shah

[ 11/Jul/12 3:16 PM ]

Shannon/Eric,

Can you take a look at the HRE EDocs Usability and under it if you click HRMS Review Hierarchy Approval "Search" and HRMS Review Hierarchy Acknowledgement "Search" the Chart and Org fields are not present on the screen when testing in https://test.uisapp2.iu.edu/kr2-stg/portal.do

.

I do not have a way to re-open this jira so can you re-open this so that this can also be fixed ?

Thanks,

Akash

Comment by Shannon Hess

[ 11/Jul/12 3:26 PM ]

Chart and Org search fields are missing for the search screen but not the Search Delegations screen

Comment by Shannon Hess

[ 12/Jul/12 6:06 AM ]

Akash,

The chart and org fields are appearing again for the search screens. Can you verify everything looks good to you?

Thanks,

Shannon

Comment by Shannon Hess

[ 12/Jul/12 6:07 AM ]

To get this to work, I had to revert a change made for https://jira.kuali.org/browse/KULRICE-7551 , revision 33198

Comment by Akash Shah

[ 12/Jul/12 9:04 AM ]

Hi Shannon,

I have tested these out now and the Chart and Org search fields are now showing up correctly on the search links.

Thanks,

Akash

[EN-2598] Change the MessageServiceInvoker to recheck the database to see if the message still exists before processing

Created: 25/May/12 Updated: 10/Sep/12 Resolved: 23/Jul/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Release Candidate 1 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Critical

Reporter:

Resolution:

Labels:

James Bennett

Fixed

None

Not Specified

Assignee:

Votes:

James Bennett

0

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Comments

Comment by James Bennett

[ 25/May/12 2:49 PM ]

When we get a large backlog of messages in the message queue it would be good if we could remove some of them to prevent the message from being processed. If we add this check before the message is processed then it should avoid unnecessary processing on the server and could help the server catch back up from a back log a lot quicker.

Comment by Eric Westfall

[ 20/Jul/12 4:48 PM ]

Moving up from the 1.0.3 version since I don't imagine we will be able to get to this prior to the

August 12th upgrade.

Comment by James Bennett

[ 23/Jul/12 11:09 AM ]

This change is now in place and I tested it locally to ensure it works as expected

[EN-2551] PersonService#getPersonByEmployeeId doesn't like non-employees

Created: 27/Apr/12 Updated: 10/Sep/12

Status: Reopened

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Rice 2.0 Implementation , Unqueued KFS Issues , Post 2.0 Contribution

Type: Problem Report Priority: Critical

Reporter: James Smith Assignee: Greg Patterson

Resolution: Unresolved

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Fix fixes FSKD-

2539

REG kfs_pdp_inactivate_payee_ach_acco...

Closed

Relies is relied upon by

FSKD-

2141

KFS data for DV documents did not con...

Reopened

Impacted

Client(s):

Description

KFS

I'm pretty sure this is a foundation Rice problem; furthermore, it doesn't seem to be criical for us because IdentityService#getEntityByEmployeeId seems not to blow up in the same way. But at any rate, I saw PersonService#getPersonByEmployeeId blow up with the stack trace below and I'm betting it just can't find the employee id we send at that point.

2012-04-27 14:33:30,034 [scheduler_Worker-1] u:/d: ERROR org.kuali.kfs.sys.batch.Job :: Exception occured executing step java.lang.IllegalArgumentException: contract was null at org.kuali.rice.kim.api.identity.principal.Principal$Builder.create(Principal.java:142) at org.kuali.rice.kim.api.identity.principal.Principal$Builder$create.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.kuali.rice.kim.api.identity.principal.Principal$Builder$create$0.call(Unknown Source) at org.kuali.rice.kim.impl.identity.EntityDefaultInfoCacheBo.convertCacheToEntityDefaultInfo(EntityDefaultInfoCacheBo.groovy:118) at org.kuali.rice.kim.service.impl.IdentityArchiveServiceImpl.getEntityDefaultFromArchiveByEmployeeId(IdentityArchiveServiceImpl.java:147) at org.kuali.rice.kim.impl.identity.IdentityCurrentAndArchivedServiceImpl.getEntityDefaultByEmployeeId(IdentityCurrentAndArchivedServiceImpl.java:325) at sun.reflect.GeneratedMethodAccessor549.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213)

at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy103.getEntityDefaultByEmployeeId(Unknown Source) at sun.reflect.GeneratedMethodAccessor549.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy104.getEntityDefaultByEmployeeId(Unknown Source) at org.kuali.rice.kim.impl.identity.PersonServiceImpl.getPersonByEmployeeId(PersonServiceImpl.java:215) at edu.iu.ebs.kfs.sys.batch.service.impl.RoleConversionServiceImpl.generateSqlForReviewerRoles(RoleConversionServiceImpl.java:512) at edu.iu.ebs.kfs.sys.batch.ReviewerRoleConversionStep.customExecute(ReviewerRoleConversionStep.java:11) at edu.iu.ebs.kfs.sys.batch.UpdateDatabaseStepBase.execute(UpdateDatabaseStepBase.java:65) at org.kuali.kfs.sys.batch.Job.runStep(Job.java:175) at org.kuali.kfs.sys.batch.Job.execute(Job.java:121) at org.quartz.core.JobRunShell.run(JobRunShell.java:216) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)

2012-04-27 14:33:30,042 [scheduler_Worker-1] u:/d: INFO org.kuali.kfs.sys.batch.service.impl.SchedulerServiceImpl :: Updating status of job: iu.applyAuthorizationJob=Failed

2012-04-27 14:33:30,043 [scheduler_Worker-1] u:/d: INFO org.quartz.core.JobRunShell :: Job unscheduled.iu.applyAuthorizationJob threw a

JobExecutionException: org.quartz.JobExecutionException: Caught exception in iu.applyAuthorizationJob [See nested exception: java.lang.IllegalArgumentException: contract was null] at org.kuali.kfs.sys.batch.Job.execute(Job.java:140) at org.quartz.core.JobRunShell.run(JobRunShell.java:216) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)

Caused by: java.lang.IllegalArgumentException: contract was null at org.kuali.rice.kim.api.identity.principal.Principal$Builder.create(Principal.java:142) at org.kuali.rice.kim.api.identity.principal.Principal$Builder$create.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.kuali.rice.kim.api.identity.principal.Principal$Builder$create$0.call(Unknown Source) at org.kuali.rice.kim.impl.identity.EntityDefaultInfoCacheBo.convertCacheToEntityDefaultInfo(EntityDefaultInfoCacheBo.groovy:118) at org.kuali.rice.kim.service.impl.IdentityArchiveServiceImpl.getEntityDefaultFromArchiveByEmployeeId(IdentityArchiveServiceImpl.java:147) at org.kuali.rice.kim.impl.identity.IdentityCurrentAndArchivedServiceImpl.getEntityDefaultByEmployeeId(IdentityCurrentAndArchivedServiceImpl.java:325) at sun.reflect.GeneratedMethodAccessor549.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy103.getEntityDefaultByEmployeeId(Unknown Source) at sun.reflect.GeneratedMethodAccessor549.invoke(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66)

Comments at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy104.getEntityDefaultByEmployeeId(Unknown Source) at org.kuali.rice.kim.impl.identity.PersonServiceImpl.getPersonByEmployeeId(PersonServiceImpl.java:215) at edu.iu.ebs.kfs.sys.batch.service.impl.RoleConversionServiceImpl.generateSqlForReviewerRoles(RoleConversionServiceImpl.java:512) at edu.iu.ebs.kfs.sys.batch.ReviewerRoleConversionStep.customExecute(ReviewerRoleConversionStep.java:11) at edu.iu.ebs.kfs.sys.batch.UpdateDatabaseStepBase.execute(UpdateDatabaseStepBase.java:65) at org.kuali.kfs.sys.batch.Job.runStep(Job.java:175) at org.kuali.kfs.sys.batch.Job.execute(Job.java:121)

... 2 more

Comment by James Smith

[ 27/Apr/12 4:52 PM ]

Added Heather as a watcher. If a unit test would be helpful I can try to create one. Thanks!

Comment by Shannon Hess

[ 29/May/12 9:52 AM ]

James,

Is the priority on this issue still major?

Thanks,

Shannon

Comment by James Smith

[ 29/May/12 10:32 AM ]

I believe it's higher because it's negatively impacting another aspect of conversion. I'll verify.

Comment by James Smith

[ 29/May/12 11:26 AM ]

Actually, this method is called throughout KFS. Hopefully it won't run into bad data, but if it does, we probably wouldn't want an exception thrown; we'd like like a null Person returned, which was the pre-Rice 2.0 semantics. (Or, if foundation added a PersonService#isValidEmployeeId method and we contributed a check against that on all the foundation kfs calls...). At any rate, I'll bump this up to critical - it's not blocking testing but I can see the potential for danger in this method as it is currently.

Comment by Eric Westfall

[ 29/May/12 5:33 PM ]

This method should return null if there is no Person for the given id. I suspect resolution of this jira is as simple as adding a null check into the code.

Comment by Greg Patterson

[ 21/Jun/12 4:24 PM ]

This was due to an issue in the EntityDefaultInfoCacheBo when attempting to build with an entry containing only employee/principal ID and no principal name.

I've fixed this locally and it should be in the next build, James.

Eric, should I make this change in foundation 2.1.1 ?

Comment by Eric Westfall

[ 21/Jun/12 6:29 PM ]

Greg, please enter a jira into foundation Rice for this. I'd like to discuss with the KTI on how we should handle principals with no principal names.

Comment by Greg Patterson

[ 22/Jun/12 4:18 PM ]

Filed with foundation: https://jira.kuali.org/browse/KULRICE-7529

Comment by Greg Patterson

[ 25/Jun/12 9:48 AM ]

James,

This should be fixed in the latest iu rice client jars and a foundation issue has been created to get this done over there.

I'm going to close this out, but you can reopen if you run into this again somewhere.

-Gregq

Comment by James Smith

[ 25/Jun/12 10:04 AM ]

Thanks Greg. We'll reopen if there are any issues.

Comment by Jeff Morris

[ 23/Aug/12 2:34 PM ]

I believe this is happening again, or if not something very similar is happening. Although I'm not sure why KFS would be querying for employee data on a payee record we know not to be an employee, it sounds like from this jira that even if it does it shouldn't cause an exception.

Here's what I'm getting:

2012-08-23 11:27:43,274 [http-8080-5] u:jbmorris/d: DEBUG org.kuali.rice.kew.util.PerformanceLogger :: Time: 157ms, IURoleServiceImpl: principalHasRole (principalId=0001443240, roleIds=[10088, 54, 61], qualification={componentName=DisbursementVoucherDocument, principalId=0001443240, routeNodeName=, financialDocumentTotalAmount=300.00, documentNumber=ZB6393912, campusCode=BL, namespaceCode=KFS-FP, documentTypeName=DV, routeStatusCode=F})

2012-08-23 11:27:43,274 [http-8080-5] u:jbmorris/d: DEBUG org.kuali.rice.kew.util.PerformanceLogger :: Time: 329ms, IUPermissionServiceImpl: isAuthorizedByTemplate (principalId=0001443240, namespaceCode=, KR-NS, permissionTemplateName=Open Document, permissionDetails=

{componentName=DisbursementVoucherDocument, routeNodeName=, documentNumber=ZB6393912, namespaceCode=KFS-FP, documentTypeName=DV, routeStatusCode=F}, qualification={componentName=DisbursementVoucherDocument, principalId=0001443240, routeNodeName=, financialDocumentTotalAmount=300.00, documentNumber=ZB6393912, campusCode=BL, namespaceCode=KFS-FP, documentTypeName=DV, routeStatusCode=F})

2012-08-23 11:27:43,555 [http-8080-5] u:jbmorris/d: INFO p6spy :: 08-23-12 11:27:43,555|266|20|statement|SELECT

A0.FIN_COA_CD,A0.ACCOUNT_NBR,A0.ACCOUNT_NM,A0.ACCT_FSC_OFC_UID,A0.ACCT_SPVSR_UNVL_ID,A0.ACCT_MGR_UNVL_ID,A0.ORG_CD,A0.ACCT_TYP_CD,A0.ACCT_PHYS_CMP_CD,A0.SUB_FUND_GRP_CD,A0.ACCT_FRNG_BNFT_CD,A0.FIN_HGH_ED_FUNC_CD,A0.ACCT_RST

RC_STAT_CD,A0.ACCT_RSTRC_STAT_DT,A0.ACCT_CITY_NM,A0.ACCT_STATE_CD,A0.ACCT_STREET_ADDR,A0.ACCT_ZIP_CD,A0.RPTS_TO_FIN_COA_CD,A0.RPTS_TO_ACCT_NBR,A0.ACCT_CREATE_DT,A0.ACCT_EFFECT_DT,A0.ACCT_EXPIRATION_DT,A0.CONT_FIN_COA_CD,A0.CON

T_ACCOUNT_NBR,A0.ENDOW_FIN_COA_CD,A0.ENDOW_ACCOUNT_NBR,A0.CONTR_CTRL_FCOA_CD,A0.CONTR_CTRLACCT_NBR,A0.INCOME_FIN_COA_CD,A0.INCOME_ACCOUNT_NBR,A0.ACCT_ICR_TYP_CD,A0.AC_CSTM_ICREXCL_CD,A0.FIN_SERIES_ID,A0.ACCT_IN_FP_CD,A0.BD

GT_REC_LVL_CD,A0.ACCT_SF_CD,A0.ACCT_PND_SF_CD,A0.FIN_EXT_ENC_SF_CD,A0.FIN_INT_ENC_SF_CD,A0.FIN_PRE_ENC_SF_CD,A0.FIN_OBJ_PRSCTRL_CD,A0.CG_CFDA_NBR,A0.ACCT_OFF_CMP_IND,A0.CG_ACCT_RESP_ID,A0.ACCT_CLOSED_IND,A0.OBJ_ID,A0.VER_NBR,A0.LBR_

BEN_RT_CAT_CD FROM CA_ACCOUNT_T A0 WHERE (A0.FIN_COA_CD = ?) AND A0.ACCOUNT_NBR = ?|SELECT

A0.FIN_COA_CD,A0.ACCOUNT_NBR,A0.ACCOUNT_NM,A0.ACCT_FSC_OFC_UID,A0.ACCT_SPVSR_UNVL_ID,A0.ACCT_MGR_UNVL_ID,A0.ORG_CD,A0.ACCT_TYP_CD,A0.ACCT_PHYS_CMP_CD,A0.SUB_FUND_GRP_CD,A0.ACCT_FRNG_BNFT_CD,A0.FIN_HGH_ED_FUNC_CD,A0.ACCT_RST

RC_STAT_CD,A0.ACCT_RSTRC_STAT_DT,A0.ACCT_CITY_NM,A0.ACCT_STATE_CD,A0.ACCT_STREET_ADDR,A0.ACCT_ZIP_CD,A0.RPTS_TO_FIN_COA_CD,A0.RPTS_TO_ACCT_NBR,A0.ACCT_CREATE_DT,A0.ACCT_EFFECT_DT,A0.ACCT_EXPIRATION_DT,A0.CONT_FIN_COA_CD,A0.CON

T_ACCOUNT_NBR,A0.ENDOW_FIN_COA_CD,A0.ENDOW_ACCOUNT_NBR,A0.CONTR_CTRL_FCOA_CD,A0.CONTR_CTRLACCT_NBR,A0.INCOME_FIN_COA_CD,A0.INCOME_ACCOUNT_NBR,A0.ACCT_ICR_TYP_CD,A0.AC_CSTM_ICREXCL_CD,A0.FIN_SERIES_ID,A0.ACCT_IN_FP_CD,A0.BD

GT_REC_LVL_CD,A0.ACCT_SF_CD,A0.ACCT_PND_SF_CD,A0.FIN_EXT_ENC_SF_CD,A0.FIN_INT_ENC_SF_CD,A0.FIN_PRE_ENC_SF_CD,A0.FIN_OBJ_PRSCTRL_CD,A0.CG_CFDA_NBR,A0.ACCT_OFF_CMP_IND,A0.CG_ACCT_RESP_ID,A0.ACCT_CLOSED_IND,A0.OBJ_ID,A0.VER_NBR,A0.LBR_

BEN_RT_CAT_CD FROM CA_ACCOUNT_T A0 WHERE (A0.FIN_COA_CD = 'BA') AND A0.ACCOUNT_NBR = '6039710'

2012-08-23 11:27:43,727 [http-8080-5] u:jbmorris/d: INFO p6spy :: 08-23-12 11:27:43,727|110|20|statement|SELECT

A0.UNIV_FISCAL_YR,A0.FIN_COA_CD,A0.FIN_OBJECT_CD,A0.FIN_OBJ_CD_NM,A0.FIN_OBJ_CD_SHRT_NM,A0.FIN_OBJ_LEVEL_CD,A0.RPTS_TO_FIN_COA_CD,A0.RPTS_TO_FIN_OBJ_CD,A0.FIN_OBJ_TYP_CD,A0.FIN_OBJ_SUB_TYP_CD,A0.HIST_FIN_OBJECT_CD,A0.FIN_OBJ_ACTIVE_CD,

A0.FOBJ_BDGT_AGGR_CD,A0.FOBJ_MNXFR_ELIM_CD,A0.FIN_FED_FUNDED_CD,A0.NXT_YR_FIN_OBJ_CD,A0.OBJ_ID,A0.VER_NBR FROM CA_OBJECT_CODE_T A0 WHERE ((A0.UNIV_FISCAL_YR = ?) AND A0.FIN_COA_CD = ?) AND A0.FIN_OBJECT_CD = ?|SELECT

A0.UNIV_FISCAL_YR,A0.FIN_COA_CD,A0.FIN_OBJECT_CD,A0.FIN_OBJ_CD_NM,A0.FIN_OBJ_CD_SHRT_NM,A0.FIN_OBJ_LEVEL_CD,A0.RPTS_TO_FIN_COA_CD,A0.RPTS_TO_FIN_OBJ_CD,A0.FIN_OBJ_TYP_CD,A0.FIN_OBJ_SUB_TYP_CD,A0.HIST_FIN_OBJECT_CD,A0.FIN_OBJ_ACTIVE_CD,

A0.FOBJ_BDGT_AGGR_CD,A0.FOBJ_MNXFR_ELIM_CD,A0.FIN_FED_FUNDED_CD,A0.NXT_YR_FIN_OBJ_CD,A0.OBJ_ID,A0.VER_NBR FROM CA_OBJECT_CODE_T A0 WHERE ((A0.UNIV_FISCAL_YR = '2012') AND A0.FIN_COA_CD = 'BA') AND A0.FIN_OBJECT_CD = '4089'

2012-08-23 11:27:43,883 [http-8080-5] u:jbmorris/d: INFO p6spy :: 08-23-12 11:27:43,883|78|20|statement|SELECT

A0.FDOC_NBR,A0.OBJ_ID,A0.VER_NBR,A0.DV_PMT_REAS_CD,A0.DV_ALIEN_PMT_IND,A0.DV_PAYEE_ID_NBR,A0.DV_PAYEE_PRSN_NM,A0.DV_PAYEE_LN1_ADDR,A0.DV_PAYEE_LN2_ADDR,A0.DV_PAYEE_CTY_NM,A0.DV_PAYEE_ST_CD,A0.DV_PAYEE_ZIP_CD,A0.DV_PAYEE_CNTR

Y_CD,A0.DV_RMT_PRSN_NM,A0.DV_RMT_LN1_ADDR,A0.DV_RMT_LN2_ADDR,A0.DV_RMT_CTY_NM,A0.DV_RMT_ST_CD,A0.DV_RMT_ZIP_CD,A0.DV_RMT_CNTRY_CD,A0.DV_PAYEE_TYP_CD FROM FP_DV_PAYEE_DTL_T A0 WHERE A0.FDOC_NBR = ?|SELECT

A0.FDOC_NBR,A0.OBJ_ID,A0.VER_NBR,A0.DV_PMT_REAS_CD,A0.DV_ALIEN_PMT_IND,A0.DV_PAYEE_ID_NBR,A0.DV_PAYEE_PRSN_NM,A0.DV_PAYEE_LN1_ADDR,A0.DV_PAYEE_LN2_ADDR,A0.DV_PAYEE_CTY_NM,A0.DV_PAYEE_ST_CD,A0.DV_PAYEE_ZIP_CD,A0.DV_PAYEE_CNTR

Y_CD,A0.DV_RMT_PRSN_NM,A0.DV_RMT_LN1_ADDR,A0.DV_RMT_LN2_ADDR,A0.DV_RMT_CTY_NM,A0.DV_RMT_ST_CD,A0.DV_RMT_ZIP_CD,A0.DV_RMT_CNTRY_CD,A0.DV_PAYEE_TYP_CD FROM FP_DV_PAYEE_DTL_T A0 WHERE A0.FDOC_NBR = 'ZB6393912'

2012-08-23 11:28:05,291 [http-8080-5] u:jbmorris/d: INFO p6spy :: 08-23-12 11:28:05,291|21392|18|statement|SELECT A0.ENTITY_ID,A0.ACTV_IND,A0.VER_NBR,A0.OBJ_ID FROM KRIM_ENTITY_T A0 INNER JOIN KRIM_ENTITY_EMP_INFO_T A1 ON A0.ENTITY_ID=A1.ENTITY_ID LEFT OUTER JOIN

KRIM_ENTITY_ENT_TYP_T A2 ON A0.ENTITY_ID=A2.ENTITY_ID WHERE ( ( ( UPPER(A1.EMP_ID) = ?) AND (UPPER(A1.ACTV_IND) = ?)) AND (UPPER(A2.ENT_TYP_CD) = ? OR (UPPER(A2.ENT_TYP_CD) = ?))) AND (UPPER(A2.ACTV_IND) = ?)|SELECT

A0.ENTITY_ID,A0.ACTV_IND,A0.VER_NBR,A0.OBJ_ID FROM KRIM_ENTITY_T A0 INNER JOIN KRIM_ENTITY_EMP_INFO_T A1 ON A0.ENTITY_ID=A1.ENTITY_ID LEFT OUTER JOIN KRIM_ENTITY_ENT_TYP_T A2 ON A0.ENTITY_ID=A2.ENTITY_ID WHERE ( ( ( UPPER(A1.EMP_ID) =

'0152936-00') AND (UPPER(A1.ACTV_IND) = 'Y')) AND (UPPER(A2.ENT_TYP_CD) = 'PERSON' OR (UPPER(A2.ENT_TYP_CD) = 'SYSTEM'))) AND (UPPER(A2.ACTV_IND) = 'Y')

2012-08-23 11:28:05,354 [http-8080-5] u:jbmorris/d: INFO p6spy :: 08-23-12 11:28:05,354|63|18|statement|SELECT A0.ENTITY_ID,A0.ACTV_IND,A0.VER_NBR,A0.OBJ_ID FROM KRIM_ENTITY_T A0 INNER JOIN KRIM_ENTITY_EMP_INFO_T A1 ON A0.ENTITY_ID=A1.ENTITY_ID WHERE A1.EMP_ID =

?|SELECT A0.ENTITY_ID,A0.ACTV_IND,A0.VER_NBR,A0.OBJ_ID FROM KRIM_ENTITY_T A0 INNER JOIN KRIM_ENTITY_EMP_INFO_T A1 ON A0.ENTITY_ID=A1.ENTITY_ID WHERE A1.EMP_ID = '0152936-00'

2012-08-23 11:28:05,354 [http-8080-5] u:jbmorris/d: WARN edu.iu.uis.rice.kim.service.impl.IUIdentityArchiveServiceImpl :: Using getEntityDefaultFromArchiveByEmployeeId for 0152936-00

2012-08-23 11:28:07,541 [http-8080-5] u:jbmorris/d: INFO p6spy :: 08-23-12 11:28:07,541|2187|18|statement|SELECT

A0.PRNCPL_ID,A0.PRNCPL_NM,A0.ENTITY_ID,A0.ENTITY_TYP_CD,A0.FIRST_NM,A0.MIDDLE_NM,A0.LAST_NM,A0.PRSN_NM,A0.CAMPUS_CD,A0.PRMRY_DEPT_CD,A0.EMP_ID,A0.LAST_UPDT_TS,A0.OBJ_ID FROM KRIM_ENTITY_CACHE_T A0 WHERE A0.EMP_ID = ?|SELECT

A0.PRNCPL_ID,A0.PRNCPL_NM,A0.ENTITY_ID,A0.ENTITY_TYP_CD,A0.FIRST_NM,A0.MIDDLE_NM,A0.LAST_NM,A0.PRSN_NM,A0.CAMPUS_CD,A0.PRMRY_DEPT_CD,A0.EMP_ID,A0.LAST_UPDT_TS,A0.OBJ_ID FROM KRIM_ENTITY_CACHE_T A0 WHERE A0.EMP_ID = '0152936-00'

2012-08-23 11:28:07,760 [http-8080-5] u:jbmorris/d: INFO p6spy :: 08-23-12 11:28:07,760|203|18|statement|select * from IMS.IMS_HIST_PRSN_V where EMPLID like ?|select * from IMS.IMS_HIST_PRSN_V where EMPLID like '0152936-00'

2012-08-23 11:28:07,760 [http-8080-5] u:jbmorris/d: WARN edu.iu.uis.rice.kim.service.impl.IUIdentityArchiveServiceImpl :: Failed to locate an entity in historical data with the given empl ID: 0152936-00

2012-08-23 11:28:07,760 [http-8080-5] u:jbmorris/d: INFO p6spy :: 08-23-12 11:28:07,760|0|18|rollback||

2012-08-23 11:28:07,791 [http-8080-5] u:jbmorris/d: INFO p6spy :: 08-23-12 11:28:07,791|31|20|rollback||

2012-08-23 11:28:07,807 [http-8080-5] u:jbmorris/d: ERROR org.kuali.rice.kns.web.struts.form.pojo.StrutsExceptionIncidentHandler :: Exception being handled by Exception Handler java.lang.NullPointerException at edu.iu.uis.rice.kim.service.impl.IUIdentityArchiveServiceImpl.getEntityDefaultFromArchiveByEmployeeId(IUIdentityArchiveServiceImpl.java:144) at edu.iu.uis.rice.kim.service.impl.IUIdentityServiceImpl.getEntityDefaultByEmployeeId(IUIdentityServiceImpl.java:116) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy112.getEntityDefaultByEmployeeId(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy113.getEntityDefaultByEmployeeId(Unknown Source) at org.kuali.rice.kim.impl.identity.IdentityCurrentAndArchivedServiceImpl.getEntityDefaultByEmployeeId(IdentityCurrentAndArchivedServiceImpl.java:264) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy112.getEntityDefaultByEmployeeId(Unknown Source) 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:318) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.cache.interceptor.CacheInterceptor$1.invoke(CacheInterceptor.java:58) at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:213) at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:66) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy113.getEntityDefaultByEmployeeId(Unknown Source)

at org.kuali.rice.kim.impl.identity.PersonServiceImpl.getPersonByEmployeeId(PersonServiceImpl.java:216) at org.kuali.kfs.fp.document.web.struts.DisbursementVoucherAction.loadDocument(DisbursementVoucherAction.java:86) at org.kuali.rice.kns.web.struts.action.KualiDocumentActionBase.docHandler(KualiDocumentActionBase.java:346) 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.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269) at org.kuali.rice.kns.web.struts.action.KualiAction.dispatchMethod(KualiAction.java:168) at org.kuali.rice.kns.web.struts.action.KualiAction.execute(KualiAction.java:129) at org.kuali.rice.kns.web.struts.action.KualiDocumentActionBase.execute(KualiDocumentActionBase.java:174) at org.kuali.kfs.sys.document.web.struts.FinancialSystemTransactionalDocumentActionBase.execute(FinancialSystemTransactionalDocumentActionBase.java:73) at org.kuali.kfs.sys.web.struts.KualiAccountingDocumentActionBase.execute(KualiAccountingDocumentActionBase.java:103) at org.kuali.kfs.fp.document.web.struts.DisbursementVoucherAction.execute(DisbursementVoucherAction.java:98) at edu.iu.ebs.kfs.fp.document.web.struts.DisbursementVoucherAction.execute(DisbursementVoucherAction.java:37) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor$1.doInTransaction(KualiRequestProcessor.java:486) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processActionPerform(KualiRequestProcessor.java:482) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processFormActionAndForward(KualiRequestProcessor.java:215) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.strutsProcess(KualiRequestProcessor.java:202) at org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:89) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) 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.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:78) at org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:62) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:89) at org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:77) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:162) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:488) at edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:422) at edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:401) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:202) at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:175) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:662)

Comment by James Bennett

[ 27/Aug/12 9:16 AM ]

Hello Jeff,

Is this an issue in production or for the Big Bang?

Thanks,

James

Comment by Jeff Morris

[ 27/Aug/12 9:34 AM ]

At the moment I'm only aware of it for big bang.

[EN-2537] OneStart content generation in Rice 2: gradually getting faster

Created:

20/Apr/12 Updated: 10/Sep/12 Resolved: 21/Aug/12

Status: Closed

Project: Kuali Rice

Component/s: KFS Big Bang

Affects

Version/s:

None

Fix Version/s: Patch 4 - Rice 2.1.2

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Blocker

Reporter: James Smith Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Attachments: kfs_onestart_log_unt3.txt onestart_kfs_menu_performance.log

Issue Links: Relies is relied upon by

FSKD-

3015 is relied upon by

FSKD-

2607 is relied upon by

FSKD-

2700 is relied upon by

FSKD-

2568

Upgrade TRN environment: kfs@kfs1trn ... kfs 5 upgrade: check onestart publica...

Upgrade SME environment: kfs@kfs1unt ... portal options slow to load again

Open

Open

Closed

Reopened

Impacted

Client(s):

Description

KFS

So when I attempt to see the XML generated for kfs-unt's main menu in OneStart by going to the url: https://test.uisapp2.iu.edu/kfsunt/remoting/kfsOneStartMainMenu/getContent/?principalId=0002368819&pageId=main

...it churns for a couple minutes and then tells me the server was reset.

Comments

Comment by James Smith

[ 20/Apr/12 1:35 PM ]

In the logs, I'm seeing a lot of entries like the one below (on the kfs side). I plan on turning off that logging to make things snappier, but I doubt that's the root of this problem...

--------------------------------------

2012-04-20 13:22:22,035 [TP-Processor24] u:/d: INFO org.apache.cxf.interceptor.LoggingOutInterceptor :: Outbound Message

---------------------------

ID: 84

Address: https://test.uisapp2.iu.edu/kr2-unt/remoting/soap/kew/v2_0/documentTypeService

Encoding: UTF-8

Content-Type: text/xml

Headers: {Accept=[*/*], SOAPAction=[""], X-Kuali-App-Ver=[04/20/2012 12:43 PM], X-Kuali-Env=[unt]}

Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><wsse:Security xmlns:wsse="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soap:mustUnderstand="1"><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-251">

<ds:SignedInfo>

<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>

<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>

<ds:Reference URI="#id-252">

<ds:Transforms>

<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>

</ds:Transforms>

<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>

<ds:DigestValue>mwGQLY4SvUUfR4I7mK5XdQHBexM=</ds:DigestValue>

</ds:Reference>

</ds:SignedInfo>

<ds:SignatureValue>

EJFxaSIpDp7+jchh9vOV/IIZ6VC2sIUGZIOrJLvD4nnUa9+bHBTZRMaPFaUMxDcKEWpjCf0ZZglG a/J/9a8zMsX3ye+qHkIfH8puv+yB4c0o/BIEXf5dREpQ6HIs1sWa2H7gJ2lEcI8YSjk3fKCEgvOJ

F4cMNFyX24XMHCGTJHc=

</ds:SignatureValue>

<ds:KeyInfo Id="KeyId-A0D8FDC79D376EE32F1334942542030377">

<wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="STRId-

A0D8FDC79D376EE32F1334942542030378"><ds:X509Data>

<ds:X509IssuerSerial>

<ds:X509IssuerName>CN=OneStart Shared Services (Dev/Test)</ds:X509IssuerName>

<ds:X509SerialNumber>1125608356</ds:X509SerialNumber>

</ds:X509IssuerSerial>

</ds:X509Data></wsse:SecurityTokenReference>

</ds:KeyInfo>

</ds:Signature></wsse:Security></soap:Header><soap:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurityutility-1.0.xsd" wsu:Id="id-252"><getDocumentTypeByName xmlns="http://rice.kuali.org/kew/v2_0" xmlns:ns2="http://rice.kuali.org/core/v2_0"><documentTypeName>CASM</documentTypeName></getDocumentTypeByName></soap:Body></soap:Envelope>

--------------------------------------

Comment by James Smith

[ 20/Apr/12 1:38 PM ]

Tech links, our smallest menu, does come up: https://test.uisapp2.iu.edu/kfs-unt/remoting/kfsOneStartTechnicalLinksMenu/getContent/?principalId=0002368819&pageId=technicallinks

Comment by James Bennett

[ 20/Apr/12 1:47 PM ]

James,

This isn't surprising. A week or two ago we found that permission/role checks aren't cached at all in Rice 2, so I'd imagine that is where the bulk of the slowness is coming from. There is an issue in 2.0.2 to get this fixed: https://jira.kuali.org/browse/KULRICE-7127

After we get that change into IU Rice I'll look into this further to see if there is any way to improve the performance.

Thanks,

James

Comment by Eric Westfall

[ 20/Apr/12 1:47 PM ]

While I'm not sure of the specific reason for your issue here, if I had to guess it's probably partly related to this: https://jira.kuali.org/browse/KULRICE-7127

Additionally, James B had done some optimization to the way that stuff was cached (and in order to make the cache usage more efficient) in Rice 1.0.x. The caching library has changed in 2.0 so there may be some changes he needs to reapply?

Comment by Eric Westfall

[ 20/Apr/12 1:48 PM ]

Whoops, James beat me to it

Comment by James Bennett

[ 20/Apr/12 1:50 PM ]

If I recall correctly all or most of the performance improvements should have already been contributed to Rice 2, but the lack of caching is probably the biggest problem here.

Comment by Heather Stapleton

[ 20/Apr/12 2:12 PM ]

JamesB/Eric - Any estimation as to when KULRICE-7127 will be fixed and available to us?

Comment by Eric Westfall

[ 01/May/12 10:16 AM ]

It has been fixed now in Rice 2.0.2. We just pulled the current state of Rice 2.0.2 into our local IU rice codebase yesterday. I'll follow up to the team to find out when related client jars are available for that for local use.

Comment by James Smith

[ 01/May/12 10:17 AM ]

I'm pulling the snapshots right now. Thanks!

Comment by Eric Westfall

[ 01/May/12 10:19 AM ]

Ok, just checked with Greg. This is part of our current "milestone 7" iteration. So we do have snapshot jars available out in the repository: https://uisapp2.iu.edu/nxs-prd/content/groups/public-snapshot/edu/iu/es/esi/rice/rice-all/2.0.2-iu-m7-SNAPSHOT/

The final released packaged version of these client jars will be two weeks from yesterday (we have been trying to release packaged client jars every 2 weeks).

Thanks,

Eric

Comment by Eric Westfall

[ 01/May/12 10:26 AM ]

Thanks James, let us know how it goes. I wouldn't be surprised if there's still some additional work to get these back to where they were with Rice 1. James did some hefty local optimizations to these services and I'm not sure if they all will translate 100% to the new Spring+ehcache model being used in Rice 2.0.

Comment by James Smith

[ 01/May/12 3:19 PM ]

Having trouble testing because of an unrelated error; I'll test in one start when I can but it may not be 'til tomorrow. Things are definitely faster but I'm not sure they're within the 20 second window.

Comment by James Smith

[ 02/May/12 6:06 PM ]

Got through the first error only to hit another for the main menu, but I was able to test the Reference & Maintenance menu and I'm pretty sure that's not rendering within

OneStart's 20 second window.

Comment by Heather Stapleton

[ 03/May/12 1:28 PM ]

Due to the fact that Onestart hasn't upgrade to Rice 2 yet, we can't move back to using the portal until that is done. So changing the priority of this issue back to Critical as we'll just stick with the ghetto portal for now.

Comment by James Bennett

[ 25/Jun/12 9:47 AM ]

James,

Do you have a test environment set up where you can test to see how long it takes to generate this content? I'm curious how bad it is after the last round of permission/role performance improvements.

Thanks,

James

Comment by James Smith

[ 25/Jun/12 9:56 AM ]

So am I. It's on my to do list (by my to do list is also in bad backlog).

Comment by James Smith

[ 26/Jun/12 12:47 PM ]

Just tested this. We've got three pages in the app:

 the main page. This generates slowly at first but once cached, has always come up in OneStart. Yay. the tech links page. It's small so it came up perfectly. Yay. the ref & maint page - the biggest page, I can't get it to come up in OneStart at all.

So...still seems like there's work to do but it seems pretty manageable and definitely the better KIM caching has had a good effect.

Comment by Eric Westfall

[ 26/Jun/12 1:19 PM ]

A couple of things here:

1.

We've noticed that the max cache size for KIM caches is set ridiculously small by default considering the way that it handles caching. For example, the permission and role caches are set to a size of 300. I think james mentioned we have over 500 permissions getting checked here or something along those lines? So obviously we are rolling our cache.

2.

I think we have some additional performance improvements we can do on the KIM role service by adding some additional caching.

I'm going to try and work on these today or tomorrow depending on how time shapes up because this kind of stuff will help us with general system performance.

Comment by Heather Stapleton

[ 31/Jul/12 4:18 PM ]

Eric - I'm increasing the priority of this issue to a Blocker. I recently talked to Jeremy about when Onestart-TRN will be upgraded to Rice 2 and he said shortly after the

Rice upgrade happens in PRD. We cannot upgrade Onestart-TRN to Rice 2 until this issue is fixed. So while we don't need this fixed until after the Rice 2 upgrade, it is very high on the list to be fixed immediately after the upgrade.

Comment by Eric Westfall

[ 01/Aug/12 9:02 AM ]

Reassigning to James B. James, we should brainstorm some ideas on this as a lot of this slowness is inherent in the original design and implementation of KIM so we may need to think beyond just the caching angle to try and speed this up.

As we discussed previously, I did a pretty significant rewrite of the implementation of RoleServiceImpl.principalHasRole which should speed things up significantly. But the original implementation of that method was so complex and confusing that I didn't feel confident enough about that rewrite to try to jam it in with how close we were to the big upgrade. We can work together to resurrect the work that I did (I believe I have it on a branch) and then try and do some testing with it.

Comment by James Bennett

[ 15/Aug/12 2:10 PM ]

James,

I'm starting to look into this and I was wondering if you could enable DEBUG level logging for the PerformanceLogger class in KFS and then hit the page which generates the OneStart content? I'd like to see the results of the performance logging I put into place in the role/permission services to help us determine where all of the time is being spent.

Thanks,

James

Comment by James Smith

[ 15/Aug/12 5:24 PM ]

Sorry that this took forever....

This was my local dev box running against kr2-unt/ksb-unt. Therefore, the times themselves are way longer than they would be if I'd run on kfs-unt. However, I believe what you care about, James, is proportion, so I'm hoping this provides the information that you need. If not, I can redeploy kfs-unt with the correct logging tomorrow at lunch.

The exception thrown is a bit strange but we can contribute a fix for it on the KFS side. The memory trace is of course the new normal.

Let me know if anything else is needed. Thanks!

Comment by James Bennett

[ 15/Aug/12 5:39 PM ]

Thanks for the initial set of logs. If it wouldn't be too much trouble could you enable that logging in kfs-unt tomorrow? It would be helpful to see just how much the timings are different if at all possible. Thanks!

Comment by James Smith

[ 15/Aug/12 6:08 PM ]

I'll go ahead and get that done, then. Thanks!

Comment by James Bennett

[ 16/Aug/12 5:08 PM ]

Can you point me to the URLs I can hit in kfs-unt to generate the OneStart content? I had them saved when I optimized it for 1.0.3 but I cannot seem to find them now.

Thanks!

Comment by James Smith

[ 16/Aug/12 5:14 PM ]

I will as soon as kfs-unt is working again.

Comment by James Smith

[ 16/Aug/12 6:19 PM ] https://test.uisapp2.iu.edu/kfs-unt/remoting/kfsOneStartMainMenu/getContent/?principalId=0002368819&pageId=main

I'll have another log up soon.

Comment by James Bennett

[ 17/Aug/12 1:39 PM ]

This is interesting because I'm seeing many lines like this:

IURoleServiceImpl: principalHasRole (principalId=0002368819, roleIds=[54, 61, 10133], qualification={})

That call should have been cached after the first time it was invoked since those three roles are not dynamic. When I invoke this myself I am seeing that the call gets cached so I'm going to need to do some more digging to figure out why it isn't in KFS. I'll let you know if I come across anything else that I could use your help with.

Thanks,

James

Comment by James Bennett

[ 17/Aug/12 3:03 PM ]

I found the reason for my last comment. It looks like the RouteLogDerivedRoleTypeService was incorrectly returning false for the dynamicRoleMembership method and that was corrected in 2.1.2 so it not caching the result is correct. Now to see if there's a way to make it faster.

Comment by James Smith

[ 21/Aug/12 1:45 PM ]

Here's the latest; I'm going to try it against OneStart very soon.

Comment by James Smith

[ 21/Aug/12 1:48 PM ]

OneStart is happy : - > In fact, this seems faster than Rice 1.0.3.

Comment by James Bennett

[ 21/Aug/12 1:49 PM ]

Gotta love all the role checks which took < 5ms each! It looks like the entire rendering took 5.8 seconds which does seem like it is faster than 1.0.3. Do all of the buttons work display as you expect for KFS and non-KFS users?

Thanks!

Comment by James Smith

[ 21/Aug/12 1:54 PM ]

It seems like our permission checks are failing. I'm running the perm checks against: https://test.uisapp2.iu.edu/kr2-unt/remoting/soap/kim/v2_0/permissionService . But the speed is awesome.

Comment by James Bennett

[ 21/Aug/12 1:58 PM ]

How exactly are they failing? Returning the wrong results?

Comment by James Bennett

[ 21/Aug/12 2:33 PM ]

The last round of performance improvements seems to have done the trick and the pages are now able to load in OneStart without issue.

James and I figured out the permission issue he mentioned above was related to an improper service name for the portal permission type service in the KIM type table.

[EN-2535] JSP error when I go to action list for some people

Created: 20/Apr/12 Updated:

10/Sep/12 Resolved: 04/Jun/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Milestone 9 - r2.0.2

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Blocker

Reporter: Shannon Hess Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Fix fixes EN-2388 When searching by principal name or p... Closed

Description

When I backdoor as grpatter on kr2-unt and go to his action list, I get the following error. It goes away if I backdoor as ewestal, go to the action list then back door again as grpatter and go back to the action list. org.apache.jasper.JasperException: An exception occurred processing JSP page /kew/WEB-INF/jsp/ActionList/ActionList.jsp at line 339

336: <c:if test="${preferences.showInitiator == Constants.PREFERENCES_YES_VAL}">

337: <display:column sortable="true" title="${initiatorLabel}"

338: sortProperty="routeHeader.initiatorName" class="infocell">

339: <kul:inquiry boClassName="org.kuali.rice.kim.impl.identity.PersonImpl"

340: keyValues="principalId=${result.routeHeader.actionListInitiatorPrincipal.principalId}"

341: render="true">

342: <c:out value="${result.routeHeader.initiatorName}" />

Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:567) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1083) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:396) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.processFormActionAndForward(KualiRequestProcessor.java:219) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.strutsProcess(KualiRequestProcessor.java:202) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:89)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) javax.servlet.http.HttpServlet.service(HttpServlet.java:621) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:88) org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:78) org.kuali.rice.kew.web.UserPreferencesFilter.doFilter(UserPreferencesFilter.java:62) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:88) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:76) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:134) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:74) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:271) edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410) edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336) edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:410) edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:336) edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:315) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:264) org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:162) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.krad.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:69) edu.iu.uis.rice.web.IUTransactionFilter.doFilter(IUTransactionFilter.java:58) edu.iu.uis.rice.web.WhitespaceFilter.doFilter(WhitespaceFilter.java:34) edu.iu.uis.rice.web.PortalPolicyFilter.doFilter(PortalPolicyFilter.java:30)

Comments

Comment by James Bennett

[ 04/Jun/12 11:50 AM ]

Found and corrected the issue in the IdentityArchiveServiceImpl

[EN-2342] Poor performance saving routing data

Created: 24/Mar/11 Updated: 10/Sep/12 Resolved:

08/May/12

Status: Closed

Project: Kuali Rice

Component/s: Workflow (KEW)

Affects

Version/s:

None

Fix Version/s: Patch 17 - r1.0.3

, Rice 1.0.3 Implementation , Post 2.0 Contribution

Type: Problem Report Priority: Blocker

Reporter: Mark Fyffe Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Attachments: screenshot-1.jpg screenshot-2.jpg testing-long-route-path-nobranches.xml testing-long-route-path.xml

Description

Workflow team,

See . We are struggling with a performance issue in saving routing data at the end of a long routing process for SIS.SR.GradeChange documents. I have managed to work this issue to bring times down from 6-10 minutes to 2-3 minutes by minimizing document saves, which is good enough to prevent issues like browser timeouts. However, it would be good to get the bottom of this on the KEW side.

We do not see as pronounced an effect in other documents. However, SIS.SR.GradeChange seems to have a particularly complex routing scenario, which leads to a very high number of SQL operations on KR1STG.

SIS code that performs the KEW document save (in SisDocumentPostProcessor):

ProcessLogger.trace("kew:onCommit:" + doc.getDocumentNumber()); try { doc.getDocumentHeader() .getWorkflowDocument() .saveRoutingData(); } catch (WorkflowException e) { throw new

IllegalStateException( "Error saving routing data", e); }

ProcessLogger.trace("kew:onCommit:save:" + doc.getDocumentNumber());

Timing of these events is below. The kew:action:S line is logged after doActionTaken(). Grade change does not use pessimistic locking, and only performs logic in doActionTaken for approval actions, not save actions. kew:onCommit:8187393....................00:00.000 00:50.506 279.103M 0 kew:action:S:8187393....................01:26.133 02:16.639 591.917M 312.814M kew:onCommit:save:8187393...............00:01.867 02:18.506 345.672M -246.245M

Another interesting note is the apparent execution of 11903 queries against KR1STG during this transaction. None seem to have run very long (3.452s max time), but 12K can add up. db.query.riceTx: 11903 (00:00.002/00:03.452/00:00.002) longest : UPDATE KREW_RTE_BRCH_T SET

NM=?,PARNT_ID=?,INIT_RTE_NODE_INSTN_ID=?,JOIN_RTE_NODE_INSTN_ID=?,SPLT_RTE_NODE_INSTN_ID=?,VER_NBR=?

WHERE RTE_BRCH_ID = ? AND VER_NBR = ? db.postquery.riceTx: 11903 (00:00.010/00:00.380/00:00.000)

Please take look and let me know if you notice anything.

Thanks,

Mark

Comments

Comment by Shannon Hess

[ 24/Mar/11 10:37 AM ]

Mark,

Could you turn on shotgun logging (or at least shot-gun for the Kuali code) in dynatrace and run the transaction that is taking 3 minutes? If you could export the session and send it my way, it would help me to understand what exactly is going on here.

Thanks,

Shannon

Comment by Mark Fyffe

[ 11/May/11 2:28 PM ]

I have a typical transaction available in dynaTrace session storage. Let me when you've got a minute to discuss this session.

PRO-STG-SIS Rice [2011-05-11 14:11:59]

In this example (sort purepaths descending by duration and look at the top), blanket approve completed in 86 seconds, which is on the fast end of average for this document type in PRD today. The bulk of the delay appears to be caused by to query overhead for nearly 20,000 SQLs called by saveRoutingData(). It appears that something about SIS.SR.GradeChange is causing there to be nearly 4000 branches / node instances / states, which translates into 16000 object saves. In all, 80 seconds isn't bad for this type of bulk update. 40 seconds were spent just on running "select 1 from dual" 18126 times to validation JDBC connections.

Is there a way we can reduce the complexity of this operation and not have to incur this massive object save overhead on each transaction?

Best,

Mark

Comment by Mark Fyffe

[ 12/May/11 4:35 PM ]

Any thoughts on reducing the SQL overhead here? I have committed some other optimizations that improve routing performance from 120-140 seconds to 35-50 seconds. However, the bulk of this time is still spent saving these 16000 records.

We are planning a load test next week. Please advise on whether a code fix or config change may be possible in the near term to address this issue.

Thanks,

Mark

Comment by James Bennett

[ 18/May/11 4:57 PM ]

Mark,

I've been looking into this over the last few days and I cannot figure out a good way to test out this issue to determine the cause of it. I looked in the database and it appears that the maximum number of nodes in the database for any SIS.SR.GradeChange document is 37 instead of 4000. Do you think you will have any time tomorrow or early next week to work together to try and debug this so we can drill down to the source of the problem?

Thanks,

James

Comment by James Bennett

[ 30/Aug/11 11:01 AM ]

Mark,

Its been a while since I've looked at this issue so I was wondering if it is still impacting your application? If so will you have the time to meet to look further into this issue sometime soon?

Thanks,

James

Comment by Mark Fyffe

[ 30/Aug/11 11:09 AM ]

Thanks for checking, James.

Yes, this is still an issue but is not a top priority at the moment. The same poor routing performance can be seen in every SIS e-doc. I'd like to target a fix for release before the Rice 2.0 upgrade, preferably around the same time as the December SIS release.

Unless this becomes a higher priority, I'll be ready to meet in late September.

Mark

Comment by James Bennett

[ 30/Aug/11 11:17 AM ]

I've marked my calendar to follow up with you on this on September 26th unless you determine that we need to address this sooner.

Comment by James Bennett

[ 26/Sep/11 11:47 AM ]

Hello Mark,

I'm checking in on this issue again to see when you will be available to look into it.

Thanks,

James

Comment by Mark Fyffe

[ 28/Sep/11 4:05 PM ]

Scheduling for next week.

Mark

Comment by Mark Fyffe

[ 30/Dec/11 1:39 PM ]

James,

I have trapped a session in dT4 demonstrating this issue as it impacts sissrgc-unt.

Mark

Comment by James Bennett

[ 05/Mar/12 9:32 AM ]

Hello Mark,

I'm looking into this issue again. Do you happen to know if there was a specific document ID you worked with during that saved session? If you don't remember it that's fine. Also, could you please point me to where I can check out the code that's running here?

Thanks,

James

Comment by Mark Fyffe

[ 05/Mar/12 9:51 AM ]

James,

I don't recall which document the dT session was for. However, all SIS.SR.GradeChange documents experience this issue without exception. I can re-test and/or create a new dT session any time - let me know what you need.

Which code are looking for? The performance hit is entirely contained with a single call to WorkflowDocument.saveRoutingData() from SisDocumentPostProcessor [2], triggered once as a Transactional "pre-shutdown hook" (runnable executed within JTA before-synch phase [2]).

Other SIS code related this issue will be in CVS under sisjava/sis-util-kuali or sisjava/sissrgc.

Hope this helps,

Mark

}

SisDocumentPostProcessor.java:238 public static void saveOnCommit(final SisDocument doc) {

TransactionUtil.addPreShutdownHook(new Runnable() {

@Override public void run() {

String k = "SisDocumentPostProcessor.saved." if (!Boolean.TRUE.equals(TransactionUtil.get(k))) { try {

+ Integer.toHexString(System

.identityHashCode(doc));

ProcessLogger.trace("kew:onCommit:"

+ doc.getDocumentNumber()); try {

// DELAY IS HERE --V doc.getDocumentHeader()

.getWorkflowDocument()

.saveRoutingData();

} catch (WorkflowException e) {

} throw new IllegalStateException(

"Error saving routing data", e);

ProcessLogger.trace("kew:onCommit:save:"

+ doc.getDocumentNumber());

KNSServiceLocator.getDocumentDao()

.save(doc);

ProcessLogger.trace("kew:OnCommit:saveKns:"

+ doc.getDocumentNumber()); try { doc.postSave();

ProcessLogger.trace("kew:OnCommit:saveSis:"

+ doc.getDocumentNumber());

} catch (Exception e) {

} if (e instanceof RuntimeException) { throw (RuntimeException) e;

} else {

} throw new IllegalStateException(

"Error in post-document save operation", e);

} finally {

TransactionUtil.set(k, Boolean.TRUE);

}

});

}

}

[2] "Pre-shutdown hook" details

TransactionUtil.java:147

/**

* Register a hook to execute before commit or roll back.

*

* @param hook

* Executable block to run before completion.

*/ public static void addPreShutdownHook(final Runnable hook) { try {

} final SisTransaction tx = getSisTransaction();

Integer hookCount = (Integer) get("TransactionUtil.preShutdownHookCount"); if (hookCount == null) { hookCount = 0;

} final int c = hookCount + 1; set("TransactionUtil.preShutdownHookCount", c); tx.registerSynchronization(new Synchronization() {

}

@Override public void beforeCompletion() { try { int txs = tx.getStatus(); hook.run();

ProcessLogger.trace("txu:pre:"

+ SisTransaction.describeStatus(txs) + ":" + c);

} catch (SystemException e) { throw new IllegalStateException(

"Error determining transaction status", e);

}

});

@Override public void afterCompletion(int flag) {

}

ProcessLogger.trace("txu:pre:register:" + c);

} catch (RollbackException e) { throw new IllegalStateException(

"Transaction is rolling back attempting to register shutdown hook", e);

} catch (SystemException e) { throw new IllegalStateException(

"Transaction error register shutdown hook", e);

}

Comment by James Bennett

[ 06/Mar/12 5:00 PM ]

Mark,

I copied the grade change document type and made a simpler version of it using SimpleSplitNodes and changed all of the request nodes to use the same rule template so that the document would route through all of the nodes in the document type and go to final as soon as it is routed. I've attached it here if you would like to take a look. I wrote a simple servlet that created, routed an instance of that document type and then performed saveRoutingData on it. The last method call took around 26 minutes to run on my local machine, so I believe I was able to reproduce the problem you reported. I looked into the problem and I believe that it is related to the

OJB relationships between route node instances and branches. Here is what I found from the OJB mappings:

1.

Route node instances auto-update all of their next nodes when saved

2.

Branches auto-update the join route node instance when they are saved

I believe that point #2 is the problem here. It seems that when OJB saves the branch it is initiating another save on the join node which is then cascaded to the rest of the nodes which follow it in the routing path. The grade change document type has 8 branches in it so it ends up saving parts of the routing path 2^8 times. In my test document type I used a SimpleSplitNode so it ended up hitting 16 branches which is why it took so much longer for it to save.

I tested my theory above by creating a second document type which has the same number of routing nodes (44) and it saves the routing data in a little over 1 second. I think this helps confirm that the problem here is at least not the total number of route nodes in the routing path. After running this test against Rice 1.0.3 I tested the same document types with Rice 2.0 and got similar results.

We would like to report this as an issue for Rice 2.1 so that the foundation development team can fix this issue and verify that their updates do not break how route nodes and branches are saved. Do you think that this fix can wait until we go live with Rice 2.0 in August? If so we can pull in the changes the foundation team makes after that issue is fixed. If you need this to be fixed sooner I will continue looking into this to see if there is a way to change the way OJB saves the data without breaking anything.

Thanks,

James

Comment by James Bennett

[ 15/Mar/12 4:08 PM ]

Mark,

Have you had the opportunity to review my previous comment? If so, does that timeline work for you or would you prefer it to be fixed sooner?

Thanks,

James

Comment by Mark Fyffe

[ 15/Mar/12 4:15 PM ]

James,

Thanks for the good information, I agree that you have isolated the cause of this issue. We can wait for Rice 2.1 for this to be fixed.

Best,

Mark

Comment by James Bennett

[ 16/Mar/12 10:53 AM ]

I've created https://jira.kuali.org/browse/KULRICE-6950 to report this issue. I'm going to close this issue as "Won't fix" since we should pull in the changes which correct this issue during a later update, but if something changes with the issue I reported and it won't be fixed in time I'll reopen this so that we can handle it locally.

If you'd prefer to leave this open we can reopen this and move it to the backlog for now. Thanks!

Comment by James Bennett

[ 16/Mar/12 10:54 AM ]

We should get the fix for this issue when we update to 2.1. Will reopen before then if necessary.

Comment by Mark Fyffe

[ 07/May/12 7:34 AM ]

See EN-2570 . If you scroll to the bottom of the long process trace there, you will see an excess of 50000 SQL calls to the KR1UNT database -

Counters:

db.connect.rice2: 1 (00:00.003/00:00.003/00:00.003)

db.rice2: 114508 (00:00.144/00:00.144/00:00.000)

db.query.rice2: 57109 (00:00.001/00:00.262/00:00.000)

longest : INSERT INTO KREW_ACTN_RQST_T

(ACTN_RQST_ID,PARNT_ID,ACTN_RQST_CD,DOC_HDR_ID,RULE_ID,STAT_CD,RSP_ID,GRP_ID,ROLE_NM,QUAL_ROLE_NM,QUAL_ROLE_NM_LBL_TXT,RECIP_TYP_CD,PRIO_NBR,RTE_LVL_NBR,RTE_NODE_INSTN_ID,ACTN_TKN_ID,DOC_VER_NBR,CRTE_DT,RSP_DESC_TXT,ACTN_RQST_ANNOTN_TXT,VER_NBR,PRNCPL_ID,FRC_ACTN

,CUR_IND,APPR_PLCY,DLGN_TYP,RQST_LBL) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)

db.postquery.rice2: 57109 (00:00.000/00:00.005/00:00.000)

longest : SELECT A0.RTE_NODE_INSTN_ID,A0.DOC_HDR_ID,A0.RTE_NODE_ID,A0.BRCH_ID,A0.PROC_RTE_NODE_INSTN_ID,A0.ACTV_IND,A0.CMPLT_IND,A0.INIT_IND,A0.VER_NBR FROM KREW_RTE_NODE_INSTN_T A0 WHERE ((A0.DOC_HDR_ID = ?) AND A0.ACTV_IND = ?) AND A0.CMPLT_IND = ?

db.connect.sis: 1 (00:00.002/00:00.002/00:00.002)

db.sis: 10 (18:54.776/18:54.776/01:53.477)

db.query.sis: 4 (00:00.002/00:00.002/00:00.002)

longest : select SR5SB_MSG_QUE_S.nextval from dual

db.postquery.sis: 4 (00:00.000/00:00.000/00:00.000)

db.connect.rice2NonTransactional: 1 (00:00.000/00:00.000/00:00.000)

db.rice2NonTransactional: 6 (01:50.496/01:50.496/00:18.416)

db.query.rice2NonTransactional: 3 (00:00.005/00:00.062/00:00.025)

longest : select * from IMS.IMS_HIST_PRSN_V where EMPLID like ?

db.postquery.rice2NonTransactional: 3 (00:00.000/00:00.000/00:00.000)

Elapsed Time: 18:56.288

Memory Usage: 220.625M/970.812M/970.812M - 22% free

Memory Delta: 59.700M/970.812M/970.812M - 6% free - tot delta: 160.625M

Toward the end of this routing operation, I see pages and pages of queries like this: dev,sissrgc,rice-ksbmessage(7),,70,DEBUG,2012-05-06 10:20:32,668,edu.iu.es.sis.c ore.jdbc.SisPreparedStatement,1:rw:legacyKns,2:rw:ksbMessage,,,5aa619e5-2b12-4bb

3-bab0-ed85105d0ebf,,10317768,SISSRGC

SIS Prepared SQL rice2.executeQuery (57541,1)

Connection:

SIS JDBC Connection

Data Source: rice2

Internal Connection: oracle.jdbc.driver.LogicalConnection@59cd5fb

XA Connection: $Proxy36@c43630a

XA Resource: oracle.jdbc.driver.T4CXAResource@781715d1

Transactional? true status = 0

Auto-commit on? false

Read-only? false

Isolation level? TRANSACTION_READ_COMMITTED

Controlling thread: Thread[rice-ksbmessage(7),5,rice]

Connect time: 00:00.003

Arguments:

:1 = 78579037 (java.lang.String)

SQL:SELECT TO_RTE_NODE_INSTN_ID FROM KREW_RTE_NODE_INSTN_LNK_T WHERE FROM_RTE_

NODE_INSTN_ID=?

complete in 00:00.001

postquery complete in 00:00.000 dev,sissrgc,rice-ksbmessage(7),,70,DEBUG,2012-05-06 10:20:32,669,edu.iu.es.sis.c ore.jdbc.SisPreparedStatement,1:rw:legacyKns,2:rw:ksbMessage,,,5aa619e5-2b12-4bb

3-bab0-ed85105d0ebf,,10317768,SISSRGC

SIS Prepared SQL rice2.executeUpdate (57542,1)

Connection:

SIS JDBC Connection

Data Source: rice2

Internal Connection: oracle.jdbc.driver.LogicalConnection@59cd5fb

XA Connection: $Proxy36@c43630a

XA Resource: oracle.jdbc.driver.T4CXAResource@781715d1

Transactional? true status = 0

Auto-commit on? false

Read-only? false

Isolation level? TRANSACTION_READ_COMMITTED

Controlling thread: Thread[rice-ksbmessage(7),5,rice]

Connect time: 00:00.003

Arguments:

:1 = Registrar2Branch (java.lang.String)

:2 = 78578995 (java.lang.String)

:3 = 78579036 (java.lang.String)

:4 = 78579037 (java.lang.String)

:5 = 78579034 (java.lang.String)

:6 = 414 (java.lang.Integer)

:7 = 78579035 (java.lang.String)

:8 = 413 (java.lang.Integer)

SQL:UPDATE KREW_RTE_BRCH_T SET NM=?,PARNT_ID=?,INIT_RTE_NODE_INSTN_ID=?,JOIN_RTE_NODE_INSTN_ID=?,SPLT_RTE_NODE_INSTN_ID=?,VER_NBR=? WHERE RTE_BRCH_ID = ? AND VER_NBR = ?

complete in 00:00.001

postquery complete in 00:00.000 dev,sissrgc,rice-ksbmessage(7),,70,DEBUG,2012-05-06 10:20:32,671,edu.iu.es.sis.c ore.jdbc.SisPreparedStatement,1:rw:legacyKns,2:rw:ksbMessage,,,5aa619e5-2b12-4bb

3-bab0-ed85105d0ebf,,10317768,SISSRGC

SIS Prepared SQL rice2.executeUpdate (57543,1)

Connection:

SIS JDBC Connection

Data Source: rice2

Internal Connection: oracle.jdbc.driver.LogicalConnection@59cd5fb

XA Connection: $Proxy36@c43630a

XA Resource: oracle.jdbc.driver.T4CXAResource@781715d1

Transactional? true status = 0

Auto-commit on? false

Read-only? false

Isolation level? TRANSACTION_READ_COMMITTED

Controlling thread: Thread[rice-ksbmessage(7),5,rice]

Connect time: 00:00.003

Arguments:

:1 = 10317768 (java.lang.String)

:2 = 78578264 (java.lang.String)

:3 = 78579035 (java.lang.String)

:4 = null (null)

:5 = false (java.lang.Boolean)

:6 = true (java.lang.Boolean)

:7 = false (java.lang.Boolean)

:8 = 412 (java.lang.Integer)

:9 = 78579036 (java.lang.String)

:10 = 411 (java.lang.Integer)

SQL:UPDATE KREW_RTE_NODE_INSTN_T SET DOC_HDR_ID=?,RTE_NODE_ID=?,BRCH_ID=?,PROC_RTE_NODE_INSTN_ID=?,ACTV_IND=?,CMPLT_IND=?,INIT_IND=?,VER_NBR=? WHERE RTE_NODE_INSTN_ID = ? AND VER_NBR = ?

complete in 00:00.001

postquery complete in 00:00.000 dev,sissrgc,rice-ksbmessage(7),,70,DEBUG,2012-05-06 10:20:32,672,edu.iu.es.sis.core.jdbc.SisPreparedStatement,1:rw:legacyKns,2:rw:ksbMessage,,,5aa619e5-2b12-4bb3-bab0-ed85105d0ebf,,10317768,SISSRGC

SIS Prepared SQL rice2.executeUpdate (57544,1)

Connection:

SIS JDBC Connection

Data Source: rice2

Internal Connection: oracle.jdbc.driver.LogicalConnection@59cd5fb

XA Connection: $Proxy36@c43630a

XA Resource: oracle.jdbc.driver.T4CXAResource@781715d1

Transactional? true status = 0

Auto-commit on? false

Read-only? false

Isolation level? TRANSACTION_READ_COMMITTED

Controlling thread: Thread[rice-ksbmessage(7),5,rice]

Connect time: 00:00.003

Arguments:

:1 = PRIMARY (java.lang.String)

:2 = null (null)

:3 = 78578996 (java.lang.String)

:4 = null (null)

:5 = null (null)

:6 = 11351 (java.lang.Integer)

:7 = 78578995 (java.lang.String)

:8 = 11350 (java.lang.Integer)

SQL:UPDATE KREW_RTE_BRCH_T SET NM=?,PARNT_ID=?,INIT_RTE_NODE_INSTN_ID=?,JOIN_RTE_NODE_INSTN_ID=?,SPLT_RTE_NODE_INSTN_ID=?,VER_NBR=? WHERE RTE_BRCH_ID = ? AND VER_NBR = ?

complete in 00:00.001

postquery complete in 00:00.000

I am re-opening this issue until routing performance is the same or better than our experience using Rice 1.0.3 (45 seconds or less per SIS.SR.GradeChange document). Has this been issue fixed in Rice 2.1 - can that patch be applied to IU's 2.0.2 version? Please advise.

Thanks,

Mark

Comment by James Bennett

[ 07/May/12 9:14 AM ]

We need to backport the changes for https://jira.kuali.org/browse/KULRICE-6950 into our IU Rice version since we aren't moving forward with Rice 2.1 at least for a while.

Comment by Eric Westfall

[ 07/May/12 10:03 AM ]

Mark, we discussed this this morning, here's what we are going to do today:

1) Add an index by name to the KREW_RULE_ATTR_T - Shannon

2) Need to do some simple web service call testing and see if the overhead of each call is really around half a second and, if so, figure out what we can do to make it faster. Do we need to see about http connection pooling. - Greg

– http://docs.oracle.com/javase/6/docs/technotes/guides/net/http-keepalive.html

– look at CXF docs as well to see what it says about improving http performance

– use as an example for configuration: http://svn.kuali.org/repos/rice/rice-functional-tests/rice-remote-test-client/trunk/

3) On the OJB mapping for RuleAttribute, the relationship to RuleTemplateAttributes should be proxy="true" - Shannon

4) Make it so that KREW_RULE_* tables are accessed directly via database in embedded mode - Eric, then work with rest of team to patch IU rice

5) Add grants to kr2_proxy for the various KREW_RULE_*_T/S tables and sequences as well as krew_dlgn_rsp_t and krew_rsp_s - Shannon

6) Backport the fix for to 2.0.2 - James

Comment by Eric Westfall

[ 07/May/12 10:04 AM ]

A note on number 2 above, we are trying to determine how much overhead we are getting with each webservice call and if there is anything we can do to reduce it 300+ ms seems like it's way too long for a single call.

Comment by Mark Fyffe

[ 07/May/12 10:12 AM ]

Does this screen help with the web services performance question?

Can you correlate these timings to requests on the server side?

The timings in SIS logs are between SEND phase calling the method, and at PRE-INVOKE phase on the incoming message after the remote call completes. These agree with the timings observed by dynaTrace.

Mark

Comment by Eric Westfall

[ 07/May/12 10:18 AM ]

I think it shows what we are suspecting here as far as the fact that webservice calls are taking 1/2 second or longer to complete the cycle. We are trying to rule out server-side processing time of the call (getExtensionByName in this case). It may be that the overhead is either in the handshake of connection creation + SSL or the security signing of the message.

Unfortunately, our dynatrace is only setup to run in kr2-snd. Are you able to make similar calls in that environment that we can inspect? Thanks.

Comment by Mark Fyffe

[ 07/May/12 10:19 AM ]

Have you considered using TransactionSynchronizationManager (Spring) in a client side wrapper to minimize the SOAP calls? I haven't analyzed how Rice 2.0 prefers to have this sort of thing implemented, but this is the same technique OJB uses to manage persistence broker caches so is well supported in these transactions.

Even if each remote call only takes 50ms (min. considering connection overhead), 2000 calls in one transaction is still a lot.

Mark

Comment by Eric Westfall

[ 07/May/12 10:20 AM ]

Actually, scratch that, James just switched it to point at kr2-unt so we can take a look at it there now. Let us know if it's possible for you to initiate one of these long-running workflow transactions again.

Comment by Mark Fyffe

[ 07/May/12 10:21 AM ]

Eric,

I'll submit a document in SND and report back. I suspect SSL also, since we see the same 200ms to 300ms timing on LDAP calls via AdsHelper.

Mark

Comment by Mark Fyffe

[ 07/May/12 10:22 AM ]

I'll start a new one in UNT, instead of SND. Should take 5 minutes to set up.

Mark

Comment by Mark Fyffe

[ 07/May/12 10:23 AM ]

I have a long running transaction in UNT now.

Mark

Comment by Eric Westfall

[ 07/May/12 10:27 AM ]

Sorry, I've been putting comments on the wrong jira, these are supposed to be on EN-2570 , i'll post them over there instead.

Comment by Mark Fyffe

[ 07/May/12 11:04 AM ]

FWIW - in the trace data I just posted to EN-2570 , the following relates to this issue. This is the 45 seconds we see under Rice 1.0.3 appearing twice. I suspect we are triggering the document once by SIS and once by the Rice 2.0 routing engine. I'll look into disabling the SIS save. cxf:recv:getExtensionByNameResponse.....00:00.399 20:48.782 1.334G -79.670M kew:pre-lock:10317815:true..............00:00.791 20:49.573 1.041G -300.031M kew:lock:10317815.......................00:00.005 20:49.578 1.041G 0 kew:pre-lock:10317815:true..............00:47.342 21:36.920 1.988G 968.980M kew:lock:10317815.......................00:00.006 21:36.926 1.988G 0 cxf:send:getExtensionById...............00:42.844 22:19.770 1.399G -602.862M

Mark

Comment by James Bennett

[ 07/May/12 11:39 AM ]

The changes from Rice 2.1 have been brought into IU Rice and we will redeploy the testing environments with this code at noon. Can you please check this again this afternoon and let us know if the performance is any better? Thanks

Comment by Mark Fyffe

[ 07/May/12 11:44 AM ]

James, have you deployed updated client jars? I believe that this processing takes place within the SIS application.

Thanks,

Mark

Comment by James Bennett

[ 07/May/12 12:06 PM ]

Mark,

I think I spoke a bit too soon. My changes are in place but we are attempting to check another change before creating new client JARs for you. We'll update you once those are ready for you to pull in so that you can verify that the routing issues are corrected.

Thanks,

James

Comment by James Bennett

[ 08/May/12 10:39 AM ]

Mark,

I believe that the updates we pulled in yesterday corrected the issue you were experiencing related to saving the routing data so I'm going to go ahead and re-close this issue. If I'm mistaken please feel free to reopen it.

Thanks,

James

[EN-2339] Action list performance due to action list attributes

Created: 05/Dec/11 Updated:

10/Sep/12 Resolved: 26/Jul/12

Status: Closed

Project: Kuali Rice

Component/s: Action List

Affects

Version/s:

None

Fix Version/s: Release Candidate 2 - r2.1.1

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Analysis Priority: Major

Reporter: Mark Fyffe Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Attachments: ad1.png ad2.png

Issue Links: Relates relates to

Relies is relied upon by

EN-2079 Investigate Action List Slowness

SCT-

4219

500 plus Action List Issue for Grad eApp

Closed

Closed

Description

Workflow team,

Users with large numbers of SIS.ADM.NonUgrdApp documents requested for approval are reporting severe slowdowns loading action lists in kr-prd. For a user with 500 documents in her action list, at least 1 minute of processing time will be spent in object remoter calls to sisaddoc-prd. With few exceptions [2], these calls complete normally in roughly 100ms with little or no deviation (see trace [1]). We do not observe any delays or load issues, but

500 is a high number of remote calls for a common operation. To my knowledge, this is typical performance for an object remoting request and is the same or better than we have observed over the last year. It would appear out of the box that KEW wasn't intended to handle quite this high of volume when handling action lists of this size with remote attributes.

This has led to a highly visible problem , and we need your urgent assistance in implementing a solution.

Is it possible to modify the IU Rice action list to query for actions using the following method or similar? This will allow us to return all 500 results at once, reducing the SIS overhead complexity for these operations.

ActionSet[] getLegalActions(UserSession userSession, ActionItem[] actionItem) throws Exception;

Does this sound like a reasonable approach? Please let us know how you'd like to proceed.

Thanks,

Mark

[1] Typical process trace of an Object Remoter call for SIS.ADM.NonUgrdApp action list attribute lookup prd,sisaddoc,http-10.0.111.15-18888-15,940426,INFO,2011-12-02 14:01:52,588,edu.i u.uis.sis.util.ProcessLogger,,,,,SISADDOC

SIS: SIS application request (940426)

Initial Memory Usage: 390.886M/1.969G/1.969G - 19% free env:prd.................................00:00.000 00:00.000 390.886M 0 pi:/ObjectRemoterService................00:00.000 00:00.000 390.886M 0 sp:/remoting............................00:00.000 00:00.000 390.886M 0 cp:/sisaddoc-prd........................00:00.000 00:00.000 390.886M 0 to:30...................................00:00.000 00:00.000 390.886M 0 tx1:sis:rw:2:begin......................00:00.001 00:00.001 390.886M 0 ksb:{SISADDOC}ObjectRemoterService......00:00.000 00:00.001 390.886M 0 tx2:handleRequest:rw:2:begin............00:00.001 00:00.002 390.886M 0 tx2:startCommit.........................00:00.118 00:00.120 855.583M 464.696M tx2:commit:jta..........................00:00.001 00:00.121 855.583M 0 tx2:commitComplete......................00:00.000 00:00.121 855.583M 0 tx1:startCommit.........................00:00.000 00:00.121 855.583M 0 tx1:commit:jta..........................00:00.000 00:00.121 855.583M 0 tx1:commitComplete......................00:00.000 00:00.121 855.583M 0 flushed streams.........................00:00.000 00:00.121 852.412M -3.169M status 200..............................00:00.000 00:00.121 852.412M 0 size 2513...............................00:00.000 00:00.121 852.412M 0

Processing Complete.....................00:00.000 00:00.121 852.412M 0

Elapsed Time: 00:00.121

Memory Usage: 852.412M/1.965G/1.965G - 42% free

Memory Delta: 461.525M/1.965G/1.965G - 22% free - tot delta: -4.187M

[2] KSB probem - Intermittently (< .001% of requests), a temp service is torn down before being acquired by the remoting dispatcher when doing KSB object remoting. We implemented a custom Rice 1.0.3 registry in 2/2011, but have seen this same error using action list attributes with the delivered Rice 1.0.1.1 and 0.9.1 registries. These errors happen fast, and are not related to the slowdowns - note that the error occurs at 49ms. prd.sisaddoc FATAL event at 2011-11-30 15:30:25,838

Service Namespace / Application: SISADDOC

Logger: edu.iu.uis.sis.session.servlet.SisRequestFilter

Thread: http-10.0.111.15-18888-11

Document ID:

Network ID:

Request ID: 582186

Session ID:

Transaction:

Message:

Unhandled exception in SIS request filter on node sisaddoc-esjava04.uits.indiana

.edu - esjava04.uits.indiana.edu/129.79.210.226

Process Log:

SIS: SIS application request (582186)

Initial Memory Usage: 536.467M/1.980G/1.980G - 26% free env:prd.................................00:00.000 00:00.000 536.467M 0 pi:/edu.iu.uis.sis.adm.document.workflow00:00.000 00:00.000 536.467M 0 sp:/remoting............................00:00.000 00:00.000 536.467M 0 cp:/sisaddoc-prd........................00:00.000 00:00.000 536.235M -237.601k to:30...................................00:00.000 00:00.000 536.235M 0 tx1:sis:rw:2:begin......................00:00.001 00:00.001 536.003M -237.468k tx1:rollback............................00:00.047 00:00.048 508.678M -27.324M

ERROR Service URL not found in local reg00:00.001 00:00.049 507.750M -949.945k

Error (if set): org.springframework.dao.DataRetrievalFailureException: Service URL not found in local registry: http://10.0.111.15:18888/sisaddocprd/remoting/edu.iu.uis.sis.adm.document.workflow.NonUgrdActionListAttribute115906

at edu.iu.uis.sis.ksb.SisRemotedServiceRegistry.getServiceName(SisRemotedServiceRegistry.java:531)

at edu.iu.uis.sis.ksb.SisRemotingDispatcherServlet.service(SisRemotingDispatcherServlet.java:30)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Comments

Comment by Mark Fyffe

[ 05/Dec/11 2:14 PM ]

Can we get a status update?

Also, see the email below regarding a previous instance of this attribute usage becoming a problem in production.

Eric's suggestion (in the pastie link) looks viable - is this functionality available in IU Rice?

From: "Fyffe, Mark W" <mwfyffe@indiana.edu>

Date: Tue, 1 Mar 2011 22:54:50 -0500

To: Westfall, Eric Curtis<ewestfal@indiana.edu>; Hess, Shannon<shahess@indiana.edu>

Cc: Thompson, Sandra W<sthomps@indiana.edu>

Subject: RE: SIS Database Pooling

Thanks Eric,

Our pool settings are not sufficient for SISRICE. Many of these users have their action lists set to 500 per page and are flooding sisrice with requests - when the pool backs up so do these requests, blocking on a connection. My sense is that the new pool settings should resolve this.

Mark

From: Westfall, Eric Curtis

Sent: Tuesday, March 01, 2011 2:14 PM

To: Fyffe, Mark W

Cc: BL-UITS-ESI-SIT; Thompson, Sandra W

Subject: Action List load times for sis users

Mark, we're seeing some pretty rough load times for some user's action lists in production, particularly these three: laehughe ageorges

Lbickel

These users appear to primarily have Graduate Admission applictions in their action list.

They will initiate a load of their action list and it will go on for awhile (sometimes up to an hour and a half or longer) and eventually we will get one of these: http://www.pastie.org/1621764

I'm not sure exactly what is going on there, but I suspect some kind of issue there is grounding the action list for these people. One question I had is what would be the impact of disabling the custom attributes for now until we get through this early period? I'm not sure what exactly it is doing or if it would negatively impact business function were it to be disabled. But it might provide a better experience to some of your approvers.

Thanks,

Eric

Comment by James Bennett

[ 05/Dec/11 2:28 PM ]

Mark,

This sort of functionality has been introduced in Rice 2.0 and I am currently investigating how to port that change back to Rice 1.0.3 to help resolve this issue. I'll let you know once I make some progress on this.

Thanks,

James

Comment by Mark Fyffe

[ 05/Dec/11 4:11 PM ]

Thanks James - keep us posted.

I assume this will require a Rice client library update. We last updated these on 3/15 from prd-iu-rice-1-0-3-created-2-

21-2011-br. If an update is needed, can you elaborate on any changes that have gone in since that could potentially impact our applications?

Best,

Mark

Comment by Eric Westfall

[ 05/Dec/11 5:59 PM ]

James, I would recommend you create a new type of attribute for this (call it OptimizedCustomActionListAttribute or something along those lines). That will allow us to keep from breaking compatibility with existing implementations of the attribute.

Sent from my iPhone

On Dec 5, 2011, at 4:11 PM, "ONESTART WORKFLOW" <workflow@indiana.edu> wrote:

>

> [ https://uisapp2.iu.edu/jira-prd/browse/WFR-

14075?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel&focusedCommentId=244372#comment-244372 ]

>

> Mark Fyffe commented on WFR-14075:

> ----------------------------------

>

> Thanks James - keep us posted.

>

> I assume this will require a Rice client library update. We last updated these on 3/15 from prd-iu-rice-1-0-3-created-

2-21-2011-br. If an update is needed, can you elaborate on any changes that have gone in since that could potentially impact our applications?

>

> Best,

> Mark

>

>> Action list performance due to action list attributes

>> -----------------------------------------------------

>>

>> Key: WFR-14075

>> URL: https://uisapp2.iu.edu/jira-prd/browse/WFR-14075

>> Project: Kuali Rice Request

>> Issue Type: Problem Report

>> Reporter: Mark Fyffe

>> Assignee: James Bennett

>> Priority: Blocker

>>

>> Workflow team,

>> Users with large numbers of SIS.ADM.NonUgrdApp documents requested for approval are reporting severe slowdowns loading action lists in kr-prd. For a user with 500 documents in her action list, at least 1 minute of processing time will be spent in object remoter calls to sisaddoc-prd. With few exceptions [2], these calls complete normally in roughly 100ms with little or no deviation (see trace [1]). We do not observe any delays or load issues, but

500 is a high number of remote calls for a common operation. To my knowledge, this is typical performance for an object remoting request and is the same or better than we have observed over the last year. It would appear out of the box that KEW wasn't intended to handle quite this high of volume when handling action lists of this size with remote attributes.

>>

>> This has led to a highly visible problem , and we need your urgent assistance in implementing a solution.

>>

>> Is it possible to modify the IU Rice action list to query for actions using the following method or similar? This will allow us to return all 500 results at once, reducing the SIS overhead complexity for these operations.

>> ActionSet[] getLegalActions(UserSession userSession, ActionItem[] actionItem) throws Exception;

>> Does this sound like a reasonable approach? Please let us know how you'd like to proceed.

>> Thanks,

>> Mark

>> [1] Typical process trace of an Object Remoter call for SIS.ADM.NonUgrdApp action list attribute lookup

>>

>> prd,sisaddoc,http-10.0.111.15-18888-15,940426,INFO,2011-12-02 14:01:52,588,edu.i

>> u.uis.sis.util.ProcessLogger,,,,,SISADDOC

>> SIS: SIS application request (940426)

>> Initial Memory Usage: 390.886M/1.969G/1.969G - 19% free

>> env:prd.................................00:00.000 00:00.000 390.886M 0

>> pi:/ObjectRemoterService................00:00.000 00:00.000 390.886M 0

>> sp:/remoting............................00:00.000 00:00.000 390.886M 0

>> cp:/sisaddoc-prd........................00:00.000 00:00.000 390.886M 0

>> to:30...................................00:00.000 00:00.000 390.886M 0

>> tx1:sis:rw:2:begin......................00:00.001 00:00.001 390.886M 0

>> ksb:{SISADDOC}ObjectRemoterService......00:00.000 00:00.001 390.886M 0

>> tx2:handleRequest:rw:2:begin............00:00.001 00:00.002 390.886M 0

>> tx2:startCommit.........................00:00.118 00:00.120 855.583M 464.696M

>> tx2:commit:jta..........................00:00.001 00:00.121 855.583M 0

>> tx2:commitComplete......................00:00.000 00:00.121 855.583M 0

>> tx1:startCommit.........................00:00.000 00:00.121 855.583M 0

>> tx1:commit:jta..........................00:00.000 00:00.121 855.583M 0

>> tx1:commitComplete......................00:00.000 00:00.121 855.583M 0

>> flushed streams.........................00:00.000 00:00.121 852.412M -3.169M

>> status 200..............................00:00.000 00:00.121 852.412M 0

>> size 2513...............................00:00.000 00:00.121 852.412M 0

>> Processing Complete.....................00:00.000 00:00.121 852.412M 0

>> Elapsed Time: 00:00.121

>> Memory Usage: 852.412M/1.965G/1.965G - 42% free

>> Memory Delta: 461.525M/1.965G/1.965G - 22% free - tot delta: -4.187M

>>

>> [2] KSB probem - Intermittently (< .001% of requests), a temp service is torn down before being acquired by the remoting dispatcher when doing KSB object remoting. We implemented a custom Rice 1.0.3 registry in 2/2011, but have seen this same error using action list attributes with the delivered Rice 1.0.1.1 and 0.9.1 registries. These errors happen fast, and are not related to the slowdowns - note that the error occurs at 49ms.

>>

>> prd.sisaddoc FATAL event at 2011-11-30 15:30:25,838

>> Service Namespace / Application: SISADDOC

>> Logger: edu.iu.uis.sis.session.servlet.SisRequestFilter

>> Thread: http-10.0.111.15-18888-11

>> Document ID:

>> Network ID:

>> Request ID: 582186

>> Session ID:

>> Transaction:

>> Message:

>> Unhandled exception in SIS request filter on node sisaddoc-esjava04.uits.indiana

>> .edu - esjava04.uits.indiana.edu/129.79.210.226

>> Process Log:

>> SIS: SIS application request (582186)

>> Initial Memory Usage: 536.467M/1.980G/1.980G - 26% free

>> env:prd.................................00:00.000 00:00.000 536.467M 0

>> pi:/edu.iu.uis.sis.adm.document.workflow00:00.000 00:00.000 536.467M 0

>> sp:/remoting............................00:00.000 00:00.000 536.467M 0

>> cp:/sisaddoc-prd........................00:00.000 00:00.000 536.235M -237.601k

>> to:30...................................00:00.000 00:00.000 536.235M 0

>> tx1:sis:rw:2:begin......................00:00.001 00:00.001 536.003M -237.468k

>> tx1:rollback............................00:00.047 00:00.048 508.678M -27.324M

>> ERROR Service URL not found in local reg00:00.001 00:00.049 507.750M -949.945k

>> Error (if set):

>> org.springframework.dao.DataRetrievalFailureException: Service URL not found in

>> local registry: http://10.0.111.15:18888/sisaddocprd/remoting/edu.iu.uis.sis.adm.document.workflow.NonUgrdActionListAttribute115906

>> at edu.iu.uis.sis.ksb.SisRemotedServiceRegistry.getServiceName(SisRemotedServiceRegistry.java:531)

>> at edu.iu.uis.sis.ksb.SisRemotingDispatcherServlet.service(SisRemotingDispatcherServlet.java:30)

>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

>>

>

> –

> This message is automatically generated by JIRA.

> If you think it was sent incorrectly, please contact your JIRA administrators: https://uisapp2.iu.edu/jiraprd/secure/ContactAdministrators!default.jspa

> For more information on JIRA, see: http://www.atlassian.com/software/jira

>

>

Comment by James Bennett

[ 06/Dec/11 11:18 AM ]

Do you believe the changes we made and tested in kr-reg will be adequate to resolve this issue or is there another portion which you would like me to investigate further?

Comment by Mark Fyffe

[ 06/Dec/11 11:27 AM ]

We are asking users to test using kr-stg this afternoon. I'm updating sisaddoc-stg in support of this now. I'll follow up when we hear back from users on the improvement.

Though a 45 second response should allow us to lower the priority, I would prefer to set a plan of action for reducing load time to 10 seconds before closing the issue. If users are satisfied with performance for the time being, we can continue to track this under .

Best,

Mark

Comment by James Bennett

[ 06/Dec/11 5:18 PM ]

Mark,

I did some further investigation and found a database index which sped up a query significantly and cut down on the time to load the action list by another 10-15 seconds. I tested it a few times in kr-reg and her action list loaded in 27-

33 seconds. I'm still investigating some other possible improvements I can implement on our side and I'll let you know if they make any further difference in the load time for the action list.

Thanks,

James

Comment by Eric Westfall

[ 07/Dec/11 12:54 AM ]

James, do you mind adding a quick note about this index onto the kuali rice performance page (just google "Kuali

Rice Performance" and it should be the first link).

Then create a rice 2.0 jira so we can address the problem in the released 2.0 db as well.

Thanks!

Eric

Comment by James Bennett

[ 07/Dec/11 9:40 AM ]

Documentation in Kuali Rice Wiki: https://wiki.kuali.org/display/KULRICE/Kuali+Rice+Performance#KualiRicePerformance-

Findingprimarydelegateswhenloadingactionlist

Rice 2.0 JIRA to create this new index: https://jira.kuali.org/browse/KULRICE-6299

Comment by James Bennett

[ 08/Dec/11 1:24 PM ]

I just finished looking through dynatrace to see what the longest action list load times are and there is at least one more action list which needs more investigation. I loaded the action list for "dgrew" in kr-reg and it took 5+ minutes.

After it loaded it appears that he has 478 action items and most of them are Graduate Admissions Applications. I'll let you know if I find anything which can help speed this up on our side.

Comment by James Bennett

[ 08/Dec/11 1:33 PM ]

Looked through dynaTrace on the long-running pure path and I see that his action list is executing a lot more JDBC calls (15,204) which is accounting for nearly three minutes of that time and it spent 47 seconds processing the JSP which the other action list I was investigating didn't have at all.

Comment by James Bennett

[ 08/Dec/11 3:00 PM ]

This slow action list appears to be related to the "Current Route Node(s)" preference. This causes the JSP to fetch the current route node so it can be displayed on the action list. Turning off that preference in kr-reg got the load time of his action list down to 30 seconds so the combination of displaying 500 items on the page with this option on is why his action list loads so slowly. I'll continue looking into this to see if I can improve the performance.

Comment by James Bennett

[ 12/Dec/11 11:15 AM ]

I made some tweaks to the way the action list fetches the current route node name which reduced the load time for the affected action list by around half. That is currently deployed to our KR testing environments and I will be deploying another set of improvements at noon.

Mark, can I reduce the priority of this issue from "Blocker" or have you had any other reports of problems from your users? If it can be reduced what do you think a more appropriate priority would be for the time being? Thanks!

Comment by Mark Fyffe

[ 12/Dec/11 1:15 PM ]

Thanks James. The initial issue is resolved now, and the additional improvements are appreciated. This issue can be reduced to a lower priority until you are done reviewing and have move related updates to production. I'd list this as major until load times are within 10 seconds.

Best,

Mark

Comment by James Bennett

[ 12/Dec/11 1:55 PM ]

Changing priority to major until we can perform more optimization to get the load time less than ten seconds.

Comment by Mark Fyffe

[ 15/Dec/11 7:36 AM ]

FYI - The attached big brother charts note the 10/27 eApp release, where we moved the ADM e-docs from the sise tomcat cluster to the sisad tomcat cluster. This noisy old space pattern can be isolated by this timing to the sisaddoc application. A major factor in that application's load lies is bursting related to this action list attribute. It'll be interested to observe this pattern over time to see if it improves.

Hope this is useful!

Mark

Comment by James Bennett

[ 24/Jan/12 12:27 PM ]

Moved this to the EN queue and set the fix version so that I can revisit this issue with the 2.0 code base. Need to make sure the action list performs at least as well as it does right now and hopefully better in 2.0.

Comment by James Bennett

[ 12/Mar/12 3:44 PM ]

Mark,

Can you let me know when you get a test environment running with Rice 2.0? I'd like to check the performance of action list attributes in the new code once you have everything set up. I'm going to move this to the 2.0 backlog until then so we don't have to keep updating the version.

Thanks,

James

Comment by Mark Fyffe

[ 12/Mar/12 3:45 PM ]

Thanks James. Will do.

Mark

Comment by Mark Fyffe

[ 21/Jun/12 1:45 PM ]

We tested in KR2-STG this morning, using the action list for mbyler. It appears that the action list attributes are not calling SISADDOC - can you suggest why these invocations are not going through?

Thanks,

Mark

Comment by Eric Westfall

[ 19/Jul/12 11:51 AM ]

Mark, I assume this is still an issue?

Comment by James Bennett

[ 26/Jul/12 4:41 PM ]

Mark and I reviewed this today and we found that the performance for action list customizations is fairly good in Rice

2. The mechanism which combines multiple customizations into a single web service call appears to work as expected.

[EN-2329] When JIRAs are created via code, it uses the backdoor principal name as the reporter.

Created: 23/Jan/12 Updated: 10/Sep/12 Resolved: 24/Jan/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

Rice 2.0 Implementation

Fix Version/s: Old and Unspecified , Milestone 0 - r2.0

, Rice 2.0 Implementation , Post 2.0

Contribution

Type: Bug Priority: Major

Reporter:

Resolution:

Shannon Hess

Fixed

None

Assignee:

Votes:

Shannon Hess

0

Labels:

Remaining

Estimate:

Time Spent:

Original

Estimate:

Issue Links:

Not Specified

Not Specified

Not Specified

Discovered discovered by EN-2328 ActionListFilterForm:GroupContract is... Closed

Description when JIRAs are created via code, it uses the backdoor principal name as the reporter. It should use the actual person logged in so the backdoor person doesn't get emails.

Example of ticket created from 1.0.3 code - https://uisapp2.iu.edu/jira-prd/browse/WFR-14316

Comments

Comment by Shannon Hess

[ 24/Jan/12 12:16 AM ]

This has been fixed on kr2-snd. Is this something that should be contributed back? Not sure how contributions are going to be handled from here on out.

I also noticed that the environment and server information is missing, which were IU customizations in 1.0.3.

Comment by Eric Westfall

[ 24/Jan/12 12:19 AM ]

Does the Rice code have jira integration built-into it? That seems weird that it would since we shouldn't be assuming people are using jira for incident reporting.

Comment by Shannon Hess

[ 24/Jan/12 1:07 AM ]

Eric,

I changed createMailMessage in KualiExceptionIncidentServiceImpl so that it uses the actual user like it did in 1.0.3. It is generic and not JIRA related.

Code in 1.0.3 (returns actual user and not back door user)

...

Person actualUser = UserSession.getAuthenticatedUser().getActualPerson();

...

Code in OUT of the Box 2.0 (returns back door user if there is one)

...

Person actualUser = GlobalVariables.getUserSession().getPerson();

...

CUSTOMIZATION for 2.0 code

...

/**

Begin IU Customization

 1/23/2012 - Shannon Hess

- When JIRAs are created via code, fix to use logged in user instead of back door user

 as the reporter. CONTRIB??

*/

String actualUserPrncplNm =

GlobalVariables.getUserSession().getLoggedInUserPrincipalName();

Person actualUser =

KimApiServiceLocator.getPersonService().getPersonByPrincipalName(actualUserPrncplNm);

/**

End IU Customization

*/

----- Also forgot to mention that I added the server and env back into the JIRA emails. I'm not able to debug sending emails in 2.0, so I'm not sure exactly why the old customization didn't work. -----

Comment by Eric Westfall

[ 24/Jan/12 2:05 AM ]

Ah, ok, i see. It's the email integration via jira which is why it ends up in jira. Makes sense, thanks

Comment by Shannon Hess

[ 24/Jan/12 8:00 AM ] yeah, my jira issue name was just bad.

[EN-2305] Need permission to prevent backdoor

Created: 13/Dec/11 Updated: 10/Sep/12 Resolved:

02/Apr/12

Status: Resolved

Project: Kuali Rice

Component/s: KFS Big Bang

Affects

Version/s:

None

Fix Version/s: Milestone 3 - r2.0

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Improvement Priority: Blocker

Reporter: James Smith Assignee: James Smith

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Relates is related to WFR-14406 SND backdoor login Resolved

Impacted

Client(s):

Description

KFS

Per , we'd like a permission created which checks if the current actual principal can backdoor. If not, then any backdoorId url variable will be ignored.

Since we've got production data in some of our test environments, we'd like to get this in the near future. Thanks!

Comments

Comment by James Smith

[ 13/Dec/11 2:08 PM ]

Added Heather and Damon as watchers.

Comment by Eric Westfall

[ 28/Dec/11 11:50 PM ]

Greg, assigning this one to you. As part of this, we need to work with our client functional and technical areas to determine who should have access to perform backdoor in the test environments and how to configure it (ADS groups assigned to a role may be the most flexible).

Comment by James Smith

[ 27/Jan/12 10:36 AM ]

Discussion w/ Greg about requirements:

Potentially, at least from a functional perspective. However, I hesitate to apply this to the kr side due to the existing usage and expectations by clients/testers. If we did, though, we'd need to gather information from integrating apps to get appropriate lists/groups/roles of testers/devs/users and that could take a bit of time I'd say.

From: "Smith, James K." <smith750@indiana.edu>

Date: Fri, 13 Jan 2012 13:32:08 -0500

To: Greg Patterson <grpatter@indiana.edu>

Subject: RE: backdoor KFS jira

There’s no data that we necessarily want to protect in Rice (which is the whole point of preventing backdoor). But would it be weird if a user successfully backdoored into Rice and not in KFS?

From: Patterson, Gregory Michael

Sent: Friday, January 13, 2012 1:28 PM

To: Smith, James K.

Subject: Re: backdoor KFS jira

Right, that's what I was thinking. Is this something you'd only want applied to the kfs namespace (by default) or is there existing rice standalone stuff you'd want to restrict as well? I don't know of anything off-hand, for reference.

From: "Smith, James K." <smith750@indiana.edu>

Date: Fri, 13 Jan 2012 13:23:51 -0500

To: Greg Patterson <grpatter@indiana.edu>

Subject: RE: backdoor KFS jira

You’d probably just use the configuration property, right? That would work. Thanks Greg!

From: Patterson, Gregory Michael

Sent: Friday, January 13, 2012 10:26 AM

To: Smith, James K.

Subject: backdoor KFS jira

James,

Question regarding ( https://uisapp2.iu.edu/jira-prd/browse/EN-2305 ) which is the request to essentially turn backdoor into a perm based whitelist. I'd skype you but I couldn't find you…

Is this something that should be qualified based on app code (kfs for ex) and also does this apply to the portal only or is the concern coming from other places/links (eg onestart contents)

Thanks

Greg

Comment by Greg Patterson

[ 30/Jan/12 1:47 PM ]

Changes implemented and committed, changeset 3232. Some database changes are required here, done in KR1DEV. Will attach the necessary inserts momentarily, involve adding a permission template, kim type, and kim attribute.

Comment by Greg Patterson

[ 30/Jan/12 1:48 PM ]

//New KIM Type

INSERT INTO KRIM_TYP_T(KIM_TYP_ID, OBJ_ID, VER_NBR, NM, SRVC_NM, ACTV_IND, NMSPC_CD)

VALUES(KRIM_TYP_ID_S.NEXTVAL, SYS_GUID(), 1, 'Backdoor Restriction (Permission)',

'backdoorRestrictionPermissionTypeService','Y','KR-SYS'); commit;

//New Attribute Definition insert into KRIM_ATTR_DEFN_T(KIM_ATTR_DEFN_ID, OBJ_ID, VER_NBR, NM, LBL, ACTV_IND, NMSPC_CD, CMPNT_NM) values(KRIM_ATTR_DEFN_ID_S.NEXTVAL, SYS_GUID(), 1,'appCode','Application Code', 'Y', 'KR-SYS',

'org.kuali.rice.kim.bo.impl.KimAttributes'); commit;

//New Permission Template using the KIM Type insert into KRIM_PERM_TMPL_T(PERM_TMPL_ID, OBJ_ID, VER_NBR, NMSPC_CD, NM, DESC_TXT, KIM_TYP_ID, ACTV_IND)

VALUES(KRIM_PERM_TMPL_ID_S.NEXTVAL, SYS_GUID(), 1, 'KR-SYS', 'Backdoor Restriction', 'Backdoor

Functionality Restriction',(select KT.KIM_TYP_ID from KRIM_TYP_T KT where kt.nm like 'Backdoor

Restriction%'),'Y'); commit;

//Tying the attribute to the KIM Type insert into KRIM_TYP_ATTR_T(KIM_TYP_ATTR_ID, OBJ_ID, VER_NBR, SORT_CD, KIM_TYP_ID, KIM_ATTR_DEFN_ID,

ACTV_IND)

VALUES(KRIM_TYP_ATTR_ID_S.NEXTVAL,SYS_GUID(),1,'A',

(select KT.KIM_TYP_ID from KRIM_TYP_T KT where kt.nm like 'Backdoor Restriction%'),

(select KA.KIM_ATTR_DEFN_ID from KRIM_ATTR_DEFN_T KA where KA.nm like 'appCode'),'Y'); commit;

//New Permission using the template insert into KRIM_PERM_T(PERM_ID, OBJ_ID, VER_NBR, PERM_TMPL_ID, NMSPC_CD, NM, DESC_TXT,ACTV_IND) values(KRIM_PERM_ID_S.NEXTVAL, SYS_GUID(), 1, (select tm.perm_tmpl_id from KRIM_PERM_TMPL_T TM where tm.nm like 'Backdoor Restriction'), 'KFS-SYS','KFS Backdoor Restriction', 'KFS Backdoor Restriction','Y'); commit;

//Attribute value data for the permission, replace kfs with the appropriate appCode value insert into

KRIM_PERM_ATTR_DATA_T(ATTR_DATA_ID,OBJ_ID,VER_NBR,PERM_ID,KIM_TYP_ID,KIM_ATTR_DEFN_ID,ATTR_VAL) values(KRIM_ATTR_DATA_ID_S.NEXTVAL,SYS_GUID(),1,(select KP.PERM_ID from KRIM_PERM_T KP where nm like 'KFS

Backdoor Restriction'),

(select KT.KIM_TYP_ID from KRIM_TYP_T KT where kt.nm like 'Backdoor Restriction%'),

(select KA.KIM_ATTR_DEFN_ID from KRIM_ATTR_DEFN_T KA where KA.nm like 'appCode'),'kfs');

Comment by Greg Patterson

[ 31/Jan/12 4:29 PM ]

James,

The KFS permission is now in kr2-unt and should be functional after you've pulled new client jars into KFS and assigned the permission to some roles.

The permission is ID : 10209 ( https://test.uisapp2.iu.edu/kr2unt/kr/inquiry.do?permissionId=10209&businessObjectClassName=org.kuali.rice.kim.bo.impl.PermissionImpl&methodToCall=start

)

I pushed new client jars to maven this afternoon, should be version "1.0.3_20120131-iu" and later.

Note that these changes are only done in our 1.0.3 branch, I will need to port them over to 2.0 but that shouldn't be an issue. If you need this support in 2.0 in the very near future please let me know.

Thanks

Greg

Comment by James Smith

[ 31/Jan/12 4:30 PM ]

Greg, don't we need a krim_perm_attr_data_t record too for the app code?

Comment by James Smith

[ 31/Jan/12 4:40 PM ]

Thanks Greg. I see the krim_perm_attr_data_t in kr2-unt; I think that for the sake of remembering, it should be in the sql comment you posted above - thank you! No need to port this to Rice 2.0 until later in February. I'll pull the new jars and try them out. Thanks!

Comment by James Smith

[ 02/Feb/12 1:30 PM ]

Just a note, Greg - it doesn't look like you're publishing backdoorRestrictionPermissionTypeService on the KSB, and I believe KIM type services are typically published.

Comment by Greg Patterson

[ 03/Feb/12 11:12 AM ]

James,

Thanks, that does appear to be the case, I've made that change and it'll be reflected in the next set of client jars.

Comment by James Smith

[ 03/Feb/12 11:22 AM ]

Thank you!

Comment by Greg Patterson

[ 17/Feb/12 10:29 AM ]

Moving this to milestone 2 instead of closing it in case there is further work needed to be done here.

The first version of this was released and published in our client jars as indicated in previous comments, so it may effectively be completed; we just need to hear back from James (S) on whether or not it meets their functionality needs.

Comment by James Smith

[ 17/Feb/12 1:51 PM ]

So we tested with someone who isn't a KFS-SYS User in our test.uisapp2.iu.edu/kfs-stg environment. That person was able to backdoor in as a different user, and to view that user's action list as well as perform actions as that user within our system. So I don't think this is working quite.

Comment by Greg Patterson

[ 17/Feb/12 2:24 PM ]

James, does kfs-stg point to our kr2-unt environment?

Comment by James Smith

[ 17/Feb/12 2:50 PM ]

Ah, no it isn't. Let me try against the kfs-unt environment. Thanks!

Comment by Greg Patterson

[ 17/Feb/12 2:58 PM ]

Also, I just updated the sql above and removed random 'select' statements I had left in as well as adding the PERM_ATTR_DATA insert.

Comment by Ailish Byrne

[ 28/Feb/12 11:07 AM ] trying to figure out creative ways to test this

Comment by Greg Patterson

[ 02/Apr/12 9:34 AM ]

KFS,

I'm going to go ahead and resolve this issue out, but feel free to create another jira if you find it does not meet your needs once you figure out ways to test this.

Thanks,

Greg

Comment by James Smith

[ 02/Apr/12 9:41 AM ]

Will do. Thanks Greg!

[EN-2266] Refactor incident report for feedback form

Created: 26/Sep/11 Updated:

10/Sep/12 Resolved: 27/Feb/12

Status: Closed

Project: Kuali Rice

Component/s: KFS Big Bang

Affects

Version/s:

None

Fix Version/s: Milestone 2 - r2.0

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: New Feature Priority: Critical

Reporter: James Smith Assignee: James Bennett

Resolution: Completed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Attachments: KualiExceptionIncident.jsp KualiExceptionIncident.jsp

KualiExceptionIncidentServiceImpl.java

KualiExceptionIncidentServiceImpl.java KualiFeedback.jsp

KualiFeedback.jsp KualiFeedback.jsp KualiFeedback.jsp

KualiFeedback.jsp KualiFeedbackHandlerAction.java

KualiFeedbackHandlerAction.java

KualiFeedbackHandlerAction.java

KualiFeedbackHandlerAction.java

KualiFeedbackHandlerForm.java

KualiFeedbackHandlerForm.java

KualiFeedbackHandlerForm.java MailMessage.java

MailMessage.java MailServiceImpl.java

MailServiceImpl.java build.properties iu-kns-strutsconfig.xml spring-sys.xml

Issue Links: Discovered discovered by FSKD-2116 change to the incident report for tes... Resolved

Impacted

Client(s):

Description

KFS

This is a case where we were hoping this would be easier.

We'd like a feedback form where the user has a text box, just like the incident report, to mail feedback to our functional users. Instead of making the document ID or component read only, it would allow editing of the default values. So, we were hoping we could just repurpose the incident report for that.

Sadly, the incident report requires that an exception live in the request attributes - ie, it has to go through the Struts exception processor. That won't work for feedback which is fired off from a link. Therefore, refactoring is required.

Comments

Comment by James Smith

[ 26/Sep/11 3:00 PM ]

Added Heather and Mary as watchers.

Comment by Heather Stapleton

[ 04/Oct/11 10:51 AM ]

This issue and is critical to our coming testing with departmental users (starting 10/24). We're going to have Kalani override this logic in our KFS code (not in Rice) so that our testing isn't delayed. Then we can attach a patch or the impacted files to this jira so that the changes can be merged into Rice.

Comment by James Smith

[ 04/Oct/11 1:33 PM ]

Kalani will need to override org.kuali.rice.kns.web.struts.action.KualiExceptionHandlerAction here, somehow...

Comment by Ailish Byrne

[ 04/Oct/11 1:36 PM ] i assumed we would just override the struts mapping, but maybe that's not the easiest / best approach

Comment by James Smith

[ 04/Oct/11 1:51 PM ]

Me too, I just always forget the action class for this, so noting it for myself and Kalani.

Comment by Kalani Ruwanpathirana

[ 17/Oct/11 9:26 PM ]

I have attached the files.

Changed spring-sys.xml to override the beans - knsExceptionIncidentService and mailService

Property rice.kns.struts.config.files is overriden in build.properties

Comment by Kalani Ruwanpathirana

[ 25/Oct/11 1:42 PM ]

Code committed to KFS.

Comment by James Smith

[ 25/Oct/11 2:20 PM ]

Uploading version of KualiFeedback.jsp which uses JSTL instead of <%= %> tags; I'm hoping that will be a bit more complaint with different versions of Tomcat. Also, it brings immeasurable joy to my soul.

Comment by James Smith

[ 01/Nov/11 3:46 PM ]

After discussing further needs on this with Ailish, we felt it important to emphasize that for the sake of consistency, Kalani programmed the feedback form to use many of the same conventions as the foundation Rice Exception Incident report. However, that specific piece of functionality has several diversions from standard Kuali practice. To mention just a few:

 Use of <%= %> scriptlet tags in the JSP page

 Pulling parameters from the request on the JSP page itself instead of using the form

 Not using the "methodToCall" convention, but instead checking what form class is being used to see if the request represents a get or a post (that's right - the http method isn't

 checked, but the class of the form; this code threw me for loops for weeks)

 Not following security conventions about which parameters are allowed to be posted org.kuali.rice.kns.service.impl.KualiExceptionIncidentServiceImpl checks for a property called KualiExceptionIncidentServiceImpl.REPORT_MAIL_LIST to figure out where

to mail properties too. This is a property naming convention unique within the system to my knowledge

Anyway, that's a sample of my technical concerns with this page (Ailish shares most of these concerns as well). Having said all that, at some point KRAD is going to force a conversion. So huzzah.

Comment by James Smith

[ 02/Nov/11 4:20 PM ]

Reassigning to Kalani once again to do some more work for us on the issue. After discussing with Ailish, we need the following changes:

1) Wording changes:

On the feedback form

Replace: Please use the Feedback form below to give feedback. This feedback will be forwarded to our incident report list.

With: Thank you for taking the time to help us improve the system. Please use the form below to provide your feedback. Clicking submit will send your report to our support team.

On the incident report form

Replace: Please use the Incident Report form to report the problems. This information will be forwarded to our support team. Please describe what action you were taking when the problem occurred.

With: Thank you for taking the time to help us improve the system. Please use the form below to describe what you were doing when the problem occurred. Clicking submit will send your report to our support team.

2) We would like the user field to be relabeled as "Principal Name" and that should always be read only

3) On the feedback form, we'd like another field which will store its values in the "component" field of the incident report. It should be a text area, labeled "What document type or other function does this feedback refer to?"

4) On both the incident report and feedback forms, "user input" should be relabled "description"

Thanks Kalani!

Comment by Kalani Ruwanpathirana

[ 07/Nov/11 3:41 PM ]

Attaching the files which were modified due to new requirements.

Comment by Heather Stapleton

[ 07/Nov/11 3:58 PM ]

Resolving to reopen. We need to keep this issue open in the Rice queue. Thanks, Kalani.

Comment by Kalani Ruwanpathirana

[ 07/Nov/11 4:00 PM ]

Oh ok forgot that I shouldn't resolve it.

Comment by Kalani Ruwanpathirana

[ 09/Nov/11 4:49 PM ]

Attaching modified files (to remove principal name from the form)

Comment by Kalani Ruwanpathirana

[ 11/Nov/11 10:32 AM ]

Attaching the files which were modified according to the code review.

Comment by Heather Stapleton

[ 06/Jan/12 11:24 AM ]

Handing this over to James since our part is done.

Comment by James Bennett

[ 27/Feb/12 9:56 AM ]

I've finished integrating this change into our IU Rice 2.0 code. James and Heather, would you like to have a brief code review to go over the changes I made as I pulled in this functionality?

If so I'll set up a Crucible review and/or a meeting to discuss the changes. Thanks!

Comment by James Smith

[ 27/Feb/12 10:02 AM ]

That sounds great.

Comment by James Bennett

[ 27/Feb/12 2:29 PM ]

Reviewed these changes with James and everything looks good so I'm going to go ahead and close this out.

[EN-2261] Opening two docs of the same time at the same time blows up

Created:

20/Sep/11 Updated: 10/Sep/12 Resolved: 21/Sep/11

Status: Closed

Project: Kuali Rice

Component/s: KFS Big Bang

Affects

Version/s:

None

Fix Version/s: KFS Big Bang - Old Version , Post 2.0 Contribution

Type: Problem Report Priority: Critical

Reporter: James Smith Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Discovered discovered by FSKD-2118 Trying to open two DIs at the same ti... Closed

Impacted

Client(s):

Description

KFS

There really are days when I'm just shocked we've never run into certain problems before.

I did a doc search for KFS DI docs on my local box (this happened in kfs-stg too). I opened two DIs, each into their own tab, so the requests to open the docs were concurrent. I got the error below. Evidently since Formatter.registry is static, the same iterator is being used for each iteration? That seems crazy.... java.util.ConcurrentModificationException java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) java.util.HashMap$KeyIterator.next(HashMap.java:828) org.kuali.rice.kns.web.format.Formatter.findFormatter(Formatter.java:218) org.kuali.rice.kns.web.format.Formatter.formatterForType(Formatter.java:200) org.kuali.rice.kns.web.format.Formatter.getFormatter(Formatter.java:138) org.kuali.rice.kns.web.format.Formatter.getFormatter(Formatter.java:123) org.kuali.rice.kns.web.struts.pojo.PojoFormBase.getFormatter(PojoFormBase.java:346) org.kuali.rice.kns.web.struts.pojo.PojoFormBase.formatValue(PojoFormBase.java:385) org.kuali.rice.kns.web.struts.pojo.PojoPropertyUtilsBean.getProperty(PojoPropertyUtilsBean.java:79) org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290) org.kuali.rice.kns.util.ObjectUtils.getPropertyValue(ObjectUtils.java:303) org.kuali.kfs.sys.document.web.AccountingLineGroupTag.getAccountingLineCollection(AccountingLineGroupTag.java:256) org.kuali.kfs.sys.document.web.AccountingLineGroupTag.generateContainersForAllLines(AccountingLineGroupTag.java:273) org.kuali.kfs.sys.document.web.AccountingLineGroupTag.doStartTag(AccountingLineGroupTag.java:154)

Comments

Comment by James Smith

[ 20/Sep/11 5:50 PM ]

Hm, nope. HashMap#keySet() shows that the key set should be generating a new iterator every single time Iterator typeIter = registry.keySet().iterator(); gets called in Formatter. So how could we have a concurrent modification exception here?

Comment by James Smith

[ 20/Sep/11 5:53 PM ]

Oh - but that iterator refers to a variable in the hashMap called "modCount". Now, modCount only gets updated when the hash map gets updated - ie, has a value added to it or removed from it or the hash map is cleared. That shouldn't be happening mid-render, should it?

Comment by James Smith

[ 20/Sep/11 5:56 PM ]

BTW, this may be KRAD impact so it may not be worth looking into right now. It's definitely curious though.

Comment by James Smith

[ 20/Sep/11 5:59 PM ]

Well the suspect is immediately obvious from the code:

Iterator typeIter = registry.keySet().iterator(); while (typeIter.hasNext()) {

Class currType = (Class) typeIter.next(); if (currType.isAssignableFrom(type)) { Class currFormatter = (Class) registry.get(currType); registerFormatter(type, currFormatter); return currFormatter; }

}

I can try to look into which formatter is inserting itself but in general, it's probably a bad idea to be iterating over a collection and potentially adding to that collection at the same time.

Comment by James Bennett

[ 20/Sep/11 5:59 PM ]

I just looked at the code in the Formatter class and this piece is the issue:

Iterator typeIter = registry.keySet().iterator(); while (typeIter.hasNext()) {

Class currType = (Class) typeIter.next();

if (currType.isAssignableFrom(type)) {

Class currFormatter = (Class) registry.get(currType);

registerFormatter(type, currFormatter);

return currFormatter;

}

}

It is registering a new formatter while iterating through the hash map of registered formatters.

We need to change this so it registers the formatter after it finishes iterating.

I'll try to get this patched tomorrow and I'll let you know when new JARs are available.

Comment by James Smith

[ 20/Sep/11 6:02 PM ]

Sorry James! On the jira about bad concurrent modifications, we're making concurrent modifications...

Comment by James Bennett

[ 21/Sep/11 12:44 PM ]

I've fixed this issue and updated the client JARs to include the change. Please pull in those new

JARs and test this change to let me know if this is fixed for you. Thanks!

Comment by James Smith

[ 21/Sep/11 4:53 PM ]

Better, thank you James!

[EN-2246] Need DocumentService#getNewDocument for arbitrary user

Created:

02/Sep/11 Updated: 10/Sep/12 Resolved: 14/Sep/11

Status: Closed

Project: Kuali Rice

Component/s: KFS Big Bang

Affects

Version/s:

None

Fix Version/s: KFS Big Bang - Old Version , Post 2.0 Contribution

Type: New Feature Priority: Blocker

Reporter: James Smith Assignee: Shannon Hess

Resolution: Completed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Relies is relied upon by

FSKD-

1948

Implement Self Service OLTP for

DDS

Closed

Impacted

Client(s):

Description

KFS

Currently, the KNS DocumentService always uses the currently logged in user as the initiator of a document. We've got a case in KFS where we need to have the KFS system user initiate a document while another user is logged in (we need this because the document initiation is a background process; we do not want to give the user permission to initiate the document directly). So we'd like a version of getNewDocument which gets a principal explicitly passed in to act as document initiator.

Comments

Comment by James Smith

[ 02/Sep/11 3:53 PM ]

Added Ailish and Ying as watchers.

Comment by James Smith

[ 02/Sep/11 4:17 PM ]

By the way, if there are concerns about the jira as described above, we would also be fine with a getNewDocumentInitiatedBySystemUser() where the document is always initiated by the system user of the application that owns the document type or class. However, how that system user would be figured out...that I don't know. So the original description is probably easier...

Comment by Shannon Hess

[ 14/Sep/11 11:34 AM ]

James,

There are updated client jars out there with a new getNewDocument method. Can you pull them and see if they meet your needs?

Thanks,

Shannon

Comment by James Smith

[ 14/Sep/11 11:42 AM ]

I'll give them a look - thank you!

Comment by James Smith

[ 14/Sep/11 12:02 PM ]

Did you commit the updated DocumentService and DocumentServiceImpls to src-patched? I didn't see these methods, though the client jars have the method we need. I'll commit and let

Ying know she can use this. I take it, btw, that the second parameter is the principal name, not the principal id, right? Thank you!

Comment by Shannon Hess

[ 14/Sep/11 12:16 PM ]

I just committed the update java classes to src-patched (I wanted to wait due to having to tag for production tomorrow). I did use the principal name, but I can easily change that to the Person object or principal ID if that makes more sense.

Comment by James Smith

[ 14/Sep/11 12:23 PM ]

Cool, thank you Shannon!

Principal ID NEVER makes more sense than Principal Name : - > (I'll probably regret that statement some day) - but what you have is exactly what we want. Thank you Shannon!

[EN-2219] kfs rice data conversion: at cutover job 2

Created: 18/Jul/11 Updated: 10/Sep/12 Resolved:

09/Dec/11

Status: Closed

Project: Kuali Rice

Component/s: KFS Big Bang

Affects

Version/s:

None

Fix Version/s: KFS Big Bang - Old Version , Post 2.0 Contribution

Type: Task Priority: Blocker

Reporter: Heather Stapleton Assignee: James Bennett

Resolution: Completed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Relies is relied upon by

FSKD-

2098

Remove Org Review approval for the

US...

Closed

Impacted

Client(s):

Description

KFS

Create a new document type policy that prevents immediate email notifications when super user actions are taken (e.g. GENERATE_IMMEDIATE_EMAILS_ON_SU_ACTION w/ default of true).

Write a batch job to flip this new policy and SEND_NOTIFICATION_ON_SU_APPROVE back to default value on the KFS parent document type after the second KFS "at cutover" job runs, i.e. after all other pieces of the fis and epic enroute document conversion are done.

Comments

Comment by Shannon Hess

[ 19/Jul/11 9:21 AM ]

I'm assuming that this policy should not overwrite what the person has set for their preferences? i.e., if the person only wants a daily email, they would not get an immediate email by default when a SU takes action. If that is the case, should the naming be reversed? Such as

SUPPRESS_IMMEDIATE_EMAILS_ON_SU_ACTION w/ default of false?

Comment by Poonam Bhargava

[ 19/Jul/11 10:01 AM ]

Your argument makes sense to me Shannon.

SUPPRESS_IMMEDIATE_EMAILS_ON_SU_ACTION w/ default of false, sounds good.

Ailish, do you agree?

Comment by Ailish Byrne

[ 19/Jul/11 11:05 AM ] i totally agree - thanks!

Comment by Shannon Hess

[ 22/Jul/11 7:02 PM ]

This fix for this has been deployed to the test environments and I created new client jars. Can you please grab them and do some testing to verify it meets your needs?

Example of policy in document type:

<policies>

<policy>

<name>SUPPRESS_IMMEDIATE_EMAILS_ON_SU_ACTION</name>

<value>true</value>

</policy>

</policies>

Thanks,

Shannon

Comment by James Smith

[ 12/Aug/11 11:21 AM ]

Hi Shannon. As we remember, this is the jira for sql which needs to be run in Rice after the KFS conversion is complete. If that's the case, could you add the sql below to your script, to remove super user approve permission for system user "kfs" to the KFS and REQS documents? If I've got the wrong jira, what is the correct one? Thank you! delete from krim_role_perm_t where role_id = (select role_id from krim_role_t where nmspc_cd = 'KFS-SYS' and role_nm = 'System User') and perm_id = (select krim_perm_t.perm_id from krim_perm_t join (select perm_id from krim_perm_attr_data_t where kim_typ_id = (select kim_typ_id from krim_perm_tmpl_t where nmspc_cd = 'KR-

WKFLW' and nm = 'Administer Routing for Document') and kim_attr_defn_id = (select kim_attr_defn_id from krim_attr_defn_t where nmspc_cd = 'KR-WKFLW' and nm =

'documentTypeName') and attr_val = 'KFS') p_a_d1 on krim_perm_t.perm_id = p_a_d1.perm_id and krim_perm_t.perm_tmpl_id = (select perm_tmpl_id from krim_perm_tmpl_t where nmspc_cd = 'KR-WKFLW' and nm = 'Administer Routing for

Document'))

/ delete from krim_role_perm_t where role_id = (select role_id from krim_role_t where nmspc_cd = 'KFS-SYS' and role_nm = 'System User') and perm_id = (select krim_perm_t.perm_id from krim_perm_t join (select perm_id from krim_perm_attr_data_t where kim_typ_id = (select kim_typ_id from krim_perm_tmpl_t where nmspc_cd = 'KR-

WKFLW' and nm = 'Administer Routing for Document') and kim_attr_defn_id = (select kim_attr_defn_id from krim_attr_defn_t where nmspc_cd = 'KR-WKFLW' and nm =

'documentTypeName') and attr_val = 'REQS') p_a_d1 on krim_perm_t.perm_id = p_a_d1.perm_id and krim_perm_t.perm_tmpl_id = (select perm_tmpl_id from krim_perm_tmpl_t where nmspc_cd = 'KR-WKFLW' and nm = 'Administer Routing for

Document'))

/

Comment by James Smith

[ 19/Sep/11 4:24 PM ]

More to remove after KFS conversion is complete. Thanks Shannon! declare v_role_mbr_id KRIM_ROLE_MBR_T.role_mbr_id%TYPE; cursor role_mbr_id_cursor is select krim_role_mbr_t.role_mbr_id from

((select role_mbr_id from krim_role_mbr_attr_data_t where attr_val = 'USER' and kim_attr_defn_id = (select kim_attr_defn_id from krim_attr_defn_t where nmspc_cd = 'KR-

WKFLW' and nm = 'documentTypeName')) rm1 join

((select role_mbr_id from krim_role_mbr_attr_data_t where attr_val = 'IU' and kim_attr_defn_id = (select kim_attr_defn_id from krim_attr_defn_t where nmspc_cd = 'KFS-

COA' and nm = 'chartOfAccountsCode')) rm2 join

(select role_mbr_id from krim_role_mbr_attr_data_t where attr_val = 'UNIV' and kim_attr_defn_id = (select kim_attr_defn_id from krim_attr_defn_t where nmspc_cd = 'KFS-

COA' and nm = 'organizationCode')) rm3 on rm2.role_mbr_id = rm3.role_mbr_id) on rm1.role_mbr_id = rm3.role_mbr_id) join krim_role_mbr_t on rm1.role_mbr_id = krim_role_mbr_t.role_mbr_id where krim_role_mbr_t.role_id = (select role_id from krim_role_t where nmspc_cd = 'KFS-

SYS' and role_nm = 'Organization Reviewer'); begin if not role_mbr_id_cursor%ISOPEN then open role_mbr_id_cursor; end if; loop fetch role_mbr_id_cursor into v_role_mbr_id; exit when role_mbr_id_cursor%NOTFOUND; delete from krim_role_rsp_actn_t where role_mbr_id = v_role_mbr_id; delete from krim_role_mbr_attr_data_t where role_mbr_id = v_role_mbr_id; delete from krim_role_mbr_t where role_mbr_id = v_role_mbr_id; end loop; end;

/

(original version left orphan records because of join involved...)

Comment by Ailish Byrne

[ 09/Dec/11 11:23 AM ] james smith take another look

Comment by James Smith

[ 09/Dec/11 12:52 PM ]

We were leaving this open, I believe, just in case there was more stuff which needed removing in Shannon's script.

Shannon, if this has been added to your post-after cutover script, then I think we can close and create new jiras. Thanks!

Comment by Shannon Hess

[ 09/Dec/11 1:57 PM ]

James,

you mentioned a post- after cutover script, which I don't think I ever created. It is now in the following location in svn, but it only contains the information in this JIRA. If I'm missing something from other jiras just let me know.

\iu-rice\upgrade\KFSBigBang\kr_run_after_kfs_conv_complete.sql

Thanks,

Shannon

Comment by James Smith

[ 09/Dec/11 2:47 PM ]

Thanks so much, Shannon!

[EN-2196] Modify Role Service to prevent OSCacheNotifications from sending to everyone

Created: 10/Jun/11 Updated: 10/Sep/12 Resolved: 15/Jun/11

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Old and Unspecified , Post 2.0 Contribution

Type: New Feature Priority:

Reporter:

Resolution:

Labels:

James Bennett

Fixed

None

Not Specified

Assignee:

Votes:

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Impacted

Client(s):

Description

KC

Major

James Bennett

0

Modify the RoleServiceBase to make it so that when a configuration is set it will only send an

OSCacheNotification to the local machine rather than all of the nodes which have been registered in the service bus.

Comments

Comment by James Bennett

[ 15/Jun/11 10:53 AM ]

KC has deployed new client JARs containing this functionality and reported that it is working as they expected.

[EN-2155] BusinessObjectService#getReferenceIfExists should consult

BOMetaDataService

Created: 05/Apr/11 Updated: 10/Sep/12 Resolved: 20/Dec/11

Status:

Project:

Closed

Kuali Rice

Component/s: KFS Big Bang

Affects

Version/s:

None

Fix Version/s: KFS Big Bang - Old Version , Post 2.0 Contribution

Type: Task Priority: Blocker

Reporter:

Resolution:

Labels:

James Smith

Fixed

None

Not Specified

Assignee:

Votes:

James Bennett

0

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Issue Links: Discovered discovered by FSKD-1758 Chart document reporting that encumbr... Closed

Impacted

Client(s):

Description

KFS

BusinessObjectServiceImpl#getReferenceIfExists has two problems which are causing . First, it pulls the property type of the reference from the business object itself, whereas it would be more accurate to use the relationship information from the BusinessObjectMetaDataService (ie, either the ORM relationship or the data dictionary relationship; and btw, it uses that to find the keys for the relationship - the type should be good enough as well!). Also, it might be nice if the relationship query would blow up if multiple results were returned from the query - though research shows this is likely a failing of OJB, not Rice.

I'm reporting at foundation as well.

Comments

Comment by James Smith

[ 05/Apr/11 10:00 AM ]

Foundation jira: https://jira.kuali.org/browse/KULRICE-5063

Comment by James Smith

[ 05/Apr/11 10:31 AM ]

And just to clarify, the lines which I believe most problematic:

Class referenceClass = ObjectUtils.getPropertyType( bo, referenceName, persistenceStructureService ); if ( referenceClass == null ) { referenceClass = propertyDescriptor.getPropertyType(); }

Comment by Eric Westfall

[ 12/Aug/11 4:44 PM ]

Can you take a look at this one James B?

Comment by James Bennett

[ 19/Aug/11 9:32 AM ]

Should I begin working on this issue now or should I wait until they address it at Foundation and then apply the same patch to IU Rice?

Comment by Eric Westfall

[ 09/Nov/11 4:18 PM ]

We should communicate to Terry's team about this change when we make it so they can be aware in case it causing any unanticipated impact to the KC application.

Comment by Ailish Byrne

[ 09/Dec/11 11:22 AM ] jameses discuss and let's move forward

Comment by James Bennett

[ 12/Dec/11 5:04 PM ]

James, does this look in line with what you were thinking:

Class referenceClass = persistenceStructureService.getBusinessObjectAttributeClass(bo.getClass(), referenceName); if(referenceClass == null) {

referenceClass = ObjectUtils.getPropertyType( bo, referenceName, persistenceStructureService );

} if ( referenceClass == null ) {

referenceClass = propertyDescriptor.getPropertyType();

}

If so I'll commit this code and build the JARs for you

Comment by James Smith

[ 12/Dec/11 5:07 PM ]

Yep, that's how I was thinking. Thanks!

Comment by James Bennett

[ 12/Dec/11 5:15 PM ]

Here are the updated JAR files: https://uisapp2.iu.edu/nxs-prd/content/repositories/IUInternal/edu/iu/es/esi/rice/riceextras/1.0.3_20111212-iu/rice-extras-1.0.3_20111212-iu.jar

https://uisapp2.iu.edu/nxs-prd/content/repositories/IUInternal/edu/iu/es/esi/rice/riceimpl/1.0.3_20111212-iu/rice-impl-1.0.3_20111212-iu.jar

https://uisapp2.iu.edu/nxs-prd/content/repositories/IUInternal/edu/iu/es/esi/rice/riceapi/1.0.3_20111212-iu/rice-api-1.0.3_20111212-iu.jar

Please let me know if this fixes this issue or if it causes any problems. I'll contact the KC team about this change as well. Thanks!

Comment by James Bennett

[ 15/Dec/11 12:10 PM ]

Have you had the opportunity to test this change? If so, did it resolve this issue?

Comment by James Smith

[ 15/Dec/11 12:38 PM ]

We're still testing on our side. Thanks James!

Comment by James Smith

[ 15/Dec/11 1:06 PM ]

This worked. But the most recent Rice jars don't seem to have this code. Was this just because we're in testing mode?

Comment by James Bennett

[ 15/Dec/11 1:41 PM ]

I reverted this change yesterday so that it wouldn't go to production before KC had the opportunity to test and I forgot to reapply it before generating the JARs earlier today. I've updated them now so they should include this change.

Comment by James Bennett

[ 16/Dec/11 9:53 AM ]

I created this JIRA for KC to test that this change will not negatively impact them: https://uisapp2.iu.edu/jira-prd/browse/UITSRA-835

Comment by James Bennett

[ 20/Dec/11 1:20 PM ]

I'm going to close out this issue since the change fixed the problem you were experiencing and

KC finished testing the change on their end. If you come across any problems related to this change please reopen this issue. Thanks!

[EN-2058] Build a custom IdentityService implementation which adds in Salary and other employment-related data to KimDefaultEntityInfo

Created: 14/Jan/11 Updated:

10/Sep/12 Due: 14/Feb/11 Resolved: 17/Jun/11

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

Fix Version/s: KC , Post 2.0 Contribution

Type: New Feature

Reporter:

Resolution:

Labels:

None

Eric Westfall

Fixed

None

Not Specified Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Attachments:

Priority:

Assignee:

Votes:

Blocker

James Bennett

0

AppointmentTypeAsUsedInERABudget.jpg

KCAdditionalAttributesFromKIM-Specification.docx RE HR Web

Services needed for KC - 6th April Last reply.msg object-codes-inuse.xlsx

Issue Links: Relates is related to EN-2600 Reintegrate KIM code with HR Salary S... Closed

Impacted

Client(s):

Description

HRE, KC

Kuali Coues needs some additional information as part of their implementation from KIM that we are not currently getting from IMS and the KimIntegrationService. Additionally, this data is

HR-related and it is preferrable that we do not have IMS broker this data for us but rather pull it from a service published by HR.

The IU KC team is going to work on putting together the data requirements for the HR team.

They will also provide us with how that data should be mapped/provided via the

KimEntityDefaultInfo data model. HR will then implement a service that we can invoke to get this additional information.

To implement this, we should provide an implementation of the KIM IdentityService interface which delegates to another underlying instance of IdentityService which will be injected in

Spring (we're talking about the Decorator design pattern here). It will delegate all calls down to that IdentityService delegate, get the result back, and then invoke the appropriate HR service to get the additional data and "add" it or "rebuild" the KimEntityDefaultInfo object(s) with that additional info.

We can then provide instructions for KC on how they should override the "kimIdentityService" in their application to take advantage of this.

In order to implement most of this though we do need two things:

1) The information from the KC team on what additional data they need through the KIM apis

2) The service available from the HR team

James, KC is hoping to do some user testing in early march so our goal would be to have something ready for them prior to that if possible.

Comments

Comment by Eric Westfall

[ 14/Jan/11 1:28 PM ]

Added watchers from KC and HR teams.

Comment by Vivek Dixit

[ 19/Jan/11 2:31 PM ]

I am attaching a specification document that lists out the data elements that KC needs from KIM.

All watchers, please review it and let me know if you need more clarity/info on anything therein.

Comment by James Bennett

[ 27/Jan/11 3:24 PM ]

I believe that I have the basic service set up for this task. Right now it only returns the information found in the existing IdentityService, but it should be easy to modify the necessary methods to pull in the additional information needed for the KC team once the service from HR is available. Do we have an estimate on when that might become available?

Comment by Aaron S. Neal

[ 28/Jan/11 8:36 AM ]

Maria Whitikar from the HR team will be working on this. She will be working to simply pull the data requested from the DB and providing it for you via flat file to make sure we are getting you the data you want. Simultaneously, she will be working to setup a new application for HR to build a service you can use to get this data.

Comment by Maria Whitaker

[ 28/Jan/11 2:20 PM ]

Hello,

I need to make sure we understand your data requirements, so here are some questions:

1) Affiliation a) One of the affiliation types you mention is "Student". HR is concerned with employees, not students. I want to make sure that you expect this service to return data to you that pertains to a student only if that student also has a job with IU and therefore has a relationship with HR. Students that do not work for IU are not included in the HR data. b) We currently do not have "Affiliate" information in PeopleSoft . Yes, there are some people marked as affiliates, but the HR data in PeopleSoft is NOT the authoritative source of this data. We should be able to get it from IMS and provide it to you via our service; this seems to me to be a good solution since KPME will probably hold all this information in the future and the HR service will be getting the data from KPME for you.

2) Base Salary

In PS, we have several different pieces of information related to salary. The main question is: are you looking for an annualized estimate of the employee's salary? For an hourly employee, for instance, are you expecting the base salary to be his hourly rate or a pay per pay period or annualized salary rate assuming 40 hrs/week, 52 weeks/year? For monthly employees, it is easy to provide the base salary, but there are other cases where some decisions have to be made and I need to understand better what you are looking for.

3) Appointment Type a) Summer Employee – what do you mean by this? Are you talking about workstudy? Are you talking about seasonal work? b) X Duration – are these the contract jobs? Is the X supposed to mean the duration of the contract?

4) Employee Type

In PS, we have empl_type and the possible values are:

E Exception Hourly

H Hourly

N Not Applicable

S Salaried

Is this the information you were expecting? If not, what did you expect in Employee Type? We may have it under a different name.

5) And this is the most fundamental question: for employees who have multiple jobs, are you expecting to get back: a) one row per job? b) Only information on the primary job? c) Information on the primary job, but a salary information that combines all jobs? d) other?

Thank you.

Maria

Comment by Vivek Dixit

[ 28/Jan/11 4:32 PM ]

Hi Maria, Here is my attempt (working in Kuali Coeus) to answer some of your questions. Terry might correct me where I am wrong and provide more functional inputs.

1) Affiliation a) >> KC requires Student data and KIM is supplying it to us (may be from other sources like SIS) so that should not be a problem from HRMS perspective I guess. b)>>Yes. IMS looks like a good option to get Affiliate data if that is the system of record for Affiliates.

>> KC is more interested in distinction between Staff and Faculty.

2) Base Salary

>> More on this from Terry. Functional question.

3) Appointment Type a)

>> There is an Appointment Type of 'ACADEMIC-SUMMER' in ERA and KC's version of Summer Employee is similar to that. 'STUDENT

WORK STUDY' is a different appointment type in ERA.

>>Please see attached screenshot from ERA application. b)

>> In ERA, there are Appointment Types of 'ACADEMIC-12 MONTH', 'ACADEMIC-9 MONTH', etc. Fringe Benefit rates are determined by

Appointment Type information.

4) Employee Type

>> If you are supplying Appointment Type in the format above specified for example 'ACADEMIC - 9M', we won't need Employee Type.

5) Employees who have multiple jobs.

>> This is a functional question. Will get back on this later.

Comment by Terry Durkin

[ 31/Jan/11 11:13 AM ]

Maria & Vivek:

2 - The annual estimate, per job (Q5) is fine for hourly employees. If there is a salary for a specific duration other than 12 months (Academic year, summer, etc..) then we just want that amount.

3 - Summer Salary should refer to Faculty appointments for summer months. We would expect 10 month and 2 month job data for these cases.

5 - We would expect one row per job. KC allows us to budget people at this granularity. I think this impacts how we would get data back for #3.

Does this make sense? Should we pull some example data to verify that we're getting the right stuff back?

Thanks,

Terry

Comment by Maria Whitaker

[ 31/Jan/11 11:24 AM ]

Terry,

Yes, my goal is to pull data for you as suggested by Aaron above. I just needed some clarification before I started.

Thank you.

Maria

Comment by Terry Durkin

[ 31/Jan/11 11:27 AM ]

Great - Thanks Maria. I forgot that Aaron suggested the sample data pull. Since I'm not familiar with all of the HR terms I just wanted to make sure I was communicating our needs well.

Thanks!

Terry

Comment by Maria Whitaker

[ 07/Feb/11 4:57 PM ]

Terry,

While you define what you need in terms of the appointment type (our email conversation), I decided to go ahead and provide a sample file for the other pieces of information. I uploaded it to slashtmp and here is the link: https://batboy.fms.indiana.edu/slashtmp/auth2/download.php?FILE=mcwhitak/61084VIPa2M

I will send you the secret word via email.

Others watching this jira can let me know if they also need the secret word to download the file.

Please take a look at the sample data and let me know of any concerns. Here is what I know:

1. appointment type is missing

2. I have not added affiliates to the file, but I can tell that all we can provide about them is the emplid and the "affiliate" affiliation type.

3. For hourly employees, the base salary was calculated assuming 52 weeks * 40 hours/week * hourly rate, as suggested.

Thank you.

Maria

Comment by James Bennett

[ 07/Feb/11 4:59 PM ]

Maria,

Could you also send the secret word to me as well?

Thanks,

James

Comment by James Bennett

[ 14/Feb/11 10:42 AM ]

Maria,

Can I get a quick status update on the progress on this data feed? This JIRA has a due date set to today so I was wondering about its progress. If I could also get the secret word so I can access the sample file through slashtmp that would be helpful, so I can be familiar with what data should be provided before the feed is complete.

Thanks,

James

Comment by Aaron S. Neal

[ 14/Feb/11 11:11 AM ]

James,

Maria is on PTO for the next three weeks with limited availability to email. Can you get with Terry for the secret word to download the data? If not, I can probably reproduce it based on information she has in our internal Jira but that will take some work that I would prefer not to do if I don't have to.

As for the due date, I was under the impression that we are shooting for an early March date to accomodate KC testing. Allen Fox is working on bringing up a stand alone HR App that will house the service that produces the data Maria has pulled. Allen is out until Wednesday. Once he is back, I will see where he is with having our new Java app up so we can plug in the SQL that Maria has put together.

Aaron

Comment by James Bennett

[ 14/Feb/11 11:18 AM ]

Aaron,

Thanks for letting me know the status of things. I believe the due date for this JIRA was set very early so that we could have this functionality done and ready for KC as early as possible, but it appears that it will be several more weeks until this is ready for me to get started. I can wait until Maria returns to get access to the sample file. I just wanted to have a couple of days to review it before the feed was available, and since that will be a while there is no rush.

Thanks,

James

Comment by Terry Durkin

[ 14/Feb/11 12:53 PM ]

The early due date was a best-case scenario if we wanted to get something deployed w/ the 2/27 Rice release, but delaying it a few weeks won't be a hinderance to our project just yet.

Comment by Maria Whitaker

[ 07/Mar/11 2:43 PM ]

James,

I had sent you the secret word before. Maybe I have a wrong James Bennet. Please let me know your email address. Thank you.

Maria

Comment by James Bennett

[ 07/Mar/11 2:45 PM ]

Maria,

My email is "jawbenne@indiana.edu".

Thanks,

James

Comment by James Bennett

[ 13/Apr/11 3:12 PM ]

Is there anything which anyone on the HR or KS side of things needs from me on this issue or am I clear to close this out?

Thanks,

James

Comment by Maria Whitaker

[ 13/Apr/11 3:17 PM ]

James,

Vivek was going to test the service and I have not heard from him whether or not everything worked as expected. I think we need his sign-off.

Maria

Comment by Vivek Dixit

[ 19/Apr/11 11:51 AM ]

Hi James, Maria,

I haven't had a chance to test this implementation. We planned to do it last week, but one other critical rice integration activity came up that postponed this activity. I will start working on this integration this week and will get back to you as soon as possible. This is in our hot plate now.

Please bear with me.

Thanks for your support and help!!

Vivek

Comment by Maria Whitaker

[ 27/Apr/11 9:29 AM ]

Vivek,

Did everything work as expected?

Maria

Comment by Vivek Dixit

[ 27/Apr/11 11:07 AM ]

I was reading through this jira and found that the notification of service completion came through an email so attaching it here for reference.

Name of the attachment 'RE HR Web Services needed for KC - 6th April Last reply'

Comment by Vivek Dixit

[ 27/Apr/11 2:15 PM ]

James and I chatted about this issue just moments ago. Here was the point of confusion. As far as my thinking goes, KC needs to talk to only

KimIdentityService (as it currently does) which would have provided additional HR data in KimEntityDefaultInfo object. KC will not directly talk to HR service.

KimIdentityService needed to be modified. So any calls that require HR data needed to be delegated to HR service that Allen and Maria created.

If my (and James') understanding is correct, please let us know. James need to modify the Kim IdentityService as initially thought.

Comment by Vivek Dixit

[ 27/Apr/11 2:17 PM ]

Terry wrote via email that our understanding is correct. KC will talk to KIM only and KIM will talk to HR service.

Comment by James Bennett

[ 27/Apr/11 2:21 PM ]

Can someone from HR send me the information I need to connect to the salary feed so I can add in the necessary information for KC?

Thanks,

James

Comment by Vivek Dixit

[ 27/Apr/11 2:23 PM ]

I will send you the email that Allen sent to me and Terry that has connection information.

Comment by James Bennett

[ 27/Apr/11 2:25 PM ]

Great, thanks Vivek. Once I have that I'll begin working on the new feed for you, and I'll let you know when it is ready for testing on your end.

Thanks,

James

Comment by Allen Fox

[ 29/Apr/11 8:34 AM ]

So how will KIM limit this information only being available from calls from KC? Also this information is not to go in any KIM tables correct?

Allen

Comment by Terry Durkin

[ 29/Apr/11 9:09 AM ]

Eric and/or James can fill in the blanks or correct me, but my understanding was that we would be getting a custom identity service that was used in the KC client application. Only client apps using this service would get the salary info. It would still funnel from the new HR service through

KIM to KC, but it would be application dependent on how it was wired up.

Comment by James Bennett

[ 29/Apr/11 9:59 AM ]

Terry is correct. We have the existing identity service which creates KIM objects, and we will have a second service which I am writing which will provide the same information along with filling in the salary information for the user. This second service will have basic authentication so only users with a valid username and password can access the feed to get the salary information. In addition whenever the salary information is required we will make a request to the HR service to retrieve the information so none of the salary information is stored in Rice. Does this sound adequate Allen?

Thanks,

James

Comment by Allen Fox

[ 29/Apr/11 10:01 AM ]

Sounds good to me.

Comment by Eric Westfall

[ 29/Apr/11 11:19 AM ]

James, in the interest of not having to maintain two clients. Is there some sort of configuration parameter which will turn salary service integration on or off? Obviously, other app areas could turn it on if they want to, but it wouldn't work unless they knew the credentials so we would be safe from over-exposure that way.

Comment by Eric Westfall

[ 29/Apr/11 11:20 AM ]

James, in the interest of not having to maintain two clients. Is there some sort of configuration parameter which will turn salary service integration on or off? Obviously, other app areas could turn it on if they want to, but it wouldn't work unless they knew the credentials so we would be safe from over-exposure that way.

Comment by James Bennett

[ 04/May/11 12:03 PM ]

I have the updated identity service mostly working now, but I have come across a few questions about the service from HR which hopefully someone from that team can answer for me:

It appears that the "jobType" field is set for the affiliation type, but I was wondering if that field is used for anything else? Should entries like "Student Academic" be mapped to a "Student" affiliation, a "Staff" affiliation, or a new affiliation type? Currently we have Faculty,

Staff, Student, and Affiliate affiliation types. A list of the possible job types that can appear in this feed and their mappings to KIM affiliation types would be helpful.

How do I determine the appointment type for the user?

What is the purpose of the following fields in the feed:

 addlPayEarnCode earnCodeReg

 emplClass

IUpositionType jobIndicator jobObjectCode paygroup salaryAdminPlan

This information should help make sure I get everything mapped properly into the KIM objects.

Thanks for your help,

James

Comment by Maria Whitaker

[ 04/May/11 1:26 PM ]

James,

Student Academic is the affiliation for Students who are employees. If on your end you do not make a distinction between students and students who have an Academic job, then you can do the mapping you are proposing. But a student without an academic job that has another type of job will be listed differently, as Hourly for instance.

We had a discussion about the impossibility to determine the appointment type. Terry has said:

For the appointment type/object code, do you have the object codes available in HRMS or would we have

to query FIS/KFS to determine those? If you are able to provide the object codes and we can do the

appropriate mapping then that would work. If we have to consult w/ FIS/KFS to get the data then we

may have to make due with what is currently available in the report. Regarding the

Professional/Bi-Weekly distinction, I am ok with the same thing (mapping if you can provide the object

codes). If that's not possible then I'd say we can either create a new category for Professional

Bi-Weekly or include them with Professional, which may be an ok level of granularity for us.

So what he wanted was the object code, in jobObjectCode. One may also need the earn code for the purposes of getting to the appointment type, but I am not positive.

The other fields may be ignored for Coeus. They are available because I needed them to get to the Object Code, but they were not requested.

Maria

Comment by James Bennett

[ 04/May/11 2:48 PM ]

Are the four affiliation types we have now (Faculty, Student, Staff, Affiliate) enough for the KC implementation if we provide the object codes along with them or will we need more affiliate types to accommodate it? Either way would it be possible for me to get a full list of the possible jobTypes coming in from HR? Once we have that we can figure out exactly how they should map to the existing affiliate types, or if we will need more.

Thanks,

James

Comment by Maria Whitaker

[ 04/May/11 2:59 PM ]

The possible job types are:

Affiliate

Faculty

Hourly

Staff

Student Academic

So Faculty and Student Academic are academic positions. Staff and Hourly are staff positions.

Comment by James Bennett

[ 04/May/11 3:06 PM ]

Great, thank you for the information Maria. For now I will set it up to map the job types to affiliations in this way:

Affiliate -> Affiliate

Faculty -> Faculty

Hourly -> Staff

Staff -> Staff

Student Academic -> Student

If KC needs me to add new affiliate types for Hourly or Student Academic please let me know and I will get that set up.

Thanks,

James

Comment by Maria Whitaker

[ 04/May/11 3:09 PM ]

James,

I just want to make sure that "Student" in this context implies a student with a job. There are, as you know, many students that do not work for IU in either an academic or a staff appointment.

Maria

Comment by James Bennett

[ 06/May/11 5:49 PM ]

Maria,

I modified this to test the "Student Academic" job type as a staff affiliation. The entities which fall under this category will already have both a student and staff affiliation so I believe this will be modeled correctly.

I nearly have this service ready to go for KC to test. I plan on doing a code review with my team on Monday and I will also finish up my initial testing then. After that is complete I will work on getting this out to the testing environments for KC to use.

Thanks,

James

Comment by James Bennett

[ 12/May/11 12:35 PM ]

KC Team,

I believe that this is ready for you to begin testing on your end. I've deployed this change to the KR2-CNV environment, and you should be able to pull in the updated client JARs with this functionality from the iu-rice-1-0-3-kc-feature-br branch. You need to add in a few extra spring beans and configuration options to get this to work properly.

Add to your Spring beans file:

<bean class="org.kuali.rice.ksb.service.BasicAuthenticationConnectionCredentials">

<property name="serviceNameSpaceURI" value="hrsService" />

<property name="localServiceName" value="hrsService" />

<property name="username" value="${HRSService.username}" />

<property name="password" value="${HRSService.password}" />

</bean>

Add to your configuration file:

<param name="enhanced.identity.service.active">true</param>

Add to your configuration file (preferably in the security directory since this is password information):

<param name="HRSService.username">hrsService</param>

<param name="HRSService.password">...</param>

Add in the password for the HRS Service which you received from Allen a few weeks ago to the last configuration param. After you put these configurations into place you should have all of the salary and extra employment information contained in the KIM entity you get from the

IdentityService. I added the salary effective date and the object code to the employment information which you can access inside of the KIM entity object.

Please let me know if you have any questions or problems using this new feature.

Thanks,

James

Comment by Vivek Dixit

[ 12/May/11 4:19 PM ]

James, Can you deploy it in kr2-reg also? Currently the only environment that we have working with central rice is kc-reg connecting with kr2reg.

Thanks!

Comment by James Bennett

[ 12/May/11 4:23 PM ]

Right now the HRS Service can only point at one instance. I had Allen move it to KR2-CNV since you weren't load testing it and I didn't want to interfere with those tests. I'll check with him to see if he has made any progress on getting everything setup so he can deploy it to both environments, and if he would mind switching it back to KR2-REG for now.

Thanks,

James

Comment by Vivek Dixit

[ 12/May/11 4:38 PM ]

If that's the constraint then I can prepone kc-cnv configuration in embedded mode with kr2-cnv, targeting Monday end of the day.

Comment by James Bennett

[ 16/May/11 12:26 PM ]

Vivek,

The service is now pointing back at KR2-REG for you to test there. Allen told me that he hopes to have another instance up to point at KR2-CNV early this week, but you should be able to continue with your testing in KR2-REG for now. Please let me know if you need anything else to begin testing this.

Thanks,

James

Comment by Vivek Dixit

[ 16/May/11 1:33 PM ]

Thanks James, This was much needed, coz KC-CNV is having some issue regarding ingestion of doc types. But kc-reg perfectly works with kr2reg.

Comment by Vivek Dixit

[ 18/May/11 2:01 PM ]

Hi Maria,

I have done some basic testing of hrservice so far.

Base salary is coming fine.

Salary Effective date is same for all 'Mon Nov 01 00:00:00 EDT 2010'. That looks correct too as I remember salary revision took place on that day.

Job Object codes are coming as 2400 and 2000 for two different people. It looks like staff has 2400 and faculty has 2000.

Doing further testing!!

Thanks!

Vivek

Comment by Vivek Dixit

[ 18/May/11 6:08 PM ]

Hi Maria,

Can you provide us a full list of job object codes? (e.g. 2400, 2000 etc. and their associated meanings).

Thanks!

Vivek

Comment by Maria Whitaker

[ 19/May/11 10:45 AM ]

Vivek,

Attached is the list of object codes in use in job funding. The full list of object codes is very large, so I limited myself to their meanings in 2010 and 2011. As you see from the spreadsheet, there wasn't any change from one year to the other.

If this is not what you are asking for, please let me know.

I do not know the purpose of this information, but if it is useful to you, we can add the obj code name to the HR service for Coeus.

Maria

Comment by Allen Fox

[ 23/May/11 8:48 AM ]

The CNV instance is up and pointing to KR2-CNV.

Comment by Vivek Dixit

[ 23/May/11 9:46 AM ]

Thanks Allen. So far the service is working fine in kr2-reg. There are some finer points that functional users will better be able to comment on. I am looking at this week for them to be able to provide feedback.

Comment by Vivek Dixit

[ 25/May/11 11:04 AM ]

There is a strange problem. I am not getting any information from KIM for many people like 'vdixit', 'shyu' and one more that we tested.. Could you please check?

Comment by Maria Whitaker

[ 25/May/11 11:22 AM ]

James,

Please let me know if you find that the problem is with the HR side of things.

Thank you.

Maria

Comment by James Bennett

[ 25/May/11 12:52 PM ]

Vivek,

I checked the service locally and I can see all of the information for "vdixit" and "shyu". What information is missing when you access the service? Is this broken for all users or just these specific cases?

Thanks,

James

Comment by Vivek Dixit

[ 25/May/11 1:25 PM ]

Just these users.

I saw these stacktrace in the logs. Hope that helps.

:: caught exception while handling before process change java.lang.NullPointerException at edu.iu.uis.rice.kim.service.impl.IUIdentityServiceImpl.updateEntityWithHRData(IUIdentityServiceImpl.java:82) at edu.iu.uis.rice.kim.service.impl.IUIdentityServiceImpl.convertEntityImplToDefaultInfo(IUIdentityServiceImpl.java:62) at org.kuali.rice.kim.service.impl.IdentityServiceImpl.getEntityDefaultInfo(IdentityServiceImpl.java:166) at org.kuali.rice.kim.service.impl.IdentityCurrentAndArchivedServiceImpl.getEntityDefaultInfo(IdentityCurrentAndArchivedServiceImpl.java:191) at org.kuali.rice.kim.service.impl.IdentityManagementServiceImpl.getEntityDefaultInfo(IdentityManagementServiceImpl.java:863) at org.kuali.rice.kim.service.impl.PersonServiceImpl.getPersonByPrincipalName(PersonServiceImpl.java:250)

Comment by James Bennett

[ 25/May/11 1:33 PM ]

Interesting. Is there anything in your logs about the entity ID which is being passed to the HR service for these users? I looked up the entity ID when I did my testing but I am wondering if it isn't set correctly somehow when it tries to access the service for these users.

Comment by James Bennett

[ 17/Jun/11 12:47 PM ]

We have worked out all of the issues with this new functionality so I am going to close out this issue. Please feel free to reopen this if you find any more problems with this new feature.

Thanks!

[EN-2019] Work with Residential Services .NET Integration

Created: 13/Sep/10 Updated:

10/Sep/12 Resolved: 15/Apr/11

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Old and Unspecified , Post 2.0 Contribution

Type: Task Priority:

Reporter: Abraham, Ranji P Assignee:

Resolution: Completed

None

Votes:

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Description

Major

James Bennett

0

Let's start tracking communications between us and the RS team here.

We took a few things away from the first meeting as action items:

1) Provide RS with links to Kuali documentation

2) Provide details on our current web services (WSDL)

....

Comments

Comment by Greg Patterson

[ 13/Sep/10 1:38 PM ]

Ranji, I was unable to find either Dharmendra or Joseph in the jira system, for them to interact here they may need to request accounts.

Comment by Greg Patterson

[ 13/Sep/10 1:43 PM ]

Ranji et al,

An example of our current simpleDocumentActionsService's wsdl can be found at the following address: https://test.uisapp2.iu.edu/kr-unt/remoting/simpleDocumentActionsService?wsdl

Let me know if that helps

-Greg

Comment by Greg Patterson

[ 05/Oct/10 2:58 PM ]

If I recall correctly, your main goal here is to generate action requests based upon some routing determined on your side of the application. If that's the case, you should be able to use the

SimpleWorkflowDocumentActionsSOAP service to create, route, approve, and perform other actions on documents. You'll need to define some form of 'document type' so that we have an idea of the document as an object on our side, and I think for your use case that's all (for now).

One thing that would likely be helpful to myself (and others), is how your "workflow process" currently works and is defined.

-Greg

*Edit: I'm not sure if you ever received a link to the Kuali documentation, if not please let me know.

Comment by Brian T Donnelly

[ 08/Oct/10 3:29 PM ]

Changed from auto-created user to correct LDAP lookup.

Comment by Abraham, Ranji P

[ 08/Oct/10 3:41 PM ]

We would still like to meet with an ePTO developer who implemented workflow in their application. Thanks.

Comment by Abraham, Ranji P

[ 13/Dec/10 8:18 PM ]

Is it possible you could email us a POC on the ePTO team who was involved in workflow within that application?

Comment by Shannon Hess

[ 14/Dec/10 1:27 PM ]

The best person to contact would be Allen Fox (lfox). He's the lead over in that area and will be able to point you to the correct ePTO developer.

Thanks,

Shannon

Comment by Eric Westfall

[ 09/Feb/11 10:40 AM ]

James, can you work with Jon on this and answer his questions? We talked about this a bit in our standup meeting today. Pasting his latest batch of questions below:

Hello,

I work in the Auxiliary Information Technology (AIT) group under Ranji Abraham and I am looking into integrating AIT applications and Kuali Workflow. Aaron I understand that you are lead for the development of the EPTO system. AIT is interested in implementing similar Kuali

Approval workflow that is in the current EPTO application. We are just starting the integration with Kuali workflow and thought you and Greg would be a contact or could direct me to someone that could give us some help. I am trying to come up with the next steps needed, such as, setup / administration in RICE, access to the Testing simpleDocumentActionsService web service and other general questions answered. It would be nice if we could get someone to show us around the RICE Administration site and also maybe we could get some of source code that we could use as an example of routing and approving a document. I am open for an meeting to discuss and answer question that we or you have.

To give you an Idea of where I am at I have listed a couple of things that I have looked at and have question on.

Kuali Rice:

I have backdoor into the Test workflow admin site and have created some doc types . Not sure if there is more configuration that’s needed.

 Root doc of AIT

 child doc type of AIT.ServiceManger which is the first application that we will be integrating and under AIT.ServiceManger

Created ServiceChangeReview doc type. ServiceChangeReview doc type is the document that we are planning to adhoc route using the simpleDocumentActionsService web service.

Development integration: we were pointed to simpleDocumentActionsService web service. I have looked over the WSDL and am stuck on what to provide for some parameters and I could use some information on

Security/Access to the Web Service. initiatorPrincipalId: Should this be a University ID appDocId: I have no idea what to use docType: Should this be “ServiceChangeReview” docTitle: document = simpleDocumentActionsService.create(initiatorPrincipalId, appDocId, docType, docTitle);

Jon Ireland

Comment by James Bennett

[ 11/Feb/11 10:59 AM ]

Hello Jon,

What kind of information were you looking for regarding security and access to the web service?

For the parameters, I believe that this is what each parameter is used for: initiatorPrincipalId - Yes this should be a university ID number. For future reference we use the university ID for the principal and entity ID, and the principal name is the university network ID

(ex: mine is jawbenne). appDocId - I believe this is supposed to be a place for you to put some identifier from an external system so that you can keep track of where this document came from. If you have an identifier in your system put it here, otherwise you can probably leave this blank. docType - This depends on what you named your document type in the system. I looked in krunt and I did see a "ServiceChangeReview" document type in that environment, so I think that is what you should supply here.

docTitle - This is a title for the document. I believe you can put anything to describe your document in here, and this title will display on the document search and the route log screens.

If anyone on my team knows more detail for any of these fields or if I've missed any important information here please feel free to chime in.

Let me know if you have any further questions.

Thanks,

James

Comment by James Bennett

[ 11/Feb/11 5:19 PM ]

Adding response from Jon:

Hello James,

Thanks for the parameter clarification. I asked about the access to the web service because I am getting an error when trying to create a document with the create method of the simpleDocumentActionsService web service.

Error Message return from create call:

{"A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

192.168.220.2:18888"}

Parameters and Methods I am using : string initiatorPrincipalId = "0002612145"; string appDocId = "000001"; string docType = "ServiceChangeReview"; string docTitle = "Test 1"; documentResponse document; simpleDocumentActionsService simpleDocumentActionsService = new simpleDocumentActionsService();

// simpleDocumentActionsService.UseDefaultCredentials = true; document = simpleDocumentActionsService.create(initiatorPrincipalId, appDocId, docType, docTitle);

-Jon

Comment by James Bennett

[ 11/Feb/11 5:23 PM ]

Jon,

I believe that there may be a problem with the URL you are using to connect to the service. Are you trying to connect to this URL when you use the service? https://192.168.220.2:18888/kr-unt/remoting/simpleDocumentActionsService

If so, see if you can change it to this:

https://test.uisapp2.iu.edu/kr-unt/remoting/simpleDocumentActionsService

This should make it so that it doesn't time out, but there is still an issue with WS-Security which

I will need to fix before you will be able to access this service. I'm going to begin working on that now so we can set you up with a basic authentication mechanism and I will let you know as soon as it is ready to go.

Thanks,

James

Comment by Greg Patterson

[ 11/Feb/11 5:39 PM ]

Requested access for Jon Ireland (Fixed by )

Comment by Ireland, Jon Patrick

[ 16/Feb/11 9:43 AM ]

James,

Do you have an ideal of when the WS-Security changes will be completed?

-Jon

Comment by James Bennett

[ 16/Feb/11 5:54 PM ]

Jon,

I just finished up most of the changes that will be needed to allow you to connect to the service without getting WS-Security errors. This change impacts one of our other processes so I am going to schedule the deployment of these changes with the team we work with for that process so we can be sure that no problems come up with the change. Once I verify that I will put the changes into the environment you are using so that you can connect to the service. I will try to get this tested and put into place tomorrow afternoon so that you can begin working with the service then.

Thanks,

James

Comment by James Bennett

[ 18/Feb/11 11:09 AM ]

Jon,

The service should be ready for you to use after 12:30 today. I discovered a problem with the address for the service inside of the WSDL which was causing your timeout issues, but that should be fixed after the restart of the applications around noon. I'll verify that it is working once the servers restart and I'll let you know once it is ready for testing for sure.

Thanks,

James

Comment by James Bennett

[ 18/Feb/11 12:35 PM ]

Jon,

I believe that the service should be ready for you to connect to now. Please let me know if you have any further issues accessing the service, or if you have any further questions.

Thanks,

James

Comment by James Bennett

[ 13/Apr/11 3:05 PM ]

Hello,

Do you all have any pending questions or problems with the integration with Rice at this time, or am I clear to close out this ticket?

Thanks,

James

[EN-1973] ojb OptimisticLockException in epic after creation of document

Created:

28/Jul/10 Updated: 10/Sep/12 Resolved: 28/Jul/10

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Rice 1.0 - Patch 5 , Post 2.0 Contribution

Type: Analysis Priority:

Reporter: Shannon Hess Assignee:

Resolution: Resolved

None

Votes:

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Attachments:

Description ojbError.txt

OptimisticLockException is occurring in epic.

Major

Shannon Hess

0

Email:

From: Morris, Jeffrey B

Sent: Tuesday, July 27, 2010 5:38 PM

To: Hess, Shannon

Cc: bl-uits-ebs-fs-pur-tech

Subject: RE: Kuali Rice Load testing today from 12 - 5 PM

Is this issue only affecting EPTO or has it been reported with other applications? I just got a report of this with EPIC in STG this afternoon at 4:29pm. She said she tried to create three documents and they all went into exception routing. Is this the first you've heard of this affecting other apps? Do we just need to wait for this fix to make it to stg before testing any more?

From: owner-rice-tech-l@LISTSERV.INDIANA.EDU owner-rice-techl@LISTSERV.INDIANA.EDU

On Behalf Of Hess, Shannon

Sent: Tuesday, July 27, 2010 11:40 AM

To: rice-tech-l@indiana.edu; esit@oncourse.iu.edu

Subject: Kuali Rice Load testing today from 12 - 5 PM

Hello,

To verify that the change of our virtual machines from HP to Dell servers will not negatively impact performance, the workflow team is planning to run load tests today from 12 - 5 PM.

These loads tests will also verify that the change made to fix the optimistic locking problems will not impact performance (Jira ).

Thank You,

Shannon

Comments

Comment by Shannon Hess

[ 28/Jul/10 1:09 AM ]

Fixed the problem changing StandardWorkflowEngine.nodePostProcess() to use the

RouteNodeUtils to get the active node instances instead of re-loading them from the database.

/**

 Begin IU Customization

07-28-2010 - Shannon Hess

 - Pulls the node instances from the document that was passed in

*/

Collection activeNodes = RouteNodeUtils.getActiveNodeInstances(document);

/**

End IU Customization

*/

Also made the following change to

StandardWorkflowEngine.notifyPostProcessorBeforeProcess() incase the document is changed in the postprocessor. This same thing is done in notifyPostProcessor, and it only makes sense that it should be done in notifyPostProcessorBeforeProcess as well.

/**

 Begin IU Customization

07-28-2010 - Shannon Hess

, - Attemting to fix optimistic locking problems. In some cases, someone may modify the route header in the post

 processor, if we don't save before and reload after we will get an optimistic lock

 exception

*/ getRouteHeaderService().saveRouteHeader(document);

/**

End IU Customization

*/

[EN-1826] When creating a new group, the max length for the document description is not very long.

Created: 07/May/10 Updated: 10/Sep/12 Resolved: 17/Feb/12

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

Post Rice 1.0 Implementation

Fix Version/s: Milestone 2 - r2.0

, Rice 2.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Major

Reporter:

Resolution:

Labels:

Remaining

Estimate:

Time Spent:

Shannon Hess

Fixed

None

Not Specified

Assignee:

Votes:

James Bennett

0

Original

Estimate:

Description

Not Specified

Not Specified

Looks like the max number of characters is about 50. The column on the database is varchar(255), so it would be good to increase max size on the screen

Example document is 5974548 on kr-reg.

Comments

Comment by Eric Westfall

[ 24/Jan/12 11:25 AM ]

Need to check if this is still an issue in 2.0 or not.

Comment by James Bennett

[ 16/Feb/12 2:23 PM ]

The description field in the database is 40 characters, not 255. Is this something we still want to update? If so I'll submit a red schedule and update the data dictionary file.

Comment by Shannon Hess

[ 16/Feb/12 4:57 PM ]

James, which field is it that is 40 characters? The field that I see as an issue gets stored in the

TTL field on the KREW_DOC_HDR_T. When you create a new group document, it only lets you put in 40 characters for the document desc and then that field gets stored in the TTL field on the KREW_DOC_HDR_T. Is it also getting stored on another table? https://test.uisapp2.iu.edu/krstg/kew/DocHandler.do?command=displayDocSearchView&docId=9053888 select TTL from KREW_DOC_HDR_T where DOC_HDR_ID ='9053888'

Comment by James Bennett

[ 16/Feb/12 6:11 PM ]

The description is also stored in the fdoc_desc field in the kns_doc_hdr_t table. That is the field which is 40 characters.

Comment by Shannon Hess

[ 16/Feb/12 6:24 PM ] ok, i see. The doc_desc field in the kns_doc_hdr_t on the 2.0 tables is 255, so I think we just have to make sure it works in the 2.0 stuff. At least, I'm ok with letting this go until the upgrade since it's beeen this way since we upgraded to 1.0.1.1

Comment by James Bennett

[ 17/Feb/12 11:36 AM ]

This was a 2.0 issue but I moved it to the wrong fix version sine I wasn't able to get it fixed before the m1 release. Updating the version now.

Comment by James Bennett

[ 17/Feb/12 12:38 PM ]

I've updated the data dictionary file to increase the size of the document description field to 255 to match the size of the fields in the database.

[EN-1661] Make it so that the Person inquiry works for historical users

Created:

27/Mar/10 Updated: 10/Sep/12 Resolved: 21/Oct/10

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Post Rice 1.0 Implementation , Post 2.0 Contribution

Type: Improvement Priority: Major

Reporter: Eric Westfall Assignee: James Bennett

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Issue Links: Discovered discovered by EN-1423 Determine if entities that are in his... Closed

Description

It currently does not and throws an error indicating such (see for an example). This is really an issue in the Rice code I believe but it may take a bit of work to untangle things in the

UIDocumentService to figure out how we could make this work.

Comments

Comment by James Bennett

[ 15/Oct/10 5:32 PM ]

I have fixed this issue and it is currently in all of the test environments. Please test this in SND by searching for document ID 2501026 or 2501324, view the route log, and then click on

"Belcher, Casey" who is an archived entity to see the inquiry screen instead of an error message.

Comment by James Bennett

[ 21/Oct/10 3:35 PM ]

The fix for this issue has been pushed to production. I am not sure of a specific document ID in production which had this issue before, but if a document is found and the problem persists please reopen this issue.

[EN-1636] Port project changes from EN to KR

Created: 24/Mar/10 Updated: 10/Sep/12 Resolved:

07/Apr/10

Status: Closed

Project: Kuali Rice

Component/s: eDocLite

Affects

Version/s:

None

Fix Version/s: Rice 1.0 Implementation , Rice Contribution , Post 2.0 Contribution

Type: Task Priority: Major

Reporter: Craig Solinski Assignee: Greg Patterson

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Attachments:

Description

ReadMe.txt

The finance proposal edoclite specifications required several workflow engine changes. In summary thus far these changes have been to:

1) Allow form fields to be updateable at all time even after doc is final.

2) Add method to support sending an email to multiple recipients upon a Notes "Save" operation - (recipient list of email addresses is from a text field on the form - thus is dynamic).

3) Add ability for edoclites to contain a Configuration section containing parameters and their values.

Thus far the details for these changes have been consolidated into the attached text document -

(The form of this document is one that I have used for production deploys - it tends to identify each entity that is changed/or was added.

At a point of time in the future after when the specs for this edoclite are stable (user defined point in time), any new changes plus those identified in the attachment should be ported into

KR.

Thanks,

Craig

Comments

Comment by Craig Solinski

[ 24/Mar/10 3:01 PM ]

Text document that identifies changes made thus far to support the Finance Proposal Edoclite in

EN.

Comment by Craig Solinski

[ 24/Mar/10 3:12 PM ]

Also created a zip file and added it to the Finance folder in our CVS edoclite project and marked it as from REG on todays date.

This is a complete set of all that is needed to go to the next environment ie like STG pending client further changes.

The engine changes are already in EN test environment (not TRN), and are scheduled to go to

PRD EN tomorrow morning.

Comment by Eric Westfall

[ 07/Apr/10 2:13 AM ]

Greg, do you feel like this is something that you could possibly do?

Comment by Greg Patterson

[ 07/Apr/10 4:38 PM ]

Sure, should I be making the changes to the actual 1.011 branch or doing iu-src patches?

Comment by Eric Westfall

[ 07/Apr/10 4:51 PM ]

You'll need to do iu-src patches

Comment by Greg Patterson

[ 07/Apr/10 5:16 PM ]

For reference; Need to patch the following: branches/rice-release-0-9-1-4br/kew/src/main/.../uis/eden/edl/components/WorkflowDocumentState.java branches/rice-release-0-9-1-4-br/kew/src/main/resources/schema/EDocLiteDef.xsd branches/rice-release-0-9-1-4br/kew/src/main/java/.../uis/eden/edl/components/NoteConfigComponent.java 1 branches/rice-release-0-9-1-4br/kew/src/main/.../uis/eden/edl/components/WorkflowDocumentState.java branches/rice-release-0-9-1-4-br/kew/src/main/java/edu/iu/uis/eden/mail/EmailService.java branches/rice-release-0-9-1-4br/kew/src/main/java/edu/iu/uis/eden/mail/DefaultEmailService.java branches/rice-release-0-9-1-4-br/kew/src/main/java/edu/iu/uis/eden/mail/EmailBcList.java new branches/rice-release-0-9-1-4-br/kew/src/main/java/edu/iu/uis/eden/mail/EmailCcList.java new branches/rice-release-0-9-1-4-br/kew/src/main/java/edu/iu/uis/eden/mail/EmailToList.java new

Comment by Greg Patterson

[ 07/Apr/10 6:34 PM ]

These are all ported in the following packages (all in iu-rice/src-patched): org.kuali.rice.kew.edl.components: (NoteConfigComponent, WorkflowDocumentState) org.kuali.rice.kew.mail.service: (EmailService) org.kuali.rice.kew.mail.service.impl: (DefaultEmailService, StyleableEmailContentServiceImpl,

EmailToList, EmailCcList, EmailBcList)

Testing still needed.

Comment by Greg Patterson

[ 07/Apr/10 6:36 PM ]

I'm going to resolve this and open a new one to test the specific eDocLite that utilizes this functionality.

[EN-1620] Person Inquiry screen appears to hang indefinately

Created: 19/Mar/10 Updated:

10/Sep/12 Resolved: 24/Mar/10

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Rice 1.0 Implementation , Post 2.0 Contribution

Type: Bug Priority: Blocker

Reporter: Eric Westfall Assignee: Shannon Hess

Resolution: Fixed

None

Votes: 0

Labels:

Remaining

Estimate:

Time Spent:

Not Specified

Not Specified

Not Specified Original

Estimate:

Description

This seems to be new behavior to me. Maybe changes made in the group service or identity archive service recently might have triggered this?

To reproduce, go into kr-snd, do a person lookup and click on one of the links in the result set to load the inquiry for that person. It should begin to load the page but just never return. Looks like a possible looping issue to me?

Comments

Comment by Shannon Hess

[ 19/Mar/10 10:11 PM ]

Fix is put in place and deployed to test environments. Moved UiDocumentServiceImpl.java into src-patched, and changed loadGroupToPersonDoc menthod to reduce looping over group members. (It was looping over ADS group members.)

Comment by Shannon Hess

[ 20/Mar/10 10:52 PM ]

Eric –

I just wanted to verify that the person inquiry should only show direct groups for the person

(ADS and Kuali)?

Thanks,

Shannon

Comment by Eric Westfall

[ 21/Mar/10 7:46 PM ]

It seems to me like it should show all groups, not just direct. However, the current person inquiry screen in production doesn't show groups at all and given the nature of the Person UI pieces in KIM I would be hesitent to make changes for fear of breaking that screen too badly

For example, when editing a person's group membership through the Person maintenance document it probably should only show direct membership since those are the only ones which should be editable. I think the maintenance document and the inquiry use a lot of the same code which is probably why it is like this.

So, for now, please create a jira with a fix version of "Post 1.0 Implementation" and we can look into it some more after the upgrade. I would like to take it forward to the KAI (Kuali

Application Integration) working group for the Rice project to determine the best course of direction. I've already been doing that for a lot of the issues we've run into for the Group screen but I haven't had a chance to foray into the Person screens yet.

Thanks!

Comment by Shannon Hess

[ 21/Mar/10 9:30 PM ]

How should I code it for our production implementation?

UiDocumentServiceImpl.java was displaying only direct groups, then when I made my fix it started showing all groups. I was going to fix that problem when I realized that getDirectGroupsForPrincipal(prinId, namespace) doesn't return ADS groups.

I agree that it makes sense for editing that only direct membership groups are shown. Should I stick with that since that's how it was to begin with?

Comment by Shannon Hess

[ 24/Mar/10 1:44 PM ]

This will be fixed after the next deploy. Currently it is no longer hanging, but sometimes non direct groups are returned. After the deploy, it will not hang and it will display only direct groups.

[EN-1552] Delegate Rule Lookup - Search by Person Reviewer not working correctly

Created: 19/Feb/10 Updated: 10/Sep/12 Resolved: 29/Mar/10

Status:

Project:

Closed

Kuali Rice

Component/s: None

Affects

Version/s:

Rice 1.0 Implementation

Fix Version/s: Rice 1.0 Implementation , Rice Contribution , Post 2.0 Contribution

Type: Bug Priority: Major

Reporter:

Resolution:

Labels:

Shannon Hess

Fixed

None

Not Specified

Assignee:

Votes:

Greg Patterson

0

Remaining

Estimate:

Time Spent: Not Specified

Not Specified Original

Estimate:

Issue Links: Relates is related to EN-1668 Search by id of a delegate rule on th... Closed

Description

See JIRA for more information (similar problem occurred for rule search, but was fixed.

The problem is more severe in Delegate Rule Lookup. The screen error check was incorrect, but also the code to translate the person reviewer's principal name to principal id is missing.

RuleDelegationLookupableHelperServiceImpl.java into

/iu-rice/src-patched/org/kuali/rice/kew/rule/bo/ FROM

/rice-1.0.1.1/impl/src/main/java/org/kuali/rice/kew/rule/bo/

Added the following code in the same location as in

RuleBaseValuesLookupableHelperServiceImpl.java : if (!Utilities.isEmpty(networkIdParam)) {

Person person =

KIMServiceLocator.getPersonService().getPersonByPrincipalName(networkIdParam); if (person != null) { workflowId = person.getPrincipalId(); }

}

Also updated the screen error checking

Person person =

KIMServiceLocator.getPersonService().getPersonByPrincipalName(principalName);

-------------------------------------------------------------------------------------------------------------------

------------------------------------------

Just changing the same thing as in the rule search did not fix the problem. The search is now being passed the principal ID, (confirmed by debugging) but the search just never comes back.

Spins and spins and spins.

Comments

Comment by Greg Patterson

[ 16/Mar/10 6:06 PM ] public List<RuleDelegation> search(String parentRuleBaseVaueId, String parentResponsibilityId, String docTypeName, Long ruleId, Long ruleTemplateId, String ruleDescription, String groupId, String principalId,

String delegationType, Boolean activeInd, Map extensionValues, String workflowIdDirective) { return dao.search(parentRuleBaseVaueId, parentResponsibilityId, docTypeName, ruleId, ruleTemplateId, ruleDescription, groupId, principalId, delegationType, activeInd, extensionValues, workflowIdDirective); }

This method is being called but never returns, only in this case.

Something wrong with the conversion between the 0914 lookup and this one (still using workgroupId and workflowId as arguments against the dao...).

Comment by Greg Patterson

[ 16/Mar/10 6:23 PM ]

Hangs on the ojb query in RuleDelegationDAOOjbImpl.java, line:108 return (List<RuleDelegation>) this.getPersistenceBrokerTemplate().getCollectionByQuery(new

QueryByCriteria(RuleDelegation.class, crit, true));

This is with updates to ensure the workflowId gets populated with the given principalId.

Hm....

Comment by Eric Westfall

[ 21/Mar/10 8:07 PM ]

As discussed, it's probably querying for everything. However, while it seems like it would take awhile it seems like it should be returning at some point to me. Any ideas why it is taking so long, is it all in the amount of time it takes to build the result set in OJB?

Comment by Greg Patterson

[ 22/Mar/10 5:05 PM ]

This is fixed (locally) for the person reviewers but still seeing some strangeness when you search with defaults.

Against KR1STG (db used during testing) there should be 6777 results from the search. When the OJB query comes back I'm getting something like 34566 instead. Note that this is more than all of the rules in the table even disregarding whether they are a delegate or not. Then, when it tries to build the resultTable in

RuleDelegationLookupableHelperServiceImpl: 460-577 when spin as we iterate of each row (and every column in the row, too) for a very long time and eventual time out. Not sure exactly where we're timing out, though.

*Note: If I manually force the iterator to jump up to the end of the collection results are returned and displayed appropriately. This is most definitely to do with the time it takes to build each resultTable row. Also, why are we getting such a large result set here...

Comment by Greg Patterson

[ 23/Mar/10 5:04 PM ]

Root call is:

SELECT DISTINCT

A0.DLGN_RULE_ID,A0.RSP_ID,A0.DLGN_RULE_BASE_VAL_ID,A0.DLGN_TYP,A0.OBJ_ID,A0.VER_NBR

FROM KREW_DLGN_RSP_T A0 WHERE A0.DLGN_RULE_BASE_VAL_ID IN (SELECT B0.RULE_ID

FROM KREW_RULE_T B0 INNER JOIN KREW_RULE_RSP_T B1 ON B0.RULE_ID=B1.RULE_ID WHERE

((B0.CUR_IND = ?) AND B0.TMPL_RULE_IND = ?) AND B1.RULE_ID IN (SELECT C0.RULE_ID FROM

KREW_RULE_RSP_T C0) ) |SELECT DISTINCT

A0.DLGN_RULE_ID,A0.RSP_ID,A0.DLGN_RULE_BASE_VAL_ID,A0.DLGN_TYP,A0.OBJ_ID,A0.VER_NBR

FROM KREW_DLGN_RSP_T A0 WHERE A0.DLGN_RULE_BASE_VAL_ID IN (SELECT B0.RULE_ID

FROM KREW_RULE_T B0 INNER JOIN KREW_RULE_RSP_T B1 ON B0.RULE_ID=B1.RULE_ID WHERE

((B0.CUR_IND = 'true') AND B0.TMPL_RULE_IND = 'false') AND B1.RULE_ID IN (SELECT C0.RULE_ID

FROM KREW_RULE_RSP_T C0) )

We should likely limit the fetchSize of the query.

Also, building the resultTable takes a VERY long time (30s for ~50 rows). Looking into this.

Comment by Greg Patterson

[ 24/Mar/10 3:01 PM ]

Looks like the following two calls are slow when dealing with the 'Rule Parent Id' column: prop = ObjectUtils.getPropertyValue(element, col.getPropertyName()); col.setColumnAnchor(getInquiryUrl(element, col.getPropertyName())); for getPropertyValue: //TODO: look into the getRuleResponsibility() call in RuleDelegation.java and its call to the

ServiceLocator. Can we speed this up?

Comment by Greg Patterson

[ 25/Mar/10 3:54 PM ]

Looks like we should be able to speed this up significantly (need to verify we don't mess up any results though) as I compared the following approaches:

RuleResponsibility rResp1 = KEWServiceLocator.getRuleService().findRuleResponsibility(getResponsibilityId());

RuleResponsibility rResp2 =

KEWServiceLocator.getRuleService().findByRuleResponsibilityId(getResponsibilityId());

The first tactic hits the RuleDAO's findRuleResponsibility method which does:

Criteria crit = new Criteria(); crit.addEqualTo("responsibilityId", responsibilityId);

Collection responsibilities = this.getPersistenceBrokerTemplate().getCollectionByQuery(new

QueryByCriteria(RuleResponsibility.class, crit)); for (Iterator iterator = responsibilities.iterator(); iterator.hasNext() {

RuleResponsibility responsibility = (RuleResponsibility) iterator.next(); if (responsibility.getRuleBaseValues().getCurrentInd().booleanValue()) { return responsibility; }

}

The second tactic hits the RuleResponsibilityDAO's findByRuleResponsibilityId which does:

RuleResponsibility ruleResponsibility = new RuleResponsibility(); ruleResponsibility.setRuleResponsibilityKey(ruleResponsibilityId); return (RuleResponsibility) this.getPersistenceBrokerTemplate().getObjectByQuery(new

QueryByCriteria(ruleResponsibility));

As you can tell, the first one has to build up a criteria object, then attempts to get a collection back from the PB, and finally runs through the result collection looking for the current version.

The second method simply sets the id value on a new ruleResponsibility object and then asks the PB to go fetch that object.

My concern is this: if we use the second method here are we sure to always be getting the actv/current version (if appropriate)? Also, since these id's come from another query earlier in the process, do we even need to worry about that at this level?

*EDIT: This won't work because the second method maps the given ID to 'RULE_RSP_ID' instead of 'RSP_ID' like we want it to.

Comment by Greg Patterson

[ 25/Mar/10 4:20 PM ]

Another thought is that both of the calls that are slow: prop = ObjectUtils.getPropertyValue(element, col.getPropertyName()); col.setColumnAnchor(getInquiryUrl(element, col.getPropertyName())); end up calling: KEWServiceLocator.getRuleService().findRuleResponsibility(getResponsibilityId()); which is where we iterate over every rule_resp in the resultset, so we essentially run the same logic twice for this particular case. If we can figure out how to eliminate the second call we'll halve the time easily.

Comment by Greg Patterson

[ 29/Mar/10 7:21 PM ]

Resolving as this has now been committed.

[EN-1454] Workflow Preferences Screen : Error processing for Automatic

Refresh Rate and Action List Page Size not working properly

Created: 18/Jan/10 Updated:

10/Sep/12 Resolved: 23/Jan/12

Status: Closed

Project: Kuali Rice

Component/s: None

Affects

Version/s:

None

Fix Version/s: Rice 1.0 - Patch 6 , Post 2.0 Contribution

Type: Bug Priority: Major

Reporter:

Resolution:

Labels:

Remaining

Estimate:

Time Spent:

Shannon Hess

Fixed

None

Not Specified

Assignee:

Votes:

Greg Patterson

0

Original

Estimate:

Attachments:

Not Specified

Not Specified

Page size zero error.gif Should be error icon by Page size.gif error messages when both are incorrect.gif incorrect error icon.gif

Description

For Action List Page Size: error message is incorrect and error icon is appearing when

Automatic Refresh Rate is invalid

For Automatic Refresh Rate: error icon is appearing for both Automatic Refresh Rate and

Action List Page Size even if only Automatic Refresh Rate is invalid.

See attached screen prints for examples.

Comments

Comment by Shannon Hess

[ 18/Jan/10 1:04 PM ]

Another problem for Action List Page Size was found: when you save a value of zero, no error is raised. However, when you return to the action list screen, a division by zero exception occurs. I think an error message indicating the valid values on the preferences screen would be best.

Exception: org.apache.jasper.JasperException: javax.servlet.jsp.JspException: / by zero org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:99) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:627) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:75) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:116) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:305) edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:487) edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:421) edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:400) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:298) org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:166) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66) root cause javax.servlet.ServletException: javax.servlet.jsp.JspException: / by zero org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:837) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774) org.apache.jsp.kew.WEB_002dINF.jsp.ActionList.ActionList_jsp._jspService(ActionList_jsp.java:751) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:99) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:627) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:75) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:116) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:305) edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:487) edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:421) edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:400) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:298) org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:166) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66)

root cause java.lang.ArithmeticException: / by zero org.displaytag.pagination.PaginatedListSmartListHelper.computePageCount(PaginatedListSmartListHelper.java:48) org.displaytag.pagination.PaginatedListSmartListHelper.<init>(PaginatedListSmartListHelper.java:42) org.displaytag.tags.TableTag.setupViewableData(TableTag.java:1529) org.displaytag.tags.TableTag.doEndTag(TableTag.java:1198) org.apache.jsp.kew.WEB_002dINF.jsp.ActionList.ActionList_jsp$Helper.invoke0(ActionList_jsp.java:5256) org.apache.jsp.kew.WEB_002dINF.jsp.ActionList.ActionList_jsp$Helper.invoke(ActionList_jsp.java:5357) org.apache.jsp.tag.web.kr.page_tag.doTag(page_tag.java:665) org.apache.jsp.kew.WEB_002dINF.jsp.ActionList.ActionList_jsp._jspService(ActionList_jsp.java:743) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085) org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241) org.kuali.rice.kns.web.struts.action.KualiRequestProcessor.process(KualiRequestProcessor.java:99) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:627) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) edu.iu.uis.eden.web.IUUserAccessFilter.doFilter(IUUserAccessFilter.java:75) org.kuali.rice.kew.web.UserLoginFilter.doFilter(UserLoginFilter.java:92) edu.iu.uis.rice.web.IUUserLoginFilter.doFilter(IUUserLoginFilter.java:116) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:305) edu.iu.uis.cas.filter.CASFilter.redirectOrForwardChain(CASFilter.java:487) edu.iu.uis.cas.filter.CASFilter.doFilterUnsynchronized(CASFilter.java:421) edu.iu.uis.cas.filter.CASFilter.doFilter(CASFilter.java:400) org.kuali.rice.kew.web.BootstrapFilterChain.doFilter(BootstrapFilter.java:298) org.kuali.rice.kew.web.BootstrapFilter.doFilter(BootstrapFilter.java:166) org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) org.kuali.rice.kns.web.filter.HideWebInfFilter.doFilter(HideWebInfFilter.java:66)

Comment by Greg Patterson

[ 02/Jun/10 1:35 PM ]

Committed all but the message relocation changes.

Anyone have an idea why we'd be rendering error messages at the bottom of this screen in the '...errmsg' div? I put one in the right place (at the top of the appropriate tab section) but can't seem to figure out where the other div is being rendered from (not in preferences.jsp but is on the page...).

Comment by Shannon Hess

[ 28/Jun/10 11:02 AM ]

All the committed items have been deployed to production. Moving this to patch 4.0 for the relocation changes.

Comment by Shannon Hess

[ 15/Jul/10 5:36 AM ]

Is anything being fixed on this regarding relocation of the messages, or can this be closed?

Thanks,

Shannon

Generated at Mon Sep 10 10:09:50 EDT 2012 by Shannon Hess using JIRA 4.4.5#665sha1:422aeadac7e4462fb4ae63fce804ff78c4258dd6.

Download