The WebObjects Current Patch List, document 70037, contains information on all available patches and updates for all versions of WebObjects. Read this document if you're not sure which update you need on your system.
This update includes modified WebObjects client-side Java classes and jars. On Mac OS X Server and Microsoft Windows the update installer automatically places the modified classes and jars in your web server's document root directory. On Sun Solaris, the update installer places the modified classes in the WebObjects installation (in $NEXT_ROOT/Library/WebObjects/WODocumentRoot/WebObjects) but does not copy them to your web server's document root directory. To use the new files, you must install them in the correct location for the web server being used.
WebObjects 5.1.2 for Mac OS X (Server) 10.1.4
Important: There are two mutually exclusive updates for this platform. If you have WebObjects 5.1 Developer installed on Mac OS X 10.1.4, you need the WebObjects 5.1.2 Developer update. If you have WebObjects 5.1 Deployment installed on Mac OS X Server 10.1.4, you need the WebObjects 5.1.2 Deployment update. You do not need both on any system.
This update is available through the Software Update feature of Mac OS X. If you use this method, only the proper update for the software which you have installed on your system is visible and available for download. If you prefer to download and install the package manually, follow the instructions below.
Note: WebObjects 5.1.2 Deployment requires:
2. December 2001 Mac OS X 10.1 Developer Tools
3. Java 1.3.1 Update 1
4. April 2002 Security Update
5. WebObjects 5.1 Developer
6. WebObjects 5.1.2 Developer
These instructions are for manually downloading and installing WebObjects 5.1.2 Developer. If you are installing using Software Update, see WebObjects 5.1.2 for Mac OS X Server 10.1.4, above.
Note: WebObjects 5.1.2 Developer requires:
2. Double-click WO51MacOSXDevUpdate2.pkg.
The Authorization panel opens.
Only an administrator can install the update.
3. Click the lock icon at the bottom left of the panel to authenticate for administrative access, then click OK.
4. Click Continue in the Introduction panel.
5. Read the software license agreement then click Continue.
6. To agree to the license and continue the installation, click Agree.
7. Select the volume containing Mac OS X and WebObjects 5.1 Developer, then click Continue.
8. Make sure that there are no WebObjects or EOF applications running.
9. Click Install to proceed with installation.
The Installer window displays information about the progress of the installation, which may take several minutes.
10. Restart your computer.
These instructions are for manually downloading and installing WebObjects 5.1.2 Deployment. If you are installing using Software Update, see WebObjects 5.1.2 for Mac OS X Server 10.1.4, above.
Note: WebObjects 5.1.2 Deployment requires:
2. Double-click WO51MacOSXDepUpdate2.pkg.
The Authorization panel opens.
Only an administrator can install the update.
3. Click the lock icon at the bottom left of the panel to authenticate for administrative access, then click OK.
4. Click the Continue button in the Introduction panel.
5. Read the software license agreement and then click Continue.
6. To agree to the license and continue the installation, click Agree.
7. Select the volume that contains Mac OS X Server and WebObjects 5.1 Deployment and then click Continue.
8. Make sure that there are no WebObjects or EOF applications running.
9. Click Install to proceed with installation.
The Installer window displays information about the progress of the installation, which may take several minutes.
10. Restart your computer.
Notes:
1. Download WO51WinUpdate2.exe, the self-extracting update installer for Windows 2000.
The update is available from:
http://download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/MultiCountry/Enterprise/webobjects/patches/5.1/WO51WinUpdate2.exe
2. Log in as a user with Administrator privileges.
3. Make sure that there are no WebObjects or EOF applications running.
4. Double-click on the update installer, WO51WinUpdate2.exe, to start the installation process.
A screen appears with some information about this update.
5. After you have read the information screen, click Next to continue.
The license agreement for this update appears.
6. To agree to the license and continue the installation, click Yes.
The update will be installed on your system and you will be asked if you want to restart.
7. Select Yes, I want to restart my computer now to restart Windows.
The WinZip self-extractor automatically quits and removes its temporary files in about 20 seconds.
2. Log in as root.
3. Make sure that there are no WebObjects or EOF applications running, including Monitor.
4. If a web server is running on the computer on which you are installing the update, stop it.
5. Stop WebObjects services (wotaskd and woservice) using the WOServices script. At the command prompt enter:
cd $NEXT_ROOT/Library/WebObjects/Executables
./WOServices stop
These services will restart when you restart the computer after installing the update.
6. To Install the update, cd to the directory containing the update and the patcher.sh installation script. Then at the command prompt enter:
patcher.sh -install WO51SolarisUpdate2.TAR.Z
For more information on using patcher.sh, at the command prompt enter:
patcher.sh -help
7. Copy the updated WODocument root to your web server's document root.
cp -r $NEXT_ROOT/Library/WebObjects/WODocumentRoot/WebObjects <webserver doc root>/WebObjects
8. restart your computer.
NPE with a compound primary key whose value types are other than 'i'
Apple Reference 2838002
ISSUE:
In some circumstances, using a compound primary key with a value type other than 'i' would result in EOF replacing one component of the key with null.
RESOLUTION:
This issue has been corrected.
WOResourceManager generating incorrect URLs when WOApp accessed via web server
Apple Reference 2838073
ISSUE:
WOResourceManager generates incorrect URLs when an app started in ProjectBuilder is accessed via a web server. This can cause images to fail to load.
RESOLUTION:
This issue has been corrected. It only occurs if the app detects that its project is currently open in ProjectBuilder when the instance is launched. This issue does not affect deployed apps.
EOModeler fails to launch FileMerge when merging .java files (Windows)
Apple Reference 2851049
ISSUE:
EOModeler fails to merge .java files in FileMerge because FileMerge does not launch. Also, FileMerge fails to show differences when the path to the eomodel has a directory with a space in its name. This issue is specific to the Windows platform.
RESOLUTION:
This issue has been corrected.
EOModeler fails to overwrite existing .java file (Windows)
Apple Reference 2851267
ISSUE:
EOModeler fails to overwrite previously generated files when generating java files for an entity. This issue is specific to the Windows platform.
RESOLUTION:
This issue has been corrected. In addition, EOModeler now includes an option to merge any differences using FileMerge.
In-memory qualification returns too many objects
Apple Reference 2852347
ISSUE:
Qualification of in-memory objects returns objects with null values in addition to the desired objects.
RESOLUTION:
For EOQualifier on in-memory objects, the operators <, >, <=, and >= always return false if either operand is null. However, = and != treat null values as equal to null and return the appropriate result. EOSortingOrder treats null as negative infinity.
NPE in EOClassDescription when propagating deletes
Apple Reference 2856718
ISSUE:
If a to-many relationship was set to null, EOClassDescription throws a null pointer exception when propagating deletes through the to-many relationship.
RESOLUTION:
This issue has been corrected.
The command "opendiff" does not launch FileMerge (Windows)
Apple Reference 2869320
ISSUE:
On Windows the "opendiff" command will not launch FileMerge.
RESOLUTION:
This issue has been corrected.
"unable to increment snapshot count for object" exception in fetch
Apple Reference 2869648
ISSUE:
EOEditingContext.objectsWithFetchSpecification() fails sometimes with an exception similar to:
java.lang.IllegalStateException: incrementSnapshotCountForGlobalID: com.webobjects.eoaccess.EODatabase - unable to increment snapshot count for object with global ID xxx - no snapshot exists.
RESOLUTION:
WebObjects 5.1.2 corrects one possible way this exception can occur. However, the issue remains under investigation.
NSTimeZone.setDefault() should accept java.util.TimeZone
Apple Reference 2881499
ISSUE:
NSTimeZone.setDefault() throws an IllegalArgumentException when passed a java.util.TimeZone.
RESOLUTION:
NSTimeZone.setDefault() has been modified to accept a java.util.TimeZone.
NSTimeZones hash to zero
Apple Reference 2894077
ISSUE:
All NSTimeZones hash to zero.
RESOLUTION:
This issue has been corrected.
NSTimestamp() creates an incorrect timestamp
Apple Reference 2894102
ISSUE:
If an NSTimestamp is created using NSTimestamp(int year, int month, int date, int hour, int minute, int second, TimeZone tz) with values which refer to a time before the reference date, the created NSTimestamp is off by one second.
RESOLUTION:
This issue has been corrected.
NSTimeZone.getGMT() should be public
Apple Reference 2894146
ISSUE:
NSTimeZone.getGMT() should be public.
RESOLUTION:
NSTimeZone.getGMT() is now public and returns an NSTimeZone corresponding to Etc/GMT (GMT) offset 0.
NSTimestamp throws when using custom Java time zone
Apple Reference 2894493
ISSUE:
NSTimestamp throws an exception when using a custom Java time zone like GMT+06:00.
RESOLUTION:
NSTimeZone now supports time zones of the form GMT[+|-]hh:mm. They can be generated using NSTimeZone.timeZoneForSecondsFromGMT(int secondsOffsetFromGMT).
NSTimestamp(System.currentTimeMillis(), 999999999) throws an exception
Apple Reference 2894495
ISSUE:
NSTimestamp(System.currentTimeMillis(), 999999999) throws an exception. This method should only throw an exception when the nanos argument is greater than 999999999.
RESOLUTION:
This issue has been corrected.
NSTImeZone.setDefault() to NSLocalTimeZone should throw
Apple Reference 2894496
ISSUE:
It should be invalid to set the default time zone to NSLocalTimeZone.
RESOLUTION:
NSTimeZone.setDefault() now throws an IllegalArgumentException when passed an NSLocalTimeZone.
NPE if you call hashCode() on an NSLocalTimeZone object
Apple Reference 2894498
ISSUE:
Calling hashCode() on an NSLocalTimeZone object results in a null pointer exception.
RESOLUTION:
NSLocalTimeZone.hashCode() now returns the hash code of defaultTimeZone().
NSTimestampFormatter.parseObject() cannot parse arbitrary GMT timezone strings
Apple Reference 2894500
ISSUE:
NSTimestampFormatter.parseObject() cannot parse arbitrary GMT timezone strings like "GMT+12:15".
RESOLUTION:
This issue has been corrected.
Some abbreviations don't have corresponding time zone.
Apple Reference 2894502
ISSUE:
Some abbreviations don't have a corresponding NSTimeZone.
RESOLUTION:
This issue has been corrected.
timeZoneForSecondsFromGMT doesn't deal with extra seconds
Apple Reference 2894503
ISSUE:
Any extra seconds that were not part of whole hours and minutes were included in the offset of the apolitical time zone created.
RESOLUTION:
Extra seconds are now rounded to the nearest minute. For example:
NSTimeZone.timeZoneForSecondsFromGMT(-30) = GMT-00:01 () offset -60
NSTimeZone.timeZoneForSecondsFromGMT(-29) = GMT-00:00 () offset 0
NSTimeZone.timeZoneForSecondsFromGMT(30) = GMT+00:01 () offset 60
NSTimeZone.timeZoneForSecondsFromGMT(29) = GMT+00:00 () offset 0
NSTimestampFormatter.parseObjectInUTC can fail
Apple Reference 2894504
ISSUE:
NSTimestampFormatter.parseObjectInUTC() fails when the parse position is not at the beginning of the string.
RESOLUTION:
This issue has been corrected.
Apolitical time zones always return a zero offset from GMT
Apple Reference 2894505
ISSUE:
NSTimeZone.getRawOffset() is returning zero for apolitical time zones like "Etc/GMT+9".
RESOLUTION:
Apolitical time zones now return their offset from GMT. Geopolitical time zones will return zero, as many do not have one generic offset.
NSTimeZone.getAvailableIDs() contains "Factory"
Apple Reference 2894507
ISSUE:
NSTimeZone.getAvailableIDs() returns an incorrect entry "Factory".
RESOLUTION:
This issue has been corrected.
Corrected in WebObjects 5.1.1
NSTimeZone : timeZoneFromSecondsFromGMT() returns no time zone even when value is valid
Apple Reference 2814979
ISSUE:
NSTimeZone.timeZoneFromSecondsFromGMT() returned null when the offset was a valid value for an apolitical time zone.
RESOLUTION:
If the seconds offset from GMT corresponds to a whole hour between 12 and -12 inclusive, this method reuses an existing, well-known, apolitical NSTimeZone object for that offset. Only whole hour offsets should by passed to this method in WebObjects 5.1.1.
NSPathUtilities.stringByDeletingLastPathComponent() returns incorrect result on Windows
Apple Reference 2822553
ISSUE:
On Windows, NSPathUtilities.stringByDeletingLastPathComponent() returns an incorrect result if the root directory is specified. For example, an input of "C:/" incorrectly returns "C:" rather than "C:/".
RESOLUTION:
This problem has been corrected.
NSTimestamp.microsecondOfSecond is off by a factor of 1000
Apple Reference 2837997
ISSUE:
In WebObjects 5.1, NSTimestamp.microsecondOfSecond() actually returns milliseconds.
RESOLUTION:
This problem has been corrected.
NSTimestampFormatter does not format NSTimestamp in the local time zone
Apple Reference 2838080
ISSUE:
In WebObjects 5.1, NSTimestampFormatter does not format NSTimestamp in the local time zone.
RESOLUTION:
NSTImestampFormatter now defaults to the local time zone.
WOEventDisplay gives an error screen when logging is on
Apple Reference 2844727
ISSUE:
Viewing the event display page can result in a ClassCastException.
RESOLUTION:
This problem has been corrected.
NSTimestamp does not have SUID for serialization
Apple Reference 2847504
ISSUE:
WebObjects 5.1 cannot read NSTimestamps serialized in WebObjects 5.0.
RESOLUTION:
The serialID in WebObjects 5.1.1 has been changed to match the serialID in WebObjects 5.0. In WebObjects 5.1.1, NSTimestamp will read WebObjects 5.0/5.1.1 serialized Timestamps and write WebObjects 5.1.1 NSTimestamps.
NSTimestamp data that was serialized using WebObjects 5.1 cannot be deserialized using WebObjects 5.1.1. However, data can be migrated using NSTimestampFormatter. A WebObjects 5.1 tool can use NSTimestampFormatter to convert NSTimestamps to Strings. Then a WebObjects 5.1.1 tool can use NSTimestampFormatter to convert the Strings back to NSTimestamps.
NSTimestampFormatter.parseObject creates incorrect timestamp
Apple Reference 2849628
ISSUE:
NSTimestampFormatter.parseObject creates an incorrect timestamp when the string being parsed does not use GMT for the time zone.
RESOLUTION:
This problem has been corrected. Please review any subclasses of NSTimestampFormatter you may have used to work around this problem in your WebObjects 5.1 applications.
NSTimeZone.localTimeZone() raises
Apple Reference 2849630
ISSUE:
Using NSTimeZone.localTimeZone() with NSTimestampFormatter raises an exception.
RESOLUTION:
This problem has been corrected.
backtracking page cache not working properly
Apple Reference 2849640
ISSUE:
Backtracking in a browser and repeating a request or reloading a previously generated page incorrectly causes the request/response loop to execute rather than simply returning the cached page. (See WOApplication.setPageRefreshOnBacktrackEnabled().)
RESOLUTION:
The page cache now functions properly. Additionally, a request's form values (if any) are now considered when determining whether to return a cached page. If the user backtracks and repeats a request with modified form values, the request/response loop will execute. However, with the current implementation, the responses for both sets of form values remain in the cache. If the user backtracks a second time and makes another request with the original form values, the request/response loop will not execute and the cached page will be returned.
The documentation for WOApplication.setPageRefreshOnBacktrackEnabled() is incorrect on one point. The documentation states "By default, this attribute is set to false." The default in WebObjects 5.1 is true.
WO5.1 Win2K Cannot Launch Apps
Apple Reference 2849676
ISSUE:
Launching WebObjects 5.1 applications on Windows 2000 with European localization can fail with an error similar to:
443 was unexpected at this time.
This is a problem in the application launcher .cmd file generated when the application is built. The WebObjects build tools have been modified to produce correct .cmd files. However, existing .cmd files must be regenerated to incorporate this change. If you are experiencing this problem you must rebuild your application after installing WebObjects 5.1.1.
NullPointerException in WO5.1 with many to many relationships
Apple Reference 2850322
ISSUE:
In WebObjects 5.1, if an EOModel defines a many to many relationship that is only modeled in one direction, an error occurs attempting to access the entity which does not have the relationship modeled.
RESOLUTION:
This problem has been corrected.
An optimistic locking failure can cause subsequent fetch failures
Apple Reference 2852342
ISSUE:
An exception can leave the JDBCChannel in a bad state. Thereafter, a SELECT query can be incorrectly sent via a JDBC executeUpdate() call, raising a JDBCAdaptorException.
RESOLUTION:
This problem has been corrected.
Opening Components in WOBuilder
Apple Reference 2863520
ISSUE:
WOBuilder sometimes fails to open a component when double clicking on a .wo in ProjectBuilder. WOBuilder displays the message "Failed to open component".
RESOLUTION:
This problem has been corrected.
EOModeler fails to overwrite existing *.java file
Apple Reference 2880006
ISSUE:
When generating java files for an entity, EOModeler fails to overwrite previously generated files.
RESOLUTION:
This has been fixed for WebObjects on Mac OS X. In addition, EOModeler now includes an option to merge any differences using FileMerge.