You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-user@portals.apache.org by Ron Wheeler <rw...@artifact-software.com> on 2009/06/18 03:41:32 UTC

getUserAttributes causes Jetspeed to try to create a new node for a user that already exists.

During a bulk loading/update of users and after a many hundreds of 
users, we got the this error on a user that already existed.
We had processed other similar users.

It seems that getUserAttributes causes Jetspeed to try to create a new 
node for a user that already exists.

Seems to end up causing a duplicate entry in the Jetspeed datastructure.


 OUR CODE
 
 try {
    if (portalUser != null){   
  portalUser = this.getUserManager().getUser(userName);
   
portalUser.getPreferences().put("org.apache.jetspeed.prefered.locale", 
userProfile.getLanguage());
   
   
    Preferences userPrefs = portalUser.getUserAttributes();
    String[] userInfoKeys = userInfo.keySet().toArray(new String[0]);
 
 THE STACKTRACE

2009-06-17 17:30:07,686 [http-8080-Processor19] DEBUG 
com.artifact_software.portal.employeeAdmin.importer.UploadDataEmployee - 
START UPDATE CREDENTIALS EMPLOYEE 048847
2009-06-17 17:30:07,687 [http-8080-Processor19] DEBUG 
com.artifact_software.portal.dao.jetspeed.impl.UserJetspeedDAOImp - 
JetspeedDAO updating existing user profile
java.lang.IllegalStateException: Failed to create new Preferences of 
type 0 for path /user/048847/userinfo
 at 
org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:104)
 at 
org.apache.jetspeed.prefs.impl.PreferencesImpl.childSpi(PreferencesImpl.java:162)
 at java.util.prefs.AbstractPreferences.node(AbstractPreferences.java:833)
 at java.util.prefs.AbstractPreferences.node(AbstractPreferences.java:813)
 at 
org.apache.jetspeed.security.impl.UserImpl.getUserAttributes(UserImpl.java:88)
 at 
com.artifact_software.portal.dao.jetspeed.impl.UserJetspeedDAOImp.updatePortalUser(UserJetspeedDAOImp.java:344)
 at 
com.artifact_software.portal.employeeAdmin.importer.UploadDataEmployee.makeUserForEmployee(UploadDataEmployee.java:553)
 at 
com.artifact_software.portal.employeeAdmin.importer.UploadDataEmployee.loadEmployeeToDB(UploadDataEmployee.java:357)
 at 
com.artifact_software.portal.employeeAdmin.importer.UploadDataEmployee.loadTmpEmployeeToDB(UploadDataEmployee.java:279)
 at 
com.artifact_software.portal.employeeAdmin.controller.impl.EmployeeAdminCtrlImpl.uploadSpreadsheetEmployee(EmployeeAdminCtrlImpl.java:124)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:616)
 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 $Proxy38.uploadSpreadsheetEmployee(Unknown Source)
 at 
com.artifact_software.portal.employeeAdmin.controller.impl.EmployeeAdminManagerImpl.uploadSpreadsheet(EmployeeAdminManagerImpl.java:128)
 at 
com.artifact_software.portal.employeeAdmin.importer.ImportExcel.processFile(ImportExcel.java:111)
 at 
com.artifact_software.portal.employeeAdmin.controller.impl.EmployeeAdminManagerImpl.importEmployees(EmployeeAdminManagerImpl.java:78)
 at 
com.artifact_software.portal.employeeAdmin.controller.impl.EmployeeAdminManagerImpl$$FastClassByCGLIB$$ca6ea930.invoke(<generated>)
 at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
 at 
org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
 at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
 at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
 at 
org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
 at 
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
 at 
org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
 at 
com.artifact_software.portal.employeeAdmin.controller.impl.EmployeeAdminManagerImpl$$EnhancerByCGLIB$$1808aaf8.importEmployees(<generated>)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:616)
 at 
org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:132)
 at 
org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:61)
 at javax.faces.component.UICommand.broadcast(UICommand.java:109)
 at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
 at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
 at 
org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
 at 
org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
 at 
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
 at 
org.apache.portals.bridges.jsf.FacesPortlet.process(FacesPortlet.java:491)
 at 
org.apache.portals.bridges.jsf.FacesPortlet.processAction(FacesPortlet.java:345)
 at 
org.apache.portals.bridges.portletfilter.PortletFilterChain.processActionFilter(PortletFilterChain.java:150)
 at 
jp.sf.pal.tomahawk.filter.ExtensionsPortletFilter.processActionFilter(ExtensionsPortletFilter.java:258)
 at 
org.apache.portals.bridges.portletfilter.PortletFilterChain.processActionFilter(PortletFilterChain.java:143)
 at 
org.apache.portals.bridges.portletfilter.FilterPortlet.processAction(FilterPortlet.java:132)
 at 
org.apache.jetspeed.factory.JetspeedPortletInstance.processAction(JetspeedPortletInstance.java:97)
 at 
org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContainerServlet.java:258)
 at 
org.apache.jetspeed.container.JetspeedContainerServlet.doPost(JetspeedContainerServlet.java:396)
 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.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
 at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:584)
 at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:497)
 at 
org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPortletInvoker.java:273)
 at 
org.apache.jetspeed.container.invoker.ServletPortletInvoker.action(ServletPortletInvoker.java:148)
 at 
org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContainerImpl.java:164)
 at 
org.apache.jetspeed.container.JetspeedPortletContainerWrapper.processPortletAction(JetspeedPortletContainerWrapper.java:133)
 at 
org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:148)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
 at 
org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:109)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
 at 
org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:248)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
 at 
com.artifact_software.services.valves.BannerSelectorValveImpl.invoke(BannerSelectorValveImpl.java:60)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
 at 
com.artifact_software.services.valves.UAPValveImpl.invoke(UAPValveImpl.java:63)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
 at 
org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginValidationValveImpl.java:159)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
 at 
org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(PasswordCredentialValveImpl.java:150)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
 at 
org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:170)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
 at 
org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecurityValve.java:138)
 at java.security.AccessController.doPrivileged(Native Method)
 at javax.security.auth.Subject.doAsPrivileged(Subject.java:474)
 at 
org.apache.jetspeed.security.JSSubject.doAsPrivileged(JSSubject.java:179)
 at 
org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecurityValve.java:132)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
 at 
org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLValveImpl.java:67)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
 at 
org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:126)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167)
 at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:146)
 at 
org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:222)
 at 
org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:242)
 at 
org.apache.jetspeed.engine.JetspeedServlet.doPost(JetspeedServlet.java:269)
 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 
com.artifact_software.services.filters.TokenSingleSignonFilter.doFilter(TokenSingleSignonFilter.java:169)
 at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
 at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
 at 
org.apache.jetspeed.engine.servlet.XXSUrlAttackFilter.doFilter(XXSUrlAttackFilter.java:52)
 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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
 at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
 at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:548)
 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:636)
Caused by: org.apache.jetspeed.prefs.FailedToCreateNodeException: Failed 
to create node of type 0 for the path /user/048847/userinfo.  
org.springframework.dao.DataIntegrityViolationException: OJB operation; 
SQL []; Duplicate entry '81964' for key 1; nested exception is 
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: 
Duplicate entry '81964' for key 1
 at 
org.apache.jetspeed.prefs.impl.PersistenceBrokerPreferencesProvider.createNode(PersistenceBrokerPreferencesProvider.java:344)
 at sun.reflect.GeneratedMethodAccessor734.invoke(Unknown Source)
 at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:616)
 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 $Proxy23.createNode(Unknown Source)
 at 
org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:93)
 ... 118 more
Caused by: org.springframework.dao.DataIntegrityViolationException: OJB 
operation; SQL []; Duplicate entry '81964' for key 1; nested exception 
is com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: 
Duplicate entry '81964' for key 1
 at 
org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:100)
 at 
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
 at 
org.springframework.orm.ojb.OjbAccessor.convertJdbcAccessException(OjbAccessor.java:107)
 at 
org.springframework.orm.ojb.OjbAccessor.convertOjbAccessException(OjbAccessor.java:89)
 at 
org.springframework.orm.ojb.PersistenceBrokerTemplate.execute(PersistenceBrokerTemplate.java:141)
 at 
org.springframework.orm.ojb.PersistenceBrokerTemplate.store(PersistenceBrokerTemplate.java:241)
 at 
org.apache.jetspeed.prefs.impl.PersistenceBrokerPreferencesProvider.createNode(PersistenceBrokerPreferencesProvider.java:337)
 ... 129 more
Caused by: 
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: 
Duplicate entry '81964' for key 1
 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
 at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
 at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
 at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
 at 
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
 at 
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)
 at 
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
 at 
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1504)
 at 
org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
 at 
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeInsert(JdbcAccessImpl.java:216)
 at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.storeToDb(PersistenceBrokerImpl.java:1754)
 at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:813)
 at 
org.apache.ojb.broker.core.PersistenceBrokerImpl.store(PersistenceBrokerImpl.java:726)
 at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersistenceBroker.java:175)
 at 
org.apache.ojb.broker.core.DelegatingPersistenceBroker.store(DelegatingPersistenceBroker.java:175)
 at 
org.springframework.orm.ojb.PersistenceBrokerTemplate$9.doInPersistenceBroker(PersistenceBrokerTemplate.java:243)
 at 
org.springframework.orm.ojb.PersistenceBrokerTemplate.execute(PersistenceBrokerTemplate.java:138)
 ... 131 more


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-user-help@portals.apache.org