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-unsubscr...@portals.apache.org
For additional commands, e-mail: jetspeed-user-h...@portals.apache.org

Reply via email to