Thanks Rasika & Chamila Wijayarathna, Earlier I didn't specify the serialVersionUID. Now I set that as the expected one (1179165995021182755L). It's working fine.
@ Chamila Wijayarathna: Do I need to delete the database? If so, can you give reference to do that? Thanks On Wed, Nov 11, 2015 at 10:50 AM, Chamila Wijayarathna <[email protected]> wrote: > Hi Shakila, > > It seems like you are using the same database you used with IS 5.0.0, > after moving to 5.1.0 beta. > > If you are using the same database as your previous setup, those > scripts/tables may not compatible with what are expected in 5.1.0. You may > have to migrate or otherwise you can delete the previous database and start > IS again with -Dsetup. If 2nd option is possible, it would be the easiest. > > The reason for the error is as I understand, we have fixed [1] in IS 5.1.0 > and there we have changed serielVersionUID s of some objects which are > saved to databases as blobs by serializing. So when you try to retrieve old > entry which written to database in prior IS version would be serialized > with a 1 serialversionUID and when retrieving it from database after > migration, it try to deserialize, but version ID's does not match. So due > to that it fails to deserialize and this error occurs. > > Thanks > > [1]. https://wso2.org/jira/browse/IDENTITY-3621 > > On Wed, Nov 11, 2015 at 10:27 AM, Chamila Wijayarathna <[email protected]> > wrote: > >> Hi Shakila, >> >> Can you please share a link of the source code of Tiqr authenticator you >> are working with. >> >> Thanks. >> >> On Wed, Nov 11, 2015 at 10:08 AM, Rasika Perera <[email protected]> wrote: >> >>> Hi Shakila, >>> >>> First error is more like deserialization issue. The >>> "InvalidClassException" usually occurs when the receiver has loaded a class >>> for the object that has a different serialVersionUID than that of the >>> corresponding sender's class. >>> >>> Have you defined explicitly "serialVersionUID" in your serializable >>> class "TiqrAuthenticator"? If you do not explicitly declare this, >>> serialization runtime will calculate this based on the various aspect of >>> the class. According to the java doc[1], recommended way is to explicitly >>> declare serialVersionUID values, since the default serialVersionUID >>> computation is highly sensitive to class details that may vary depending on >>> compiler implementations, and can thus result in unexpected >>> InvalidClassExceptions during deserialization. >>> >>> [1] http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html >>> >>> Thanks, >>> Rasika >>> >>> On Wed, Nov 11, 2015 at 8:18 AM, Shakila Sivagnanarajah < >>> [email protected]> wrote: >>> >>>> Hi all, >>>> >>>> I implemented IS authenticator for Tiqr for IS 5.0.0 earlier. Now to >>>> enable another feature with association I need to modify the authenticator >>>> for 5.1.0. I used wso2is-5.1.0-beta for this. Since required dependencies >>>> (artifacts versioned as 5.1.0-beta) not in nexus, I put them locally and >>>> given local path in pom. Now I'm getting two errors. I mentioned them here. >>>> Can anyone help me to resolve this? >>>> >>>> [1] This is caused while retrieving previous session data. >>>> >>>> in FrameworkUtils: >>>> SessionContextCacheEntry cacheEntryObj = >>>> SessionContextCache.getInstance().getValueFromCache(cacheKey); >>>> returns null >>>> >>>> I got this stack-trace: >>>> [2015-11-11 07:38:22,258] ERROR >>>> {org.wso2.carbon.identity.application.authentication.framework.store.SessionDataStore} >>>> - Error while retrieving session data >>>> >>>> java.io.InvalidClassException: >>>> org.wso2.carbon.identity.authenticator.TiqrAuthenticator; local class >>>> incompatible: stream classdesc serialVersionUID = 1179165995021182755, >>>> local class serialVersionUID = 7666485910146971411 >>>> >>>> at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:604) >>>> >>>> at >>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601) >>>> >>>> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514) >>>> >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750) >>>> >>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> >>>> at >>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >>>> >>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >>>> >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >>>> >>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> >>>> at >>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >>>> >>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >>>> >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >>>> >>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> >>>> at java.util.HashMap.readObject(HashMap.java:1155) >>>> >>>> at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) >>>> >>>> at >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>> >>>> at java.lang.reflect.Method.invoke(Method.java:601) >>>> >>>> at >>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) >>>> >>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866) >>>> >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >>>> >>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> >>>> at >>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >>>> >>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >>>> >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >>>> >>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> >>>> at >>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >>>> >>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >>>> >>>> at >>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771) >>>> >>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >>>> >>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.store.SessionDataStore.getBlobObject(SessionDataStore.java:428) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.store.SessionDataStore.getSessionContextData(SessionDataStore.java:275) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.cache.SessionContextCache.getValueFromCache(SessionContextCache.java:93) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.util.FrameworkUtils.getSessionContextFromCache(FrameworkUtils.java:571) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.findPreviousAuthenticatedSession(DefaultRequestCoordinator.java:290) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.initializeFlow(DefaultRequestCoordinator.java:228) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.handle(DefaultRequestCoordinator.java:109) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.servlet.CommonAuthenticationServlet.doPost(CommonAuthenticationServlet.java:53) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.servlet.CommonAuthenticationServlet.doGet(CommonAuthenticationServlet.java:43) >>>> >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:620) >>>> >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >>>> >>>> at >>>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37) >>>> >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61) >>>> >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128) >>>> >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60) >>>> >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>> >>>> at >>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>> >>>> at >>>> org.wso2.carbon.ui.filters.CSRFPreventionFilter.doFilter(CSRFPreventionFilter.java:88) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>> >>>> at >>>> org.wso2.carbon.ui.filters.CRLFPreventionFilter.doFilter(CRLFPreventionFilter.java:59) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>> >>>> at >>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) >>>> >>>> at >>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) >>>> >>>> at >>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) >>>> >>>> at >>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) >>>> >>>> at >>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) >>>> >>>> at >>>> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159) >>>> >>>> at >>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57) >>>> >>>> at >>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) >>>> >>>> at >>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) >>>> >>>> at >>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074) >>>> >>>> at >>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) >>>> >>>> at >>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739) >>>> >>>> at >>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698) >>>> >>>> at >>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) >>>> >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) >>>> >>>> at >>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) >>>> >>>> at java.lang.Thread.run(Thread.java:722) >>>> >>>> >>>> >>>> [2] DefaultRequestCoordinator throws: >>>> >>>> [2015-11-11 07:44:17,712] ERROR >>>> {org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator} >>>> - Exception in Authentication Framework >>>> >>>> java.lang.NullPointerException >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler.handlePostAuthentication(DefaultStepBasedSequenceHandler.java:255) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler.handle(DefaultStepBasedSequenceHandler.java:156) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultAuthenticationRequestHandler.handle(DefaultAuthenticationRequestHandler.java:112) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.handle(DefaultRequestCoordinator.java:125) >>>> >>>> at >>>> org.wso2.carbon.identity.application.authentication.framework.servlet.CommonAuthenticationServlet.doPost(CommonAuthenticationServlet.java:53) >>>> >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) >>>> >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >>>> >>>> at >>>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37) >>>> >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61) >>>> >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128) >>>> >>>> at >>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60) >>>> >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>> >>>> at >>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>> >>>> at >>>> org.wso2.carbon.ui.filters.CSRFPreventionFilter.doFilter(CSRFPreventionFilter.java:88) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>> >>>> at >>>> org.wso2.carbon.ui.filters.CRLFPreventionFilter.doFilter(CRLFPreventionFilter.java:59) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>> >>>> at >>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>> >>>> at >>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) >>>> >>>> at >>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) >>>> >>>> at >>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) >>>> >>>> at >>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) >>>> >>>> at >>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) >>>> >>>> at >>>> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159) >>>> >>>> at >>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) >>>> >>>> at >>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57) >>>> >>>> at >>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) >>>> >>>> at >>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) >>>> >>>> at >>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074) >>>> >>>> at >>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) >>>> >>>> at >>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739) >>>> >>>> at >>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698) >>>> >>>> at >>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) >>>> >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) >>>> >>>> at >>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) >>>> >>>> at java.lang.Thread.run(Thread.java:722) >>>> >>>> Note: >>>> >>>> After completing the authentication in processAuthenticationResponse, >>>> AuthenticatorFlowStatus e = authenticator.process(request, response, >>>> context); >>>> (found in DefaultStepHandler) returns "INCOMPLETE". >>>> >>>> >>>> -- >>>> Shakila Sivagnanarajah >>>> Associate Software Engineer >>>> Mobile :+94 (0) 770 760240 >>>> [email protected] >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> [email protected] >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >>> >>> -- >>> With Regards, >>> >>> *Rasika Perera* >>> Software Engineer >>> M: +94 71 680 9060 E: [email protected] >>> LinkedIn: http://lk.linkedin.com/in/rasika90 >>> >>> WSO2 Inc. www.wso2.com >>> lean.enterprise.middleware >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> *Chamila Dilshan Wijayarathna,* >> Software Engineer >> Mobile:(+94)788193620 >> WSO2 Inc., http://wso2.com/ >> > > > > -- > *Chamila Dilshan Wijayarathna,* > Software Engineer > Mobile:(+94)788193620 > WSO2 Inc., http://wso2.com/ > -- Shakila Sivagnanarajah Associate Software Engineer Mobile :+94 (0) 770 760240 [email protected]
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
