Announcement

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

    [bug] strange SQLDataSource error on add operation with DataSourceField.tableName

    SmartClient Version: v9.1p_2014-06-25/PowerEdition Deployment (built 2014-06-25)

    I've got a dataSource IMA_MATCH which includes a field of another table (JPC_STAGIONI) using tableName and nativeName.
    The field from the other table is a primaryKey and has got the same nativeName of the primaryKey of the first dataSource.
    Other than that, I don't see anything particular.
    When I try to add a record:
    Code:
    IMA_MATCH.addData({
      ID_EVENTO_FK: 483279,
      ID_RISERVA_FK: 717766,
      NICKNAME:"Maura49",
      ID_ABBONAMENTO_FK:1,
      STATO:"C"
    })
    I got this error:
    Code:
    2014-06-27 12:30:50,872 DEBUG RPCManager Processing 1 requests. 
    2014-06-27 12:30:50,873 DEBUG RPCManager Request #1 (DSRequest) payload: {
        values:{
            ID_EVENTO_FK:483279,
            ID_RISERVA_FK:717766,
            NICKNAME:"Maura49",
            ID_ABBONAMENTO_FK:1,
            STATO:"C"
        },
        operationConfig:{
            dataSource:"IMA_MATCH",
            operationType:"add",
            textMatchStyle:"exact"
        },
        appID:"builtinApplication",
        operation:"IMA_MATCH_add",
        oldValues:{
            ID_EVENTO_FK:483279,
            ID_RISERVA_FK:717766,
            NICKNAME:"Maura49",
            ID_ABBONAMENTO_FK:1,
            STATO:"C"
        },
        criteria:{
        }
    } 
    2014-06-27 12:30:50,873 INFO  IDACall Performing 1 operation(s) 
    2014-06-27 12:30:50,874 INFO  SQLValuesClause [builtinApplication.IMA_MATCH_add] Ignored data for non-existent or included columns: [ID_EVENTO_FK, ID_RISERVA_FK, NICKNAME, ID_ABBONAMENTO_FK, STATO] 
    2014-06-27 12:30:50,876 WARN  RequestContext dsRequest.execute() failed:  
    java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.lang.String
    	at com.isomorphic.sql.SQLDataSource.getFieldNameFromColumnName(SQLDataSource.java:383)
    	at com.isomorphic.sql.SQLValuesClause.getSQLStringForInsert(SQLValuesClause.java:157)
    	at com.isomorphic.sql.SQLDataSource.getClausesContext(SQLDataSource.java:3130)
    	at com.isomorphic.sql.SQLDataSource.SQLExecute(SQLDataSource.java:1797)
    	at com.isomorphic.sql.SQLDataSource.processRequest(SQLDataSource.java:444)
    	at com.isomorphic.sql.SQLDataSource.executeAdd(SQLDataSource.java:397)
    	at com.isomorphic.datasource.DataSource.execute(DataSource.java:1544)
    	at com.isomorphic.application.AppBase.executeDefaultDSOperation(AppBase.java:723)
    	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:2553)
    	at com.isomorphic.servlet.IDACall.handleDSRequest(IDACall.java:215)
    	at com.isomorphic.servlet.IDACall.processRPCTransaction(IDACall.java:172)
    	at com.isomorphic.servlet.IDACall.processRequest(IDACall.java:137)
    	at com.isomorphic.servlet.IDACall.doPost(IDACall.java:73)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    	at com.isomorphic.servlet.BaseServlet.service(BaseServlet.java:152)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at com.juve.utils.Log4jSessionFilter.doFilter(Log4jSessionFilter.java:65)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
    	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:380)
    	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:109)
    	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
    	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
    	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at com.isomorphic.servlet.CompressionFilter.doFilter(CompressionFilter.java:260)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at com.isomorphic.js.JSSyntaxScannerFilter.doFilter(JSSyntaxScannerFilter.java:242)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    	at java.lang.Thread.run(Thread.java:744)
    2014-06-27 12:30:50,882 DEBUG RPCManager Content type for RPC transaction: text/plain; charset=UTF-8 
    2014-06-27 12:30:50,882 DEBUG RPCManager non-DMI response, dropExtraFields: false 
    2014-06-27 12:30:50,885 DEBUG ExceptionTranslationFilter Chain processed normally 
    2014-06-27 12:30:50,885 DEBUG SecurityContextPersistenceFilter SecurityContextHolder now cleared, as request processing completed 
    2014-06-27 12:30:50,886 INFO  Compression /IMA/isomorphic/IDACall: 190 -> 164 bytes
    Code:
    <!--
     <%@page pageEncoding="UTF-8" contentType="text/xml; charset=UTF-8"%>
     <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
     <fmt:setBundle basename="i18nMessages_${locale}" var="i18n"/>
     -->
    <DataSource xmlns="http://www.smartclient.com/schema"
                ID="IMA_MATCH"
                tableName="IMA_MATCH"
                schema="DBSALES"
                dbName="dbJpcEP"
                serverType="sql"
            >
    	<fields>
            <field sqlType="decimal" primaryKey="true" name="ID_REC" type="sequence" hidden="true">
                <sequenceName>SEQUENCE_ID_REC</sequenceName>
            </field>
            <field name="ID_STAGIONE_FK" nativeName="ID_REC" type="integer" tableName="JPC_STAGIONI"/>
    <!-- ...other fields to be actually inserted, but the error is raised even without them -->
        </fields>
    <!-- ...operation binding to define the join -->
    </DataSource>
    Code:
    <!--
     <%@page pageEncoding="UTF-8" contentType="text/xml; charset=UTF-8"%>
     <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
     <fmt:setBundle basename="i18nMessages_${locale}" var="i18n"/>
     -->
    <DataSource xmlns:fmt="urn:jsptld:/WEB-INF/fmt.tld" xmlns="http://www.smartclient.com/schema"
                ID="JPC_STAGIONI"
                tableName="JPC_STAGIONI"
                schema="DBSALES"
                dbName="dbJpcEP"
                serverType="sql"
                dropExtraFields="false"
            >
        <fields>
            <field sqlType="decimal" primaryKey="true" name="ID_REC" type="sequence" hidden="true">
                <sequenceName>SEQUENCE_ID_REC</sequenceName>
            </field>
    <!-- other fields -->
        </fields>
    </DataSource>
    The error is the same with or without the fields of the actual values to be inserted.
    Last edited by claudiobosticco; 27 Jun 2014, 02:37.

    #2
    We'll take a look at this error anyway, but I don't see why you would need to configure your data sources that particular way. If there *is* a reason, could you provide complete ds.xml files? I assume that will speak for itself, but if you think some parts may require explanations, it would be great if you could share those too.

    Despite all said above..

    What if you just declare FK field in IMA_MATCH data source like shown below?
    Code:
    <field name="ID_STAGIONE_FK" type="integer" foreignKey="JPC_STAGIONI.ID_REC"/>

    Comment


      #3
      thanks for your reply.
      Actually I've removed all the custom sql to obtain a simpler test case.

      I can't declare the field ID_STAGIONE_FK as you wrote because it's actually a field from the other table.

      My real IMA_MATCH datasource is:
      Code:
      <!--
       <%@page pageEncoding="UTF-8" contentType="text/xml; charset=UTF-8"%>
       <%@ taglib prefix="fmt" uri="/WEB-INF/fmt.tld" %>
       <fmt:setBundle basename="i18nMessages_${locale}" var="i18n"/>
       -->
      <DataSource xmlns="http://www.smartclient.com/schema"
                  ID="IMA_MATCH"
                  tableName="IMA_MATCH"
                  schema="DBSALES"
                  dbName="dbJpcEP"
                  serverType="sql"
              >
      	<fields>
              <field sqlType="decimal" primaryKey="true" name="ID_REC" type="sequence" hidden="true">
                  <sequenceName>SEQUENCE_ID_REC</sequenceName>
              </field>
              <field name="STATO" type="text" length="1" sqlLength="1" sqlType="varchar">
                  <valueMap>
                      <value ID="C">Ceduta</value>
                      <value ID="V">Messa in vendita</value>
                      <value ID="N">Non ceduta</value>
                  </valueMap>
              </field>
              <field name="IS_VENDUTO" type="boolean" length="1" sqlLength="1" sqlType="varchar"
                     sqlStorageStrategy="singleCharTF"/>
              <field name="ID_RISERVA_FK" type="integer" foreignKey="IMA_RISERVE.ID_REC"/>
              <field name="ID_EVENTO_FK" type="integer" foreignKey="JPC_LISTINI.ID_REC" tableName="JPC_LISTINI"
                     nativeName="ID_REC"/>
              <field name="ID_ABBONAMENTO_FK" type="integer" foreignKey="IMA_ABBONAMENTI.ID_REC" tableName="IMA_ABBONAMENTI"
                     nativeName="ID_REC"/>
              <field name="CREDITO" type="float"/>
              <field name="CREATOR" type="creator" length="100" sqlLength="100" sqlType="varchar"/>
              <field name="CREATOR_TIMESTAMP" type="creatorTimestamp"/>
              <field name="MODIFIER" type="modifier" length="100" sqlLength="100" sqlType="varchar"/>
              <field name="MODIFIER_TIMESTAMP" type="modifierTimestamp"/>
              <field name="DATA_AGGIORNAMENTO_LISTICKET" type="datetime"/>
      
      
              <field name="TIPO_LISTINO" type="text" tableName="JPC_LISTINI"/>
              <field name="DATA_INIZIO" type="datetime" tableName="JPC_LISTINI"/>
              <field name="DATA_FINE" type="datetime" tableName="JPC_LISTINI"/>
              <field name="ID_STAGIONE_FK" nativeName="ID_REC" type="integer" tableName="JPC_STAGIONI"/>
              <field name="STAGIONE" nativeName="DESCRIZIONE" type="text" tableName="JPC_STAGIONI"/>
              <field name="DATA_INIZIO_STAGIONE" nativeName="DATA_INIZIO" type="date" tableName="JPC_STAGIONI"/>
              <field name="DATA_FINE_STAGIONE" nativeName="DATA_FINE" type="date" tableName="JPC_STAGIONI"/>
              <field name="HOME_TEAM" nativeName="DESCRIZIONE" type="text" tableName="SQUADRE_HOME"/>
              <field name="AWAY_TEAM" nativeName="DESCRIZIONE" type="text" tableName="SQUADRE_AWAY"/>
              <field name="MATCH" type="text"
                     customSelectExpression="SQUADRE_HOME.DESCRIZIONE || ' - ' || SQUADRE_AWAY.DESCRIZIONE"/>
      
              <field name="TIPO_EVENTO" nativeName="NOME" type="text" tableName="LEG_TIPI_EVENTO"/>
              <field name="CODICE_TIPO_EVENTO" nativeName="CODICE" type="text" tableName="LEG_TIPI_EVENTO"/>
      
              <field name="NOME_RISERVA" nativeName="NOME" type="text" tableName="IMA_RISERVE"/>
              <field name="COGNOME_RISERVA" nativeName="COGNOME" type="text" tableName="IMA_RISERVE"/>
              <field name="NOMINATIVO_RISERVA" type="text"
                     customSelectExpression="IMA_RISERVE.COGNOME || ' ' || IMA_RISERVE.NOME"/>
              <field name="NICKNAME" type="text" tableName="IMA_TITOLARI"/>
              <field name="NOME" type="text" tableName="IMA_TITOLARI"/>
              <field name="COGNOME" type="text" tableName="IMA_TITOLARI"/>
              <field name="EMAIL" type="text" tableName="IMA_TITOLARI"/>
      
              <field name="SETTORE" type="text" tableName="IMA_ABBONAMENTI"/>
              <field name="FILA" type="text" tableName="IMA_ABBONAMENTI"/>
              <field name="POSTO" type="text" tableName="IMA_ABBONAMENTI"/>
      
              <field name="CODICE_MACRO_AREA" nativeName="CODICE" type="text" tableName="IMA_MACRO_AREE" customSQL="true"/>
              <field name="DESCRIZIONE_MACRO_AREA" nativeName="DESCRIZIONE" type="text" tableName="IMA_MACRO_AREE"
                     customSQL="true"/>
      
          </fields>
          <operationBindings>
              <operationBinding operationType="fetch" customFields="CODICE_MACRO_AREA, DESCRIZIONE_MACRO_AREA">
                  <tableClause>
                      $defaultTableClause, IMA_RISERVE, IMA_TITOLARI, IMA_ABBONAMENTI, IMA_SETTORI, IMA_MACRO_AREE,
                      JPC_LISTINI, JPC_STAGIONI,
                      LEG_TIPI_EVENTO, LEG_SQUADRE SQUADRE_HOME, LEG_SQUADRE SQUADRE_AWAY
                  </tableClause>
                  <whereClause>
                      $defaultWhereClause
                      and IMA_MATCH.ID_RISERVA_FK = IMA_RISERVE.ID_REC(+)
                      and IMA_MATCH.ID_EVENTO_FK = JPC_LISTINI.ID_REC
                      and JPC_LISTINI.ID_TIPO_EVENTO_FK = LEG_TIPI_EVENTO.ID_REC
                      and JPC_LISTINI.ID_HOME_TEAM_FK = SQUADRE_HOME.ID_REC
                      and JPC_LISTINI.ID_AWAY_TEAM_FK = SQUADRE_AWAY.ID_REC
                      and IMA_MATCH.ID_ABBONAMENTO_FK = IMA_ABBONAMENTI.ID_REC
                      and JPC_LISTINI.ID_STAGIONI_FK = JPC_STAGIONI.ID_REC
                      and IMA_ABBONAMENTI.ID_TITOLARE_FK = IMA_TITOLARI.ID_REC
                      and IMA_ABBONAMENTI.SETTORE = IMA_SETTORI.CODICE(+)
                      and IMA_SETTORI.ID_MACRO_AREA_FK = IMA_MACRO_AREE.ID_REC(+)
                  </whereClause>
                  <criteria fieldName="TIPO_LISTINO" value="LEG" operator="equals"/>
              </operationBinding>
              <operationBinding operationType="fetch" operationId="fetchMatchPerAbbonamento">
                  <selectClause>$defaultSelectClause</selectClause>
                  <tableClause>
                      $defaultTableClause
                      right join IMA_RISERVE on IMA_RISERVE.ID_REC = IMA_MATCH.ID_RISERVA_FK
                      right join JPC_LISTINI on JPC_LISTINI.ID_REC = IMA_MATCH.ID_EVENTO_FK
                      left join JPC_STAGIONI on JPC_STAGIONI.ID_REC = JPC_LISTINI.ID_STAGIONI_FK
                      left join LEG_SQUADRE SQUADRE_HOME on SQUADRE_HOME.ID_REC = JPC_LISTINI.ID_HOME_TEAM_FK
                      left join LEG_SQUADRE SQUADRE_AWAY on SQUADRE_AWAY.ID_REC = JPC_LISTINI.ID_AWAY_TEAM_FK
                      left join LEG_TIPI_EVENTO on LEG_TIPI_EVENTO.ID_REC = JPC_LISTINI.ID_TIPO_EVENTO_FK
                      left join IMA_ABBONAMENTI on IMA_ABBONAMENTI.ID_REC = IMA_MATCH.ID_ABBONAMENTO_FK
                      left join IMA_TITOLARI on IMA_TITOLARI.ID_REC = IMA_ABBONAMENTI.ID_TITOLARE_FK
                  </tableClause>
                  <criteria fieldName="TIPO_LISTINO" value="LEG" operator="equals"/>
              </operationBinding>
              <operationBinding operationType="fetch" operationId="matchesAlreadyPlayed" serverMethod="matchesAlreadyPlayed">
                  <serverObject lookupStyle="spring" bean="matchDMI"/>
                  <selectClause>$defaultSelectClause</selectClause>
                  <tableClause>
                      $defaultTableClause
                      right join IMA_RISERVE on IMA_RISERVE.ID_REC = IMA_MATCH.ID_RISERVA_FK
                      right join JPC_LISTINI on JPC_LISTINI.ID_REC = IMA_MATCH.ID_EVENTO_FK
                      left join JPC_STAGIONI on JPC_STAGIONI.ID_REC = JPC_LISTINI.ID_STAGIONI_FK
                      left join LEG_SQUADRE SQUADRE_HOME on SQUADRE_HOME.ID_REC = JPC_LISTINI.ID_HOME_TEAM_FK
                      left join LEG_SQUADRE SQUADRE_AWAY on SQUADRE_AWAY.ID_REC = JPC_LISTINI.ID_AWAY_TEAM_FK
                      left join LEG_TIPI_EVENTO on LEG_TIPI_EVENTO.ID_REC = JPC_LISTINI.ID_TIPO_EVENTO_FK
                      left join IMA_ABBONAMENTI on IMA_ABBONAMENTI.ID_REC = IMA_MATCH.ID_ABBONAMENTO_FK
                      left join IMA_TITOLARI on IMA_TITOLARI.ID_REC = IMA_ABBONAMENTI.ID_TITOLARE_FK
                  </tableClause>
                  <whereClause>
                      $defaultWhereClause
                      and JPC_LISTINI.TIPO_LISTINO = 'LEG'
                      and LEG_TIPI_EVENTO.CODICE = 'SA'
                      and sysdate <![CDATA[ >= ]]> JPC_LISTINI.DATA_FINE
                  </whereClause>
                  <orderClause>DATA_FINE_STAGIONE ASC, DATA_INIZIO ASC</orderClause>
                  <criteria fieldName="DATA_INIZIO_STAGIONE" operator="lessOrEqual" value="$currentDate"/>
                  <criteria fieldName="DATA_FINE_STAGIONE" operator="greaterOrEqual" value="$currentDate"/>
              </operationBinding>
              <operationBinding operationType="fetch" operationId="matchesNotPlayedYet" serverMethod="matchesNotPlayedYet">
                  <serverObject lookupStyle="spring" bean="matchDMI"/>
                  <selectClause>$defaultSelectClause</selectClause>
                  <tableClause>
                      $defaultTableClause
                      right join IMA_RISERVE on IMA_RISERVE.ID_REC = IMA_MATCH.ID_RISERVA_FK
                      right join JPC_LISTINI on JPC_LISTINI.ID_REC = IMA_MATCH.ID_EVENTO_FK
                      left join JPC_STAGIONI on JPC_STAGIONI.ID_REC = JPC_LISTINI.ID_STAGIONI_FK
                      left join LEG_SQUADRE SQUADRE_HOME on SQUADRE_HOME.ID_REC = JPC_LISTINI.ID_HOME_TEAM_FK
                      left join LEG_SQUADRE SQUADRE_AWAY on SQUADRE_AWAY.ID_REC = JPC_LISTINI.ID_AWAY_TEAM_FK
                      left join LEG_TIPI_EVENTO on LEG_TIPI_EVENTO.ID_REC = JPC_LISTINI.ID_TIPO_EVENTO_FK
                      left join IMA_ABBONAMENTI on IMA_ABBONAMENTI.ID_REC = IMA_MATCH.ID_ABBONAMENTO_FK
                      left join IMA_TITOLARI on IMA_TITOLARI.ID_REC = IMA_ABBONAMENTI.ID_TITOLARE_FK
                  </tableClause>
                  <whereClause>
                      $defaultWhereClause
                      and JPC_LISTINI.TIPO_LISTINO = 'LEG'
                      and LEG_TIPI_EVENTO.CODICE = 'SA'
                      and sysdate <![CDATA[ < ]]> JPC_LISTINI.DATA_FINE
                  </whereClause>
                  <orderClause>DATA_FINE_STAGIONE ASC, DATA_INIZIO ASC</orderClause>
                  <criteria fieldName="DATA_INIZIO_STAGIONE" operator="lessOrEqual" value="$currentDate"/>
                  <criteria fieldName="DATA_FINE_STAGIONE" operator="greaterOrEqual" value="$currentDate"/>
              </operationBinding>
          </operationBindings>
      </DataSource>

      Comment


        #4
        Indeed you can't, now it's clear. We'll look into this issue, thank you for sharing it.

        In the meantime, here's workaround for you..

        Declare ID_STAGIONE_FK field like shown below, this will avoid the conflict with same nativeNames.
        Code:
        <field name="ID_STAGIONE_FK" type="integer" customSQL="true"/>
        Add custom SQL for ID_STAGIONE_FK field via SQL templating, something like this:
        Code:
        <selectClause>$defaultSelectClause, JPC_STAGIONI.ID_REC as ID_STAGIONE_FK</selectClause>

        Comment


          #5
          Hi, any news about this issue?

          Comment


            #6
            Hi, I've just discovered a regression on an older application, for this same bug. It happens in a function not frequently used, but fundamental.

            I've recently migrated that application to 9.1 from 9.0.

            Switching back to SmartClient Version: v9.0p_2014-05-20/PowerEdition Deployment (built 2014-05-20)
            fixes the issue.

            Could you please fix it for 9.1?
            Other than that I hope I won't find regressions in other applications, that application had required some fix in our code to migrate to 9.1, and so I'm not much confident in migrating it to 10.0 for now.

            Comment


              #7
              Hi, just discovered this regression on another application....any ETA ?

              Comment


                #8
                Hello, please let me know if you'll fix that. If yes, any ETA?

                Comment


                  #9
                  This is fixed for 10.1d version only and won't be backported as a patch because it introduces too much instability risk.

                  So, you may use work around suggested earlier in this thread or consider trying 10.1d version.

                  Comment

                  Working...
                  X