Hi Isomorphic,
using latest 6.1p (v11.1p_2017-11-16) I found an issue with RESTHandler + relatedUpdate, which just seems to be missing:
Employees.java DMI (+ register in employees.ds.xml):
ARC request, POST to http://127.0.0.1:8888/builtinds/sc/RESTHandler
Response:
Server log (includes successful request to animals):
This is an important one for me.
Please note that the queueStatus-multiple-times issue (thread also has other related issues) is still open and also visible here.
Best regards
Blama
using latest 6.1p (v11.1p_2017-11-16) I found an issue with RESTHandler + relatedUpdate, which just seems to be missing:
Employees.java DMI (+ register in employees.ds.xml):
Code:
package com.smartgwt.sample.server.listener; import javax.servlet.http.HttpServletRequest; import com.isomorphic.datasource.DSRequest; import com.isomorphic.datasource.DSResponse; import com.isomorphic.datasource.DataSource; public class Employees { public DSResponse fetch(DSRequest request, HttpServletRequest servletRequest) throws Exception { [B] return request.execute() .addRelatedUpdate(new DSRequest("animals", DataSource.OP_FETCH).execute().setOperationType(DataSource.OP_UPDATE));[/B] } }
Code:
<request> <dataSource>employees</dataSource> <operationType>fetch</operationType> <startRow>0</startRow> <endRow>2</endRow> </request>
Code:
<?xml version="1.0" ?> <response> <status>0</status> <queueStatus>0</queueStatus> <startRow>0</startRow> <endRow>2</endRow> <totalRows>115</totalRows> <queueStatus>0</queueStatus> <data> <record> <OrgUnit>Management</OrgUnit> <Salary>26200.0</Salary> <MaritalStatus>married</MaritalStatus> <Email>cmadigan@server.com</Email> <EmployeeStatus>active</EmployeeStatus> <userOrder>1</userOrder> <ReportsTo>1</ReportsTo> <Gender>male</Gender> <EmployeeId>4</EmployeeId> <Job>Chief Operating Officer</Job> <Name>Charles Madigen</Name> <EmployeeType>full time</EmployeeType> </record> <record> <OrgUnit>Management</OrgUnit> <Salary>11900.0</Salary> <MaritalStatus>single</MaritalStatus> <Email>tkane@server.com</Email> <EmployeeStatus>active</EmployeeStatus> <userOrder>112</userOrder> <ReportsTo>4</ReportsTo> <Gender>female</Gender> <EmployeeId>182</EmployeeId> <Job>Mgr Site Services</Job> <Name>Tamara Kane</Name> <EmployeeType>part time</EmployeeType> </record> </data> </response>
Code:
=== 2017-11-17 00:12:48,452 [5-31] INFO RequestContext - URL: '/builtinds/sc/RESTHandler', User-Agent: 'null': Unsupported WITHOUT Accept-Encoding header === 2017-11-17 00:12:48,453 [5-31] DEBUG RESTHandler - Defaulting response data format to xml === 2017-11-17 00:12:48,454 [5-31] DEBUG RestRequestParser - Parsing xml object: '<request> <dataSource>employees</dataSource> <operationType>fetch</operationType> <startRow>0</startRow> <endRow>2</endRow> </request>' === 2017-11-17 00:12:48,455 [5-31] DEBUG XML - Parsed XML from (in memory stream): 1ms === 2017-11-17 00:12:48,456 [5-31] INFO RESTHandler - Performing 1 operation(s) === 2017-11-17 00:12:48,457 [5-31] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null === 2017-11-17 00:12:48,457 [5-31] DEBUG DeclarativeSecurity - DataSource employees is not in the pre-checked list, processing... === 2017-11-17 00:12:48,457 [5-31] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null === 2017-11-17 00:12:48,457 [5-31] DEBUG DeclarativeSecurity - DataSource employees is not in the pre-checked list, processing... === 2017-11-17 00:12:48,457 [5-31] DEBUG AppBase - [builtinApplication.employees_fetch] No userTypes defined, allowing anyone access to all operations for this application === 2017-11-17 00:12:48,457 [5-31] DEBUG AppBase - [builtinApplication.employees_fetch] No public zero-argument method named '_employees_fetch' found, performing generic datasource operation === 2017-11-17 00:12:48,457 [5-31] INFO SQLDataSource - [builtinApplication.employees_fetch] Performing fetch operation with criteria: {} values: {} === 2017-11-17 00:12:48,458 [5-31] DEBUG SQLDataSource - [builtinApplication.employees_fetch] DataSource 20 acquired SQLDriver instance 1995870055 during initialization === 2017-11-17 00:12:48,458 [5-31] INFO SQLWhereClause - [builtinApplication.employees_fetch] empty condition === 2017-11-17 00:12:48,458 [5-31] INFO SQLDataSource - [builtinApplication.employees_fetch] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause === 2017-11-17 00:12:48,458 [5-31] DEBUG SQLDataSource - [builtinApplication.employees_fetch] Executing row count query: SELECT COUNT(*) FROM $defaultTableClause === 2017-11-17 00:12:48,458 [5-31] DEBUG SQLDataSource - [builtinApplication.employees_fetch] Eval'd row count query: SELECT COUNT(*) FROM employeeTable === 2017-11-17 00:12:48,459 [5-31] DEBUG SQLConnectionManager - [builtinApplication.employees_fetch] Borrowed connection '1992006570' === 2017-11-17 00:12:48,459 [5-31] INFO SQLDriver - [builtinApplication.employees_fetch] Executing SQL query on 'HSQLDB' using connection '1992006570': SELECT COUNT(*) FROM employeeTable === 2017-11-17 00:12:48,459 [5-31] DEBUG SQLDataSource - [builtinApplication.employees_fetch] Using SQL Limit query === 2017-11-17 00:12:48,459 [5-31] DEBUG SQLDataSource - [builtinApplication.employees_fetch] SQL windowed select rows 0->2, result size 2. Query: SELECT LIMIT 0 2 employeeTable.userOrder, employeeTable.Name, employeeTable.EmployeeId, employeeTable.ReportsTo, employeeTable.Job, employeeTable.Email, employeeTable.EmployeeType, employeeTable.EmployeeStatus, employeeTable.Salary, employeeTable.OrgUnit, employeeTable.Gender, employeeTable.MaritalStatus FROM employeeTable WHERE ('1'='1') === 2017-11-17 00:12:48,459 [5-31] DEBUG SQLDataSource - [builtinApplication.employees_fetch] SQL windowed select rows 0->2, result size 2. Query: SELECT LIMIT 0 2 employeeTable.userOrder, employeeTable.Name, employeeTable.EmployeeId, employeeTable.ReportsTo, employeeTable.Job, employeeTable.Email, employeeTable.EmployeeType, employeeTable.EmployeeStatus, employeeTable.Salary, employeeTable.OrgUnit, employeeTable.Gender, employeeTable.MaritalStatus FROM employeeTable WHERE ('1'='1') === 2017-11-17 00:12:48,459 [5-31] INFO SQLDataSource - [builtinApplication.employees_fetch] 20: Executing query on 'HSQLDB': SELECT LIMIT 0 2 employeeTable.userOrder, employeeTable.Name, employeeTable.EmployeeId, employeeTable.ReportsTo, employeeTable.Job, employeeTable.Email, employeeTable.EmployeeType, employeeTable.EmployeeStatus, employeeTable.Salary, employeeTable.OrgUnit, employeeTable.Gender, employeeTable.MaritalStatus FROM employeeTable WHERE ('1'='1') === 2017-11-17 00:12:48,460 [5-31] INFO DSResponse - DSResponse: List with 2 items === 2017-11-17 00:12:48,460 [5-31] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null === 2017-11-17 00:12:48,460 [5-31] DEBUG DeclarativeSecurity - Request is not a client request, ignoring security checks. === 2017-11-17 00:12:48,460 [5-31] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application === 2017-11-17 00:12:48,461 [5-31] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation === 2017-11-17 00:12:48,461 [5-31] INFO SQLDataSource - [builtinApplication.null] Performing fetch operation with criteria: {} values: {} === 2017-11-17 00:12:48,461 [5-31] INFO SQLWhereClause - [builtinApplication.null] empty condition === 2017-11-17 00:12:48,461 [5-31] INFO SQLDataSource - [builtinApplication.null] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause === 2017-11-17 00:12:48,461 [5-31] INFO SQLDataSource - [builtinApplication.null] 16: Executing SQL query on 'HSQLDB': SELECT animals.commonName, animals.scientificName, animals.lifeSpan, animals.status, animals.diet, animals.information, animals.picture FROM animals WHERE ('1'='1') === 2017-11-17 00:12:48,461 [5-31] DEBUG SQLConnectionManager - [builtinApplication.null] Borrowed connection '1586949668' [B]=== 2017-11-17 00:12:48,461 [5-31] INFO SQLDriver - [builtinApplication.null] Executing SQL query on 'HSQLDB' using connection '1586949668': SELECT animals.commonName, animals.scientificName, animals.lifeSpan, animals.status, animals.diet, animals.information, animals.picture FROM animals WHERE ('1'='1') === 2017-11-17 00:12:48,464 [5-31] INFO DSResponse - DSResponse: List with 29 items[/B] === 2017-11-17 00:12:48,465 [5-31] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 16 === 2017-11-17 00:12:48,465 [5-31] DEBUG SQLDriver - Freeing SQLDriver dbConnection 1586949668 for SQLDriver instance 1098961536 === 2017-11-17 00:12:48,465 [5-31] DEBUG SQLConnectionManager - About to close connection with hashcode "1586949668" === 2017-11-17 00:12:48,465 [5-31] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 16 === 2017-11-17 00:12:48,465 [5-31] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 16 === 2017-11-17 00:12:48,465 [5-31] INFO DSResponse - DSResponse: List with 2 items === 2017-11-17 00:12:48,465 [5-31] DEBUG RPCManager - Content type for RPC transaction: text/html; charset=UTF-8 === 2017-11-17 00:12:48,465 [5-31] DEBUG RPCManager - DMI response, dropExtraFields: true === 2017-11-17 00:12:48,466 [5-31] WARN RequestContext - Content type has already been set to: text/html; charset=UTF-8 - setting to: text/xml === 2017-11-17 00:12:48,466 [5-31] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 20 === 2017-11-17 00:12:48,466 [5-31] DEBUG SQLDriver - Freeing SQLDriver dbConnection 1992006570 for SQLDriver instance 1995870055 === 2017-11-17 00:12:48,466 [5-31] DEBUG SQLConnectionManager - About to close connection with hashcode "1992006570" === 2017-11-17 00:12:48,466 [5-31] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 20 === 2017-11-17 00:12:48,466 [5-31] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 20
Please note that the queueStatus-multiple-times issue (thread also has other related issues) is still open and also visible here.
Best regards
Blama
Comment