Odd Data display in Servoy 4.1.7

Hi,

We just upgraded our solution from Servoy 4.1.5 to Servoy 4.1.7. We also did a java upgrade from Java 1.6 update 18 to Java 1.6 update 20.

We have a time-sheet solution where we enter time entries for a particular day. In Servoy 4.1.7 we have an odd data display behavior.

On creation of the time-sheet record and we select start time as 8:30am and end time as 9:30am. When we create the next record we have default entries to start time and end time with a 1 hour increment, hence the next records start time is 9:30am and end time is 10:30am. The odd part is the first record end time display will change from 9:30 am to 10:30 am. When we keep creating new records the first records end time display keeps changing.

When we looked directly in the MySQL table raw data we found that the end time value for that record have not changed. So when I shut down the smart client and restart it, the time entries display correctly but the moment I start creating new records it again starts displaying the odd behavior.

The MySQL database stores the correct time entries but the smart client has some data display issue in Servoy 4.1.7. Once I reverted back to Servoy 4.1.5 the solution was behaving normally.

Is there any suggestion that could help me debug this situation.

Below is the server information

Server Information
Servoy version 4.1.7 -build 690
Repository version 35 (c42be7ca-90eb-45c2-a487-be4ef373abeb)
Current time: Wed Jun 16 13:40:37 EDT 2010

JDK Information
java.vm.name=Java HotSpot(TM) Client VM
java.version=1.6.0_20-b02
java.vm.info=mixed mode, sharing
java.vm.vendor=Sun Microsystems Inc.

Operating System Information
os.name=Windows XP
os.version=5.1
os.arch=x86

System Information
Heap memory: allocated=124296K, used=112479K, max=506816K
None Heap memory: allocated=96480K, used=85354K, max=317440K

Regards
James Dcunha
The Support Group

Anybody has any ideas or suggestions???

James

HAve you checked that the use client timezone is true in the admin page?

Hi Thomas,

It is set to true.

James

Hi James,

could it be related to that issue http://forum.servoy.com/viewtopic.php?f=5&t=14140?

Hi Patrick,

After reading the other posts I think it could be related to it. I am following that post and will see if the issue can get resolved.

Thanks for letting me know.

Regards
James

you are saying that when you use Servoy 4.1.5 with the exact same server settings and exact same java versions (on client and server) you dont have this problem
but when you upgrade then to 4.1.7 (and the rest stays the same) you get suddenly problems with displaying dates?

Yes you got it correct.

Initially when our solution was on Servoy 4.1.5 and jre 1.6 update 18 a subset of our users had the java automatically upgraded to Java 1.6 update 20 (Java auto update happens on MAC) and as a result our solution was unable to launch on their respective machines. We then decided to upgrade our solution from Servoy 4.1.5 to 4.1.7 and java version to java 1.6 update 20 so we can have everyone access the solution with the latest jre version.

Once we did the upgrade to Servoy 4.1.7 and then testing our program keeping the same servoy server settings we started having the odd date display issue on our timesheets.

The solution upgraded to Servoy 4.1.7 is unable to launch with client machines running on jre 1.6 update 18.

Currently we reverted back to Servoy 4.1.5 and have all our clients use the application with jre 1.6 update 18 (we downgraded all our clients jre 1.6 version from update 20 to update 18).

Eventually we want to move ahead using the latest servoy and jre version.

I hope this helps.

Regards
James

i currently dont have any idea what that could be between 4.15 and 4.17

can you reproduce this somehow in a small sample with the same data?

Also is it still the same with 5.2?

I tested the solution with Servoy 5.2 and the problem still persists.

The time-sheet code consists of a lot of business rule code and does fire a lot of triggers. I don’t think I will be able to reproduce this in a small sample file with the same data.

I would like to test this solution in 4.1.6 to see if the problem persists. Could I get a build of Servoy 4.1.6 to see if the problem exists?

In case the problem still exists how do we proceed ahead.

Regards
James

what is there between the reading of the code from the database and showing in the client?

For example if you would make a very simple form that just displays fields of that specific table, those fields are already wrong?
I just want to know if it is something in between or not.
Are the servoy server and client both in the same time zone (as is the db?)

Hi Jan,

Yes the servoy server, the client and the database are in the same timezone

I ran a test with 4.1.6 and the problem still persists. I did create a simple time-sheet layout with the affected fields in the layout (end time is the faulty display field)
Servoy Simple layout with the first record’s end time displaying as 12:30pm when it is supposed to display as 9:30am
[attachment=2]timesheet1.JPG[/attachment]

Mysql GUI console which show the end time as 9:30 for the first record in the view
[attachment=1]timesheet2.JPG[/attachment]

Servoy layout that shows the faulty display at 12:30 instead of 9:30
[attachment=0]timesheet3.JPG[/attachment]

On relaunching the smart client the data then displays correctly.

Let me know if I need to run some additional tests.

Regards
James Dcunha

so all other time fields work fine
except for the first (new record??) and then the end_time??

the start time for that record is ok.
And start/end times for all other records are also fine??

I have no idea how that can happen, for that i really need a sample that demonstrates this behavior (with a my sql db/dump or something)

As seen in the screen-shot the end time display for the first record keeps changing as we keep adding new time-sheet records for that day. End time display of 12:30 in the first record corresponds to the end time display of the 4th record.

All the other time fields work fine. I will create a support case with a copy of the solution and sample mysql data dump and send it over.

Regards
James Dcunha

Hi Jan,

I created a support case. Let me know if you need any additional information.

Regards
James

Hi Jan,

The solution of adding the wrapping the array element inside a date object worked. When I it in on Servoy Developer and launching the smart client it showed me all the dates correctly and on adding records did not modify the end time of the first record. Thanks for that.

I found another issue when I moved the solution for deployment.

Attached is screen shot with the correct display on the smart client when I launch in Servoy Developer.
[attachment=1]screenshot1.JPG[/attachment]

Screen-shot below is when I deploy it on a machine through servoy application server
[attachment=0]screenshot2.JPG[/attachment]

I am using jre 1.6 update 20 and Servoy 4.1.7.

Is it some servoy admin setting that needs to be taken care off?

Appreciate your help on this.

Regards
James Dcunha

my biggest guess that this is a timezone issue
What is the timezone that the client is in and the server?

what is your value (on the admin pages of your server) of servoy.use.client.timezone ?

If you always want 8:30 to be 8:30 on what ever client then that property should be set to true

servoy.use.client.timezone is set to true.

Timezone on the server (i.e windows xp machine) and the client is set to GMT -05:00 Eastern Time (US & Canada)

James

then i cant explain it, what happens if you insert data with the client
and show it in another client (which is in another time zone for example)?
if that property is set to true then a client really displays what the database does return. (as the string representation)

why the data is not showing i dont know i havent looked how that list is build up, how it is exactly displayed.

Hi Jan,

Found a solution. You are right it was the timezone. I am using Servoy 4.1.7 and jre 1.6 update 21. The server timezone is (GMT -05:00) Eastern time. the servoy.useClientTimezone is set to true

When I download the solution to a client machine, I check the timezone and it shows it as UTC. When I login to the solution all the date entries and time entries are off. Then i change the client timezone to ETC/(-5) (as that of the server) and close the solution. I have to restart the server and then open up the solution on the client and then all the time and date entries display correctly.

If I clear my java cache and .servoy file on the client machine and download the solution again. I have to do the steps above to get the time entries to show correctly.

When I set servoy.useClientTimezone to false my solution behaves totally incorrect, so I don’t think setting it to false is an option.

Why do I have to restart the application server for the effect on the client to take place?

I would ideally like to just change the client timezone and not restart the server for the application to behave correctly. Is that possible?

Regards
James Dcunha