Known and Resolved Issues

This chapter lists high-visibility bugs that have been addressed in this release. It is not a complete listing of all of the bugs addressed. If you still have issues with any of these bugs, please file a new bug at http://bugreport.apple.com/ under the WebObjects (new bugs) component, versionX. Refer to the bug number indicated below in your new bug if you believe it is the same issue.

EOF

Radar #3166073

EOEditingContext throws exception when serializing with a substitution editing context

Description:

EOEditingContext throws exception when serializing with a substitution editing context. Exception: java.lang.NullPointerException java.lang.NullPointerException at com.webobjects.eocontrol.EOEditingContext._updateUnprocessedOwnDestinations(EOEditingContext.java:1579) at com.webobjects.eocontrol.EOEditingContext.readObject(EOEditingContext.java:5277) at java.lang.reflect.Method.invoke(Native Method) at java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java:2209) at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1406) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)

Workaround:

This issue has been resolved.

Radar #3185918

EOAttribute.encodeIntoPropertyList return an incorrect result

Description:

EOFactoryMethodArgumentIsNSString is not encoded properly for EOAttributes and therefore does not decode properly.

Workaround:

This issue has been resolved.

Radar #3736313

When prefetching multiple keypaths it is possible to have the snapshots of some forgotten

Description:

When prefetching a toMany.toOne all of the toMany objects have deferred faults for all of their toOne relationships. This means that right after the prefetch they will all be forgotten because a reference is not being maintained to them.

Workaround:

This issue has been resolved.

Radar #4307025

_EOCheapCopyMutableArray.iterator() in doesn't fault array

Description:

_EOCheapCopyMutableArray.iterator() was not calling willRead() correctly and not faulting the array.

Workaround:

This issue has been resolved.

Radar #4315827

EOEditingContext reset() can throw ArrayIndexOutOfBoundsException

Description:

EOEditingContext reset() can throw ArrayIndexOutOfBoundsException java.lang.ArrayIndexOutOfBoundsException: at com.webobjects.foundation._NSCollectionEnumerator.nextElement(_NSCollectionEnumerator.java:34) at com.webobjects.eocontrol.EOEditingContext.reset(EOEditingContext.java:983) at com.apple.store.foundation.ASEOUtilities.releaseConcurrentEditingContext(ASEOUtilities.java:689) at ReviewHandler.getReviewsHandler(ReviewHandler.java:352) at sun.reflect.GeneratedMethodAccessor133.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.apple.store.service.server.DispatchRequestHandler.handleRequestForMethodName(DispatchRequestHandler.java:258) at com.apple.store.service.server.DispatchRequestHandler.handleRequest(DispatchRequestHandler.java:160) at com.apple.store.service.server.transport.directAction.DirectActionServiceRequestHandler.handleRequest(DirectActionServiceRequestHandler.java:102) at com.webobjects.appserver.WOApplication.dispatchRequest(WOApplication.java:1306) at com.apple.store.webobjects.ASWOApplication.dispatchRequest(ASWOApplication.java:247) at com.webobjects.appserver._private.WOWorkerThread.runOnce(WOWorkerThread.java:173) at com.webobjects.appserver._private.WOWorkerThread.run(WOWorkerThread.java:254) at java.lang.Thread.run(Thread.java:552)

Workaround:

This issue has been resolved.

Radar #4332411

Empty "object" and "key" attributes in NSValidation.ValidationException instance

Description:

Empty "object" and "key" parameters when NSValidation.ValidationException are thrown from EOAccess.

Workaround:

This issue has been resolved.

Radar #4558771

Prefetching across a flattened many-to-many is O(n^2)

Description:

EODatabaseContext was resolving many-to-many relationships very inefficiently.

Workaround:

This issue has been resolved.

Radar #4746723

ResultSet already closed exception when using jboss-4.0.4.GA

Description:

JDBCChannel was improperly closing it's ResultSet and causing problems in some J2EE containers.

Workaround:

This issue has been resolved.

Radar #4912079

Exception when executing stored procedure with Oracle 10g drivers

Description:

The Oracle JDBC drivers are throwing an exception upon setting one of the parameters to null.

Workaround:

This issue has been resolved.

Radar #5036944

Add a EODatabase class delegate to allow easy subclassing

Description:

Through the class delegate, EODatabase can be subclassed or overridden. See the WebObjects 5.4 API reference for more information.

Workaround:

This issue has been resolved.

Radar #5071025

NullPointerException with EOAttribute missing "external type"

Description:

NullPointerException with EOAttribute missing "external type."

Workaround:

This issue is resolved.

Radar #5084084

Enhance EOF prototyping support

Description:

Enhance EOModel prototyping support to make it recognize the Database Management System used just like it does with the plugin support.

Workaround:

This has been fixed in WebObjects 5.4.

Radar #5084089

Setting EOAttribute's prototype also clear properties undefined in prototype

Description:

When setting or changing prototype of a com.webobjects.eoacess.EOAttribute class instance using the setPrototype(EOAttribute) method, all prototype properties are copied, and unset properties in the prototype are reseted. This problem occures in EOModeler as well.

Workaround:

This has been fixed in WebObjects 5.4.

WebObjects (new bugs)

Radar #5450176

Custom subclasses of WORequest do not load when they were loading fine in WO 5.3.x

Description:

This is not a regression but a change in the API. The new API is: public WORequest createRequest(String aMethod, String aURL, String anHTTPVersion, Map<String, ? extends List<String>> someHeaders, NSData aContent, Map<String, Object> someInfo). The old API does not get called.

Workaround:

Change the application code.

Radar #5462874

The line referencing WebObjects adaptor is removed from default Leopard client apache configuration file.

Description:

The line in Tiger version of default Apache configuration (/etc/httpd/httpd.conf) that used to be uncommented to enable WO adaptor is not moved to the default Leopard client Apache configuration (/etc/apache2/httpd.conf).

Workaround:

Insert the following line: Include /System/Library/WebObjects/Adaptors/Apache2.2/apache.conf and comment out last two lines inside the <Directory> directive. <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory>

Radar #5509247

The JBoss Application Server is removed in Mac OS X Server v10.5

Description:

The JBoss Application Server is no longer part of the Mac OS X Server v10.5 software distribution.

Workaround:

Before you can restore your JBoss applications, you must install JBoss on your server. WebObjects 5.4 on Mac OS X v10.5 can be used to create WAR bundle that are compatible for deployment on JBoss.

WOExamples

Radar #5258077

Loading example database with installDatabases.sh may not cause some problems with UTF 8 data.

Description:

The script that loads WO example database does not specify database encoding which may cause some problems with UTF 8 characters.

Workaround:

add -Dderby.ui.codeset=UTF8 in line 55.

Radar #5305505

Eclipse Plugin Bookmarks for 3.2 contains outdated URL for WOLips

Description:

We provided Eclipse plugin bookmarks that developers can import to set up Eclipse for WO development transition from XCode. These URLs in the bookmarks are not up to date.

Resolution:

Note to add that /Developer/Examples/JavaWebObjects/Eclipse/Eclipse3.2_bookmarks.xml, Eclipse3.3_bookmarks.xml may contain URLs that have been changed more recently.

WOF

Radar #2972048

Use UTF-8 as default URL and content encoding

Description:

Use UTF-8 as default URL and content encoding instead of ISO_Latin.

Workaround:

This issue has been resolved.

Radar #3236984

WOHTMLDynamicElement is not threadsafe

Description:

WOHTMLDynamicElement is not threadsafe.

Workaround:

This issue has been resolved.

Radar #3325342

WO Dynamic Elements should handle java.util.Collection classes

Description:

WO Dynamic Elements should handle java.util.Collection classes.

Workaround:

This issue has been resolved.

Radar #3502565

Deadlock if Session.sleep() Throws

Description:

Deadlock if Session.sleep() Throws.

Workaround:

This issue has been resolved.

Radar #3566460

Race condition in stateless component action handling

Description:

Race condition in stateless component action handling.

Workaround:

This issue has been resolved.

Radar #4186886

Direct action handler doesn't check in sessions on some errors

Description:

Problem is that if the handleActionRequestError() method returns a response, and the session was checked out, it will fail to be checked back in. This doesn't occur in the case where that returns null (the default implementation).

Workaround:

This issue has been resolved.

Radar #4387899

WOURLEncoder improperly uses encoded ampersand to join form values

Description:

WOURLEncoder improperly uses encoded ampersand to join form values.

Workaround:

This issue has been resolved.

Radar #4390726

Application's terminate() method not called when deployed as Servlet

Description:

Application's terminate() method not called when deployed as Servlet.

Workaround:

This issue has been resolved.

Radar #4585163

Files with special name are not correctly parsed by WOFileUpload

Description:

Files with using special characters, such as double quotes, sometimes are not correctly parsed by WOFileUpload.

Workaround:

This issue has been resolved.

Radar #4806504

Direct Connect HTTP Server Does Not Serve 3GPP MIME Types, ICS, JSON and CSV

Description:

Direct Connect HTTP Server Does Not Serve 3GPP MIME Types, ICS, JSON and CSV.

Workaround:

This issue has been resolved.

Radar #4895782

WOHyperlink doesn't entity escape '&' in the query string for direct action URLs

Description:

WOHyperlink doesn't entity escape '&' in the query string for direct action URLs.

Workaround:

This issue has been resolved.

Radar #4905602

WOMessage's userInfo should be mutable

Description:

WOMessage's userInfo should be mutable.

Workaround:

This issue has been resolved.

Radar #4905610

WOContext should have a userInfo

Description:

WOContext should have a userInfo.

Workaround:

This issue has been resolved.

Radar #4907787

WOMessage array list does not work

Description:

WOMessage array list does not work.

Workaround:

This issue has been resolved.

Radar #4920535

WOHyperlink should support escapeHTML binding

Description:

WOHyperlink should support escapeHTML binding.

Workaround:

This issue has been resolved.

Radar #4950883

Form encoding error when passing additional bindings in an action

Description:

Form encoding error when passing additional bindings in an action.

Workaround:

This issue has been resolved.

Radar #4966906

Improve error message in WOComponent.handleTakeValueForUnboundKey

Description:

Error message in WOComponent.handleTakeValueForUnboundKey should print out component name.

Workaround:

This issue has been resolved.

Radar #4977246

WOXMLDecoder is not thread-safe

Description:

WOXMLDecoder is not thread-safe.

Workaround:

This issue has been resolved.

Radar #5077806

Component URL does not generate secure URL

Description:

Component URL does not generate secure URL.

Workaround:

This issue has been resolved.

Radar #5112161

WebObjects apps should report version number it's running against

Description:

WebObjects apps log the version of WO it is running against and there is also access through API.

Workaround:

This issue has been resolved.

Radar #5121520

WOGenericElement and WOGenericContainer eat class/id/style/title bindings

Description:

With the changes to WOHTMLDynamicElement to more generally support CSS bindings, WOGenericElement/WOGenericContainer got broken. The CSS bindings are output from the _appendClassAndIdToResponse() method, which is called from appendAttributesToResponse(). That method is overriden in WOGenericElement, and does not call through to _appendClassAndIdToResponse().

Workaround:

This has been fixed in WebObjects 5.4.

Radar #5129818

NSKeyValueCoding.Null objects should be evaluated as false boolean value in Associations

Description:

Associations returning NSKeyValueCoding.Null were evaluated to true, they are now correctly evaluated as false.

Workaround:

This issue has been resolved.

Radar #5168349

Character escaping in the URI href attributes

Description:

WebObjects will respect the W3C specification as listed below: http://www.w3.org/TR/1998/REC-html40-19980424/appendix/notes.html#h-B.2.2 B.2.2 Ampersands in URI attribute values The URL that is constructed when a form is submitted may be used as an anchor-style link (e.g., the href attribute for the A element). Unfortunately, the use of the "&" character to separate form fields interacts with its use in SGML attribute values to delimit character entity references. For example, to use the URI "http://host/?x=1&y=2" as a linking URI, it must be written <A href="http://host/?x=1&#38;y=2"> or <A href="http://host/?x=1&amp;y=2">. We recommend that HTTP server implementors, and in particular, CGI implementors support the use of ";" in place of "&" to save authors the trouble of escaping "&" characters in this manner.

Workaround:

This issue has been resolved.

WOFoundation

Radar #4099547

NSMultiReaderLock performance degradation on MP hardware

Description:

WO is now using the java concurrency stack for threading.

Workaround:

This issue has been resolved.

Radar #4184981

Documentation incorrect in NSKeyValueCoding javadoc

Description:

Documentation incorrect in NSKeyValueCoding javadoc.

Workaround:

This issue has been resolved.

Radar #4840499

NSArray.toArray(Object[]) is terribly broken

Description:

Object[] NSArray.toArray(Object[] objects) appends the passed in objects array to the internal object array. The contract for this method as defined by java.util.Collections is that if an Object array is passed in, the internal objects will be copied INTO that array.

Workaround:

This issue has been resolved.

Radar #4885778

Fix mutable in NS* collections: implement mutators

Description:

Fix mutable in NS* collections: implement mutators.

Workaround:

This issue has been resolved.

Radar #4886013

NSArray constructor should take Collection

Description:

NSArray constructor should take Collection.

Workaround:

This issue has been resolved.

Radar #4886462

NSForwardException should use standard java exception chaining

Description:

NSForwardException should use standard java exception chaining.

Workaround:

This issue has been resolved.

Radar #4943795

Build support for Generics in WOFoundation

Description:

Build support for Generics in WOFoundation.

Workaround:

This issue has been resolved.

Radar #5081299

NSMutableArray.remove(obj) is an incorrect implementation

Description:

NSMutableArray.remove(obj) is an incorrect implementation.

Workaround:

This issue has been resolved.

Radar #5085011

NSMutableArray.subList(int, int) is not implemented

Description:

NSMutableArray.subList(int, int) is not implemented.

Workaround:

This issue has been resolved.

Radar #5087629

NSMutableSet.addAll(collect) incorrect implementation

Description:

NSMutableSet.addAll(collect) incorrect implementation.

Workaround:

This issue has been resolved.

Radar #5129798

Better type conversion from Double or Float to BigDecimal

Description:

Fixed the loss of conversion from Double or Float to DigDecimal. This will give greater correctness in the rounding of the conversion.

Workaround:

This issue has been resolved

Radar #5252669

Apple plist DTD is retrieved from network if using "Apple" instead of "Apple Computer"

Description:

WebObjects applications with Info.plist with DTD specifying "Apple" instead of "Apple Computer" will try to retrieve the DTD from web.

Workaround:

Connect the machine to network to retrieve the DTD from web or change the DTD in the plist. (use <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">)

Radar #5278732

MSMutableArray - subList(...).clear() incorrect implementation

Description:

subList() returns a cloned version of the subList instead of a live view on the underlying array.

Workaround:

This issue has not been resolved.