nextcloud / tables

🍱 Nextcloud tables app
https://apps.nextcloud.com/apps/tables
GNU Affero General Public License v3.0
142 stars 24 forks source link

Error on updating a row with a date #1143

Open blizzz opened 3 months ago

blizzz commented 3 months ago

Steps to reproduce

  1. Have a table with two columns that are dates.
  2. Have a row where one date is set, the other is left empty.
  3. Edit the row, and set the date to a different value. Do not touch the other, empty date.
  4. Save

If the second date would be set, and eventually unset, the store would work. So it seems something is wrong with the default value.

Expected behavior

The changes are saved

Actual behavior

An error message occurs instead

Tables app version

0.7.3

Browser

No response

Client operating system

No response

Operating system

No response

Web server

None

PHP engine version

None

Database

None

Additional info

{
  "reqId": "CtyDU7KmvH78JbkN8NwB",
  "level": 3,
  "time": "2024-06-14T16:15:27+00:00",
  "remoteAddr": "123.123.123.123",
  "user": "asdf",
  "app": "index",
  "method": "PUT",
  "url": "/apps/tables/row/12345",
  "message": "OCA\\Tables\\Service\\ColumnTypes\\SuperBusiness::isValidDate(): Argument #1 ($dateString) must be of type string, null given, called in /path/to/nextcloud/apps/tables/lib/Service/ColumnTypes/DatetimeDateBusiness.php on line 24 in file '/path/to/nextcloud/apps/tables/lib/Service/ColumnTypes/SuperBusiness.php' line 35",
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:126.0) Gecko/20100101 Firefox/126.0",
  "version": "29.0.2.2",
  "exception": {
    "Exception": "Exception",
    "Message": "OCA\\Tables\\Service\\ColumnTypes\\SuperBusiness::isValidDate(): Argument #1 ($dateString) must be of type string, null given, called in /path/to/nextcloud/apps/tables/lib/Service/ColumnTypes/DatetimeDateBusiness.php on line 24 in file '/path/to/nextcloud/apps/tables/lib/Service/ColumnTypes/SuperBusiness.php' line 35",
    "Code": 0,
    "Trace": [
      {
        "file": "/path/to/nextcloud/lib/private/AppFramework/App.php",
        "line": 184,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          [
            "OCA\\Tables\\Controller\\RowController"
          ],
          "updateSet"
        ]
      },
      {
        "file": "/path/to/nextcloud/lib/private/Route/Router.php",
        "line": 338,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::",
        "args": [
          "OCA\\Tables\\Controller\\RowController",
          "updateSet",
          [
            "OC\\AppFramework\\DependencyInjection\\DIContainer"
          ],
          [
            "12345",
            "tables.row.updateset"
          ]
        ]
      },
      {
        "file": "/path/to/nextcloud/lib/base.php",
        "line": 1050,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->",
        "args": [
          "/apps/tables/row/12345"
        ]
      },
      {
        "file": "/path/to/nextcloud/index.php",
        "line": 49,
        "function": "handleRequest",
        "class": "OC",
        "type": "::",
        "args": []
      }
    ],
    "File": "/path/to/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
    "Line": 170,
    "Previous": {
      "Exception": "TypeError",
      "Message": "OCA\\Tables\\Service\\ColumnTypes\\SuperBusiness::isValidDate(): Argument #1 ($dateString) must be of type string, null given, called in /path/to/nextcloud/apps/tables/lib/Service/ColumnTypes/DatetimeDateBusiness.php on line 24",
      "Code": 0,
      "Trace": [
        {
          "file": "/path/to/nextcloud/apps/tables/lib/Service/ColumnTypes/DatetimeDateBusiness.php",
          "line": 24,
          "function": "isValidDate",
          "class": "OCA\\Tables\\Service\\ColumnTypes\\SuperBusiness",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***",
            "Y-m-d"
          ]
        },
        {
          "file": "/path/to/nextcloud/apps/tables/lib/Service/RowService.php",
          "line": 270,
          "function": "canBeParsed",
          "class": "OCA\\Tables\\Service\\ColumnTypes\\DatetimeDateBusiness",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***",
            [
              "OCA\\Tables\\Db\\Column",
              1600
            ]
          ]
        },
        {
          "file": "/path/to/nextcloud/apps/tables/lib/Service/RowService.php",
          "line": 253,
          "function": "parseValueByColumnType",
          "class": "OCA\\Tables\\Service\\RowService",
          "type": "->",
          "args": [
            [
              "OCA\\Tables\\Db\\Column",
              1600
            ],
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/path/to/nextcloud/apps/tables/lib/Service/RowService.php",
          "line": 401,
          "function": "cleanupData",
          "class": "OCA\\Tables\\Service\\RowService",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***",
            [
              [
                "OCA\\Tables\\Db\\Column",
                1580
              ],
              [
                "OCA\\Tables\\Db\\Column",
                1581
              ],
              [
                "OCA\\Tables\\Db\\Column",
                1582
              ],
              [
                "OCA\\Tables\\Db\\Column",
                1583
              ],
              [
                "OCA\\Tables\\Db\\Column",
                1584
              ],
              "And 17 more entries, set log level to debug to see all entries"
            ],
            301,
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/path/to/nextcloud/apps/tables/lib/Controller/RowController.php",
          "line": 116,
          "function": "updateSet",
          "class": "OCA\\Tables\\Service\\RowService",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/path/to/nextcloud/apps/tables/lib/Controller/Errors.php",
          "line": 16,
          "function": "OCA\\Tables\\Controller\\{closure}",
          "class": "OCA\\Tables\\Controller\\RowController",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/path/to/nextcloud/apps/tables/lib/Controller/RowController.php",
          "line": 117,
          "function": "handleError",
          "class": "OCA\\Tables\\Controller\\RowController",
          "type": "->",
          "args": [
            [
              "Closure"
            ]
          ]
        },
        {
          "file": "/path/to/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
          "line": 232,
          "function": "updateSet",
          "class": "OCA\\Tables\\Controller\\RowController",
          "type": "->",
          "args": [
            "*** sensitive parameters replaced ***"
          ]
        },
        {
          "file": "/path/to/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
          "line": 138,
          "function": "executeController",
          "class": "OC\\AppFramework\\Http\\Dispatcher",
          "type": "->",
          "args": [
            [
              "OCA\\Tables\\Controller\\RowController"
            ],
            "updateSet"
          ]
        },
        {
          "file": "/path/to/nextcloud/lib/private/AppFramework/App.php",
          "line": 184,
          "function": "dispatch",
          "class": "OC\\AppFramework\\Http\\Dispatcher",
          "type": "->",
          "args": [
            [
              "OCA\\Tables\\Controller\\RowController"
            ],
            "updateSet"
          ]
        },
        {
          "file": "/path/to/nextcloud/lib/private/Route/Router.php",
          "line": 338,
          "function": "main",
          "class": "OC\\AppFramework\\App",
          "type": "::",
          "args": [
            "OCA\\Tables\\Controller\\RowController",
            "updateSet",
            [
              "OC\\AppFramework\\DependencyInjection\\DIContainer"
            ],
            [
              "12345",
              "tables.row.updateset"
            ]
          ]
        },
        {
          "file": "/path/to/nextcloud/lib/base.php",
          "line": 1050,
          "function": "match",
          "class": "OC\\Route\\Router",
          "type": "->",
          "args": [
            "/apps/tables/row/12345"
          ]
        },
        {
          "file": "/path/to/nextcloud/index.php",
          "line": 49,
          "function": "handleRequest",
          "class": "OC",
          "type": "::",
          "args": []
        }
      ],
      "File": "/path/to/nextcloud/apps/tables/lib/Service/ColumnTypes/SuperBusiness.php",
      "Line": 35
    },
    "message": "OCA\\Tables\\Service\\ColumnTypes\\SuperBusiness::isValidDate(): Argument #1 ($dateString) must be of type string, null given, called in /path/to/nextcloud/apps/tables/lib/Service/ColumnTypes/DatetimeDateBusiness.php on line 24 in file '/path/to/nextcloud/apps/tables/lib/Service/ColumnTypes/SuperBusiness.php' line 35",
    "exception": {},
    "CustomMessage": "OCA\\Tables\\Service\\ColumnTypes\\SuperBusiness::isValidDate(): Argument #1 ($dateString) must be of type string, null given, called in /path/to/nextcloud/apps/tables/lib/Service/ColumnTypes/DatetimeDateBusiness.php on line 24 in file '/path/to/nextcloud/apps/tables/lib/Service/ColumnTypes/SuperBusiness.php' line 35"
  }
}
blizzz commented 3 months ago

Mh, on main I cannot add or change dates in general