Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    #16
    I'm afraid that I spoke too soon. I was focused on the output from the DataSourceLoader, I neglected to verify that the application itself gets the data it needs.

    The SessionFactory changed between v3 and v4 of Hibernate. It looks like the code is still looking for the openSession() that returns org.hibernate.class.Session, rather than just org.hibernate.Session.



    12:35:48,933 INFO [STDOUT] === 2012-08-17 12:35:48,933 [80-9] DEBUG RPCManager - Request #1 (DSRequest) payload: {
    criteria:{
    id:"13"
    },
    operationConfig:{
    dataSource:"user",
    operationType:"fetch"
    },
    appID:"builtinApplication",
    operation:"user_fetch",
    oldValues:{
    id:"13"
    }
    }
    12:35:48,933 INFO [STDOUT] === 2012-08-17 12:35:48,933 [80-9] INFO IDACall - Performing 1 operation(s)
    12:35:48,933 INFO [STDOUT] === 2012-08-17 12:35:48,933 [80-3] WARN BasicDataSource - Can not load related data source 'taskStatus' for field 'taskStatus'. Treating as simple field.
    12:35:48,936 INFO [STDOUT] === 2012-08-17 12:35:48,936 [80-9] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    12:35:48,936 INFO [STDOUT] === 2012-08-17 12:35:48,936 [80-9] DEBUG DeclarativeSecurity - DataSource user is not in the pre-checked list, processing...
    12:35:48,936 INFO [STDOUT] === 2012-08-17 12:35:48,936 [80-9] INFO ServerObject - DMI on Spring bean: UserDMIHandler
    12:35:48,945 INFO [STDOUT] === 2012-08-17 12:35:48,945 [80-9] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    12:35:48,945 INFO [STDOUT] === 2012-08-17 12:35:48,945 [80-9] DEBUG DeclarativeSecurity - DataSource user is not in the pre-checked list, processing...
    12:35:48,946 INFO [STDOUT] === 2012-08-17 12:35:48,946 [80-9] DEBUG AppBase - [builtinApplication.user_fetch] No userTypes defined, allowing anyone access to all operations for this application
    12:35:48,946 INFO [STDOUT] === 2012-08-17 12:35:48,946 [80-9] DEBUG AppBase - [builtinApplication.user_fetch] No public zero-argument method named '_user_fetch' found, performing generic datasource operation
    12:35:48,946 INFO [STDOUT] === 2012-08-17 12:35:48,946 [80-9] INFO HibernateDataSource - [builtinApplication.user_fetch] Performing fetch operation with
    criteria: {id:"13"} values: {id:"13"}
    12:35:48,951 INFO [STDOUT] === 2012-08-17 12:35:48,950 [80-9] DEBUG DataSourceDMI - Invocation threw exception
    java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;
    at com.isomorphic.hibernate.HibernateTransaction.startTransaction(HibernateTransaction.java:70)
    at com.isomorphic.hibernate.HibernateDataSource.processRequest(HibernateDataSource.java:818)
    at com.isomorphic.hibernate.HibernateDataSource.executeFetch(HibernateDataSource.java:671)
    at com.isomorphic.datasource.DataSource.execute(DataSource.java:1356)
    at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:726)
    at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
    at com.isomorphic.application.AppBase.execute(AppBase.java:491)
    at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:2000)
    at com.hyperproductive.libraries.richclient.support.server.dmi.BaseDMIHandler.executeFetch(BaseDMIHandler.java:198)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:618)
    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.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:972)
    at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:416)
    at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
    at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1997)
    at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:216)
    at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:173)
    at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:138)
    at com.isomorphic.servlet.IDACall.doPost(IDACall.java:74)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
    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.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
    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:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    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:235)
    at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
    at org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:127)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.internalProcess(ActiveRequestResponseCacheValve.java:74)
    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:47)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:599)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
    at java.lang.Thread.run(Thread.java:662)
    12:35:48,952 INFO [STDOUT] === 2012-08-17 12:35:48,951 [80-9] ERROR IDACall - Top-level servlet error:
    java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session;
    at com.isomorphic.hibernate.HibernateTransaction.startTransaction(HibernateTransaction.java:70)
    at com.isomorphic.hibernate.HibernateDataSource.processRequest(HibernateDataSource.java:818)
    at com.isomorphic.hibernate.HibernateDataSource.executeFetch(HibernateDataSource.java:671)
    at com.isomorphic.datasource.DataSource.execute(DataSource.java:1356)
    at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:726)
    at com.isomorphic.application.AppBase.executeAppOperation(AppBase.java:658)
    at com.isomorphic.application.AppBase.execute(AppBase.java:491)
    at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:2000)
    at com.hyperproductive.libraries.richclient.support.server.dmi.BaseDMIHandler.executeFetch(BaseDMIHandler.java:198)
    at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:618)
    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.isomorphic.base.Reflection.adaptArgsAndInvoke(Reflection.java:972)
    at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:416)
    at com.isomorphic.datasource.DataSourceDMI.execute(DataSourceDMI.java:64)
    at com.isomorphic.datasource.DSRequest.execute(DSRequest.java:1997)
    at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:216)
    at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:173)
    at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:138)
    at com.isomorphic.servlet.IDACall.doPost(IDACall.java:74)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
    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.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
    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:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    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:235)
    at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
    at org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:127)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.internalProcess(ActiveRequestResponseCacheValve.java:74)
    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:47)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:599)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
    at java.lang.Thread.run(Thread.java:662)

    Comment


      #17
      Hi,

      There in no reference to org.hibernate.classic.Session in Hibernate data source implementation.
      We use org.hibernate.Session only.

      There were Spring issue in 3.1 RC1 but it's been fixed in 3.1 RC2.

      One possible explanation is: you have several versions of Spring and/or Hibernate jars in your class path. Please check it.

      Regards,
      Alius

      Comment


        #18
        Joe, are you getting these problems in dev mode or production mode? GWT dev mode has a nasty habit of keeping around and even linking in old versions of jars that have been removed from Maven and/or Eclipse dependency lists; you might check your target directory to ensure that GWT isn't being a packrat.

        Comment


          #19
          It looks like isomorphic_hibernate.jar is built against hibernate3.
          The bytecode in the class file references the openSession that returns an org.hibernate.classic.Session (viewed not so helpfully through the WinRAR file viewer):
          Code:
           getStaticSessionFactory  ()Lorg/hibernate/SessionFactory; org/hibernate/SessionFactory 
          openSession !()Lorg/hibernate/classic/Session;
          The attachment (Capture.GIF) highlights the call in the eclipse class file viewer (which doesn't unfortunately allow for copy/paste of the bytecode).

          Is it possible to have separate files for hibernate v3 & v4?
          isomorphic_hibernate3.jar
          isomorphic_hibernate4.jar ?
          Attached Files

          Comment


            #20
            Or, within the same jar, be able to distinguish between a v3 and a v4 datasource, using different server types, perhaps:

            serverType="hibernate" (default to version 3)
            serverType="hibernate4" (explicitly reference datasource compiled against v4)

            Comment


              #21
              We're looking at using Java reflection to avoid needing to specify anything at all.

              It's very unfortunate that Hibernate shifted the API around without preserving backwards compatibility, but it's not unique by any means, and we've used this approach in the past to get around similar issues.

              Comment


                #22
                Hi

                Issue is fixed. You can get changes with next nightly build.

                Regards,
                Alius

                Comment


                  #23
                  Confirmed. Thanks.

                  Comment

                  Working...
                  X