Servoy, Tiger and Java 1.5

Hi,

did anyone tested both 2.1.2 and 2.2 under Tiger with updated Java?

Apparantly it is officially released now.

So far Servoy works well with it. As it gets installed next to the 1.4.2 release you can always switch back if you experience any problems.

Things we found so far:
-jnlp does not auto open from safari anymore
-in client menu’s are not in the apple menu bar but have their own windows like bar.

We will investigate if we can do something about these two issues or file them with apple.

By default 1.4.2 remains the default java so we don’t expect this to be a problem.

additionally: Tiger appears to be 20-40% faster running Java applications like Servoy. This also applies to the default Java 1.4 that tiger ships with.

Hi Jaleman,

Could you give us an update about Mac OS X’s hardware graphic java acceleration that once was in 1.3.1 and then got disabled ?

Is servoy ok with it, is it enabled by default with servoy, does it give speed gains ?

I’m very concerned about Mac performance, as I’m moving from FMP 6 because it’s too slow, but I feel servoy is even slower, at least is interface.

not sure about the java graphic accelleration bit but I can happily say that Servoy is awesome in Tiger. Since switching ALL my development from FMP to Servoy a few years ago, my only remaining niggle about Servoy has been perceived speed. Tiger has apparently fixed it (although curiously it doesn’t seem to make much difference whether it is Java 1.4.2 or 1.5 - which you can now choose at will)

Now FMP feels slow. :D

Thunder:
not sure about the java graphic accelleration bit but I can happily say that Servoy is awesome in Tiger. Since switching ALL my development from FMP to Servoy a few years ago, my only remaining niggle about Servoy has been perceived speed. Tiger has apparently fixed it (although curiously it doesn’t seem to make much difference whether it is Java 1.4.2 or 1.5 - which you can now choose at will)
Now FMP feels slow. :D

That’s great to know! What is your Mac profile in wich you develop and/or host your Servoy solution(s)?

We noticed several javascript errors with java = 1.4.2-38 (Mac OS X) under Tiger, which does not appear under XP.

Among them: a variable is modified during a parameter concatenation (in an array): N

example:

requests.push(formName + utils.stringLeft(fieldArray[i], utils.stringPosition(fieldArray[i], '=', 1, 1)) + data.getDataProviderID());
or
requests.push(formName + fieldArray[i].replace('\^1', data.getDataProviderID()));

In Tiger, both of these lines are changing the content of the formName variable!
It seems that scripts involving concat (+) function and eval are mainly concerned by bug.

Another new error with Tiger appears when creating a new record in a table, displaying the following error log:

java.sql.SQLException: JZ0SE: Invalid object type (or null object) specified for setObject().
java.sql.SQLException: JZ0SE: Invalid object type (or null object) specified for setObject().
	at com.sybase.jdbc2.jdbc.ErrorMessage.raiseError(ErrorMessage.java:498)
	at com.sybase.jdbc2.jdbc.SybPreparedStatement.setObject(SybPreparedStatement.java:482)
	at com.sybase.jdbc2.jdbc.SybPreparedStatement.setObject(SybPreparedStatement.java:494)
	at sun.reflect.GeneratedMethodAccessor136.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at com.servoy.j2db.persistence.datasource.p.invoke(Unknown Source)
	at $Proxy1.setObject(Unknown Source)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:228)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:228)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:228)
	at com.servoy.j2db.dataprocessing.SQLEngine.a(Unknown Source)
	at com.servoy.j2db.dataprocessing.SQLEngine.performUpdates(Unknown Source)
	at com.servoy.j2db.dataprocessing.ax.a(Unknown Source)
	at com.servoy.j2db.dataprocessing.FoundSet.updateRecord(Unknown Source)
	at com.servoy.j2db.dataprocessing.FoundSet.stopEditing(Unknown Source)
	at com.servoy.j2db.dataprocessing.ao.if(Unknown Source)
	at com.servoy.j2db.dataprocessing.ao.stopEditing(Unknown Source)
	at com.servoy.j2db.FormPanel.saveData(Unknown Source)
	at com.servoy.j2db.dataui.l$1.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Component.java:5166)
	at java.awt.Component.processEvent(Component.java:4963)
	at java.awt.Container.processEvent(Container.java:1613)
	at java.awt.Component.dispatchEventImpl(Component.java:3681)
	at java.awt.Container.dispatchEventImpl(Container.java:1671)
	at java.awt.Component.dispatchEvent(Component.java:3543)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3527)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3242)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3172)
	at java.awt.Container.dispatchEventImpl(Container.java:1657)
	at java.awt.Window.dispatchEventImpl(Window.java:1606)
	at java.awt.Component.dispatchEvent(Component.java:3543)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:178)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:170)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
com.servoy.j2db.persistence.RepositoryException: java.sql.SQLException: JZ0SE: Invalid object type (or null object) specified for setObject(). JZ0SE: Invalid object type (or null object) specified for setObject().
com.servoy.j2db.persistence.RepositoryException: java.sql.SQLException: JZ0SE: Invalid object type (or null object) specified for setObject(). JZ0SE: Invalid object type (or null object) specified for setObject().
	at com.servoy.j2db.dataprocessing.SQLEngine.performUpdates(Unknown Source)
	at com.servoy.j2db.dataprocessing.ax.a(Unknown Source)
	at com.servoy.j2db.dataprocessing.FoundSet.updateRecord(Unknown Source)
	at com.servoy.j2db.dataprocessing.FoundSet.stopEditing(Unknown Source)
	at com.servoy.j2db.dataprocessing.ao.if(Unknown Source)
	at com.servoy.j2db.dataprocessing.ao.stopEditing(Unknown Source)
	at com.servoy.j2db.FormPanel.saveData(Unknown Source)
	at com.servoy.j2db.dataui.l$1.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Component.java:5166)
	at java.awt.Component.processEvent(Component.java:4963)
	at java.awt.Container.processEvent(Container.java:1613)
	at java.awt.Component.dispatchEventImpl(Component.java:3681)
	at java.awt.Container.dispatchEventImpl(Container.java:1671)
	at java.awt.Component.dispatchEvent(Component.java:3543)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3527)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3242)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3172)
	at java.awt.Container.dispatchEventImpl(Container.java:1657)
	at java.awt.Window.dispatchEventImpl(Window.java:1606)
	at java.awt.Component.dispatchEvent(Component.java:3543)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:178)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:170)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

The strange thing is that I did NOT experience any speed difference on my PB 1.33ghz.
Another thing is that the client doesn’t show with the menu’s in the right place. The developer thoughs shows them in the right place…