Announcement

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

  • claudiobosticco
    replied
    SmartClient Version: SNAPSHOT_v11.1d_2017-02-20/Enterprise Development Only (built 2017-02-20)

    Hello, it seems that something has changed.
    #48: seems fixed
    #47: there's still the wrong server validation error on unitCost, but this time it's coupled with a correct error on 'description', which was lacking, before.

    Leave a comment:


  • claudiobosticco
    replied
    hello, bumping this thread just to know if you succeeded in replicating the bug.

    Leave a comment:


  • claudiobosticco
    replied
    SmartClient Version: SNAPSHOT_v11.1d_2017-02-09/Enterprise Development Only (built 2017-02-09)

    Chrome on OSX Sierra

    (Test case equal to that of post #36)

    Please modify the #fetchOperationFS sample like this:

    Code:
    isc.ListGrid.create({
        ID:"dsListGrid", 
        width: "100%",
        height: "100%",
        minFieldWidth:80,
        autoFetchData: true,
        canEdit:true,
        dataSource: "supplyItem" 
    });
    Code:
    <DataSource
        ID="supplyItem"
        serverType="sql"
        tableName="supplyItem"
        titleField="itemName"
        testFileName="/examples/shared/ds/test_data/supplyItem.data.xml"
        dbImportFileName="/examples/shared/ds/test_data/supplyItemLarge.data.xml"
    >
        <fields>
            <field name="itemID"      type="sequence" hidden="true"       primaryKey="true"/>
            <field name="itemName"    type="text"     title="Item"        length="128"       required="true"/>
            <field name="SKU"         type="text"     title="SKU"         length="10"        required="true"/>
            <field name="description" type="text"     title="Description" length="2000">
               
            </field>
            <field name="category"    type="text"     title="Category"    length="128"       required="true"
                   foreignKey="supplyCategory.categoryName"/>
            <field name="units"       type="enum"     title="Units"       length="5">
                <valueMap>
                    <value>Roll</value>
                    <value>Ea</value>
                    <value>Pkt</value>
                    <value>Set</value>
                    <value>Tube</value>
                    <value>Pad</value>
                    <value>Ream</value>
                    <value>Tin</value>
                    <value>Bag</value>
                    <value>Ctn</value>
                    <value>Box</value>
                </valueMap>
            </field>
            <field name="unitCost"    type="float"    title="Unit Cost">
                <validators>
                    <validator type="required" dependentFields="SKU">
                        <applyWhen operator="and">
                            <criteria>
                                <criterion fieldName="SKU" operator="equals" value="45300"/>
                            </criteria>
                        </applyWhen>
                    </validator>
                </validators>
            </field>
            <field name="inStock"   type="boolean"  title="In Stock"/>
            <field name="nextShipment"  type="date" title="Next Shipment"/>
        </fields>
    </DataSource>
    Edit the first row (SKU=45300) and delete the value in the unitCost column.
    You'll get a (client-side) validation error - correct.
    Than change the SKU to, say 45301. You'll get a (wrong) server side validation error:

    Code:
     === 2017-02-09 11:54:46,805 [ec-2] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36': Safari with Accept-Encoding header
      === 2017-02-09 11:54:46,807 [ec-2] DEBUG XML - Parsed XML from (in memory stream): 2ms
      === 2017-02-09 11:54:46,808 [ec-2] DEBUG RPCManager - Processing 1 requests.
      === 2017-02-09 11:54:46,808 [ec-2] DEBUG RPCManager - Request #1 (DSRequest) payload: {
          criteria:{
              itemID:1
          },
          values:{
              itemID:1,
              unitCost:null,
              SKU:"45301"
          },
          operationConfig:{
              dataSource:"supplyItem",
              repo:null,
              operationType:"update",
              textMatchStyle:"exact"
          },
          componentId:"dsListGrid",
          appID:"builtinApplication",
          operation:"supplyItem_update",
          oldValues:{
              category:"Adding Machine/calculator Roll",
              itemName:"Adding Machine Roll 57x57mm Standard",
              itemID:1,
              unitCost:0.41,
              SKU:"45300",
              inStock:true,
              units:"Roll"
          }
      }
      === 2017-02-09 11:54:46,809 [ec-2] INFO  IDACall - Performing 1 operation(s)
      === 2017-02-09 11:54:46,809 [ec-2] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2017-02-09 11:54:46,809 [ec-2] DEBUG DeclarativeSecurity - DataSource supplyItem is not in the pre-checked list, processing...
      === 2017-02-09 11:54:46,809 [ec-2] DEBUG AppBase - [builtinApplication.supplyItem_update] No userTypes defined, allowing anyone access to all operations for this application
      === 2017-02-09 11:54:46,809 [ec-2] DEBUG AppBase - [builtinApplication.supplyItem_update] No public zero-argument method named '_supplyItem_update' found, performing generic datasource operation
      === 2017-02-09 11:54:46,809 [ec-2] DEBUG ValidationContext - [builtinApplication.supplyItem_update] Adding validation errors at path '/supplyItem/unitCost': {errorMessage=Field is required}
      === 2017-02-09 11:54:46,809 [ec-2] INFO  Validation - [builtinApplication.supplyItem_update] Validation error: [
          {
              unitCost:{
                  errorMessage:"Field is required"
              }
          }
      ]
      === 2017-02-09 11:54:46,810 [ec-2] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
      === 2017-02-09 11:54:46,810 [ec-2] DEBUG RPCManager - non-DMI response, dropExtraFields: false
      === 2017-02-09 11:54:46,810 [ec-2] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 572
      === 2017-02-09 11:54:46,810 [ec-2] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 572
      === 2017-02-09 11:54:46,810 [ec-2] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 572
      === 2017-02-09 11:54:46,810 [ec-2] INFO  Compression - /isomorphic/IDACall: 216 -> 181 bytes

    Leave a comment:


  • claudiobosticco
    replied
    SmartClient Version: SNAPSHOT_v11.1d_2017-02-09/Enterprise Development Only (built 2017-02-09)

    Chrome on OSX Sierra

    (Test case equal to that of post #34)

    Please modify the #fetchOperationFS sample like this:

    Code:
    isc.ListGrid.create({
        ID:"dsListGrid",
        width: "100%",
        height: "100%",
        minFieldWidth:80,
        autoFetchData: true,
        canEdit:true,
        dataSource: "supplyItem"
    });
    supplyItem.ds.xml :

    Code:
    <DataSource
        ID="supplyItem"
        serverType="sql"
        tableName="supplyItem"
        titleField="itemName"
        testFileName="/examples/shared/ds/test_data/supplyItem.data.xml"
        dbImportFileName="/examples/shared/ds/test_data/supplyItemLarge.data.xml"
    >
        <fields>
            <field name="itemID"      type="sequence" hidden="true"       primaryKey="true"/>
            <field name="itemName"    type="text"     title="Item"        length="128"       required="true"/>
            <field name="SKU"         type="text"     title="SKU"         length="10"        required="true"/>
            <field name="description" type="text"     title="Description" length="2000">
                <validators>
                    <validator type="required" dependentFields="category">
                        <applyWhen operator="and">
                            <criteria>
                                <criterion fieldName="category" operator="equals" value="Adding Machine/calculator Roll"/>
                            </criteria>
                        </applyWhen>
                    </validator>
                </validators>
            </field>
            <field name="category"    type="text"     title="Category"    length="128"       required="true"
                   foreignKey="supplyCategory.categoryName"/>
            <field name="units"       type="enum"     title="Units"       length="5">
                <valueMap>
                    <value>Roll</value>
                    <value>Ea</value>
                    <value>Pkt</value>
                    <value>Set</value>
                    <value>Tube</value>
                    <value>Pad</value>
                    <value>Ream</value>
                    <value>Tin</value>
                    <value>Bag</value>
                    <value>Ctn</value>
                    <value>Box</value>
                </valueMap>
            </field>
            <field name="unitCost"    type="float"    title="Unit Cost">
                <validators>
                    <validator type="required" dependentFields="category">
                        <applyWhen operator="and">
                            <criteria>
                                <criterion fieldName="category" operator="notEqual" value="Adding Machine/calculator Roll"/>
                            </criteria>
                        </applyWhen>
                    </validator>
                </validators>
            </field>
            <field name="inStock"   type="boolean"  title="In Stock"/>
            <field name="nextShipment"  type="date" title="Next Shipment"/>
        </fields>
    </DataSource>
    Then edit the first row, which has category:"Adding Machine/calculator Roll", and delete the unitCost value.
    You'll get a server validation error on unitCost, but its validator must be inactive.

    server logs:
    Code:
     === 2017-02-09 11:50:38,650 [ec-4] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36': Safari with Accept-Encoding header
      === 2017-02-09 11:50:38,652 [ec-4] DEBUG XML - Parsed XML from (in memory stream): 1ms
      === 2017-02-09 11:50:38,653 [ec-4] DEBUG RPCManager - Processing 1 requests.
      === 2017-02-09 11:50:38,653 [ec-4] DEBUG RPCManager - Request #1 (DSRequest) payload: {
          criteria:{
              itemID:1
          },
          values:{
              itemID:1,
              unitCost:null
          },
          operationConfig:{
              dataSource:"supplyItem",
              repo:null,
              operationType:"update",
              textMatchStyle:"exact"
          },
          componentId:"dsListGrid",
          appID:"builtinApplication",
          operation:"supplyItem_update",
          oldValues:{
              category:"Adding Machine/calculator Roll",
              itemName:"Adding Machine Roll 57x57mm Standard",
              itemID:1,
              unitCost:0.41,
              SKU:"45300",
              inStock:true,
              units:"Roll"
          }
      }
      === 2017-02-09 11:50:38,653 [ec-4] INFO  IDACall - Performing 1 operation(s)
      === 2017-02-09 11:50:38,653 [ec-4] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2017-02-09 11:50:38,653 [ec-4] DEBUG DeclarativeSecurity - DataSource supplyItem is not in the pre-checked list, processing...
      === 2017-02-09 11:50:38,654 [ec-4] DEBUG AppBase - [builtinApplication.supplyItem_update] No userTypes defined, allowing anyone access to all operations for this application
      === 2017-02-09 11:50:38,654 [ec-4] DEBUG AppBase - [builtinApplication.supplyItem_update] No public zero-argument method named '_supplyItem_update' found, performing generic datasource operation
      === 2017-02-09 11:50:38,654 [ec-4] DEBUG ValidationContext - [builtinApplication.supplyItem_update] Adding validation errors at path '/supplyItem/unitCost': {errorMessage=Field is required}
      === 2017-02-09 11:50:38,654 [ec-4] INFO  Validation - [builtinApplication.supplyItem_update] Validation error: [
          {
              unitCost:{
                  errorMessage:"Field is required"
              }
          }
      ]
      === 2017-02-09 11:50:38,654 [ec-4] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
      === 2017-02-09 11:50:38,654 [ec-4] DEBUG RPCManager - non-DMI response, dropExtraFields: false
      === 2017-02-09 11:50:38,655 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 572
      === 2017-02-09 11:50:38,655 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 572
      === 2017-02-09 11:50:38,655 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 572
      === 2017-02-09 11:50:38,655 [ec-4] INFO  Compression - /isomorphic/IDACall: 216 -> 181 bytes

    Leave a comment:


  • claudiobosticco
    replied
    SmartClient Version: SNAPSHOT_v11.1d_2017-02-09/Enterprise Development Only (built 2017-02-09)

    Hello, the test case of posts #37 and #42 is fixed.

    There are still wrong validation errors for the test cases of posts #36 and #34.

    I'll rewrite them in another post.

    Leave a comment:


  • Isomorphic
    replied
    Both of these problems have the same cause, which is very similar to the other issues you reported; our earlier fix only partially solved the problem. So, sorry about that, and please try again with tomorrow's 11.1 / 6.1 build

    Leave a comment:


  • Isomorphic
    replied
    OK, we'll take another look

    Leave a comment:


  • claudiobosticco
    replied
    also for the test case of post #34, I'm still getting the same server validation error.

    edit the first row, which has category:"Adding Machine/calculator Roll", add a description and delete the unitCost value.
    You'll get a validation error on unitCost, but its validator must be inactive

    Code:
     === 2017-02-03 16:43:08,623 [ec-4] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36': Safari with Accept-Encoding header
      === 2017-02-03 16:43:08,625 [ec-4] DEBUG XML - Parsed XML from (in memory stream): 1ms
      === 2017-02-03 16:43:08,626 [ec-4] DEBUG RPCManager - Processing 1 requests.
      === 2017-02-03 16:43:08,626 [ec-4] DEBUG RPCManager - Request #1 (DSRequest) payload: {
          criteria:{
              itemID:1
          },
          values:{
              itemID:1,
              unitCost:null,
              description:"foo"
          },
          operationConfig:{
              dataSource:"supplyItem",
              repo:null,
              operationType:"update",
              textMatchStyle:"exact"
          },
          componentId:"dsListGrid",
          appID:"builtinApplication",
          operation:"supplyItem_update",
          oldValues:{
              category:"Adding Machine/calculator Roll",
              itemName:"Adding Machine Roll 57x57mm Standard",
              itemID:1,
              unitCost:2,
              SKU:"45300",
              inStock:true,
              units:"Roll"
          }
      }
      === 2017-02-03 16:43:08,626 [ec-4] INFO  IDACall - Performing 1 operation(s)
      === 2017-02-03 16:43:08,626 [ec-4] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2017-02-03 16:43:08,626 [ec-4] DEBUG DeclarativeSecurity - DataSource supplyItem is not in the pre-checked list, processing...
      === 2017-02-03 16:43:08,627 [ec-4] DEBUG AppBase - [builtinApplication.supplyItem_update] No userTypes defined, allowing anyone access to all operations for this application
      === 2017-02-03 16:43:08,627 [ec-4] DEBUG AppBase - [builtinApplication.supplyItem_update] No public zero-argument method named '_supplyItem_update' found, performing generic datasource operation
      === 2017-02-03 16:43:08,627 [ec-4] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] on field: 'unitCost' for validator type 'required', 'applyWhen' is:
      {
          operator:"and",
          criteria:[
              {
                  fieldName:"category",
                  operator:"notEqual",
                  value:"Adding Machine/calculator Roll"
              }
          ]
      }
      record is:
      {
          itemID:1,
          unitCost:null,
          description:"foo"
      }
      === 2017-02-03 16:43:08,627 [ec-4] DEBUG DeclarativeSecurity - [builtinApplication.supplyItem_update] Processing security checks for DataSource null, field null
      === 2017-02-03 16:43:08,627 [ec-4] DEBUG DeclarativeSecurity - [builtinApplication.supplyItem_update] Request is not a client request, ignoring security checks.
      === 2017-02-03 16:43:08,627 [ec-4] DEBUG AppBase - [builtinApplication.supplyItem_update, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2017-02-03 16:43:08,627 [ec-4] DEBUG AppBase - [builtinApplication.supplyItem_update, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2017-02-03 16:43:08,627 [ec-4] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] Performing fetch operation with
          criteria: {itemID:1}    values: {itemID:1}
      === 2017-02-03 16:43:08,628 [ec-4] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
      === 2017-02-03 16:43:08,628 [ec-4] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] 1128: Executing SQL query on 'HSQLDB': SELECT supplyItem.itemID, supplyItem.itemName, supplyItem.SKU, supplyItem.description, supplyItem.category, supplyItem.units, supplyItem.unitCost, supplyItem.inStock, supplyItem.nextShipment FROM supplyItem WHERE (supplyItem.itemID=1)
      === 2017-02-03 16:43:08,628 [ec-4] DEBUG SQLConnectionManager - [builtinApplication.supplyItem_update, builtinApplication.null] Borrowed connection '705003081'
      === 2017-02-03 16:43:08,628 [ec-4] INFO  SQLDriver - [builtinApplication.supplyItem_update, builtinApplication.null] Executing SQL query on 'HSQLDB' using connection '705003081': SELECT supplyItem.itemID, supplyItem.itemName, supplyItem.SKU, supplyItem.description, supplyItem.category, supplyItem.units, supplyItem.unitCost, supplyItem.inStock, supplyItem.nextShipment FROM supplyItem WHERE (supplyItem.itemID=1)
      === 2017-02-03 16:43:08,629 [ec-4] INFO  DSResponse - [builtinApplication.supplyItem_update] DSResponse: List with 1 items
      === 2017-02-03 16:43:08,630 [ec-4] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] NOTE: Record after applying stored values is:
      {
          itemID:1,
          unitCost:null,
          description:"foo"
      }
      === 2017-02-03 16:43:08,630 [ec-4] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] NOTE: Merged conditionRecord is:
      {
          itemName:"Adding Machine Roll 57x57mm Standard",
          category:"Adding Machine/calculator Roll",
          itemID:1,
          unitCost:null,
          description:"foo",
          SKU:"45300",
          inStock:true,
          units:"Roll"
      }
      === 2017-02-03 16:43:08,630 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"notEqual",
          value:"Adding Machine/calculator Roll",
          fieldName:"category"
      }: And
      === 2017-02-03 16:43:08,630 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
      === 2017-02-03 16:43:08,630 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
      === 2017-02-03 16:43:08,630 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
      === 2017-02-03 16:43:08,630 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnstrue
      === 2017-02-03 16:43:08,630 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: false
      === 2017-02-03 16:43:08,630 [ec-4] INFO  DefaultValidators - [builtinApplication.supplyItem_update] on field: 'unitCost' conditional validator of type 'required' is: inactive
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] on field: 'description' for validator type 'required', 'applyWhen' is:
      {
          operator:"and",
          criteria:[
              {
                  fieldName:"category",
                  operator:"equals",
                  value:"Adding Machine/calculator Roll"
              }
          ]
      }
      record is:
      {
          itemID:1,
          unitCost:null,
          description:"foo"
      }
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] NOTE: Record after applying stored values is:
      {
          itemID:1,
          unitCost:null,
          description:"foo"
      }
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] NOTE: Merged conditionRecord is:
      {
          itemName:"Adding Machine Roll 57x57mm Standard",
          category:"Adding Machine/calculator Roll",
          itemID:1,
          unitCost:null,
          description:"foo",
          SKU:"45300",
          inStock:true,
          units:"Roll"
      }
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"equals",
          value:"Adding Machine/calculator Roll",
          fieldName:"category"
      }: And
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnstrue
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: true
      === 2017-02-03 16:43:08,631 [ec-4] INFO  DefaultValidators - [builtinApplication.supplyItem_update] on field: 'description' conditional validator of type 'required' is: active
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"equals",
          value:"Adding Machine/calculator Roll",
          fieldName:"category"
      }: And
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (null): isEqualToConfiguredValue
      === 2017-02-03 16:43:08,631 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnsfalse
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: false
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"notEqual",
          value:"Adding Machine/calculator Roll",
          fieldName:"category"
      }: And
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (null): isEqualToConfiguredValue
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnsfalse
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: true
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG ValidationContext - [builtinApplication.supplyItem_update] Adding validation errors at path '/supplyItem/unitCost': {errorMessage=Field is required}
      === 2017-02-03 16:43:08,632 [ec-4] INFO  Validation - [builtinApplication.supplyItem_update] Validation error: [
          {
              unitCost:{
                  errorMessage:"Field is required"
              }
          }
      ]
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
      === 2017-02-03 16:43:08,632 [ec-4] DEBUG RPCManager - non-DMI response, dropExtraFields: false
      === 2017-02-03 16:43:08,633 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1123
      === 2017-02-03 16:43:08,633 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1123
      === 2017-02-03 16:43:08,633 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1123
      === 2017-02-03 16:43:08,633 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1128
      === 2017-02-03 16:43:08,633 [ec-4] DEBUG SQLDriver - Freeing SQLDriver dbConnection 705003081 for SQLDriver instance 1985704322
      === 2017-02-03 16:43:08,633 [ec-4] DEBUG SQLConnectionManager - About to close connection with hashcode "705003081"
      === 2017-02-03 16:43:08,633 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1128
      === 2017-02-03 16:43:08,633 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1128
      === 2017-02-03 16:43:08,633 [ec-4] INFO  Compression - /isomorphic/IDACall: 216 -> 181 bytes

    Leave a comment:


  • claudiobosticco
    replied
    SmartClient Version: SNAPSHOT_v11.1d_2017-02-01/Enterprise Development Only (built 2017-02-01)

    Sorry, I must have overlooked something. Please ignore post #40.

    Please repeat the test case of post #37, like so: edit SKU to 45301, and delete the units value.

    For SKU = 45301, units IS NOT required, and unitCost is required.

    So, I expect no validation error.

    Instead I get a server validation error for the unitCost field, which is not null.

    Code:
     === 2017-02-03 16:23:18,321 [ec-8] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36': Safari with Accept-Encoding header
      === 2017-02-03 16:23:18,325 [ec-8] DEBUG XML - Parsed XML from (in memory stream): 2ms
      === 2017-02-03 16:23:18,326 [ec-8] DEBUG RPCManager - Processing 1 requests.
      === 2017-02-03 16:23:18,326 [ec-8] DEBUG RPCManager - Request #1 (DSRequest) payload: {
          criteria:{
              itemID:1
          },
          values:{
              itemID:1,
              SKU:"45301",
              units:null
          },
          operationConfig:{
              dataSource:"supplyItem",
              repo:null,
              operationType:"update",
              textMatchStyle:"exact"
          },
          componentId:"dsListGrid",
          appID:"builtinApplication",
          operation:"supplyItem_update",
          oldValues:{
              category:"Adding Machine/calculator Roll",
              itemName:"Adding Machine Roll 57x57mm Standard",
              itemID:1,
              unitCost:2,
              SKU:"45300",
              inStock:true,
              units:"Roll"
          }
      }
      === 2017-02-03 16:23:18,326 [ec-8] INFO  IDACall - Performing 1 operation(s)
      === 2017-02-03 16:23:18,326 [ec-8] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2017-02-03 16:23:18,326 [ec-8] DEBUG DeclarativeSecurity - DataSource supplyItem is not in the pre-checked list, processing...
      === 2017-02-03 16:23:18,327 [ec-8] DEBUG AppBase - [builtinApplication.supplyItem_update] No userTypes defined, allowing anyone access to all operations for this application
      === 2017-02-03 16:23:18,327 [ec-8] DEBUG AppBase - [builtinApplication.supplyItem_update] No public zero-argument method named '_supplyItem_update' found, performing generic datasource operation
      === 2017-02-03 16:23:18,327 [ec-8] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] on field: 'unitCost' for validator type 'required', 'applyWhen' is:
      {
          operator:"and",
          criteria:[
              {
                  fieldName:"SKU",
                  operator:"notEqual",
                  value:"45300"
              }
          ]
      }
      record is:
      {
          itemID:1,
          unitCost:null,
          SKU:"45301",
          units:null
      }
      === 2017-02-03 16:23:18,327 [ec-8] DEBUG DeclarativeSecurity - [builtinApplication.supplyItem_update] Processing security checks for DataSource null, field null
      === 2017-02-03 16:23:18,327 [ec-8] DEBUG DeclarativeSecurity - [builtinApplication.supplyItem_update] Request is not a client request, ignoring security checks.
      === 2017-02-03 16:23:18,327 [ec-8] DEBUG AppBase - [builtinApplication.supplyItem_update, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2017-02-03 16:23:18,327 [ec-8] DEBUG AppBase - [builtinApplication.supplyItem_update, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2017-02-03 16:23:18,327 [ec-8] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] Performing fetch operation with
          criteria: {itemID:1}    values: {itemID:1}
      === 2017-02-03 16:23:18,328 [ec-8] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
      === 2017-02-03 16:23:18,328 [ec-8] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] 1019: Executing SQL query on 'HSQLDB': SELECT supplyItem.itemID, supplyItem.itemName, supplyItem.SKU, supplyItem.description, supplyItem.category, supplyItem.units, supplyItem.unitCost, supplyItem.inStock, supplyItem.nextShipment FROM supplyItem WHERE (supplyItem.itemID=1)
      === 2017-02-03 16:23:18,328 [ec-8] DEBUG SQLConnectionManager - [builtinApplication.supplyItem_update, builtinApplication.null] Borrowed connection '705003081'
      === 2017-02-03 16:23:18,328 [ec-8] INFO  SQLDriver - [builtinApplication.supplyItem_update, builtinApplication.null] Executing SQL query on 'HSQLDB' using connection '705003081': SELECT supplyItem.itemID, supplyItem.itemName, supplyItem.SKU, supplyItem.description, supplyItem.category, supplyItem.units, supplyItem.unitCost, supplyItem.inStock, supplyItem.nextShipment FROM supplyItem WHERE (supplyItem.itemID=1)
      === 2017-02-03 16:23:18,329 [ec-8] INFO  DSResponse - [builtinApplication.supplyItem_update] DSResponse: List with 1 items
      === 2017-02-03 16:23:18,330 [ec-8] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] NOTE: Record after applying stored values is:
      {
          itemID:1,
          unitCost:null,
          SKU:"45301",
          units:null
      }
      === 2017-02-03 16:23:18,330 [ec-8] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] NOTE: Merged conditionRecord is:
      {
          itemName:"Adding Machine Roll 57x57mm Standard",
          category:"Adding Machine/calculator Roll",
          itemID:1,
          unitCost:null,
          SKU:"45301",
          inStock:true,
          units:null
      }
      === 2017-02-03 16:23:18,330 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"notEqual",
          value:"45300",
          fieldName:"SKU"
      }: And
      === 2017-02-03 16:23:18,330 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "45301": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,330 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,330 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,330 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnsfalse
      === 2017-02-03 16:23:18,330 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: true
      === 2017-02-03 16:23:18,330 [ec-8] INFO  DefaultValidators - [builtinApplication.supplyItem_update] on field: 'unitCost' conditional validator of type 'required' is: active
      === 2017-02-03 16:23:18,330 [ec-8] DEBUG ValidationContext - [builtinApplication.supplyItem_update] Adding validation errors at path '/supplyItem/unitCost/unitCost': {errorMessage=Field is required}
      === 2017-02-03 16:23:18,331 [ec-8] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] on field: 'units' for validator type 'required', 'applyWhen' is:
      {
          operator:"and",
          criteria:[
              {
                  fieldName:"SKU",
                  operator:"equals",
                  value:"45300"
              }
          ]
      }
      record is:
      {
          itemID:1,
          unitCost:null,
          SKU:"45301",
          units:null
      }
      === 2017-02-03 16:23:18,331 [ec-8] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] NOTE: Record after applying stored values is:
      {
          itemID:1,
          unitCost:null,
          SKU:"45301",
          units:null
      }
      === 2017-02-03 16:23:18,331 [ec-8] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] NOTE: Merged conditionRecord is:
      {
          itemName:"Adding Machine Roll 57x57mm Standard",
          category:"Adding Machine/calculator Roll",
          itemID:1,
          unitCost:null,
          SKU:"45301",
          inStock:true,
          units:null
      }
      === 2017-02-03 16:23:18,331 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"equals",
          value:"45300",
          fieldName:"SKU"
      }: And
      === 2017-02-03 16:23:18,331 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "45301": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,331 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,331 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,331 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnsfalse
      === 2017-02-03 16:23:18,331 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: false
      === 2017-02-03 16:23:18,331 [ec-8] INFO  DefaultValidators - [builtinApplication.supplyItem_update] on field: 'units' conditional validator of type 'required' is: inactive
      === 2017-02-03 16:23:18,331 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"equals",
          value:"45300",
          fieldName:"SKU"
      }: And
      === 2017-02-03 16:23:18,331 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "45301": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnsfalse
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: false
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"notEqual",
          value:"45300",
          fieldName:"SKU"
      }: And
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "45301": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnsfalse
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: true
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG ValidationContext - [builtinApplication.supplyItem_update] Adding validation errors at path '/supplyItem/unitCost': {errorMessage=Field is required}
      === 2017-02-03 16:23:18,332 [ec-8] INFO  Validation - [builtinApplication.supplyItem_update] Validation error: [
          {
              unitCost:[
                  {
                      errorMessage:"Field is required"
                  },
                  {
                      errorMessage:"Field is required"
                  }
              ]
          }
      ]
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
      === 2017-02-03 16:23:18,332 [ec-8] DEBUG RPCManager - non-DMI response, dropExtraFields: false
      === 2017-02-03 16:23:18,333 [ec-8] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1024
      === 2017-02-03 16:23:18,333 [ec-8] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1024
      === 2017-02-03 16:23:18,333 [ec-8] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1024
      === 2017-02-03 16:23:18,333 [ec-8] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1019
      === 2017-02-03 16:23:18,333 [ec-8] DEBUG SQLDriver - Freeing SQLDriver dbConnection 705003081 for SQLDriver instance 983977414
      === 2017-02-03 16:23:18,333 [ec-8] DEBUG SQLConnectionManager - About to close connection with hashcode "705003081"
      === 2017-02-03 16:23:18,333 [ec-8] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1019
      === 2017-02-03 16:23:18,333 [ec-8] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 1019
      === 2017-02-03 16:23:18,333 [ec-8] INFO  Compression - /isomorphic/IDACall: 253 -> 186 bytes
    Last edited by claudiobosticco; 3 Feb 2017, 08:38.

    Leave a comment:


  • Isomorphic
    replied
    What are you saying is wrong here: that there should be no error, or that there should be an error but it should come from the server?

    Leave a comment:


  • claudiobosticco
    replied
    EDIT: bogus report, please ignore

    SmartClient Version: SNAPSHOT_v11.1d_2017-02-01/Enterprise Development Only (built 2017-02-01)

    Hello, the behavior has changed, maybe better but not yet correct.

    For the test case of post #37, there's a client validation error instead of a server validation error.

    Test case of post #34: same problem, client validation error instead of server validation error.
    Last edited by claudiobosticco; 3 Feb 2017, 08:48.

    Leave a comment:


  • Isomorphic
    replied
    We have been able to reproduce and fix this now - thanks for the repro case. Please try with tomorrow's build

    Leave a comment:


  • Isomorphic
    replied
    These look like they have the same underlying cause as the problem you originally reported a week or two ago that we were unable to get to the bottom of. We continue to investigate...

    Leave a comment:


  • claudiobosticco
    replied
    maybe it's the same root problem, but consider also this test case:

    Code:
    isc.ListGrid.create({
        ID:"dsListGrid", 
        width: "100%",
        height: "100%",
        minFieldWidth:80,
        autoFetchData: true,
        canEdit:true,
        dataSource: "supplyItem" 
    });
    Code:
    <[B]DataSource[/B]
        [B]ID[/B]="supplyItem"
        [B]serverType[/B]="sql"
        [B]tableName[/B]="supplyItem"
        [B]titleField[/B]="itemName"
        [B]testFileName[/B]="/examples/shared/ds/test_data/supplyItem.data.xml"
        [B]dbImportFileName[/B]="/examples/shared/ds/test_data/supplyItemLarge.data.xml"
    >
        <[B]fields[/B]>
            <[B]field[/B] [B]name[/B]="itemID"      [B]type[/B]="sequence" [B]hidden[/B]="true"       [B]primaryKey[/B]="true"/>
            <[B]field[/B] [B]name[/B]="itemName"    [B]type[/B]="text"     [B]title[/B]="Item"        [B]length[/B]="128"       [B]required[/B]="true"/>
            <[B]field[/B] [B]name[/B]="SKU"         [B]type[/B]="text"     [B]title[/B]="SKU"         [B]length[/B]="10"        [B]required[/B]="true"/>
            <[B]field[/B] [B]name[/B]="description" [B]type[/B]="text"     [B]title[/B]="Description" [B]length[/B]="2000">
               
            </[B]field[/B]>
            <[B]field[/B] [B]name[/B]="category"    [B]type[/B]="text"     [B]title[/B]="Category"    [B]length[/B]="128"       [B]required[/B]="true"
                   [B]foreignKey[/B]="supplyCategory.categoryName"/>
            <[B]field[/B] [B]name[/B]="units"       [B]type[/B]="text"     [B]title[/B]="Units"       [B]length[/B]="5">
                <[B]validators[/B]>
                    <[B]validator[/B] [B]type[/B]="required" [B]dependentFields[/B]="SKU">
                        <[B]applyWhen[/B] [B]operator[/B]="and">
                            <[B]criteria[/B]>
                                <[B]criterion[/B] [B]fieldName[/B]="SKU" [B]operator[/B]="equals" [B]value[/B]="45300"/>
                            </[B]criteria[/B]>
                        </[B]applyWhen[/B]>
                    </[B]validator[/B]>
                </[B]validators[/B]>
            </[B]field[/B]>
            <[B]field[/B] [B]name[/B]="unitCost"    [B]type[/B]="float"    [B]title[/B]="Unit Cost">
                <[B]validators[/B]>
                    <[B]validator[/B] [B]type[/B]="required" [B]dependentFields[/B]="SKU">
                        <[B]applyWhen[/B] [B]operator[/B]="and">
                            <[B]criteria[/B]>
                                <[B]criterion[/B] [B]fieldName[/B]="SKU" [B]operator[/B]="notEqual" [B]value[/B]="45300"/>
                            </[B]criteria[/B]>
                        </[B]applyWhen[/B]>
                    </[B]validator[/B]>
                </[B]validators[/B]>
            </[B]field[/B]>
            <[B]field[/B] [B]name[/B]="inStock"   [B]type[/B]="boolean"  [B]title[/B]="In Stock"/>
            <[B]field[/B] [B]name[/B]="nextShipment"  [B]type[/B]="date" [B]title[/B]="Next Shipment"/>
        </[B]fields[/B]>
    </[B]DataSource[/B]>
    then edit the first row (SKU=45300), change the SKU value to 45301 and delete the units value, you'll get a (wrong) validation error:

    Code:
     === 2017-01-27 14:48:40,908 [ec-4] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36': Safari with Accept-Encoding header
      === 2017-01-27 14:48:40,911 [ec-4] DEBUG XML - Parsed XML from (in memory stream): 2ms
      === 2017-01-27 14:48:40,913 [ec-4] DEBUG RPCManager - Processing 1 requests.
      === 2017-01-27 14:48:40,913 [ec-4] DEBUG RPCManager - Request #1 (DSRequest) payload: {
          criteria:{
              itemID:1
          },
          values:{
              itemID:1,
              SKU:"45301",
              units:null
          },
          operationConfig:{
              dataSource:"supplyItem",
              repo:null,
              operationType:"update",
              textMatchStyle:"exact"
          },
          componentId:"dsListGrid",
          appID:"builtinApplication",
          operation:"supplyItem_update",
          oldValues:{
              category:"Adding Machine/calculator Roll",
              itemName:"Adding Machine Roll 57x57mm Standard",
              itemID:1,
              unitCost:1,
              SKU:"45300",
              inStock:true,
              units:"Roll"
          }
      }
      === 2017-01-27 14:48:40,914 [ec-4] INFO  IDACall - Performing 1 operation(s)
      === 2017-01-27 14:48:40,914 [ec-4] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2017-01-27 14:48:40,914 [ec-4] DEBUG DeclarativeSecurity - DataSource supplyItem is not in the pre-checked list, processing...
      === 2017-01-27 14:48:40,914 [ec-4] DEBUG AppBase - [builtinApplication.supplyItem_update] No userTypes defined, allowing anyone access to all operations for this application
      === 2017-01-27 14:48:40,914 [ec-4] DEBUG AppBase - [builtinApplication.supplyItem_update] No public zero-argument method named '_supplyItem_update' found, performing generic datasource operation
      === 2017-01-27 14:48:40,914 [ec-4] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] on field: 'unitCost' for validator type 'required', 'applyWhen' is:
      {
          operator:"and",
          criteria:[
              {
                  fieldName:"SKU",
                  operator:"notEqual",
                  value:"45300"
              }
          ]
      }
      record is:
      {
          itemID:1,
          unitCost:null,
          SKU:"45301",
          units:null
      }
      === 2017-01-27 14:48:40,915 [ec-4] DEBUG DeclarativeSecurity - [builtinApplication.supplyItem_update] Processing security checks for DataSource null, field null
      === 2017-01-27 14:48:40,915 [ec-4] DEBUG DeclarativeSecurity - [builtinApplication.supplyItem_update] Request is not a client request, ignoring security checks.
      === 2017-01-27 14:48:40,915 [ec-4] DEBUG AppBase - [builtinApplication.supplyItem_update, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2017-01-27 14:48:40,915 [ec-4] DEBUG AppBase - [builtinApplication.supplyItem_update, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2017-01-27 14:48:40,915 [ec-4] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] Performing fetch operation with
          criteria: {itemID:1}    values: {itemID:1}
      === 2017-01-27 14:48:40,916 [ec-4] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
      === 2017-01-27 14:48:40,916 [ec-4] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] 884: Executing SQL query on 'HSQLDB': SELECT supplyItem.itemID, supplyItem.itemName, supplyItem.SKU, supplyItem.description, supplyItem.category, supplyItem.units, supplyItem.unitCost, supplyItem.inStock, supplyItem.nextShipment FROM supplyItem WHERE (supplyItem.itemID=1)
      === 2017-01-27 14:48:40,916 [ec-4] DEBUG SQLConnectionManager - [builtinApplication.supplyItem_update, builtinApplication.null] Borrowed connection '1487763774'
      === 2017-01-27 14:48:40,916 [ec-4] INFO  SQLDriver - [builtinApplication.supplyItem_update, builtinApplication.null] Executing SQL query on 'HSQLDB' using connection '1487763774': SELECT supplyItem.itemID, supplyItem.itemName, supplyItem.SKU, supplyItem.description, supplyItem.category, supplyItem.units, supplyItem.unitCost, supplyItem.inStock, supplyItem.nextShipment FROM supplyItem WHERE (supplyItem.itemID=1)
      === 2017-01-27 14:48:40,917 [ec-4] INFO  DSResponse - [builtinApplication.supplyItem_update] DSResponse: List with 1 items
      === 2017-01-27 14:48:40,918 [ec-4] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] NOTE: Record after applying stored values is:
      {
          category:"Adding Machine/calculator Roll",
          itemName:"Adding Machine Roll 57x57mm Standard",
          itemID:1,
          unitCost:1.0,
          SKU:"45300",
          inStock:true,
          units:"Roll"
      }
      === 2017-01-27 14:48:40,918 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"notEqual",
          value:"45300",
          fieldName:"SKU"
      }: And
      === 2017-01-27 14:48:40,918 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,918 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,918 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,919 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnstrue
      === 2017-01-27 14:48:40,919 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: false
      === 2017-01-27 14:48:40,919 [ec-4] INFO  DefaultValidators - [builtinApplication.supplyItem_update] on field: 'unitCost' conditional validator of type 'required' is: inactive
      === 2017-01-27 14:48:40,919 [ec-4] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] on field: 'units' for validator type 'required', 'applyWhen' is:
      {
          operator:"and",
          criteria:[
              {
                  fieldName:"SKU",
                  operator:"equals",
                  value:"45300"
              }
          ]
      }
      record is:
      {
          itemID:1,
          unitCost:1.0,
          SKU:"45301",
          units:null
      }
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] NOTE: Record after applying stored values is:
      {
          category:"Adding Machine/calculator Roll",
          itemName:"Adding Machine Roll 57x57mm Standard",
          itemID:1,
          unitCost:1.0,
          SKU:"45300",
          inStock:true,
          units:"Roll"
      }
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"equals",
          value:"45300",
          fieldName:"SKU"
      }: And
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnstrue
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: true
      === 2017-01-27 14:48:40,920 [ec-4] INFO  DefaultValidators - [builtinApplication.supplyItem_update] on field: 'units' conditional validator of type 'required' is: active
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG ValidationContext - [builtinApplication.supplyItem_update] Adding validation errors at path '/supplyItem/units/units': {errorMessage=Field is required}
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"equals",
          value:"45300",
          fieldName:"SKU"
      }: And
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "45301": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnsfalse
      === 2017-01-27 14:48:40,920 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: false
      === 2017-01-27 14:48:40,921 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"notEqual",
          value:"45300",
          fieldName:"SKU"
      }: And
      === 2017-01-27 14:48:40,921 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "45301": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,921 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,921 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:48:40,921 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnsfalse
      === 2017-01-27 14:48:40,921 [ec-4] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: true
      === 2017-01-27 14:48:40,921 [ec-4] INFO  Validation - [builtinApplication.supplyItem_update] Validation error: [
          {
              units:{
                  errorMessage:"Field is required"
              }
          }
      ]
      === 2017-01-27 14:48:40,921 [ec-4] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
      === 2017-01-27 14:48:40,921 [ec-4] DEBUG RPCManager - non-DMI response, dropExtraFields: false
      === 2017-01-27 14:48:40,921 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 879
      === 2017-01-27 14:48:40,921 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 879
      === 2017-01-27 14:48:40,922 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 879
      === 2017-01-27 14:48:40,922 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 884
      === 2017-01-27 14:48:40,922 [ec-4] DEBUG SQLDriver - Freeing SQLDriver dbConnection 1487763774 for SQLDriver instance 1282085988
      === 2017-01-27 14:48:40,922 [ec-4] DEBUG SQLConnectionManager - About to close connection with hashcode "1487763774"
      === 2017-01-27 14:48:40,922 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 884
      === 2017-01-27 14:48:40,922 [ec-4] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 884
      === 2017-01-27 14:48:40,922 [ec-4] INFO  Compression - /isomorphic/IDACall: 213 -> 179 bytes

    Leave a comment:


  • claudiobosticco
    replied
    SmartClient Version: SNAPSHOT_v11.1d_2017-01-25/Enterprise Development Only (built 2017-01-25)

    Hello, I'm still having problems with conditional required validators.

    Consider this test case:

    Code:
    isc.ListGrid.create({
        ID:"dsListGrid", 
        width: "100%",
        height: "100%",
        minFieldWidth:80,
        autoFetchData: true,
        canEdit:true,
        dataSource: "supplyItem" 
    });
    Code:
    <[B]DataSource[/B]
        [B]ID[/B]="supplyItem"
        [B]serverType[/B]="sql"
        [B]tableName[/B]="supplyItem"
        [B]titleField[/B]="itemName"
        [B]testFileName[/B]="/examples/shared/ds/test_data/supplyItem.data.xml"
        [B]dbImportFileName[/B]="/examples/shared/ds/test_data/supplyItemLarge.data.xml"
    >
        <[B]fields[/B]>
            <[B]field[/B] [B]name[/B]="itemID"      [B]type[/B]="sequence" [B]hidden[/B]="true"       [B]primaryKey[/B]="true"/>
            <[B]field[/B] [B]name[/B]="itemName"    [B]type[/B]="text"     [B]title[/B]="Item"        [B]length[/B]="128"       [B]required[/B]="true"/>
            <[B]field[/B] [B]name[/B]="SKU"         [B]type[/B]="text"     [B]title[/B]="SKU"         [B]length[/B]="10"        [B]required[/B]="true"/>
            <[B]field[/B] [B]name[/B]="description" [B]type[/B]="text"     [B]title[/B]="Description" [B]length[/B]="2000">
               
            </[B]field[/B]>
            <[B]field[/B] [B]name[/B]="category"    [B]type[/B]="text"     [B]title[/B]="Category"    [B]length[/B]="128"       [B]required[/B]="true"
                   [B]foreignKey[/B]="supplyCategory.categoryName"/>
            <[B]field[/B] [B]name[/B]="units"       [B]type[/B]="enum"     [B]title[/B]="Units"       [B]length[/B]="5">
                <[B]valueMap[/B]>
                    <[B]value[/B]>Roll</[B]value[/B]>
                    <[B]value[/B]>Ea</[B]value[/B]>
                    <[B]value[/B]>Pkt</[B]value[/B]>
                    <[B]value[/B]>Set</[B]value[/B]>
                    <[B]value[/B]>Tube</[B]value[/B]>
                    <[B]value[/B]>Pad</[B]value[/B]>
                    <[B]value[/B]>Ream</[B]value[/B]>
                    <[B]value[/B]>Tin</[B]value[/B]>
                    <[B]value[/B]>Bag</[B]value[/B]>
                    <[B]value[/B]>Ctn</[B]value[/B]>
                    <[B]value[/B]>Box</[B]value[/B]>
                </[B]valueMap[/B]>
            </[B]field[/B]>
            <[B]field[/B] [B]name[/B]="unitCost"    [B]type[/B]="float"    [B]title[/B]="Unit Cost">
                <[B]validators[/B]>
                    <[B]validator[/B] [B]type[/B]="required" [B]dependentFields[/B]="SKU">
                        <[B]applyWhen[/B] [B]operator[/B]="and">
                            <[B]criteria[/B]>
                                <[B]criterion[/B] [B]fieldName[/B]="SKU" [B]operator[/B]="equals" [B]value[/B]="45300"/>
                            </[B]criteria[/B]>
                        </[B]applyWhen[/B]>
                    </[B]validator[/B]>
                </[B]validators[/B]>
            </[B]field[/B]>
            <[B]field[/B] [B]name[/B]="inStock"   [B]type[/B]="boolean"  [B]title[/B]="In Stock"/>
            <[B]field[/B] [B]name[/B]="nextShipment"  [B]type[/B]="date" [B]title[/B]="Next Shipment"/>
        </[B]fields[/B]>
    </[B]DataSource[/B]>
    Edit the first row (SKU=45300) and delete the value in the unitCost column.
    You'll get a (client-side) validation error - correct.
    Than change the SKU to, say 45301. You'll get a (wrong) server side validation error:
    Code:
     === 2017-01-27 14:38:30,711 [ec-7] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36': Safari with Accept-Encoding header
      === 2017-01-27 14:38:30,713 [ec-7] DEBUG XML - Parsed XML from (in memory stream): 1ms
      === 2017-01-27 14:38:30,714 [ec-7] DEBUG RPCManager - Processing 1 requests.
      === 2017-01-27 14:38:30,714 [ec-7] DEBUG RPCManager - Request #1 (DSRequest) payload: {
          criteria:{
              itemID:1
          },
          values:{
              itemID:1,
              unitCost:null,
              SKU:"45301"
          },
          operationConfig:{
              dataSource:"supplyItem",
              repo:null,
              operationType:"update",
              textMatchStyle:"exact"
          },
          componentId:"dsListGrid",
          appID:"builtinApplication",
          operation:"supplyItem_update",
          oldValues:{
              category:"Adding Machine/calculator Roll",
              itemName:"Adding Machine Roll 57x57mm Standard",
              itemID:1,
              unitCost:1,
              SKU:"45300",
              inStock:true,
              units:"Roll"
          }
      }
      === 2017-01-27 14:38:30,714 [ec-7] INFO  IDACall - Performing 1 operation(s)
      === 2017-01-27 14:38:30,714 [ec-7] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
      === 2017-01-27 14:38:30,714 [ec-7] DEBUG DeclarativeSecurity - DataSource supplyItem is not in the pre-checked list, processing...
      === 2017-01-27 14:38:30,715 [ec-7] DEBUG AppBase - [builtinApplication.supplyItem_update] No userTypes defined, allowing anyone access to all operations for this application
      === 2017-01-27 14:38:30,715 [ec-7] DEBUG AppBase - [builtinApplication.supplyItem_update] No public zero-argument method named '_supplyItem_update' found, performing generic datasource operation
      === 2017-01-27 14:38:30,715 [ec-7] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] on field: 'unitCost' for validator type 'required', 'applyWhen' is:
      {
          operator:"and",
          criteria:[
              {
                  fieldName:"SKU",
                  operator:"equals",
                  value:"45300"
              }
          ]
      }
      record is:
      {
          itemID:1,
          unitCost:null,
          SKU:"45301"
      }
      === 2017-01-27 14:38:30,715 [ec-7] DEBUG DeclarativeSecurity - [builtinApplication.supplyItem_update] Processing security checks for DataSource null, field null
      === 2017-01-27 14:38:30,715 [ec-7] DEBUG DeclarativeSecurity - [builtinApplication.supplyItem_update] Request is not a client request, ignoring security checks.
      === 2017-01-27 14:38:30,715 [ec-7] DEBUG AppBase - [builtinApplication.supplyItem_update, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
      === 2017-01-27 14:38:30,715 [ec-7] DEBUG AppBase - [builtinApplication.supplyItem_update, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
      === 2017-01-27 14:38:30,715 [ec-7] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] Performing fetch operation with
          criteria: {itemID:1}    values: {itemID:1}
      === 2017-01-27 14:38:30,716 [ec-7] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
      === 2017-01-27 14:38:30,716 [ec-7] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] 831: Executing SQL query on 'HSQLDB': SELECT supplyItem.itemID, supplyItem.itemName, supplyItem.SKU, supplyItem.description, supplyItem.category, supplyItem.units, supplyItem.unitCost, supplyItem.inStock, supplyItem.nextShipment FROM supplyItem WHERE (supplyItem.itemID=1)
      === 2017-01-27 14:38:30,716 [ec-7] DEBUG SQLConnectionManager - [builtinApplication.supplyItem_update, builtinApplication.null] Borrowed connection '1487763774'
      === 2017-01-27 14:38:30,716 [ec-7] INFO  SQLDriver - [builtinApplication.supplyItem_update, builtinApplication.null] Executing SQL query on 'HSQLDB' using connection '1487763774': SELECT supplyItem.itemID, supplyItem.itemName, supplyItem.SKU, supplyItem.description, supplyItem.category, supplyItem.units, supplyItem.unitCost, supplyItem.inStock, supplyItem.nextShipment FROM supplyItem WHERE (supplyItem.itemID=1)
      === 2017-01-27 14:38:30,717 [ec-7] INFO  DSResponse - [builtinApplication.supplyItem_update] DSResponse: List with 1 items
      === 2017-01-27 14:38:30,717 [ec-7] DEBUG DefaultValidators - [builtinApplication.supplyItem_update] NOTE: Record after applying stored values is:
      {
          category:"Adding Machine/calculator Roll",
          itemName:"Adding Machine Roll 57x57mm Standard",
          itemID:1,
          unitCost:1.0,
          SKU:"45300",
          inStock:true,
          units:"Roll"
      }
      === 2017-01-27 14:38:30,718 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"equals",
          value:"45300",
          fieldName:"SKU"
      }: And
      === 2017-01-27 14:38:30,718 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:38:30,718 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:38:30,718 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:38:30,718 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnstrue
      === 2017-01-27 14:38:30,718 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: true
      === 2017-01-27 14:38:30,718 [ec-7] INFO  DefaultValidators - [builtinApplication.supplyItem_update] on field: 'unitCost' conditional validator of type 'required' is: active
      === 2017-01-27 14:38:30,718 [ec-7] DEBUG ValidationContext - [builtinApplication.supplyItem_update] Adding validation errors at path '/supplyItem/unitCost/unitCost': {errorMessage=Field is required}
      === 2017-01-27 14:38:30,718 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
          operatorId:"equals",
          value:"45300",
          fieldName:"SKU"
      }: And
      === 2017-01-27 14:38:30,718 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "45301": isEqualToConfiguredValue
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "45300": isEqualToConfiguredValue
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnsfalse
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: false
      === 2017-01-27 14:38:30,719 [ec-7] INFO  Validation - [builtinApplication.supplyItem_update] Validation error: [
          {
              unitCost:{
                  errorMessage:"Field is required"
              }
          }
      ]
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG RPCManager - non-DMI response, dropExtraFields: false
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 826
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 826
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 826
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 831
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG SQLDriver - Freeing SQLDriver dbConnection 1487763774 for SQLDriver instance 1074486331
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG SQLConnectionManager - About to close connection with hashcode "1487763774"
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 831
      === 2017-01-27 14:38:30,719 [ec-7] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 831
      === 2017-01-27 14:38:30,719 [ec-7] INFO  Compression - /isomorphic/IDACall: 216 -> 181 bytes

    Leave a comment:

Working...
X