Github user afs commented on the issue:
https://github.com/apache/jena/pull/345
It does not need to change. It will behave as before.
The changes here differentiate between a table that is of class
`TableEmpty`, using function `TableEmpty.isTableEmpty`, and a table that
evaluates to empty (no rows) using method `Table.isEmpty`. Previously, there
was only the latter method.
`VALUES ?foo {}` creates algebra `TableN` with declared variable `?foo` and
no rows. It printed (incorrectly) as `(table empty)` but internally it was a
`TableN` and method `isEmpty` is true (no rows).
Now it prints as `(table (vars ?foo))`. There is no change to the data
structure in the algebra.
The difference is on conversion to a string, and on `.equals`, then only if
read in again because it was not round-tripping the data structure, even if it
evaluated to the same thing. Declared variables make no difference to the value
of a table and that follows the SPARQL 1.1 spec exactly.
As it makes no eval difference, we haven't noticed before.
---