Announcement

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

    DataSource addToCriteria not working

    Hi
    I'm using SmartClient power edition 9.0.
    I have the following datasource:
    Code:
    <DataSource
    	dbName="Mysql"
    	tableName="user_role_person"
    	ID="user_role_person"
    	dataSourceVersion="1"
    	serverType="sql"
    >
    	<fields>
    		<field sqlType="bigint" primaryKey="true" sqlLength="19" name="id" type="sequence"></field>
    		<field sqlType="bigint" sqlLength="19" name="user_role_id" type="integer"></field>
    		<field sqlType="bigint" sqlLength="19" name="person_id" type="integer"></field>
    	</fields>
    </DataSource>
    I'm trying to delete a record from the table user_role_person:
    Code:
    DSRequest dsDeleteUser = new DSRequest(ServerConstants.DATASOURCE_USER_ROLE_PERSON, "remove");
    dsDeleteUser.setRPCManager(dsRequest.getRPCManager());
    dsDeleteUser.addToCriteria(ServerConstants.FLD_ID_PERSON_ID, (Long)dsRequest.getFieldValue(ServerConstants.FLD_ID_ID));
    dsDeleteUser.execute();
    BUT, it delete the entire table - delete has NO where clause - see log extract:
    === 2014-02-26 17:04:21,449 [ec-2] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
    === 2014-02-26 17:04:21,450 [ec-2] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
    === 2014-02-26 17:04:21,451 [ec-2] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
    === 2014-02-26 17:04:21,456 [ec-2] INFO SQLDataSource - [builtinApplication.null] Performing remove operation with
    criteria: {} values: {}
    === 2014-02-26 17:04:21,457 [ec-2] INFO SQLWhereClause - [builtinApplication.null] empty condition
    === 2014-02-26 17:04:21,460 [ec-2] DEBUG SQLDriver - [builtinApplication.null] About to execute SQL update in 'Mysql' using connection'2123599534'
    === 2014-02-26 17:04:21,460 [ec-2] INFO SQLDriver - [builtinApplication.null] Executing SQL update on 'Mysql': DELETE FROM user_role_person WHERE ('1'='1')
    === 2014-02-26 17:04:21,462 [ec-2] DEBUG SQLDataSource - [builtinApplication.null] remove operation affected 2 rows
    === 2014-02-26 17:04:21,462 [ec-2] DEBUG MysqlDriver - [builtinApplication.null] fetchLastRow data - primaryKeysPresent: {}sequencesNotPresent: [id]
    === 2014-02-26 17:04:21,463 [ec-2] DEBUG SQLDriver - [builtinApplication.null] About to execute SQL query in 'Mysql' using connection '2123599534'
    === 2014-02-26 17:04:21,463 [ec-2] INFO SQLDriver - [builtinApplication.null] Executing SQL query on 'Mysql': SELECT LAST_INSERT_ID()
    === 2014-02-26 17:04:21,465 [ec-2] INFO DSResponse - [builtinApplication.null] DSResponse: List with 1 items


    What can this be? Please help.

    #2
    Please always post your full version and the complete server log for any failing request (not just part of it).

    From what we can see so far, the code you've shown below, specifically the addToCriteria() call, isn't running at all. There's nothing in the criteria or values of the request, before SQL generation even starts.

    Comment


      #3
      What's funny is, if I debug it - the values are there.
      After the addToCriteria, I debug the request DS field and actually see the criteria.

      Anyway here's the whole log:

      === 2014-02-28 11:28:31,503 [ec-9] DEBUG RPCManager - Request #1 (DSRequest) payload: {
      criteria:{
      },
      values:{
      user_status_cd:"Active",
      city_name:"Pretoria",
      id_number:"7405305013082",
      memeza_area_name:"MeMeZa",
      surname:"Maritz",
      code:"1234",
      address_type_cd:"Street",
      password:"password2",
      suburb_name:"Kalafong",
      id:1,
      first_name:"Henkie",
      suburb_id:1311,
      mobile_number:"0126535187",
      address_id:1,
      work_number:"0126838893",
      secondary_mobile_number:"0126838893",
      line1:"kjAdSFDJdfj",
      contact_details_id:1,
      role_user:false,
      email_address:"henkie@jalia.co.za",
      role_subscriber:false,
      role_commander_saps:false,
      role_commander_fire:true,
      role_commander_medical:false,
      birth_d:new Date(1393538400000),
      subscriber_apply_dt:new Date(1393538400000),
      name:"Mamelodi - Fifteens",
      title_cd:"Captain"
      },
      operationConfig:{
      dataSource:"registered_person_view",
      operationType:"update"
      },
      componentId:"dfChangeClientDetails",
      appID:"builtinApplication",
      operation:"registered_person_view_update",
      oldValues:{
      user_status_cd:"Active",
      city_name:"Pretoria",
      id_number:"7405305013082",
      memeza_area_name:"MeMeZa",
      surname:"Maritz",
      roleName:"Administrator",
      code:"1234",
      address_type_cd:"Street",
      password:"password2",
      suburb_name:"Kalafong",
      id:1,
      first_name:"Henkie",
      suburb_id:1056,
      mobile_number:"0126535187",
      address_id:1,
      work_number:"0126838893",
      secondary_mobile_number:"0126838893",
      line1:"kjAdSFDJdfj",
      contact_details_id:1,
      role_user:true,
      email_address:"henkie@jalia.co.za",
      role_subscriber:false,
      role_commander_saps:false,
      role_commander_fire:false,
      role_commander_medical:false,
      birth_d:new Date(1393538400000),
      subscriber_apply_dt:new Date(1393538400000)
      }
      }
      === 2014-02-28 11:28:31,513 [ec-9] INFO IDACall - Performing 1 operation(s)
      === 2014-02-28 11:28:31,515 [ec-9] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2014-02-28 11:28:31,516 [ec-9] DEBUG DeclarativeSecurity - DataSource registered_person_view is not in the pre-checked list, processing...
      === 2014-02-28 11:28:31,532 [ec-9] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2014-02-28 11:28:31,533 [ec-9] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2014-02-28 11:28:31,533 [ec-9] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2014-02-28 11:28:31,535 [ec-9] INFO SQLDataSource - [builtinApplication.null] Performing fetch operation with
      criteria: {person_id:1,email_address:"henkie@jalia.co.za"} values: {person_id:1,email_address:"henkie@jalia.co.za"}
      === 2014-02-28 11:28:31,540 [ec-9] INFO SQLDataSource - [builtinApplication.null] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
      === 2014-02-28 11:28:31,541 [ec-9] INFO SQLDataSource - [builtinApplication.null] 71: Executing SQL query on 'Mysql': SELECT contact_details.email_address, contact_details.home_number, contact_details.id, contact_details.mobile_number, contact_details.secondary_mobile_number, contact_details.work_n
      umber FROM contact_details WHERE (contact_details.email_address='henkie@jalia.co.za')
      === 2014-02-28 11:28:31,543 [ec-9] DEBUG PoolableSQLConnectionFactory - [builtinApplication.null] Executing pingTest 'select 1 from dual' on connection 2081975308
      === 2014-02-28 11:28:31,545 [ec-9] DEBUG SQLConnectionManager - [builtinApplication.null] Borrowed connection '2081975308'
      === 2014-02-28 11:28:31,545 [ec-9] DEBUG SQLDriver - [builtinApplication.null] About to execute SQL query in 'Mysql' using connection '2081975308'
      === 2014-02-28 11:28:31,546 [ec-9] INFO SQLDriver - [builtinApplication.null] Executing SQL query on 'Mysql': SELECT contact_details.email_address, contact_details.home_number, contact_details.id, contact_details.mobile_number, contact_details.secondary_mobile_number, contact_details.work_number FR
      OM contact_details WHERE (contact_details.email_address='henkie@jalia.co.za')
      === 2014-02-28 11:28:31,551 [ec-9] INFO DSResponse - [builtinApplication.null] DSResponse: List with 1 items
      === 2014-02-28 11:28:31,552 [ec-9] DEBUG SQLDriver - Freeing SQLDriver dbConnection 2081975308
      === 2014-02-28 11:28:31,552 [ec-9] DEBUG SQLConnectionManager - About to close PoolableConnection with hashcode "2081975308"
      === 2014-02-28 11:28:31,553 [ec-9] DEBUG PoolableSQLConnectionFactory - Executing pingTest 'select 1 from dual' on connection 2081975308
      === 2014-02-28 11:28:31,587 [ec-9] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2014-02-28 11:28:31,587 [ec-9] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2014-02-28 11:28:31,588 [ec-9] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2014-02-28 11:28:31,589 [ec-9] INFO SQLDataSource - [builtinApplication.null] Performing update operation with
      criteria: {id:1} values: {work_number:"0126838893",home_number:null,email_address:"henkie@jalia.co.za"}
      === 2014-02-28 11:28:31,596 [ec-9] DEBUG PoolableSQLConnectionFactory - [builtinApplication.null] Executing pingTest 'select 1 from dual' on connection 2081975308
      === 2014-02-28 11:28:31,598 [ec-9] DEBUG SQLConnectionManager - [builtinApplication.null] Borrowed connection '2081975308'
      === 2014-02-28 11:28:31,601 [ec-9] DEBUG SQLTransaction - [builtinApplication.null] Started new Mysql transaction "2081975308"
      === 2014-02-28 11:28:31,602 [ec-9] DEBUG SQLDriver - [builtinApplication.null] About to execute SQL update in 'Mysql' using connection'2081975308'
      === 2014-02-28 11:28:31,602 [ec-9] INFO SQLDriver - [builtinApplication.null] Executing SQL update on 'Mysql': UPDATE contact_details SET email_address='henkie@jalia.co.za', home_number=NULL, work_number='0126838893' WHERE (contact_details.id=1)
      === 2014-02-28 11:28:31,621 [ec-9] DEBUG SQLDataSource - [builtinApplication.null] update operation affected 1 rows
      === 2014-02-28 11:28:31,623 [ec-9] INFO SQLDataSource - [builtinApplication.null] primaryKeys: {id=1}
      === 2014-02-28 11:28:31,623 [ec-9] DEBUG DeclarativeSecurity - [builtinApplication.null] Processing security checks for DataSource null, field null
      === 2014-02-28 11:28:31,623 [ec-9] DEBUG DeclarativeSecurity - [builtinApplication.null] DataSource contact_details is not in the pre-checked list, processing...
      === 2014-02-28 11:28:31,624 [ec-9] DEBUG AppBase - [builtinApplication.null, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2014-02-28 11:28:31,626 [ec-9] DEBUG AppBase - [builtinApplication.null, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2014-02-28 11:28:31,627 [ec-9] INFO SQLDataSource - [builtinApplication.null, builtinApplication.null] Performing fetch operation with
      criteria: {id:1} values: {id:1}
      === 2014-02-28 11:28:31,629 [ec-9] INFO SQLDataSource - [builtinApplication.null, builtinApplication.null] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
      === 2014-02-28 11:28:31,630 [ec-9] INFO SQLDataSource - [builtinApplication.null, builtinApplication.null] 71: Executing SQL query on 'Mysql': SELECT contact_details.email_address, contact_details.home_number, contact_details.id, contact_details.mobile_number, contact_details.secondary_mobile_numbe
      r, contact_details.work_number FROM contact_details WHERE (contact_details.id=1)
      === 2014-02-28 11:28:31,631 [ec-9] DEBUG SQLDriver - [builtinApplication.null, builtinApplication.null] About to execute SQL query in 'Mysql' using connection '2081975308'
      === 2014-02-28 11:28:31,632 [ec-9] INFO SQLDriver - [builtinApplication.null, builtinApplication.null] Executing SQL query on 'Mysql': SELECT contact_details.email_address, contact_details.home_number, contact_details.id, contact_details.mobile_number, contact_details.secondary_mobile_number, conta
      ct_details.work_number FROM contact_details WHERE (contact_details.id=1)
      === 2014-02-28 11:28:31,637 [ec-9] INFO DSResponse - [builtinApplication.null, builtinApplication.null] DSResponse: List with 1 items
      === 2014-02-28 11:28:31,637 [ec-9] INFO DSResponse - [builtinApplication.null] DSResponse: List with 1 items
      === 2014-02-28 11:28:31,638 [ec-9] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2014-02-28 11:28:31,639 [ec-9] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2014-02-28 11:28:31,640 [ec-9] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2014-02-28 11:28:31,641 [ec-9] INFO SQLDataSource - [builtinApplication.null] Performing update operation with
      criteria: {} values: {suburb_id:1311,code:"1234",line1:"kjAdSFDJdfj",address_type_cd:"Street",line2:null}
      === 2014-02-28 11:28:31,645 [ec-9] INFO SQLWhereClause - [builtinApplication.null] empty condition
      === 2014-02-28 11:28:31,646 [ec-9] DEBUG SQLDriver - [builtinApplication.null] About to execute SQL update in 'Mysql' using connection'2081975308'
      === 2014-02-28 11:28:31,647 [ec-9] INFO SQLDriver - [builtinApplication.null] Executing SQL update on 'Mysql': UPDATE address SET address_type_cd='Street', code='1234', line1='kjAdSFDJdfj', line2=NULL, suburb_id=1311 WHERE ('1'='1')
      === 2014-02-28 11:28:31,974 [ec-9] DEBUG SQLDataSource - [builtinApplication.null] update operation affected 11 rows
      === 2014-02-28 11:28:31,975 [ec-9] DEBUG MysqlDriver - [builtinApplication.null] fetchLastRow data - primaryKeysPresent: {}sequencesNotPresent: [id]
      === 2014-02-28 11:28:31,976 [ec-9] DEBUG SQLDriver - [builtinApplication.null] About to execute SQL query in 'Mysql' using connection '2081975308'
      === 2014-02-28 11:28:31,977 [ec-9] INFO SQLDriver - [builtinApplication.null] Executing SQL query on 'Mysql': SELECT LAST_INSERT_ID()
      === 2014-02-28 11:28:31,981 [ec-9] INFO SQLDataSource - [builtinApplication.null] primaryKeys: {id=0}
      === 2014-02-28 11:28:31,982 [ec-9] DEBUG DeclarativeSecurity - [builtinApplication.null] Processing security checks for DataSource null, field null
      === 2014-02-28 11:28:31,984 [ec-9] DEBUG DeclarativeSecurity - [builtinApplication.null] DataSource address is not in the pre-checked list, processing...
      === 2014-02-28 11:28:31,985 [ec-9] DEBUG AppBase - [builtinApplication.null, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2014-02-28 11:28:31,986 [ec-9] DEBUG AppBase - [builtinApplication.null, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2014-02-28 11:28:31,988 [ec-9] INFO SQLDataSource - [builtinApplication.null, builtinApplication.null] Performing fetch operation with
      criteria: {id:0} values: {id:0}
      === 2014-02-28 11:28:31,990 [ec-9] INFO SQLDataSource - [builtinApplication.null, builtinApplication.null] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
      === 2014-02-28 11:28:31,991 [ec-9] INFO SQLDataSource - [builtinApplication.null, builtinApplication.null] 70: Executing SQL query on 'Mysql': SELECT address.address_type_cd, address.code, address.id, address.line1, address.line2, address.suburb_id FROM address WHERE (address.id=0)
      === 2014-02-28 11:28:31,992 [ec-9] DEBUG SQLDriver - [builtinApplication.null, builtinApplication.null] About to execute SQL query in 'Mysql' using connection '2081975308'
      === 2014-02-28 11:28:31,994 [ec-9] INFO SQLDriver - [builtinApplication.null, builtinApplication.null] Executing SQL query on 'Mysql': SELECT address.address_type_cd, address.code, address.id, address.line1, address.line2, address.suburb_id FROM address WHERE (address.id=0)
      === 2014-02-28 11:28:32,000 [ec-9] INFO DSResponse - [builtinApplication.null, builtinApplication.null] DSResponse: List with 0 items
      === 2014-02-28 11:28:32,000 [ec-9] INFO DSResponse - [builtinApplication.null] DSResponse: List with 0 items
      === 2014-02-28 11:28:32,002 [ec-9] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2014-02-28 11:28:32,003 [ec-9] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2014-02-28 11:28:32,003 [ec-9] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2014-02-28 11:28:32,007 [ec-9] INFO SQLDataSource - [builtinApplication.null] Performing update operation with
      criteria: {id:1} values: {user_status_cd:"Active",role_commander_medical:false,role_commander_fire:true,id_number:"7405305013082",role_commander_saps:false,middle_name:null,surname:"Maritz",roleName:null,role_subscriber:false,password:"password2",first_name:"Henkie",country_cd:null,ti
      tle_cd:"Captain",role_user:false}
      === 2014-02-28 11:28:32,010 [ec-9] DEBUG SQLDriver - [builtinApplication.null] About to execute SQL update in 'Mysql' using connection'2081975308'
      === 2014-02-28 11:28:32,010 [ec-9] INFO SQLDriver - [builtinApplication.null] Executing SQL update on 'Mysql': UPDATE person SET country_cd=NULL, first_name='Henkie', id_number='7405305013082', middle_name=NULL, password='password2', roleName=NULL, role_commander_fire=1, role_commander_medical=0, r
      ole_commander_saps=0, role_subscriber=0, role_user=0, surname='Maritz', title_cd='Captain', user_status_cd='Active' WHERE (person.id=1)
      === 2014-02-28 11:28:32,017 [ec-9] DEBUG SQLDataSource - [builtinApplication.null] update operation affected 1 rows
      === 2014-02-28 11:28:32,017 [ec-9] INFO SQLDataSource - [builtinApplication.null] primaryKeys: {id=1}
      === 2014-02-28 11:28:32,019 [ec-9] DEBUG DeclarativeSecurity - [builtinApplication.null] Processing security checks for DataSource null, field null
      === 2014-02-28 11:28:32,020 [ec-9] DEBUG DeclarativeSecurity - [builtinApplication.null] DataSource person is not in the pre-checked list, processing...
      === 2014-02-28 11:28:32,021 [ec-9] DEBUG AppBase - [builtinApplication.null, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2014-02-28 11:28:32,023 [ec-9] DEBUG AppBase - [builtinApplication.null, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2014-02-28 11:28:32,024 [ec-9] INFO SQLDataSource - [builtinApplication.null, builtinApplication.null] Performing fetch operation with
      criteria: {id:1} values: {id:1}
      === 2014-02-28 11:28:32,026 [ec-9] INFO SQLDataSource - [builtinApplication.null, builtinApplication.null] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
      === 2014-02-28 11:28:32,028 [ec-9] INFO SQLDataSource - [builtinApplication.null, builtinApplication.null] 83: Executing SQL query on 'Mysql': SELECT person.address_id, person.birth_d, person.contact_details_id, person.country_cd, person.first_name, person.gender_cd, person.id, person.id_number, pe
      rson.middle_name, person.one_time_password, person.passport_number, person.password, person.roleName, person.role_commander_fire, person.role_commander_medical, person.role_commander_saps, person.role_subscriber, person.role_user, person.surname, person.title_cd, person.user_status_cd FROM person WH
      ERE (person.id=1)
      === 2014-02-28 11:28:32,030 [ec-9] DEBUG SQLDriver - [builtinApplication.null, builtinApplication.null] About to execute SQL query in 'Mysql' using connection '2081975308'
      === 2014-02-28 11:28:32,030 [ec-9] INFO SQLDriver - [builtinApplication.null, builtinApplication.null] Executing SQL query on 'Mysql': SELECT person.address_id, person.birth_d, person.contact_details_id, person.country_cd, person.first_name, person.gender_cd, person.id, person.id_number, person.mid
      dle_name, person.one_time_password, person.passport_number, person.password, person.roleName, person.role_commander_fire, person.role_commander_medical, person.role_commander_saps, person.role_subscriber, person.role_user, person.surname, person.title_cd, person.user_status_cd FROM person WHERE (per
      son.id=1)
      === 2014-02-28 11:28:32,037 [ec-9] INFO DSResponse - [builtinApplication.null, builtinApplication.null] DSResponse: List with 1 items
      === 2014-02-28 11:28:32,038 [ec-9] INFO DSResponse - [builtinApplication.null] DSResponse: List with 1 items
      === 2014-02-28 11:28:32,039 [ec-9] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2014-02-28 11:28:32,040 [ec-9] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2014-02-28 11:28:32,043 [ec-9] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2014-02-28 11:28:32,044 [ec-9] INFO SQLDataSource - [builtinApplication.null] Performing remove operation with
      criteria: {} values: {}
      === 2014-02-28 11:28:32,045 [ec-9] INFO SQLWhereClause - [builtinApplication.null] empty condition
      === 2014-02-28 11:28:32,047 [ec-9] DEBUG SQLDriver - [builtinApplication.null] About to execute SQL update in 'Mysql' using connection'2081975308'
      === 2014-02-28 11:28:32,048 [ec-9] INFO SQLDriver - [builtinApplication.null] Executing SQL update on 'Mysql': DELETE FROM user_role_person WHERE ('1'='1')
      === 2014-02-28 11:28:32,050 [ec-9] DEBUG SQLDataSource - [builtinApplication.null] remove operation affected 9 rows
      === 2014-02-28 11:28:32,050 [ec-9] DEBUG MysqlDriver - [builtinApplication.null] fetchLastRow data - primaryKeysPresent: {}sequencesNotPresent: [id]
      === 2014-02-28 11:28:32,051 [ec-9] DEBUG SQLDriver - [builtinApplication.null] About to execute SQL query in 'Mysql' using connection '2081975308'
      === 2014-02-28 11:28:32,052 [ec-9] INFO SQLDriver - [builtinApplication.null] Executing SQL query on 'Mysql': SELECT LAST_INSERT_ID()
      === 2014-02-28 11:28:32,057 [ec-9] INFO DSResponse - [builtinApplication.null] DSResponse: List with 1 items
      === 2014-02-28 11:28:32,057 [ec-9] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
      === 2014-02-28 11:28:32,058 [ec-9] DEBUG SQLTransaction - Committing Mysql transaction "2081975308"
      === 2014-02-28 11:28:32,091 [ec-9] DEBUG RPCManager - DMI response, dropExtraFields: true
      === 2014-02-28 11:28:32,092 [ec-9] DEBUG SQLTransaction - Returning transactional connection for Mysql with hashcode "2081975308"
      === 2014-02-28 11:28:32,093 [ec-9] DEBUG SQLTransaction - Ending Mysql transaction "2081975308"
      === 2014-02-28 11:28:32,095 [ec-9] DEBUG SQLConnectionManager - About to close PoolableConnection with hashcode "2081975308"
      === 2014-02-28 11:28:32,095 [ec-9] DEBUG PoolableSQLConnectionFactory - Executing pingTest 'select 1 from dual' on connection 2081975308
      === 2014-02-28 11:28:32,101 [ec-9] DEBUG SQLTransaction - Returning transactional connection for Mysql (connection is null)
      === 2014-02-28 11:28:32,101 [ec-9] DEBUG SQLTransaction - Returning transactional connection for Mysql (connection is null)
      === 2014-02-28 11:28:32,102 [ec-9] DEBUG SQLTransaction - Returning transactional connection for Mysql (connection is null)
      === 2014-02-28 11:28:32,104 [ec-9] INFO Compression - /war/version/9.0/isomorphic/IDACall: 144 -> 132 bytes
      === 2014-02-28 11:28:32,513 [c-10] INFO RequestContext - URL: '/war/version/9.0/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36': Safari with Accept-Encoding header
      === 2014-02-28 11:28:32,514 [c-10] DEBUG IDACall - Header Name:Value pair: host:localhost:8888
      === 2014-02-28 11:28:32,516 [c-10] DEBUG IDACall - Header Name:Value pair: connection:keep-alive
      === 2014-02-28 11:28:32,519 [c-10] DEBUG IDACall - Header Name:Value pair: content-length:1018
      === 2014-02-28 11:28:32,521 [c-10] DEBUG IDACall - Header Name:Value pair: origin:http://localhost:8888
      === 2014-02-28 11:28:32,523 [c-10] DEBUG IDACall - Header Name:Value pair: user-agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36
      === 2014-02-28 11:28:32,526 [c-10] DEBUG IDACall - Header Name:Value pair: content-type:application/x-www-form-urlencoded; charset=UTF-8
      === 2014-02-28 11:28:32,528 [c-10] DEBUG IDACall - Header Name:Value pair: accept:*/*
      === 2014-02-28 11:28:32,529 [c-10] DEBUG IDACall - Header Name:Value pair: referer:http://localhost:8888/war/secure/index.jsp
      === 2014-02-28 11:28:32,530 [c-10] DEBUG IDACall - Header Name:Value pair: accept-encoding:gzip,deflate,sdch
      === 2014-02-28 11:28:32,531 [c-10] DEBUG IDACall - Header Name:Value pair: accept-language:en-US,en;q=0.8,af;q=0.6
      === 2014-02-28 11:28:32,533 [c-10] DEBUG IDACall - Header Name:Value pair: cookie:JSESSIONID=CDDDD937410801100E87451F523FBF27; svarIntCompanyId=4; svarStrCompanyDescr=JLTennis; isc_cState=ready
      === 2014-02-28 11:28:32,533 [c-10] DEBUG IDACall - session exists: CDDDD937410801100E87451F523FBF27
      === 2014-02-28 11:28:32,535 [c-10] DEBUG IDACall - remote user: null
      === 2014-02-28 11:28:32,539 [c-10] DEBUG XML - Parsed XML from (in memory stream): 2ms
      === 2014-02-28 11:28:32,541 [c-10] DEBUG RPCManager - Processing 1 requests.
      === 2014-02-28 11:28:32,543 [c-10] DEBUG RPCManager - Request #1 (DSRequest) payload: {
      criteria:{
      },
      operationConfig:{
      dataSource:"person_view",
      operationType:"fetch",
      textMatchStyle:"exact"
      },
      startRow:0,
      endRow:75,
      componentId:"ManageMembersLgd",
      appID:"builtinApplication",
      operation:"person_view_fetch",
      oldValues:{
      }
      }
      === 2014-02-28 11:28:32,545 [c-10] INFO IDACall - Performing 1 operation(s)
      === 2014-02-28 11:28:32,547 [c-10] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2014-02-28 11:28:32,549 [c-10] DEBUG DeclarativeSecurity - DataSource person_view is not in the pre-checked list, processing...
      === 2014-02-28 11:28:32,552 [c-10] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2014-02-28 11:28:32,555 [c-10] DEBUG DeclarativeSecurity - DataSource person_view is not in the pre-checked list, processing...
      === 2014-02-28 11:28:32,557 [c-10] DEBUG AppBase - [builtinApplication.person_view_fetch] No userTypes defined, allowing anyone access to all operations for this application
      === 2014-02-28 11:28:32,558 [c-10] DEBUG AppBase - [builtinApplication.person_view_fetch] No public zero-argument method named '_person_view_fetch' found, performing generic datasource operation
      === 2014-02-28 11:28:32,559 [c-10] INFO SQLDataSource - [builtinApplication.person_view_fetch] Performing fetch operation with
      criteria: {} values: {}
      === 2014-02-28 11:28:32,561 [c-10] INFO SQLWhereClause - [builtinApplication.person_view_fetch] empty condition
      === 2014-02-28 11:28:32,562 [c-10] INFO SQLDataSource - [builtinApplication.person_view_fetch] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
      === 2014-02-28 11:28:32,564 [c-10] DEBUG SQLDataSource - [builtinApplication.person_view_fetch] Executing row count query: SELECT COUNT(*) FROM $defaultTableClause WHERE $defaultWhereClause
      === 2014-02-28 11:28:32,564 [c-10] DEBUG SQLDataSource - [builtinApplication.person_view_fetch] Eval'd row count query: SELECT COUNT(*) FROM person_view WHERE ('1'='1')
      === 2014-02-28 11:28:32,566 [c-10] DEBUG PoolableSQLConnectionFactory - [builtinApplication.person_view_fetch] Executing pingTest 'select 1 from dual' on connection 2081975308
      === 2014-02-28 11:28:32,570 [c-10] DEBUG SQLConnectionManager - [builtinApplication.person_view_fetch] Borrowed connection '2081975308'
      === 2014-02-28 11:28:32,572 [c-10] DEBUG SQLDriver - [builtinApplication.person_view_fetch] About to execute SQL query in 'Mysql' using connection '2081975308'
      === 2014-02-28 11:28:32,573 [c-10] INFO SQLDriver - [builtinApplication.person_view_fetch] Executing SQL query on 'Mysql': SELECT COUNT(*) FROM person_view WHERE ('1'='1')
      === 2014-02-28 11:28:32,578 [c-10] DEBUG SQLDataSource - [builtinApplication.person_view_fetch] Using SQL Limit query
      === 2014-02-28 11:28:32,578 [c-10] DEBUG SQLDataSource - [builtinApplication.person_view_fetch] SQL windowed select rows 0->75, result size 75. Query: SELECT person_view.address_id, person_view.address_type_cd, person_view.birth_d, person_view.city_name, person_view.code, person_view.contact_details
      _id, person_view.country_cd, person_view.email_address, person_view.first_name, person_view.gender_cd, person_view.home_number, person_view.id, person_view.id_number, person_view.line1, person_view.line2, person_view.memeza_area_name, person_view.middle_name, person_view.mobile_number, person_view.p
      assport_number, person_view.password, person_view.roleName, person_view.role_commander_fire, person_view.role_commander_medical, person_view.role_commander_saps, person_view.role_subscriber, person_view.role_user, person_view.secondary_mobile_number, person_view.suburb_id, person_view.suburb_name, p
      erson_view.surname, person_view.title_cd, person_view.user_status_cd, person_view.work_number FROM person_view WHERE ('1'='1') LIMIT 0, 75
      === 2014-02-28 11:28:32,589 [c-10] INFO DSResponse - [builtinApplication.person_view_fetch] DSResponse: List with 11 items
      === 2014-02-28 11:28:32,589 [c-10] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
      === 2014-02-28 11:28:32,590 [c-10] DEBUG RPCManager - DMI response, dropExtraFields: true
      === 2014-02-28 11:28:32,592 [c-10] DEBUG SQLDriver - Freeing SQLDriver dbConnection 2081975308
      === 2014-02-28 11:28:32,600 [c-10] DEBUG SQLConnectionManager - About to close PoolableConnection with hashcode "2081975308"
      === 2014-02-28 11:28:32,601 [c-10] DEBUG PoolableSQLConnectionFactory - Executing pingTest 'select 1 from dual' on connection 2081975308
      === 2014-02-28 11:28:32,602 [c-10] INFO Compression - /war/version/9.0/isomorphic/IDACall: 6400 -> 1237 bytes

      Comment


        #4
        Still missing your full version, please remember to post that.

        Can you try this again with the latest patched build? We can't replicate a problem, and there was a fix to addToCriteria() a while ago that might have addressed this if it's indeed a framework issue.

        Comment


          #5
          OK, I've at last upgraded to version 9.1 of Power edition.
          Still it does not work.
          I've created a test case. See the attached servlet and datasource.
          Here's the database table definition:

          DROP TABLE IF EXISTS `user_role_person`;
          CREATE TABLE `user_role_person` (
          `id` bigint(20) NOT NULL AUTO_INCREMENT,
          `user_role_id` bigint(20) NOT NULL,
          `person_id` bigint(20) NOT NULL,
          PRIMARY KEY (`id`),
          UNIQUE INDEX (`user_role_id`, `person_id`),
          INDEX `user_role_person_user_role_id_fk_idx` (`user_role_id`),
          INDEX `user_role_person_person_id_fk_idx` (`person_id`)
          )
          COMMENT = 'Holds a record for each use role person mapping';


          Here's the FULL log generated:
          === 2014-05-12 17:04:59,417 [ec-5] INFO RequestContext - URL: '/memeza-web/test', User-Agent: 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36': Safari with Accept-Encoding header
          === 2014-05-12 17:04:59,444 [ec-5] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
          === 2014-05-12 17:04:59,444 [ec-5] DEBUG ISCKeyedObjectPool - Borrowing object for 'user_role_person'
          === 2014-05-12 17:04:59,447 [ec-5] DEBUG XML - Parsed XML from C:\Dev\workspace\memeza\memeza-web\target\memeza-web\shared\ds\user_role_person.ds.xml: 1ms
          === 2014-05-12 17:04:59,448 [ec-5] DEBUG ISCKeyedObjectPool - Borrowing object for 'DataSource'
          === 2014-05-12 17:04:59,449 [ec-5] DEBUG ISCKeyedObjectPool - Borrowing object for 'DataSourceField'
          === 2014-05-12 17:04:59,450 [ec-5] DEBUG ISCKeyedObjectPool - Borrowing object for 'field'
          === 2014-05-12 17:04:59,500 [ec-5] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
          === 2014-05-12 17:04:59,500 [ec-5] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
          === 2014-05-12 17:04:59,505 [ec-5] INFO SQLDataSource - [builtinApplication.null] Performing remove operation with
          criteria: {} values: {}
          === 2014-05-12 17:04:59,517 [ec-5] INFO SQLWhereClause - [builtinApplication.null] empty condition
          log4j:WARN No appenders could be found for logger (org.apache.Velocity).
          log4j:WARN Please initialize the log4j system properly.
          log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
          === 2014-05-12 17:04:59,681 [ec-5] INFO SQLDriver - [builtinApplication.null] DSRequest has no RPCManager set when testing if we should join a transaction - transaction will not be joined
          === 2014-05-12 17:04:59,748 [ec-5] INFO PoolManager - [builtinApplication.null] SmartClient pooling started for 'Mysql' objects
          === 2014-05-12 17:04:59,749 [ec-5] DEBUG PoolableSQLConnectionFactory - [builtinApplication.null] Initializing SQL config for 'Mysql' via JNDI
          === 2014-05-12 17:04:59,757 [ec-5] DEBUG PoolableSQLConnectionFactory - [builtinApplication.null] makeObject() created a pooled Connection '1195989148'
          === 2014-05-12 17:04:59,764 [ec-5] DEBUG PoolableSQLConnectionFactory - [builtinApplication.null] Executing pingTest 'select 1 from dual' on connection 1195989148
          === 2014-05-12 17:04:59,764 [ec-5] DEBUG SQLConnectionManager - [builtinApplication.null] Borrowed connection '1195989148'
          === 2014-05-12 17:04:59,765 [ec-5] DEBUG SQLDriver - [builtinApplication.null] About to execute SQL update in 'Mysql' using connection'1195989148'
          === 2014-05-12 17:04:59,765 [ec-5] INFO SQLDriver - [builtinApplication.null] Executing SQL update on 'Mysql': DELETE FROM user_role_person WHERE ('1'='1')
          === 2014-05-12 17:04:59,780 [ec-5] DEBUG SQLDataSource - [builtinApplication.null] remove operation affected 6 rows
          === 2014-05-12 17:04:59,781 [ec-5] DEBUG MysqlDriver - [builtinApplication.null] fetchLastRow data - primaryKeysPresent: {}sequencesNotPresent: [id]
          === 2014-05-12 17:04:59,782 [ec-5] DEBUG SQLDriver - [builtinApplication.null] About to execute SQL query in 'Mysql' using connection '1195989148'
          === 2014-05-12 17:04:59,783 [ec-5] INFO SQLDriver - [builtinApplication.null] Executing SQL query on 'Mysql': SELECT LAST_INSERT_ID()
          === 2014-05-12 17:04:59,792 [ec-5] INFO DSResponse - [builtinApplication.null] DSResponse: List with 1 items
          === 2014-05-12 17:04:59,793 [ec-5] DEBUG SQLDriver - Freeing SQLDriver dbConnection 1195989148
          === 2014-05-12 17:04:59,865 [ec-5] DEBUG SQLConnectionManager - About to close PoolableConnection with hashcode "1195989148"
          === 2014-05-12 17:04:59,865 [ec-5] DEBUG PoolableSQLConnectionFactory - Executing pingTest 'select 1 from dual' on connection 1195989148

          When I debug, the criteria is set!!!
          PLEASE HELP!
          Attached Files

          Comment


            #6
            I think the issue is when you are using a column in the where clause that is NOT the primary key.
            So, how do you get around that? Because you do want to delete based on non PK column.

            Comment


              #7
              You do need to set allowMultiUpdate:true in your operationBinding or on the dsRequest in order to do an update without PK. Does that answer your question?

              Comment


                #8
                Thank you - the setAllowMultiUpdate did the thing!!

                Comment

                Working...
                X