Servoy 3.0 Release Candidate 3

So, to anyone who’s interested: working with Jan offline, we found the issue. It’s an issue in all Oracle JDBC drivers (as far as i tested anyway).

Servoy retrieves metadata about the DB when connecting to it (which tables exists in the DB and which (and what kind of ) columns do they have).

Apparently, in 3.0, Servoy has added a feature that defaults values setup in the DB are read into Servoy when doing this.

On Oracle, this causes problems. My guess is that the JDBC driver internally queries the Oracle repository (not the same as Servoy’s repository, but the same idea: it stores info on all objects in an Oracle DB).

In this repository, Oracle uses the datatype LONG (legacy from the early days I guess, they advise developers not to use this DataType for their tables…) for storing default values.

Since LONG datatypes can contain lots of data, the data is streamed to the client.

Due to some reason, if the stream has not finished, but the program moves to the next row, the stream is automatically closed, causing the error I encountered (at least that is my understanding of how it goes :D ).

Now, to make it even more interesting, this only seems to happen when the LONG column is queried as the last column in the select.

Since Servoy just added this defaultvalue retrieval, it was at the end of retrieving info about each column.

The issue is now fixed by just moving the retrieval of the default value up in the code, in front of the retrieval of all other column info.

So, to make a long story short: It works again, as of 3.0 RC4

Paul