Announcement

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

    #31
    Yes, the validation should not be happening for an included field - we're looking into it right now. claudiobosticco we see why you are getting the problem causing the validation to fire inappropriately, but right now the underlying cause is not clear - again, we are looking into it

    Comment


      #32
      We have committed a change to correct the problem where conditionallyRequired is still honored on includeFrom fields. Please try with tomorrow's build (6.1d only). We do not yet have an explanation for your second problem, the one you describe in post #22. Could you please confirm that you still see this problem with tomorrow's build?

      Blama While looking into this, we also had an insight into an unusual circumstance which might cause an includeFrom field to inherit the source field's validations - it is indeed to do with the internal "__cachedType" property, but it is not that straightforward and would happen both rarely and unpredictably, exactly as is your experience. Tomorrow's builds (5.0p and greater) will also contain a fix for that issue - please try it and let us know.

      Comment


        #33
        Hi Isomorphic,

        that's great news, thank you. I'll try and then observe if I ever get complaints for that issue again. So feedback might take a while.

        Best regards
        Blama

        Comment


          #34
          Originally posted by Isomorphic View Post
          We have committed a change to correct the problem where conditionallyRequired is still honored on includeFrom fields. Please try with tomorrow's build (6.1d only).
          SmartClient Version: SNAPSHOT_v11.1d_2017-01-25/Enterprise Development Only (built 2017-01-25)
          Chrome on OSX Sierra
          I can confirm it's fixed, thank you very much.

          Originally posted by Isomorphic View Post
          We do not yet have an explanation for your second problem, the one you describe in post #22. Could you please confirm that you still see this problem with tomorrow's build?
          Yes, I see it. 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 validation error on unitCost, but its validator must be inactive (and the logs are saying so)

          Code:
           === 2017-01-25 11:51:47,086 [ec-6] INFO  RequestContext - URL: '/isomorphic/IDACall', User-Agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36': Safari with Accept-Encoding header
            === 2017-01-25 11:51:47,088 [ec-6] DEBUG XML - Parsed XML from (in memory stream): 1ms
            === 2017-01-25 11:51:47,099 [ec-6] DEBUG RPCManager - Processing 1 requests.
            === 2017-01-25 11:51:47,099 [ec-6] DEBUG RPCManager - Request #1 (DSRequest) payload: {
                criteria:{
                    itemID:1
                },
                values:{
                    itemID:1,
                    description:"foo",
                    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-01-25 11:51:47,099 [ec-6] INFO  IDACall - Performing 1 operation(s)
            === 2017-01-25 11:51:47,100 [ec-6] DEBUG DeclarativeSecurity - Processing security checks for DataSource null, field null
            === 2017-01-25 11:51:47,100 [ec-6] DEBUG DeclarativeSecurity - DataSource supplyItem is not in the pre-checked list, processing...
            === 2017-01-25 11:51:47,100 [ec-6] DEBUG AppBase - [builtinApplication.supplyItem_update] No userTypes defined, allowing anyone access to all operations for this application
            === 2017-01-25 11:51:47,100 [ec-6] DEBUG AppBase - [builtinApplication.supplyItem_update] No public zero-argument method named '_supplyItem_update' found, performing generic datasource operation
            === 2017-01-25 11:51:47,102 [ec-6] 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-01-25 11:51:47,103 [ec-6] DEBUG SQLDataSource - [builtinApplication.supplyItem_update] DataSource 643 acquired SQLDriver instance 208205053 during initialization
            === 2017-01-25 11:51:47,103 [ec-6] DEBUG DeclarativeSecurity - [builtinApplication.supplyItem_update] Processing security checks for DataSource null, field null
            === 2017-01-25 11:51:47,103 [ec-6] DEBUG DeclarativeSecurity - [builtinApplication.supplyItem_update] Request is not a client request, ignoring security checks.
            === 2017-01-25 11:51:47,104 [ec-6] DEBUG AppBase - [builtinApplication.supplyItem_update, builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application
            === 2017-01-25 11:51:47,104 [ec-6] DEBUG AppBase - [builtinApplication.supplyItem_update, builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation
            === 2017-01-25 11:51:47,104 [ec-6] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] Performing fetch operation with
                criteria: {itemID:1}    values: {itemID:1}
            === 2017-01-25 11:51:47,106 [ec-6] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] derived query: SELECT $defaultSelectClause FROM $defaultTableClause WHERE $defaultWhereClause
            === 2017-01-25 11:51:47,106 [ec-6] INFO  SQLDataSource - [builtinApplication.supplyItem_update, builtinApplication.null] 643: 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-25 11:51:47,107 [ec-6] DEBUG SQLConnectionManager - [builtinApplication.supplyItem_update, builtinApplication.null] Borrowed connection '83164503'
            === 2017-01-25 11:51:47,107 [ec-6] INFO  SQLDriver - [builtinApplication.supplyItem_update, builtinApplication.null] Executing SQL query on 'HSQLDB' using connection '83164503': 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-25 11:51:47,108 [ec-6] INFO  DSResponse - [builtinApplication.supplyItem_update] DSResponse: List with 1 items
            === 2017-01-25 11:51:47,109 [ec-6] 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:0.41,
                SKU:"45300",
                description:"foo",
                inStock:true,
                units:"Roll"
            }
            === 2017-01-25 11:51:47,133 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
                operatorId:"notEqual",
                value:"Adding Machine/calculator Roll",
                fieldName:"category"
            }: And
            === 2017-01-25 11:51:47,133 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
            === 2017-01-25 11:51:47,133 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
            === 2017-01-25 11:51:47,134 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
            === 2017-01-25 11:51:47,134 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnstrue
            === 2017-01-25 11:51:47,134 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: false
            === 2017-01-25 11:51:47,134 [ec-6] INFO  DefaultValidators - [builtinApplication.supplyItem_update] on field: 'unitCost' conditional validator of type 'required' is: inactive
            === 2017-01-25 11:51:47,134 [ec-6] 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-01-25 11:51:47,134 [ec-6] 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:0.41,
                SKU:"45300",
                description:"foo",
                inStock:true,
                units:"Roll"
            }
            === 2017-01-25 11:51:47,134 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
                operatorId:"equals",
                value:"Adding Machine/calculator Roll",
                fieldName:"category"
            }: And
            === 2017-01-25 11:51:47,135 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
            === 2017-01-25 11:51:47,135 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
            === 2017-01-25 11:51:47,135 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
            === 2017-01-25 11:51:47,135 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnstrue
            === 2017-01-25 11:51:47,135 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: true
            === 2017-01-25 11:51:47,135 [ec-6] INFO  DefaultValidators - [builtinApplication.supplyItem_update] on field: 'description' conditional validator of type 'required' is: active
            === 2017-01-25 11:51:47,135 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
                operatorId:"equals",
                value:"Adding Machine/calculator Roll",
                fieldName:"category"
            }: And
            === 2017-01-25 11:51:47,135 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (null): isEqualToConfiguredValue
            === 2017-01-25 11:51:47,135 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
            === 2017-01-25 11:51:47,136 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
            === 2017-01-25 11:51:47,136 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnsfalse
            === 2017-01-25 11:51:47,136 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: false
            === 2017-01-25 11:51:47,136 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] criterion (class com.isomorphic.criteria.criterion.SimpleCriterion): {
                operatorId:"notEqual",
                value:"Adding Machine/calculator Roll",
                fieldName:"category"
            }: And
            === 2017-01-25 11:51:47,136 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] value (null): isEqualToConfiguredValue
            === 2017-01-25 11:51:47,136 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] operand (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
            === 2017-01-25 11:51:47,136 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] passedOp (class java.lang.String): "Adding Machine/calculator Roll": isEqualToConfiguredValue
            === 2017-01-25 11:51:47,136 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] isEqualToConfiguredValue returnsfalse
            === 2017-01-25 11:51:47,136 [ec-6] DEBUG DefaultOperators - [builtinApplication.supplyItem_update] And 0/0: true
            === 2017-01-25 11:51:47,137 [ec-6] DEBUG ValidationContext - [builtinApplication.supplyItem_update] Adding validation errors at path '/supplyItem/unitCost': {errorMessage=Field is required}
            === 2017-01-25 11:51:47,137 [ec-6] INFO  Validation - [builtinApplication.supplyItem_update] Validation error: [
                {
                    unitCost:{
                        errorMessage:"Field is required"
                    }
                }
            ]
            === 2017-01-25 11:51:47,138 [ec-6] DEBUG RPCManager - Content type for RPC transaction: text/plain; charset=UTF-8
            === 2017-01-25 11:51:47,138 [ec-6] DEBUG RPCManager - non-DMI response, dropExtraFields: false
            === 2017-01-25 11:51:47,138 [ec-6] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 638
            === 2017-01-25 11:51:47,138 [ec-6] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 638
            === 2017-01-25 11:51:47,138 [ec-6] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 638
            === 2017-01-25 11:51:47,138 [ec-6] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 643
            === 2017-01-25 11:51:47,138 [ec-6] DEBUG SQLDriver - Freeing SQLDriver dbConnection 83164503 for SQLDriver instance 208205053
            === 2017-01-25 11:51:47,138 [ec-6] DEBUG SQLConnectionManager - About to close connection with hashcode "83164503"
            === 2017-01-25 11:51:47,138 [ec-6] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 643
            === 2017-01-25 11:51:47,139 [ec-6] DEBUG SQLDataSource - About to clear SQLDriver state for DS instance 643
            === 2017-01-25 11:51:47,139 [ec-6] INFO  Compression - /isomorphic/IDACall: 216 -> 181 bytes
          Last edited by claudiobosticco; 3 Feb 2017, 08:36.

          Comment


            #35
            well actually it seems that also a simpler test case shows the same problem:
            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="notEqual" 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>
            there's a problem with the 'notEqual' operator ? If I use greaterThan for example, it works.

            Comment


              #36
              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

              Comment


                #37
                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

                Comment


                  #38
                  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...

                  Comment


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

                    Comment


                      #40
                      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.

                      Comment


                        #41
                        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?

                        Comment


                          #42
                          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.

                          Comment


                            #43
                            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

                            Comment


                              #44
                              OK, we'll take another look

                              Comment


                                #45
                                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

                                Comment

                                Working...
                                X