OSGi Service Platform Release 3 Errata

The definition of token must include the ‘-‘ character

The Bundle-RequiredExecutionEnvironment and org.osgi.framework.executionenvironment property did not list their expected usage. Both should contain a list of all applicable execution environments.

The J2ME property microedition.profiles was written as microedition.profile (missing s). According to the J2ME specification this must be with an s.

4.19 and 6.2.7
Exceptions thrown by the BundleActivator must always be wrapped in a BundleException before they are emitted as a FrameworkEvent or thrown to the caller. This was not clearly specified in the given sections.
Step 7 in the installBundle() is meaningless because resolving may happen much later. In a next release, step 7 will be removed.

Native code loading indicates that a failed install should send out a Framework event. This is not true, a Framework event must only be send if no Exception can be thrown

When no handlers are registered the proxies must handle the request. The specification treated this case equally for both content and stream handlers. This is incorrect.URL Stream Handler proxies should throw an Exception. Content Handler proxies should return an InputStream to the data.

Framework. It is not clear that null is allowed in arrays and vectors, though it is clear from the javadoc in 10.14.2. These two sections need to be synchronized.
The property WIREVALUE_DELTA_RELATIVE is not defined to be absolute. It is decided that the relative value should always be positive because this is in aligmenet with the intended application to trigger on a change greater than a certain value.

The examples that show how to get a SAXParserFactory or a DocumentBuilderFactory are wrong. The service registry contains a factory object. Therefore, the factory should be used to create a SAXParser or a DocumentBuilder respectively which can then be returned.

The Position class must keep the longitude between [-180 and 180> and the latitude between [-90 and 90].

The listed execution environment is not a valid representation of the JAR files. After print, it was found that overloaded methods that were only present in the foundation EE were also shown in the minimum EE.

Interfaces that are extending other interfaces are printed as that it “implements” these other interfaces. This should be “extends” instead.

The Initial Provisioning spec does not define what happens when chained zip files use the same name for bundles. A compliant implementation must use update to install these new bundles.

This section in Initial Provisioning seems to allow changes to the dictionary. This is not true, an implementation must throw an UnsupportedOperationException when the dictionary is modified.

Note: The errata for the OSGi API is made available under the OSGi Specification License, Version 1.0.