Announcement

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

    IDACall extends + handleDSRequest override + DSRequest.addToCriteria()

    Hi Isomorphic,

    I found this missing feature when testing extending the IDACall servlet as described in http://www.smartclient.com/smartgwte...l#requiresRole.

    My new class, used as servlet in web.xml:
    Code:
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.isomorphic.datasource.DSRequest;
    import com.isomorphic.datasource.DSResponse;
    import com.isomorphic.datasource.DataSource;
    import com.isomorphic.rpc.RPCManager;
    import com.isomorphic.servlet.IDACall;
    import com.isomorphic.servlet.RequestContext;
    import com.lmscompany.lms.server.util.User;
    
    public class LMSIDACall extends IDACall {
    	private static final long serialVersionUID = 4543651445782711736L;
    
    	/*
    	 * See http://www.smartclient.com/smartgwtee/javadoc/com/smartgwt/client/docs/serverds/OperationBinding.html#requiresRole
    	 */
    	@Override
    	public void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException,
    			IOException {
    		Integer i = User.getUserId(request);
    		if (i != null) {
    			try {
    				RequestContext context = RequestContext.instance(this, request, response);
    				RPCManager rpc = new RPCManager(request, response);
    				rpc.setUserId(i.toString());
    				// rpc.setAuthenticated(true);
    				// rpc.setUserRoles((String) roles);
    
    				// call processRPCTransaction() to iterate through all RPCRequests and
    				// DSRequests and execute them
    				processRPCTransaction(rpc, context);
    
    			} catch (Throwable e) {
    				handleError(response, e);
    			}
    		} else {
    			super.processRequest(request, response);
    		}
    	}
    
    	@SuppressWarnings("unchecked")
    	@Override
    	public DSResponse handleDSRequest(DSRequest arg0, RPCManager arg1, RequestContext arg2) throws Exception {
    		if (arg0.getOperationType().equals(DataSource.OP_ADD)) {
    			arg0.setValues(arg0.getValues().put("TENANT_ID", User.getUserTenantId(arg0.getHttpServletRequest())));
    		} else if (arg0.getOperationType().equals(DataSource.OP_FETCH)
    				|| arg0.getOperationType().equals(DataSource.OP_UPDATE) || arg0.getOperationType().equals(DataSource.OP_REMOVE))
    			[B]arg0.addToCriteria("TENANT_ID", "equals", User.getUserTenantId(arg0.getHttpServletRequest()).toString())[/B];
    
    		return super.handleDSRequest(arg0, arg1, arg2);
    	}
    }
    ("User"-helper class just gets values stored in session from the HttpServletRequest).

    This leads to unexpected results related to the addToCriteria().

    Please see the server log (v9.0p_2013-11-05/EVAL):
    Code:
    === 2013-11-06 20:32:40,365 [c-37] INFO  RequestContext - URL: '/lms/lms/sc/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0': Moz (Gecko) with Accept-Encoding header
    === 2013-11-06 20:32:40,370 [c-37] DEBUG XML - Parsed XML from (in memory stream): 3ms
    === 2013-11-06 20:32:40,374 [c-37] DEBUG RPCManager - [B]Processing 2 requests[/B].
    === 2013-11-06 20:32:40,375 [c-37] DEBUG DSRequest - Caching instance 271 of DS V_LEAD_UNFINISHED from DSRequest.getDataSource()
    === 2013-11-06 20:32:40,375 [c-37] DEBUG RPCManager - Request #1 (DSRequest) payload: {
        [B]criteria:{
        }[/B],
        operationConfig:{
            dataSource:"V_LEAD_UNFINISHED",
            operationType:"fetch",
            [B]textMatchStyle:"substring"[/B]
        },
        startRow:0,
        endRow:75,
        sortBy:[
            "CAMPAIGN_NAME"
        ],
        componentId:"isc_LeadVLayout_3$2$1_2",
        appID:"builtinApplication",
        operation:"V_LEAD_UNFINISHED_fetch",
        oldValues:{
        }
    }
    === 2013-11-06 20:32:40,375 [c-37] DEBUG DSRequest - Caching instance 128 of DS T_LEADTEMPERATURE from DSRequest.getDataSource()
    === 2013-11-06 20:32:40,376 [c-37] DEBUG RPCManager - Request #2 (DSRequest) payload: {
        [B]criteria:{
            fieldName:"AVAILABLE",
            operator:"equals",
            value:true
        }[/B],
        operationConfig:{
            dataSource:"T_LEADTEMPERATURE",
            operationType:"fetch",
            [B]textMatchStyle:"startsWith"[/B]
        },
        componentId:"isc_PickListMenu_1",
        appID:"builtinApplication",
        operation:"T_LEADTEMPERATURE_fetch",
        oldValues:{
            fieldName:"AVAILABLE",
            operator:"equals",
            value:true
        }
    }
    === 2013-11-06 20:32:40,376 [c-37] DEBUG Relation - Caching instance of toDS 'V_USER_CREATED_BY' in the DSRequest map
    === 2013-11-06 20:32:40,377 [c-37] DEBUG Relation - Caching instance of toDS 'V_USER_MODIFIED_BY' in the DSRequest map
    === 2013-11-06 20:32:40,377 [c-37] DEBUG Relation - Caching instance of toDS 'T_CAMPAIGN' in the DSRequest map
    === 2013-11-06 20:32:40,377 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    === 2013-11-06 20:32:40,377 [c-37] DEBUG DeclarativeSecurity - DataSource V_LEAD_UNFINISHED is not in the pre-checked list, processing...
    === 2013-11-06 20:32:40,377 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2013-11-06 20:32:40,378 [c-37] DEBUG DeclarativeSecurity - DataSource V_USER_CREATED_BY is not in the pre-checked list, processing...
    === 2013-11-06 20:32:40,378 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field FULLNAME
    === 2013-11-06 20:32:40,378 [c-37] DEBUG DeclarativeSecurity - DataSource V_USER_CREATED_BY is not in the pre-checked list, processing...
    === 2013-11-06 20:32:40,378 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2013-11-06 20:32:40,378 [c-37] DEBUG DeclarativeSecurity - DataSource V_USER_MODIFIED_BY is not in the pre-checked list, processing...
    === 2013-11-06 20:32:40,378 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field FULLNAME
    === 2013-11-06 20:32:40,379 [c-37] DEBUG DeclarativeSecurity - DataSource V_USER_MODIFIED_BY is not in the pre-checked list, processing...
    === 2013-11-06 20:32:40,379 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2013-11-06 20:32:40,379 [c-37] DEBUG DeclarativeSecurity - DataSource T_LEADTEMPERATURE is not in the pre-checked list, processing...
    === 2013-11-06 20:32:40,379 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field NAME
    === 2013-11-06 20:32:40,379 [c-37] DEBUG DeclarativeSecurity - DataSource T_LEADTEMPERATURE is not in the pre-checked list, processing...
    === 2013-11-06 20:32:40,379 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2013-11-06 20:32:40,379 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field POSITION
    === 2013-11-06 20:32:40,380 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field ID
    === 2013-11-06 20:32:40,380 [c-37] DEBUG DeclarativeSecurity - DataSource T_CAMPAIGN is not in the pre-checked list, processing...
    === 2013-11-06 20:32:40,380 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field NAME
    === 2013-11-06 20:32:40,380 [c-37] DEBUG DeclarativeSecurity - DataSource T_CAMPAIGN is not in the pre-checked list, processing...
    === 2013-11-06 20:32:40,381 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    === 2013-11-06 20:32:40,381 [c-37] DEBUG DeclarativeSecurity - DataSource V_LEAD_UNFINISHED is not in the pre-checked list, processing...
    === 2013-11-06 20:32:40,382 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field ID
    === 2013-11-06 20:32:40,382 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_CREATED_BY, field FULLNAME
    === 2013-11-06 20:32:40,382 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field ID
    === 2013-11-06 20:32:40,382 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource V_USER_MODIFIED_BY, field FULLNAME
    === 2013-11-06 20:32:40,382 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2013-11-06 20:32:40,382 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field NAME
    === 2013-11-06 20:32:40,383 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field ID
    === 2013-11-06 20:32:40,383 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_LEADTEMPERATURE, field POSITION
    === 2013-11-06 20:32:40,383 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field ID
    === 2013-11-06 20:32:40,383 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource T_CAMPAIGN, field NAME
    === 2013-11-06 20:32:40,383 [c-37] DEBUG AppBase - [builtinApplication.V_LEAD_UNFINISHED_fetch] No userTypes defined, allowing anyone access to all operations for this application
    === 2013-11-06 20:32:40,383 [c-37] DEBUG AppBase - [builtinApplication.V_LEAD_UNFINISHED_fetch] No public zero-argument method named '_V_LEAD_UNFINISHED_fetch' found, performing generic datasource operation
    === 2013-11-06 20:32:40,384 [c-37] INFO  SQLDataSource - [builtinApplication.V_LEAD_UNFINISHED_fetch] Performing fetch operation with
    	criteria: {criteria:[{criteria:[{value:0,fieldName:"TENANT_ID",operator:"contains"}],operator:"and"},{value:1,fieldName:"CREATED_BY_RESELLER_ID",operator:"equals"},{value:1112,fieldName:"ENTERED_USER_ID",operator:"equals"}],operator:"and",_constructor:"AdvancedCriteria"}	values: {criteria:[{criteria:[{value:0,fieldName:"TENANT_ID",operator:"contains"}],operator:"and"},{value:1,fieldName:"CREATED_BY_RESELLER_ID",operator:"equals"},{value:1112,fieldName:"ENTERED_USER_ID",operator:"equals"}],operator:"and",_constructor:"AdvancedCriteria"}
    === 2013-11-06 20:32:40,385 [c-37] INFO  SQLDataSource - [builtinApplication.V_LEAD_UNFINISHED_fetch] derived query: SELECT $defaultSelectClause FROM $defaultTableClause$defaultAnsiJoinClause WHERE $defaultWhereClause ORDER BY $defaultOrderClause
    === 2013-11-06 20:32:40,386 [c-37] DEBUG SQLDataSource - [builtinApplication.V_LEAD_UNFINISHED_fetch] Executing row count query: SELECT COUNT(*) FROM $defaultTableClause$defaultAnsiJoinClause WHERE $defaultWhereClause
    === 2013-11-06 20:32:40,386 [c-37] DEBUG SQLDataSource - [builtinApplication.V_LEAD_UNFINISHED_fetch] Eval'd row count query: SELECT COUNT(*) FROM V_LEAD_UNFINISHED JOIN V_USER_CREATED_BY ON V_LEAD_UNFINISHED.CREATED_BY = V_USER_CREATED_BY.ID JOIN V_USER_MODIFIED_BY ON V_LEAD_UNFINISHED.MODIFIED_BY = V_USER_MODIFIED_BY.ID JOIN T_LEADTEMPERATURE ON V_LEAD_UNFINISHED.LEADTEMPERATURE_ID = T_LEADTEMPERATURE.ID JOIN T_CAMPAIGN ON V_LEAD_UNFINISHED.CAMPAIGN_ID = T_CAMPAIGN.ID WHERE (((V_LEAD_UNFINISHED.[B]TENANT_ID LIKE '%0%'[/B] ESCAPE'\'  AND V_LEAD_UNFINISHED.TENANT_ID IS NOT NULL)) AND (V_LEAD_UNFINISHED.CREATED_BY_RESELLER_ID = 1 AND V_LEAD_UNFINISHED.CREATED_BY_RESELLER_ID IS NOT NULL) AND (V_LEAD_UNFINISHED.ENTERED_USER_ID = 1112 AND V_LEAD_UNFINISHED.ENTERED_USER_ID IS NOT NULL))
    === 2013-11-06 20:32:40,387 [c-37] DEBUG PoolableSQLConnectionFactory - [builtinApplication.V_LEAD_UNFINISHED_fetch] Executing pingTest 'select 1 from dual' on connection 2093220851
    === 2013-11-06 20:32:40,388 [c-37] DEBUG SQLConnectionManager - [builtinApplication.V_LEAD_UNFINISHED_fetch] Borrowed connection '2093220851'
    === 2013-11-06 20:32:40,388 [c-37] DEBUG SQLTransaction - [builtinApplication.V_LEAD_UNFINISHED_fetch] Started new Oracle transaction "2093220851"
    === 2013-11-06 20:32:40,388 [c-37] DEBUG SQLDriver - [builtinApplication.V_LEAD_UNFINISHED_fetch] About to execute SQL query in 'Oracle' using connection '2093220851'
    === 2013-11-06 20:32:40,388 [c-37] INFO  SQLDriver - [builtinApplication.V_LEAD_UNFINISHED_fetch] Executing SQL query on 'Oracle': SELECT COUNT(*) FROM V_LEAD_UNFINISHED JOIN V_USER_CREATED_BY ON V_LEAD_UNFINISHED.CREATED_BY = V_USER_CREATED_BY.ID JOIN V_USER_MODIFIED_BY ON V_LEAD_UNFINISHED.MODIFIED_BY = V_USER_MODIFIED_BY.ID JOIN T_LEADTEMPERATURE ON V_LEAD_UNFINISHED.LEADTEMPERATURE_ID = T_LEADTEMPERATURE.ID JOIN T_CAMPAIGN ON V_LEAD_UNFINISHED.CAMPAIGN_ID = T_CAMPAIGN.ID WHERE (((V_LEAD_UNFINISHED.[B]TENANT_ID LIKE '%0%'[/B] ESCAPE'\'  AND V_LEAD_UNFINISHED.TENANT_ID IS NOT NULL)) AND (V_LEAD_UNFINISHED.CREATED_BY_RESELLER_ID = 1 AND V_LEAD_UNFINISHED.CREATED_BY_RESELLER_ID IS NOT NULL) AND (V_LEAD_UNFINISHED.ENTERED_USER_ID = 1112 AND V_LEAD_UNFINISHED.ENTERED_USER_ID IS NOT NULL))
    === 2013-11-06 20:32:40,393 [c-37] DEBUG SQLDataSource - [builtinApplication.V_LEAD_UNFINISHED_fetch] JDBC driver windowed select rows 0->75, result size 75. Query: SELECT V_LEAD_UNFINISHED.ADDRESS_ID, V_LEAD_UNFINISHED.AUSSTEUERGRUND, V_LEAD_UNFINISHED.CAMPAIGN_ID, V_LEAD_UNFINISHED.CREATED_AT, V_LEAD_UNFINISHED.CREATED_BY, V_LEAD_UNFINISHED.CREATED_BY_COMPANY_ID, V_LEAD_UNFINISHED.CREATED_BY_DISTRIBUTOR_ID, V_LEAD_UNFINISHED.CREATED_BY_RESELLER_ID, V_LEAD_UNFINISHED.CUST_NAME_CONTACTPERSFULLNAME, V_LEAD_UNFINISHED.EARLIEST_START, V_LEAD_UNFINISHED.ENTERED_USER_ID, V_LEAD_UNFINISHED.GUESSED_VOLUME, V_LEAD_UNFINISHED.LATEST_END, V_LEAD_UNFINISHED.LEADTEMPERATURE_ID, V_LEAD_UNFINISHED.LEAD_HISTORY_ID, V_LEAD_UNFINISHED.LEAD_ID, V_LEAD_UNFINISHED.MODIFIED_AT, V_LEAD_UNFINISHED.MODIFIED_BY, V_LEAD_UNFINISHED.TENANT_ID, V_USER_CREATED_BY.FULLNAME AS CREATED_BY_NAME, V_USER_MODIFIED_BY.FULLNAME AS MODIFIED_BY_NAME, T_LEADTEMPERATURE.NAME AS LEADTEMPERATURE_NAME, T_LEADTEMPERATURE.POSITION AS LEADTEMPERATURE_POSITION, T_CAMPAIGN.NAME AS CAMPAIGN_NAME FROM V_LEAD_UNFINISHED JOIN V_USER_CREATED_BY ON V_LEAD_UNFINISHED.CREATED_BY = V_USER_CREATED_BY.ID JOIN V_USER_MODIFIED_BY ON V_LEAD_UNFINISHED.MODIFIED_BY = V_USER_MODIFIED_BY.ID JOIN T_LEADTEMPERATURE ON V_LEAD_UNFINISHED.LEADTEMPERATURE_ID = T_LEADTEMPERATURE.ID JOIN T_CAMPAIGN ON V_LEAD_UNFINISHED.CAMPAIGN_ID = T_CAMPAIGN.ID WHERE (((V_LEAD_UNFINISHED.[B]TENANT_ID LIKE '%0%'[/B] ESCAPE'\'  AND V_LEAD_UNFINISHED.TENANT_ID IS NOT NULL)) AND (V_LEAD_UNFINISHED.CREATED_BY_RESELLER_ID = 1 AND V_LEAD_UNFINISHED.CREATED_BY_RESELLER_ID IS NOT NULL) AND (V_LEAD_UNFINISHED.ENTERED_USER_ID = 1112 AND V_LEAD_UNFINISHED.ENTERED_USER_ID IS NOT NULL)) ORDER BY CAMPAIGN_NAME
    === 2013-11-06 20:32:40,397 [c-37] DEBUG SQLDataSource - [builtinApplication.V_LEAD_UNFINISHED_fetch] Using paging strategy 'jdbcScroll' - scrolling to absolute position 1
    === 2013-11-06 20:32:40,398 [c-37] DEBUG SQLDataSource - [builtinApplication.V_LEAD_UNFINISHED_fetch] Scrolling / positioning took 1ms
    === 2013-11-06 20:32:40,402 [c-37] INFO  DSResponse - [builtinApplication.V_LEAD_UNFINISHED_fetch] DSResponse: List with 6 items
    === 2013-11-06 20:32:40,403 [c-37] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    === 2013-11-06 20:32:40,403 [c-37] DEBUG DeclarativeSecurity - DataSource T_LEADTEMPERATURE is not in the pre-checked list, processing...
    === 2013-11-06 20:32:40,404 [c-37] DEBUG AppBase - [builtinApplication.T_LEADTEMPERATURE_fetch] No userTypes defined, allowing anyone access to all operations for this application
    === 2013-11-06 20:32:40,404 [c-37] DEBUG AppBase - [builtinApplication.T_LEADTEMPERATURE_fetch] No public zero-argument method named '_T_LEADTEMPERATURE_fetch' found, performing generic datasource operation
    === 2013-11-06 20:32:40,404 [c-37] INFO  SQLDataSource - [builtinApplication.T_LEADTEMPERATURE_fetch] Performing fetch operation with
    	[B]criteria: {fieldName:"AVAILABLE",operator:"equals",value:true,TENANT_ID:0}[/B]	values: {fieldName:"AVAILABLE",operator:"equals",value:true,TENANT_ID:0}
    === 2013-11-06 20:32:40,405 [c-37] INFO  SQLDataSource - [builtinApplication.T_LEADTEMPERATURE_fetch] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
    === 2013-11-06 20:32:40,406 [c-37] INFO  SQLDataSource - [builtinApplication.T_LEADTEMPERATURE_fetch] 128: Executing SQL query on 'Oracle': SELECT T_LEADTEMPERATURE.AVAILABLE, T_LEADTEMPERATURE.CREATED_AT, T_LEADTEMPERATURE.CREATED_BY, T_LEADTEMPERATURE.DESCRIPTION, T_LEADTEMPERATURE.ID, T_LEADTEMPERATURE.MODIFIED_AT, T_LEADTEMPERATURE.MODIFIED_BY, T_LEADTEMPERATURE.NAME, T_LEADTEMPERATURE.POSITION, T_LEADTEMPERATURE.POSITION AS POSITION_DND, T_LEADTEMPERATURE.SHORTNAME, T_LEADTEMPERATURE.TENANT_ID FROM T_LEADTEMPERATURE WHERE [B](T_LEADTEMPERATURE.AVAILABLE = 'Y' AND T_LEADTEMPERATURE.AVAILABLE IS NOT NULL)[/B]
    === 2013-11-06 20:32:40,406 [c-37] DEBUG SQLDriver - [builtinApplication.T_LEADTEMPERATURE_fetch] About to execute SQL query in 'Oracle' using connection '2093220851'
    === 2013-11-06 20:32:40,406 [c-37] INFO  SQLDriver - [builtinApplication.T_LEADTEMPERATURE_fetch] Executing SQL query on 'Oracle': SELECT T_LEADTEMPERATURE.AVAILABLE, T_LEADTEMPERATURE.CREATED_AT, T_LEADTEMPERATURE.CREATED_BY, T_LEADTEMPERATURE.DESCRIPTION, T_LEADTEMPERATURE.ID, T_LEADTEMPERATURE.MODIFIED_AT, T_LEADTEMPERATURE.MODIFIED_BY, T_LEADTEMPERATURE.NAME, T_LEADTEMPERATURE.POSITION, T_LEADTEMPERATURE.POSITION AS POSITION_DND, T_LEADTEMPERATURE.SHORTNAME, T_LEADTEMPERATURE.TENANT_ID FROM T_LEADTEMPERATURE WHERE (T_LEADTEMPERATURE.AVAILABLE = 'Y' AND T_LEADTEMPERATURE.AVAILABLE IS NOT NULL)
    === 2013-11-06 20:32:40,409 [c-37] INFO  DSResponse - [builtinApplication.T_LEADTEMPERATURE_fetch] DSResponse: List with 4 items
    === 2013-11-06 20:32:40,409 [c-37] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
    === 2013-11-06 20:32:40,410 [c-37] DEBUG SQLTransaction - Committing Oracle transaction "2093220851"
    === 2013-11-06 20:32:40,410 [c-37] DEBUG RPCManager - DMI response, dropExtraFields: true
    === 2013-11-06 20:32:40,410 [c-37] DEBUG RPCManager - non-DMI response, dropExtraFields: false
    === 2013-11-06 20:32:40,413 [c-37] DEBUG SQLTransaction - Returning transactional connection for Oracle with hashcode "2093220851"
    === 2013-11-06 20:32:40,413 [c-37] DEBUG SQLTransaction - Ending Oracle transaction "2093220851"
    === 2013-11-06 20:32:40,413 [c-37] DEBUG SQLConnectionManager - About to close PoolableConnection with hashcode "2093220851"
    === 2013-11-06 20:32:40,413 [c-37] DEBUG PoolableSQLConnectionFactory - Executing pingTest 'select 1 from dual' on connection 2093220851
    === 2013-11-06 20:32:40,414 [c-37] DEBUG SQLTransaction - Returning transactional connection for Oracle (connection is null)
    === 2013-11-06 20:32:40,415 [c-37] INFO  Compression - /lms/lms/sc/IDACall: 3910 -> 710 bytes
    I marked the parts I find suspicious in bold.

    Request#1: Why is TENANT_ID compared with "LIKE" (if you wonder, the other selections in the WHERE clause come from the ds.xml's used DMI)? I see the textMatchStyle, but TENANT_ID is defined as follows:

    Code:
    In V_LEAD_UNFINISHED.ds.xml:
    <field name="TENANT_ID" type="integer"></field>
    
    In T_LEADTEMPERATURE.ds.xml:
    <field hidden="true" name="TENANT_ID" title="TENANT_ID" type="integer"></field>
    Request#2: Why is TENANT_ID not in the WHERE-clause of the SQL? The criteria used "feel" wrong:
    criteria: {fieldName:"AVAILABLE",operator:"equals",value:true,TENANT_ID:0}.

    I think there might be something wrong with addToCriteria().

    I'll definitely try again with a new nightly (Nov 7th or newer), as this might be very close to http://forums.smartclient.com/showthread.php?t=28401

    Thank you & best regards,
    Blama
Working...
X