Announcement

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

    NullPointerException at com.isomorphic.sql.SQLValuesClause.getSQLStringFor (SQLValues)

    Hello friends,

    INFO: I use MySQL and SQLServer as backend solutions.

    I'm using in my datasource an OperationBinding with a customQuery:
    Code:
    <operationBinding operationType="update" operationId="refreshDueDate_FROM_ORIGIN_TX_OISD_ORCD_IDF_DNF_pacs_004">
           <customSQL>
           	update Omega.tx_pacs_004 set txInfOrgnlTxRefReqdColltnDt = (select drctDbtTxInfReqdColltnDt from Omega.tx_pacs_003 where Omega.tx_pacs_003.DrctDbtTxInfPmtIdTxId = txInfOrgnlTxId),
           	txInfOrgnlTxRefIntrBkSttlmDt = (select intrbksttlmdt from Omega.B2B_BH where Omega.B2B_BH.pkid = (select fkbhid from Omega.tx_pacs_003 where Omega.tx_pacs_003.DrctDbtTxInfPmtIdTxId = txInfOrgnlTxId)) 
    		WHERE Omega.tx_pacs_004.fkbhid IN (select pkid from Omega.B2B_BH where Omega.B2B_BH.fkbhid = $values.pkid);
           </customSQL>
    </operationBinding>
    While updating these data I get the following error:
    java.lang.NullPointerException at com.isomorphic.sql.SQLValuesClause.getSQLStringForUpdate(SQLValuesClause.java:304)

    QUESTIONS:
    Do you have any idea why?
    Is there a way to get the isomorphic source code to debug this com.isomorphic.sql.SQLValuesClause class?

    Here is the java code:
    Code:
    DSRequest txDueDateDsRequest = new DSRequest();
    
    /**
     * If update from origin transaction is selected, overwrite the operation ID issue
     */
    String fileHeaderType = getFileHeaderType();
    txDueDateDsRequest.setOperationId("refreshDueDate_FROM_ORIGIN_TX_OISD_ORCD_IDF_DNF_pacs_004");
    DataSourceFactory.getDataSourceForTxPacs004().updateData(txDueDateRecord, null, txDueDateDsRequest);
    Attention: THE SAME CODE WORKS UNDER MySQL!!

    INFOS:
    SmartGWT Power (eval) from 22.01.2011.
    Firefox,
    Mac OS Leopard,
    BackEnd: SQLServer 2008

    Full Logs:
    === 2011-01-23 20:27:31,617 [l0-3] INFO SQLDataSource - [builtinApplication.refreshDueDate_FROM_ORIGIN_TX_OISD_ORCD_IDF_DNF_pacs_004] Performing update operation with
    criteria: {pkid:875} values: {pkid:875}
    === 2011-01-23 20:27:31,618 [l0-3] WARN RequestContext - dsRequest.execute() failed:
    java.lang.NullPointerException
    at com.isomorphic.sql.SQLValuesClause.getSQLStringForUpdate(SQLValuesClause.java:304)
    at com.isomorphic.sql.SQLDataSource.getClausesContext(SQLDataSource.java:1874)
    at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1192)
    at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:280)
    at com.isomorphic.sql.SQLDataSource.executeUpdate(SQLDataSource.java:228)
    at com.isomorphic.datasource.DataSource.execute(DataSource.java:1054)
    at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:721)
    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:1457)
    at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:173)
    at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:130)
    at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:95)
    at com.isomorphic.servlet.IDACall.doPost(IDACall.java:54)
    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.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
    at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:259)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at com.Omega.server.authentication.OmegaConcurrentSessionFilter.doFilter(OmegaConcurrentSessionFilter.java:80)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
    Last edited by GWTDummies; 24 Jan 2011, 01:53.

    #2
    Hi isomorphic,

    any help in here? Thank you.

    Comment


      #3
      This is happening because there are no values other than the PK, which would be a no-op except for your customized SQL. You can work around this by establishing any single value aside from the PK. For instance, server-side you could do this via <value fieldName="anyValidField" value="dummy value"/>

      Comment


        #4
        We've fixed this issue now. The fix will be present in tomorrow's nightly build.

        Comment


          #5
          Thanks a lot Isomorphic ...

          SmartGWT rocks!

          Comment

          Working...
          X