GemBuilder for Java (GBJ) version 3.1.2 is a new release of the GemBuilder for Java product. This release provides compatibility with GemStone/S 64 Bit version 3.3, and includes several bug fixes.
These release notes provide details of the changes between the previous version of GBJ, version 3.1.1, and this release. Please read through them before installing, to acquaint yourself with the changes. If you are upgrading from a version earlier than 3.1.1, please refer to the Release Notes for each intermediate release as well. In particular, version 3.1 contained substantial internal redesign and significant changes.
To install GemBuilder for Java v3.1.2, follow the instructions in the GemBuilder for Java Installation Guidefor v3.1.2.
This version of GemBuilder for Java supports GemStone/S 64 Bit v3.3 and later only, and cannot be used with 32-Bit GemStone/S.
With versions of GemStone/S 64 Bit v3.2 and later and GemBuilder for Java v3.1.2, authorization for using GemBuilder for Java is provided by the GS/64 keyfile. You will need to have a keyfile that provides authorization for use with GemBuilder for Java in order to use GemBuilder for Java.
Keyfiles for versions earlier than GemStone/S 64 Bit 3.3 cannot be used in version 3.3.
If you require a keyfile, write to keyfiles@gemtalksystems.com, or contact GemTalk Technical Support.
GemBuilder for Java version 3.1.2 is tested and supported on the following GemStone server product versions and platforms:
v3.1.2 of GBJ requires Java version 8. It was built and tested using 1.8.0_51.
GBJ now supports a more java-centric way of receiving notifications for changed objects; this notification is similar to how transactional events and gem-to-gem signals are handled.
This is activated by setting the GbjSession field objChgNotify to true.
The objects for which you want notification on changes are set using the standard GemStone server mechanisms, e.g. System class >> addToNotifySet:. For more on this mechanism, See the Programmers Guide for GemStone/S 64 Bit.
The application then uses an application-specific subclass of GbjObserver, overriding the method update() to catch object notify signals via the notify message "ObjChg". For more detail, see the javadocs for the GbjObserver class.
When activating object change monitoring via a GbjSession's monitorChangedObjects flag, if the GbjSession connect() call is immediately followed by another server interaction, it was possible to encounter a GbjException on GemStone error 2203 - "GCI operation requested while a nonblocking or thread safe call in progress for the session". (#44646)
When starting the GbjLauncher, it will occasionally trip over a NullPointerException during initialization of its Java Swing graphics components. (#40614)
Some GbjException stack traces returned null, rather than the appropriate message. Now, these messages are included; the header format has also changed slightly, from "GCI Interface Error/" to "GBJ Error:". (#44705)
Using the GbjSession method registerStub( ) caused the GbjGciException: "GCI Interface Error/Object table put on oop zero". (#44618)
Trying to use a client forwarder in GS smalltalk code to a java method on the client triggered a java.lang.ClassCastException. (#45749)
Gem-to-gem and object change notification are activated by setting the flag monitorSessionSignals to true. This triggered a GBJ classes not loaded error during login. (#44659)
The GbjTest.zip containing the Android example now uses the IntelliJ IDEA based setup, Android Studio, rather than the Eclipse/ADT environment. (#44891, #44523)