Announcement

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

    Found regression in nightly build 2010.10.20

    Version: Power Edition 2.3 – Build 2010.10.20

    I found a regression in nightly build 2010.10.11. In the nightly build the response data of a generic datasource are swallowed.

    Client Code:
    Code:
    Criteria c = filterBuilder.getCriteria();
    c.addCriteria(filterForm.getValuesAsCriteria());
    
    skmLoginDS.fetchData(c, new DSCallback() {
    				@Override
    	public void execute(DSResponse response, Object rawData,
    						DSRequest request) {
    		if (response.getStatus() >= 0) {
    			final RecordList list = response.getDataAsRecordList();
    …
    });
    Server Code:
    Code:
    public DSResponse fetch(DSRequest dsRequest) throws Exception {
    		DSResponse dsResponse = new DSResponse();
    		List<Map> data = new ArrayList<Map>();
    		
    		Connection c = ConnectionThreadHelper
    					.getConnectionForTransaction(dsRequest);
    
    		Map complexCriteria = dsRequest.getCriteria();
    		List constraints = new ArrayList();
    		List list = (List) complexCriteria.get("criteria");
    		Integer uniUntId = null;
    		Integer uniId = null;
    		Integer lotId = null;
    		for (Iterator iterator = list.iterator();){
    			//fill variables 
    		}
    data = LoginDAO.getLoginsForSkillsetManager(c, lotId, uniId,uniUntId, constraints);
    		dsResponse.setData(data);
    		dsResponse.setTotalRows(data.size());
    		dsResponse.setStartRow(0);
    		dsResponse.setEndRow(data.size());
    		dsResponse.setSuccess();
    
    		
    return dsResponse;
    	}
    Log output:
    Code:
    === 2010-10-22 11:04:10,889 [l0-5] DEBUG RPCManager - Processing 1 requests.
    === 2010-10-22 11:04:10,889 [l0-5] DEBUG DataSource - Creating instance of DataSource 'skm_login'
    === 2010-10-22 11:04:10,889 [l0-5] DEBUG RPCManager - Request #1 (DSRequest) payload: {
        criteria:{
            _constructor:"AdvancedCriteria",
            operator:"and",
            criteria:[
                {
                    fieldName:"lot_id",
                    operator:"equals",
                    value:29
                }
            ]
        },
        operationConfig:{
            dataSource:"skm_login",
            operationType:"fetch"
        },
        appID:"builtinApplication",
        operation:"skm_login_fetch",
        oldValues:{
            _constructor:"AdvancedCriteria",
            operator:"and",
            criteria:[
                {
                    fieldName:"lot_id",
                    operator:"equals",
                    value:29
                }
            ]
        }
    }
    === 2010-10-22 11:04:11,154 [l0-5] DEBUG Reflection - adaptArgsAndInvoke:
    
     public com.isomorphic.datasource.DSResponse de.tmobile.sdom.frontend.server.dmi.SKMLoginDMI.fetch(com.isomorphic.datasource.DSRequest) throws java.lang.Exception
    
    requiredArgs: [] optionalArgs: [com.isomorphic.servlet.RequestContext, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, javax.servlet.ServletContext, javax.servlet.http.HttpSession, com.isomorphic.rpc.RPCManager, com.isomorphic.datasource.DSRequest, com.isomorphic.datasource.DataSource, java.sql.Connection, com.isomorphic.log.Logger, java.util.Map]
    === 2010-10-22 11:04:11,154 [l0-5] DEBUG Reflection - checking whether type: com.isomorphic.servlet.RequestContext fulfills type: com.isomorphic.datasource.DSRequest
    === 2010-10-22 11:04:11,154 [l0-5] DEBUG Reflection - checking whether type: javax.servlet.http.HttpServletRequest fulfills type: com.isomorphic.datasource.DSRequest
    === 2010-10-22 11:04:11,154 [l0-5] DEBUG Reflection - checking whether type: javax.servlet.http.HttpServletResponse fulfills type: com.isomorphic.datasource.DSRequest
    === 2010-10-22 11:04:11,154 [l0-5] DEBUG Reflection - checking whether type: javax.servlet.ServletContext fulfills type: com.isomorphic.datasource.DSRequest
    === 2010-10-22 11:04:11,154 [l0-5] DEBUG Reflection - checking whether type: javax.servlet.http.HttpSession fulfills type: com.isomorphic.datasource.DSRequest
    === 2010-10-22 11:04:11,154 [l0-5] DEBUG Reflection - checking whether type: com.isomorphic.rpc.RPCManager fulfills type: com.isomorphic.datasource.DSRequest
    === 2010-10-22 11:04:11,154 [l0-5] DEBUG Reflection - checking whether type: com.isomorphic.datasource.DSRequest fulfills type: com.isomorphic.datasource.DSRequest
    === 2010-10-22 11:04:11,154 [l0-5] DEBUG Reflection - Successfully adapted optional arg type: com.isomorphic.datasource.DSRequest to type: com.isomorphic.datasource.DSRequest
    === 2010-10-22 11:04:11,154 [l0-5] DEBUG Reflection - method takes: 1 args.  I've assembled: 1 args
    === 2010-10-22 11:04:11,154 [l0-5] DEBUG Reflection - invoking method:
    com.isomorphic.datasource.DSResponse de.tmobile.sdom.frontend.server.dmi.SKMLoginDMI.fetch(com.isomorphic.datasource.DSRequest) throws java.lang.Exception
    
    with arg types: com.isomorphic.datasource.DSRequest
    [WARN] Server class 'org.apache.commons.beanutils.ResultSetDynaClass' could not be found in the web app, but was found on the system classpath
       [WARN] Adding classpath entry 'file:/C:/DEV/svn/SDOM/trunk/java/frontend/war/WEB-INF/lib/smartgwtpower-2.3/commons-beanutils-1.0.jar' to the web app classpath for this session
       For additional info see: file:/C:/DEV/eclipse/plugins/com.google.gwt.eclipse.sdkbundle.2.0.4_2.0.4.v201006301254/gwt-2.0.4/doc/helpInfo/webAppClassPath.html
    === 2010-10-22 11:04:29,353 [l0-5] INFO  DSResponse - DSResponse: List with 866 items
    === 2010-10-22 11:04:29,384 [l0-5] DEBUG DefaultOperators - criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
        fieldName:"lot_id",
        operatorId:"equals",
        value:29
    }: And
    === 2010-10-22 11:04:29,384 [l0-5] DEBUG DefaultOperators - And 0/0: false
    === 2010-10-22 11:04:29,384 [l0-5] DEBUG DefaultOperators - criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
        fieldName:"lot_id",
        operatorId:"equals",
        value:29
    }: And
    === 2010-10-22 11:04:29,384 [l0-5] DEBUG DefaultOperators - And 0/0: false
    === 2010-10-22 11:04:29,384 [l0-5] DEBUG DefaultOperators - criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
        fieldName:"lot_id",
        operatorId:"equals",
        value:29
    }: And
    }: And
    === 2010-10-22 11:04:29,696 [l0-5] DEBUG DefaultOperators - And 0/0: false
    === 2010-10-22 11:04:29,696 [l0-5] DEBUG DefaultOperators - criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
        fieldName:"lot_id",
        operatorId:"equals",
        value:29
    }: And
    === 2010-10-22 11:04:29,696 [l0-5] DEBUG DefaultOperators - And 0/0: false
    === 2010-10-22 11:04:29,696 [l0-5] DEBUG DefaultOperators - criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
        fieldName:"lot_id",
        operatorId:"equals",
        value:29
    }: And
    === 2010-10-22 11:04:29,696 [l0-5] DEBUG DefaultOperators - And 0/0: false
    === 2010-10-22 11:04:29,696 [l0-5] DEBUG RequestContext - Setting headers to disable caching
    === 2010-10-22 11:04:29,696 [l0-5] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
    === 2010-10-22 11:04:29,696 [l0-5] DEBUG RequestContext - Getting output stream via servletResponse.getWriter()
    === 2010-10-22 11:04:29,696 [l0-5] DEBUG DataSource - Creating instance of DataSource 'skm_login'
    === 2010-10-22 11:04:29,696 [l0-5] DEBUG RPCManager - DMI response, dropExtraFields: true
    === 2010-10-22 11:04:29,696 [l0-5] DEBUG DataSource - Creating instance of DataSource 'skm_login'
    request:
    Servlet path: '/frontend/sc/skins'
    Request URI: '/frontend/sc/skins/Graphite/images/loadingSmall.gif'
    In the log you can see that the response has 866 entries, but it seems that an additional filter is executed on the response data. After the filter step the data disappeared. That behaviour is new in the tested build.

    More information required?

    #2
    Update:

    I got the response data if I switch the datasource type from GENERIC to SQL.

    Comment


      #3
      Can you post your DataSource definition (.ds.xml file) please?

      Comment


        #4
        Code:
        <?xml version="1.0" encoding="UTF-8"?>
        <DataSource ID="skm_login" serverType="sql" >
        	<fields>
        		<field name="emi_full_name" title="Name" type="text" />
        		<field name="emi_full_name_lower" type="text" detail="true" />
        		<field name="emi_last_name" title="Nachname" type="text" detail="true" />
        		<field name="emi_first_name" title="Vorname" type="text" detail="true" />
        		<field name="emi_costplace" title="Kostenstelle" type="text"
        			canFilter="false" />
        		<field name="emi_staff_identification" type="text" detail="true"
        			title="Personalnummer" />
        		<field name="log_sym_id" type="integer" detail="true" />
        		<field name="log_login" title="Login" type="text" length="200" />
        		<field name="log_id" type="sequence" detail="true" primaryKey="true" />
        		<field name="log_valid_from" title="Gültig von" type="date"
        			canFilter="false" required="true" />
        		<field name="log_valid_to" title="Gültig bis" type="date"
        			canFilter="false" required="true" />
        		<field name="log_emp_id" type="integer" detail="true" />
        		<field name="log_sub_sym_id" title="CTI-Standort" type="integer"
        			detail="true" />
        		<field name="lot_id" title="" type="integer"></field>
        	</fields>
        
        	<operationBindings>
        		<operationBinding operationType="fetch">
        			<serverObject className="de.sdom.frontend.server.dmi.SKMLoginDMI"
        				lookupStyle="new" />
        			<serverMethod>fetch</serverMethod>
        		</operationBinding>
        	</operationBindings>
        </DataSource>
        Regards
        Chris

        Comment


          #5
          We've committed a fix for this issue now. Please try your code with tomorrow's nightly build.

          Comment

          Working...
          X