Skip navigation.

Release Notes

  Previous Next vertical dots separating previous/next from contents/index/pdf Contents View as PDF   Get Adobe Reader

Resolved Problems for Service Pack 4

Service Packs are cumulative; Service Pack 4 contains all the fixes made in earlier Service Packs released for WebLogic Server 8.1.

The following sections describe problems that were resolved in WebLogic Server 8.1 Service Pack 4:

Administration Console

Change
Request
Number

Description

CR093082

The SSL config console page was not letting the user set the Key Alias and Passphrase.

The SSL config console page now shows the user set values for Key Alias and Passphrase if the user has changed them.

CR103417

EJB monitoring pages were not refreshing properly because the pages were being cached.

The tags that cache the browser pages were removed and now the pages are refreshed properly.

CR106457

Only weblogic-rdbms-bean elements of weblogic-rdbms-jar were being converted into XML. As a result, the complete weblogic-rdbms-jar elements were not being shown.

WebLogic Server now converts weblogic-rdbms-jar elements into XML so that all elements of the weblogic-rdbms-jar.xml deployment descriptor are displayed.

CR106773

If an EJB did not have a package, an indexOutOfBounds exception was being thrown when trying to substring the first package name of the full package of the EJB.

Now, when the EJB has no package, an asterisk (*), is shown as the default package when defining policies for jCOM component access. As a result, an indexOutOfBounds exception is not thrown if the EJB does not have a package.

CR111502

Deploying a new WebLogic Portal application via the WebLogic Console while targeting modules did not work with Internet Explorer because the URL size was exceeding its maximum limit.

WebLogic Server now passes the names of the EJBs and the webapp in the application as hidden attributes instead of passing them as part of the URL.

As a result, an application with any number of components can be deployed without a javascript error.

CR112354

WebLogic Server was checking for the existence of the selected pool name in the ConnectionPool list, but not in the MultiPool list.

Now, WebLogic Server checks for the selected pool name in both lists and it is possible to assign DataSource and TXDataSource to a MultiPool in the Admin Console.

CR119472

The setTextId method was not resetting the text, because of which two tags using the

same instance were not reflecting the true value.

WebLogic Server now resets the text in the setTextId method to show the correct value.

CR122362

The MaxPostTimeSecs attribute was missing from the ServerProtocols general tab in the Administration Console.

The ServerProtocols general tab now shows the MaxPostTimeSecs attribute.

CR122403

Filtering was being carried out on the basis of an "if name starts with" criteria. Therefore, it returned servers targeted to other connection pools also, if the name of this pool started with the same characters as the given pool.

Filtering has been changed to look for an exact match. So only servers targeted to the given connection pool are returned.

CR124223

To determine whether a component was targeted to the server, only the server, and not the cluster, was being checked.

Now, WebLogic Server checks the server and the cluster to which the server belongs. As a result, the components (application, JDBC connection pool, etc.) that are targeted to a cluster appear as deployed on the server if the server is part of the cluster.

CR125334

The Servlets table was not sorting arrays properly when "URL Patterns" was clicked. If the attribute was of type array, an exception was being thrown when comparing arrays of different lengths.

The compare method for array attributes has been modified so that the attribute of array type is now properly sorted and no exception is thrown.

CR126074

WebLogic Server used the listBinding method of the Context class, which tried to resolve all objects completely. An exception was thrown if the attempt to resolve the objects failed.

Resolving the objects is now done in the Administration Console. If an object can not be resolved, WebLogic Server shows that particular name with red circle.

CR129373

When WebLogic Server passed attributes to html, periods ('.') were being replaced by underscores ('_'). If the qualifying name of an attribute contained an underscore ('_') it was replaced by a period ('.') when it was returned to the server. Because of this, an instance not found exception was thrown

WebLogic Server now replaces underscores ('_') in qualifying names with colons (':'). The reverse process occurs during conversion of the attribute name to the qualifying name of the attribute. This way underscores ('_') in the qualifying name are restored.

CR129518

When using a remote machine and trying to upload WAR, RAR, or JAR files, WebLogic Server was unable to find the current path and thus returned the user to the upload screen rather than uploading the files.

Weblogic Server is now able to get the current path and upload these types of files.

CR129551

It was not possible to revert to the Default Adjudication Provider from the Custom Adjudication Provider.

Code has been added that replaces the Adjudication Provider for the realm even if the provider already existed. As a result, it is now possible to revert to the Default Adjudication Provider.

CR130110

There was an upload directory problem when the complete path rather than a relative path was specified.

WebLogic Server now checks for relative and absolute path when uploading.

CR130369

Trying to define a Security Policy on WebService methods that had an array type as a parameter was causing a Javascript runtime error in the Admin Console.

Now, WebLogic Server creates the signature of a method with the array parameters in a format that is compatible with the security subsystem. As a result, the Javascript runtime error no longer occurs when the policies for a method containing the array as a parameter are being defined.

CR161951

The Re-order Authentication Providers... link did not appear in the Custom Authentication Providers page when, from the main administration console, clicking the Realms... link, then the myrealm... link, then the Providers Tab, and then Authentication.

Now, the Re-order Authentication Provider... link appears when using this navigation in the console.

CR172966

CR129054

Log messages in the console logs were being truncated.

WebLogic Server now processes escape characters correctly, preventing truncation of the log messages.

CR178780

In WTC, the imported services, the exported service and the remote domains are considered a tuple where combination of the Resource Name, Local Domain, and Remote Domain must be unique. The Administration Console prevented defining imported services, exported services and remote domains with the same resource name.

WebLogic Server now checks for uniqueness of the tuple rather than just the attribute values.

CR181865

The Admin Console was allowing the addition of members into the JMS distributed destination even if their JMS server was not targeted.

Now, a member cannot be added to the JMS distributed destination if the member's JMS server is not targeted.

CR183641

When the Administration Server was used to get information about transactions running on managed servers, the information was incorrect.

WebLogic Server now retrieves the transaction information from one of the servers associated with the transaction.

CR184784

CR183444

CR201566

CR183444

CR132832

CR197295

The WebLogic Server Administration Console did not allow certain characters such as spaces and hyphens in the names of groups, users and roles. As as result, user certificates generated by other applications that contained spaces and hyphens could not be validated in WebLogic Server.

WebLogic Server now allows user/group/role names to contain these special characters.

CR186293

    1. The left navigation pane did not honor the language set from the browser. It honored the language preferences set from console preferences page.

    2. The console left and right navigation panes did not honour the language set from the preferences setting page of the console.

The applet was made to pass the accept-language header to server while making any request. WebLogic Server now honors the language set from the browser for the left navigation panel.

While the console extension is being deployed it passes the current language to the helper class, which helps it find the correct catalog for the console extension and the extension is correctly localized.

CR187204

The performance monitoring graphs in the Admin Console were freezing immediately after garbage collection was forced (the "Force Garbage Collection" button was clicked).

Now, the Graph Gather thread does not die until the browser is closed. As a result, the performance monitoring graphs no longer freeze after forced garbage collection.

CR189027

The Console was slow to display the webapp table. The more webapps were deployed, the slower the webapp table displayed.

Now, WebLogic Server makes fewer calls to get webapp runtime mbeans. As a result, the webapp table is displayed faster and increases in speed as the number of webapps deployed increases.

CR190524

After migrating from WebLogic Server 8.1 SP2 to SP3, WebLogic Server was throwing a Console Extension NullPointerException.

Now, WebLogic Server has a display name attribute and an alternate name attribute in the catalog which allows the catalog to have more familiar names and maintains compatibility between service packs. As a result, WebLogic Server no longer throws the Console Extension NullPointerException after migrating from WebLogic Server 8.1 SP2 to SP3.

CR190752

The RemoveInfectedConnectionsEnabled attribute, a JDBC connection pool specific property, was displayed on the console although none of the other attributes in PoolParamsMBean appeared on the console.

Now, the RemoveInfectedConnectionsEnabled attribute is not a displayable attribute, so it is consistent with other attributes in PoolParamsMBean. As a result, WebLogic Server does not throw an exception when the descriptor for Application-Scoped JDBC Connection Pool is edited.

Classloaders

Change
Request
Number

Description

CR177678

The Class.getSigners() method did not return the certificates if the class was in a signed jar file.

Now, WebLogic Server obtains the bytes from the JarFile instead of the ZipFile when loading classes from jar files. As a result, the Class.getSigners() method returns the certificates if the class was loaded from a signed jar file.

Clusters

Change
Request
Number

Description

CR177776

CR201676

WebLogic Server encountered distributed dead-locks in a cluster when replicated session http requests landed on a server that acts as neither primary nor secondary for the requests. If multiple such requests landed on servers in a cluster, all the threads in the default thread pool were being exhausted due to this behavior and at some point in time, there were no threads available in default thread pool to receive responses. This lead into distributed dead-lock.

WebLogic Server no longer deadlocks under these conditions.

Connector

Change
Request
Number

Description

CR176209

CR183827

Initially the out debug statement used the transaction object. This caused a ConcurrentModificationException.

The transaction object was removed from the debug statement which eliminated the exception.

CR184164

WebLogic Server was throwing a warning (BEA-190085) when a group of RARs were deployed even if the base RAR was deployed first.

The log message has been changed to an informational message instead of a warning.

CR190895

Changes were made to significantly improve the performance of the Connector Pool and process connection requests faster.

One of these changes is the addition of a new element, use-first-available, to the weblogic-ra.xml descriptor. When use-first-available is set to true the Connector Pool assumes that all connections share the same attributes and that there is no advantage to using one over another for any connection request. Using this option bypasses the need for the Connector Container to call matchManagedConnection on the adapter and thus improves performance.

Core WebLogic Server

Change
Request
Number

Description

CR126838

CR196450

The WebLogic Server stuck thread warning message was being logged only to the individual server log file as it was just a warning message. It has been changed to an error message and is now logged to the domain level log file as well.

CR127920

CR190968

CR197708

HeartbeatHelper object, which is used on the client side to ping the server, was being cached and when the server was restarted, the client attempted to ping but the ping was rejected by the new server. This resulted in IllegalStateException. HeartbeatHelper is now looked up from the cos NamingService and is no longer cached.

CR175772

WebLogic Server was unable to accept POST requests from a client after the KeepAlive connection was timed out on Linux.

WebLogic Server now shuts down the socket's input and output before a socket close. As a result, POST requests from a client after the KeepAlive connection is timed out on Linux are accepted.

CR175808

The ClusterRuntime MBean name was using the server name instead of the cluster name.

Now, the ClusterRuntimeMBean name initialization is correct. The ClusterRuntime MBean name is now correctly reflected in the MBean.

CR176331

A NullPointerException was sometimes thrown from the muxer during the cleanup of a socket.

This happened when the protocol discriminator did not set the proper muxable socket.

WebLogic Server now sets the proper muxable socket during discrimination so that it uses the right muxable socket when delivering exceptions.

CR178205

CR121483

Calling getAttributes on the Admin Server's MBean was causing a ConcurrentModificationException.

Now, the HashMap is not modified simultaneously by two threads. As a result, WebLogic Server no longer throws the ConcurrentModificationException when getAttributes is called on the Admin Server's MBean.

CR179262

During startup, WebLogic Server was experiencing a deadlock between weblogic.jms.common.DistributedDestinationManager and weblogic.cluster.MemberManager.

Synchronization has been reduced in MemberManager and now there is no longer a deadlock.

CR180147

Memory leaks were occurring in the NTSocketMuxer when converting native error messages to unicode.

WebLogic Server now releases the character pointer obtained from jni strings, eliminating the memory leak.

CR180291

If multiple server instances run on the same computer in a domain that uses a domain-wide administration port, a clear error message is displayed that explains what to do. You must either:

Host the server instances on a multi-homed machine and assign each server instance a unique listen address, or

Override the domain-wide port on all but one of one of the servers instances on the machine. Override the port using the Local Administration Port Override option on the Advanced Attributes portion of the Server->Connections->SSL Ports page in the Administration Console.

CR181986

WebLogic Server running as a service sometimes ran out of memory if it was using a large number of threads.

Reducing the reserve stack size used by beasvc.exe and beasvc64.exe from 1mb to 256 kb eliminated the memory problem.

CR182838

CR195712

LocalServerRef did not implement the hashCode method which caused multiple entity beans with different PKs to have the same stub.

LocalServerRef now correctly implements the hashCode method.

CR183683

The default identity asserter was not correctly asserting against the default realm.

When connecting to a third-party using RMI-IIOP with security enabled, the default identity asserter will now correctly assert against the default realm.

CR184182

CR187177

CR199812

WebLogic Server was throwing a NullPointerException when de-serializing the stateful session bean (SFSB) Handle under the following circumstances:

1) when resolving object in Handle

2) when initializing RJVM

3) when getting EndPoint in BasicRemoteRef

Now, under these circumstances, WebLogic Server is not throwing any NPEs.

CR184487

CR196822

When clients were tunneling http/https over t3, if the stubs were not present in the client classpath, the client was attempting to open a direct connection to the backend WebLogic Server.

Now, WebLogic Server ensures that when clients do network classloading, they use the tunnel instead of attempting a direct connection.

CR185841

When starting up many managed servers concurrently, the admin server CPU usage was high.

WebLogic Server now makes fewer remote calls to ServerMbean.getName(). As a result, managed server startup time in a large cluster is faster and the CPU usage on the admin server is lower.

CR188371

When an application cached a stateless session bean remote stub, and all the servers in the cluster were restarted, the stub was unable to refresh its lists of server nodes where the remote object is available and failover did not succeed this was happening because the stub did not have the information needed to re-establish initial context with the cluster nodes, hence the remote method invocation failed.

WebLogic Server code was not propagating the thread environment for the stateless session bean stubs in WebLogic Server 6.1 versions and it is required in WebLogic Server 7.0 and higher versions for un-marshalling to set the environment so failover works.

The runtime descriptors for the clusterable stateless session beans now have the propagate-environment attribute set to true by default.

The descriptor is now read and the propagateEnvironment is set so the environment is passed on during un-marshalling. This allows the failover logic to reconnect to the cluster nodes to retrieve the new list of server nodes where the remote object is available and allow for proper failover.

CR188709

When the port number was greater than 32K, and the port was read as a short then converted to an int, the result was a negative number because the conversion was not done properly.

WebLogic Server now does the conversion properly.

CR189337

Using CORBA Any's to transmit certain primitive types was corrupting the primitive data contained in the Any. Instead of only masking the non-databits for storage in the Any, some databits were masked as well.

The mask was changed and Any's now work as expected.

CR189338

CR190012

Distributed garbage collection (DBC) was cleaning up CORBA objects.

All CORBA objects are now configured so that they do not use DGC at all but instead to have their lifetime controlled by the ORB.

CR189462

CR190010

Interface Definition Language (IDL) wide strings were being corrupted when used in collocated IDL invocations.

Collocated invocations now use standard IDL stubs rather than WebLogic Server generated stubs. As a result, wide strings are no longer corrupted for collocated calls.

CR190010

CR189462

WebLogic Server was not honoring TransactionalObject interfaces for outbound Interface Definition Language (IDL) calls and not propagating transactions when using these interfaces.

The IIOP subsystem now honors IDL interfaces inheriting from TransactionalObject. It is now possible to propagate transactions to Object Transaction Service (OTS) 1.1 ORBs (i.e. IBM ORB on a mainframe) from WebLogic Server.

CR190490

The java.net.SocketException: Bad File Number exception was being thrown when the servlet tried writing to a socket.

This can happen when the servlet tries writing to a closed socket. The exception is harmless. Code was changed such that this exception is ignored and does not get logged.

CR190595

IDL strings over 512k were resulting in a MARSHAL exception when transmitted.

The string size limit has been changed to 64M. As a result, WebLogic Server now accepts IDL strings of up to 64M.

CR191720

CR191721

CR191552

The client was hanging during JNDI authentication if it re-connected after a network partitioning, but before the server recognized the network partitioning.

Now, WebLogic Server recognizes that it had missed the PeerGone from a client that did not actually shut down but just had a partitioned network. WebLogic Server then removes the old connection information, creates a new connection, and retries the authentication request. This ensures that the client does not hang.

CR191772

A receiving ORB sending LOCATION_FORWARD in the context of a transaction would cause WebLogic Server to retry the request without a transaction which caused a transaction rollback on the remote side.

WebLogic Server now correctly associates a transaction with a request retried as a result of LOCATION_FORWARD. Now, transactional interop with foreign ORBs works correctly.

CR192362

CR186757

CR200758

Event logging was not working properly in beasvc. Event logging could not locate the event sources and was not reporting the proper message.

Now, event logging ensures that the event sources are properly registered when the windows service is installed with beasvc and properly unregistered when the service is removed.

CR192420

When the transaction is propagated from the CORBA Object to the EJB, WebLogic Server exported CoordinatorImpl objects to the rmi tree. These objects were never unexported which caused a memory leak.

The mechanics of exporting a CoordinatorImpl object have been changed such that the memory leak no longer occurs.

CR192644

The interface definition language (IDL) TimeBase was not current. As a result, the org.omg.TimeBase.UtcT class was not compatible with other ORBs.

The TimeBase IDL has been updated to match the Object Management Group (OMG) reference IDL for CORBA 2.6. As a result, the org.omg.TimeBase.UtcT class can now be used in any WebLogic Server classloader.

CR192818

The weblogic.Admin LOCK command is deprecated, but should lock the server, allow only privileged users to connect, and reject any new login attempts. WebLogic Server was allowing new login attempts even after executing the LOCK command.

Now, the weblogic.Admin LOCK command works as expected. WebLogic Server only allows privileged users to connect when the server is locked.

CR194333

The weblogic.Deployer tool was trying to invoke a doesUserHaveAnyAdminRoles() method on SecurityServiceManager which is not initialized on the client. As a result, it was throwing a NotYetInitializedException if the Admin port was enabled on the server.

Now, the weblogic.Deployer tool does not invoke a doesUserHaveAnyAdminRoles() method on the client because SecurityServiceManager is not initialized on the client.

CR197951

When a Managed Server is communicating to an Administration Server via a load balancer with NAT, under certain circumstances, the Managed Server's private IP address, instead of the DNS name, was being used for communication.

A utility was written to extract and use the DNS name in cases where both the private IP address and DNS name were provided by the caller. As a result, the server no longer hangs when a Managed Server is communicating to an Administration Server via a load balancer with NAT.

CR200264

When trying to marshal a CORBA Any containing a CORBA Any, a typecode at position 0 in the stream occurs which results in an assertion error.

Now, WebLogic Server accepts a typecode at position 0 in the stream and no assertion error is thrown.

Deployment

Change
Request
Number

Description

CR092875

Deployer was setting the source option to null for redeploy. This resulted in upload not working for redeploy because upload needed source option.

Deployer now allows redeploy with upload which allows application files to be added, modified, or deleted on the target. These changes are also applied to the application's uploaded source on the Admin Server.

Upload option has been deprecated. A new option sourcerootforupload has been introduced that allows the user to specify the source root directory or archived application jar file on the remote machine. This file is then uploaded to the Admin server upload directory.

CR110687

An application's removal and redeployment logic did not work properly when a targeted Managed server was shut down while a new EAR was being deployed.

The logic now works correctly when a targeted Managed server is shut down during deployment.

CR125854

Although WebLogic Server does not copy or remove files in no-stage there was no message sent to notify of this.

Now, WebLogic Server sends a DeploymentNotification stating that the files cannot be deleted when using the weblogic.Deployer -delete_files option for no-stage applications. The notification is shown only when the Deployer is run in verbose mode.

CR127141

During a graceful shutdown of the server, applications were undeployed in an arbitrary order.

WebLogic Server now un-deploys applications in the exact reverse order of the deployment. That is, the application with highest LoadOrder number is undeployed first then the next high LoadOrder application will be undeployed etc. Applications with the same LoadOrder will be deployed in alphabetical and undeployed in reverse alphabetical orders.

CR128977

The weblogic.Deployer utility was not deploying to default targets as it should.

Default targets have been set to already deployed targets and not to the Admin Server when deploying or starting applications using weblogic.Deployer. As a result, weblogic.Deployer now deploys to default targets as expected.

CR177486

CR124375

CR134935

CR173172

WebLogic Server was making too many RMI calls to find out the deployment status of an application/component on a target especially if the target was a cluster or a virtual host. In addition, the module status on the target was not depicting the precise deployment status of the target.

Now, the deployment status page is shown in terms of its aggregated deployment status and availability status. The aggregated deployment status of a component could be Available/Not Available for a server and Available/Not Available/Partially Available when it is deployed on a cluster or virtual host. Partially Available implies that the component is available on only some of the servers of the cluster or virtual host.

The deployment/availability status is updated when the targeted servers are shutdown either gracefully or forcefully.

As a result of all of these changes, WebLogic Server has minimized the number of RMI calls needed to retrieve the status report for a cluster deployment.

CR184089

Restarting the Administration Server reset the drs version when discover was set to false. This caused the Administration Server to be on a lower version thus redeployment of an existing application onto the cluster never succeeded.

The Administration Server now knows its drs version after restarting the admin server when discover is set to false.

CR186042

Static files were not redeployed on managed servers if the managed servers were down at the time of static file redeployment.

When the managed server comes up, it restages the entire application, allowing the modified static files to be redeployed.

CR189712

CR175585

The status of certain deployment tasks like deploy/redeploy/distribute/remove was shown as "Failed" in the WebLogic Server admin console when the deployment task targets were not up or reachable. These tasks were actually deferred and not failing.

Now, the status of such tasks are shown as "Deferred" in the console.

When such tasks are actually completed on the target, the deployment/availability status (module status) of the app/component in question is appropriately updated. However, the deferred status shown in the "Status of last action" column in the console is not updated. The last action status does not represent the current deployment status of the app/component.

Also, when tasks are deferred, WebLogic Server now throws the weblogic.management.DeferredDeploymentException instead of the weblogic.management.ManagementException.

CR190088

When only some modules of the application were deployed to a server during redeployment, the application lifecycle listener preStop event was not fired.

Now, WebLogic Server calls application lifecycle listener preStop, as part of redeployment, when there is a split deployment (some modules deployed on one target and the remaining modules deployed on a different target).

CR191908

When using the verbose option on either the Deployer tool or on wldeploy ANT task, neither the Deployer tool nor wldeploy ANT task was waiting for task completion notifications and they were therefore exiting as soon as they had initiated the task.

Now, the Deployer tool and wldeploy ANT task wait for task completion notification before exiting even when they use the verbose option.

CR192094

CR195074

There was a memory leak in the way WebLogic Server was using deployment task objects for historical purposes. WebLogic Server was running the OutOfMemoryError after a certain number of deployment actions (deploy, undeploy, stop, start, redeploy, etc.). For large applications' deployment actions, WebLogic Server was running the OutOfMemoryError quickly.

Changes have been made to the code so that it will not leak memory due to these deployment task objects.

CR192097

If a Pinned App was deactivated on one server of the cluster, it was being deactivated on all other servers of the cluster wherever it was deployed.

The Pinned deployment behavior for the -deactivate, -stop and -unprepare commands have been changed so that now, the Pinned App is only deactivated on the specific clusteredServer where the deactivate command is requested.

For example, the command:

java weblogic.Deployer -deactivate -name myPinnedApp -targets MS1

only deactivates the myPinnedApp on MS1 of Cluster CLS1. It will not deactivate the application on other servers of the cluster CLS1.

This new behavior will not affect applications that are either deployed to the cluster or pinned to one server in the cluster. It will only affect those applications that are pinned to few servers (more than one) in cluster.

CR192196

A WebLogic Server 8.1 client calling DeployerRuntime.getDeployerRuntime(MBeanHome) was getting an InstanceNotFoundException if invoked against a WebLogic 7.0 admin server.

A change was made to the implementation of DeployerRuntime.getDeployerRuntime(MBeanHome). As a result, a WebLogic Server 8.1 client is now able to fetch the DeployerRuntime MBean from the WebLogic 7.0 admin server and vice versa without getting any InstanceNotFoundException.

CR193897

WebLogic Server was not automatically redeploying a WebApp if the Servlet Filter implementation was in the system classpath and the servlet class was modified.

Now, the Servlet Filter considers the changes in WebApp classes even though the filter is loaded by the system classloader.

When the servlet-reload-check-secs flag is set to something other than -1, this feature is best used in development mode and not in production mode.

CR195576

Application Poller was not catching the exception thrown as part of deploying any application with an invalid directory structure from the applications folder. As a result, the remaining applications failed to be deployed after any such invalid application was deployed.

Now, Application Poller catches exceptions thrown while deploying any applications with an invalid directory structure from the applications folder so that the invalid applications failure is logged and the remaining valid applications are deployed successfully.

CR197220

The managed server was failing to start up in MSI mode if applications were being deployed using external_stage because the managed server was not able to find the application.

Now, the managed server is able to find the application when it is started in MSI mode. As a result, applications are now deployed properly and the managed servers boots properly in MSI mode.

CR197999

Now, the wldeploy ant tool supports the option of deploying staged applications.

EJB

Change
Request
Number

Description

CR055396

When a EJB QL syntax error occurred, WebLogic Server generated an error message with an incorrect xml file reference.

WebLogic Server now generates the message as follows if there are syntax errors in EJB QL.

[java] ERROR: Error from ejbc: Error while reading 'META-INF/ejb-jar.xml' or 'META-INF/weblogic-cmp-rdbms-jar.xml'.

CR087261

The EJBDeployer was writing an incorrect deployment message to the log for Message Driven Beans.

The correct message is now being logged when a Message Driven Bean is deployed.

CR122203

The EJB specification requires cmp and cmr fields to start with lower case characters. Some charsets, however, do not have a notion of upper or lower case. If such a charset was used, our compliance checker would throw an exception because the cmp\cmr fields didn't start with lower case.

Now, the compliance checker only throws the compliance exception if the cmp\cmr field starts with an upper case letter and not if the charset has no notion of upper or lower case.

CR127369

CR195223

An AssertionError was sometimes thrown when more than one bean was based on the same Java class.

This error occurred when the following conditions were satisfied:

    1. a bean A had a many-to-one relationship to a bean X (unidirectional relationship)

    2. a bean B had a many-to-one relationship to a bean X (unidirectional relationship)

    3. beans A and B were two different deployments based on the same java class.

While processing the relationships of beans, WebLogic Server holds the list of cmr-field names, and if the cmr-field name has not been declared, WebLogic Server creates it based on the bean class name. In the above case, while processing relationships of bean X, the cmr-field names of the relation to bean A and the one to bean B will be created. But these class names are the same, so the created cmr-field names are the same. This causes the AssertionError.

Code has been added to make the cmr-field name unique, eliminating the possibility of conflicting names.

CR128850

Even after setting enable-call-by-reference to false, a method parameter was being passed by reference. This behavior is correct. The parameter was being passed by reference instead of by value because it was not serializable.

Now, if enable-call-by-reference is set to false and business methods of the remote interface have argument types that are not serializable, WebLogic Server shows a warning to explain that the parameter will be passed by reference.

CR131561

TableQuery verification for a CMP EJB was causing a full table scan on the DB2 database that was running on the host because the WHERE-Clause of the verification query was not being optimized by the DB2 query optimizer. This resulted in long query execution time.

Now, the "FETCH FIRST 1 ROWS ONLY" option instead of the "WHERE 1=0" option is used for DB2 database-type in the case of TableQuery validation. As a result, performance is now optimized.

This change is specific to the DB2 database type and is not applicable to any other database type. Other database types still use "WHERE 1=0" in the case of TableQuery validation.

CR132853

When a Message Driven Bean uses the synchronous message polling scheme, it has issues when the Sonic jms server is used. The message driven bean container's polling optimizations could result in a delay in the message receiving.

To avoid this problem, do not use the optimized poller. As the Sonic message delivery scheme does not work well with this scheme, use a poller that continuously polls the Sonic jms server.

This new Message Driven Bean behavior is applicable to TIBCO and Sonic jms providers only

See also CR128980, CR135722

CR135125

When a setter method for a read-only EJB was called, the setter was not executed but no exception was being thrown.

Now, if a setter for a read-only EJB is called, WebLogic Server throws the EJBException.

CR173231

CR189040

When an inner class was passed as an argument to an EJB method, such as ejbCreate, the generated code did not convert the inner class argument to a correct representation.

WebLogic Server has now fixed code generation so that it converts the inner class argument to a correct inner class representation.

CR173260

WebLogic Server was throwing an OptimisticConcurrencyException when order-database-operations was set to true, and if an entity bean was removed and created with the same Primary Key in the same transaction.

Now, WebLogic Server does not throw the OptimisticConcurrencyException under these conditions.

CR175158

BMP Entity beans using the Exclusive concurrency strategy and loaded into the cache did not timeout upon idle-timeout-secs expiration. The same BMP beans did timeout for other types of concurrency strategy such as database, readonly and optimistic.

BMP beans using the Exclusive concurrency strategy are now scrubbed from the cache after being idle for idle-timeout-seconds.

CR177114

WebLogic Server was throwing an exception when verifying the sequence during EJB deployment if:

1) a global synonym was being used and no schemaName was specified or

2) the sequence was owned by a user other than the user who created the connection pool for the EJB.

Now, WebLogic Server verifies the Oracle sequence against the ALL_SEQUENCES view even if the schema name has not been specified. As a result, WebLogic Server no longer throws the verification exceptions during EJB deployment.

CR178404

CR192516

If the NOT logical operator was used in a WHERE clause and its operand was a conditional expression which included an OR operator (for example, WHERE NOT (lefthand_cond_exp OR righthand_cond_exp)), a NullPointerException occurred while parsing a query.

WebLogic Server now handles the OR operator properly.

CR183557

CMR collection contained two relationship entities instead of one when the parent and child were created in one transaction. This manifested only when the bean used auto-key-generation for SqlServer and delay-database-insert-until was set to ejbCreate.

Changes were made to correct the issue.

CR184154

The Weblogic Server generated java class for weblogic-cmp-rdbms-jar.xml during ejbc released the Resultset incorrectly. This caused the JDBC log to overflow with "java.sql.SQLException".

Code was added which corrected the order in which the JDBC objects are closed in the EJB generated code.

WebLogic Server now releases the correct Resultset.

CR184780

CR128984

An Oracle SELECT_HINT that was defined for a finder in a weblogic-ql element was not being included in the generated SQL query.

Now, it is included.

CR186325

In WebLogic Server 8.1, compliance check was added so that key-cache-size had to be equal to the increment value on the sequence in the database. If the key-cache-size was not equal to the database increment value, WebLogic Server threw the following error during deployment:

The ORACLE SEQUENCE named 'test_sequence' with INCREMENT value '1' '[EJB:011065]The ORACLE SEQUENCE named 'test_sequence' does not have INCREMENT value '1' in the database'

Now, WebLogic Server allows the key-cache-size to be less than or equal to the increment value of the sequence in the database. An exception is thrown only if the key-cache-size value is greater than the increment value in the database because that may result in duplicate keys being generated.

The following rules are followed while verifying the sequence during the deployment of the EJB:

1) Allow key-cache-size < DB INCREMENT_BY with a warning that missed keys (10, 20, 30) would be generated.

2) Allow key-cache-size = DB INCREMENT_BY. This is as it works now.

3) Disallow key-cache-size > DB INCREMENT_BY and disallow the deployment as it could generate duplicate keys.

Other rules regarding the different values of <create-default-dbms-tables> have been modified accordingly.

In general, Prod sequences (i.e., sequences defined by the user) are not altered. Dev sequences (i.e., sequences created by Web Logic Server) are altered.

If a sequence generation in the order of 1, 5, 10 ... or negative sequence generation -1, -5, -10 ... is required, set the key-cache-size to 1 with INCREMENT_BY in the database to 5. However, because the key-cache-size is 1, the container always goes to the database to get the next autoKey and thus follows the INCREMENT_BY set in the database sequence.

CR186949

The EJB container was starting the JMS connection before creating the initial number of beans in the free pool. This sometimes caused the container to instantiate another bean instance to process the message delivered to the container.

WebLogic Server now creates the configured number of initial-beans-in-free-pool instances before starting the JMS Connection to accept messages.

CR187121

A high value for idleTimeoutSecs, for instance, 60000000, in the Deployment Descriptor when multiplied by 1000 to convert it into msecs was overflowing into a negative value. This caused the trigger that cleans the passivated beans from the disk to constantly fire, causing high CPU usage.

The variables within the EJB container which held the timeout values in milliseconds, such as idleTimeoutMS, sessionTimeoutMS, and readTimeoutMS, have been changed from the int type to long. This prevents any numeric overflow.

CR187304

When using Database concurrency strategy, if a BMP tried to create a duplicate row in the same transaction, a ClassCastException occurred.

When creating beans, WebLogic Server now checks if the bean already exists.

CR188022

In certain conditions while inserting rows at commit time, the EJB container threw a DuplicateKeyException reporting an incorrect primary key as the cause.

The exception handling was simplified while inserting rows during commit time. When inserting a Batch of statements, if there is a SQLException, then it is thrown as is. The SQLException will have the details of the failure. This is because of driver limitations around reporting the exact statement within the batch that caused the failure.If the row is not inserted as a part of the Batch, only then a check will be done to detect a Duplicate key and report it.

CR188814

PreparedStatement and ResultSet were not closed after updating a BLOB or CLOB column.

WebLogic Server now closes PreparedStatement and ResultSet when updating a BLOB/CLOB.

CR189544

When an inner class within an inner class was passed as an argument to an EJB method, the incorrect code was being generated.

WebLogic Server now converts the inner class representation and handles an inner class within an inner class correctly.

CR189847

Stateful session bean (SFSB) InMemory replication was causing an apparent memory leak.

Although no memory leak was occurring, the heap memory was not being used efficiently. Now, during SFSB InMemory replication, the heap memory is being used more efficiently.

CR190831

When an array of inner class was being used for the EJB method return type, the incorrect code was being generated.

Now, WebLogic Server converts the inner class representation and generates the correct code when handling an array of inner class.

CR191003

CR186958

Validation with MetaData was failing while deploying an EJB when the fk-column of a bean also mapped to a cmp-field in the same bean.

Now, when the foreign-key column of a bean also maps to a cmp-field in the same bean WebLogic Server does not add the fk-column if it has already been added. As a result, validating the column names when using MetaData no longer fails.

CR191351

Automatic Key Generation was generating the new key from the default number in the database plus the cache size which is defined by <key-cache-size>.

Now, WebLogic Server has added the select-first-sequence-key-before-update tag in the auto-key-generation. This tag is used to specify the behavior of automatic primary key generation.

If the select-first-sequence-key-before-update is set to true, and when the EJB container needs to fetch the sequence value from a database, it generates the primary key from the current value plus one in the sequence table and updates the value in the table with the current value plus the key-cache-size. For example, when the current value in the sequence table is 100 and the key-cache-size is 100, the EJB container generates the primary key with 101 (the current value plus one in the table), and updates the value in the table with 200 (the current value plus the key-cache-size).

By default, the select-first-sequence-key-before-update is set to false.

CR192682

CR106774

When using EJB CMPs, WebLogic Server was translating the EJB-QL keyword, between, to >=? AND <=?. As a result, queries (especially on large tables) with DB2 on some platforms were taking a long time.

Now, the queries on DB2 run faster because they use the EJB-QL keyword, between, instead of, >=? AND <=?.

CR193685

Container-managed persistence (CMP) now uses PreparedStatement to execute SQL.

CR197639

CMP20 EJBs in WebLogic Server now support automatic primary key generation for DB2 and Informix databases.

CR198962

CR201394

The EJB Compiler was giving errors when compiling EJBs that had ejbSelect queries that used IS EMPTY or IS NOT EMPTY in the WHERE clause.

The ejbSelect queries no longer cause errors under these conditions.

Installation

Change
Request
Number

Description

CR121040

It was not possible to change the password of a WebLogic Server Windows Service without having to uninstall and re-install the service.

WebLogic Server now has an edit option so that parameters can be edited without having to re-install the service.

Individual or multiple options can be edited simultaneously as follows:

beasvc -edit -svcname:wls_service -javahome:"C:\java\java142_05" -password:"blah" (this command alters the value of "javahome" and "password" parameters)

The options will take effect when the service is restarted.

Change
Request
Number

Description

CR079432

MessageLocalizer was not setting the l10n_package attribute in localized catalog files using the l10ngen utility.

MessageLocalizer now correctly sets the l10n_package attribute in a localized catalog file.

Internationalization

J2EE

Change
Request
Number

Description

CR103309

CR195836

CR197966

Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04-70.00.jsp.

CR125308

Updates to the weblogic-application.xml file were not getting loading upon redeployment.

Now, the JDBCModule considers changes to the JDBC connection pool definition in the weblogic-application.xml file upon deployment.

CR132360

The weblogic.j2eeclient.Main did not work in webstart. The client jar file is an argument loaded by the webstart client and made available in the classpath. But the file was not available in the current directory resulting in an error.

A system property (weblogic.j2ee.client.isWebStart) was added to WebLogic Server to load the client jar file from the system classpath. weblogic.j2eeclient.Main now works in webstart.

CR192609

When the classloader-structure feature was used in weblogic-application.xml, the ClasspathServlet was unable to serve the files requested in a form such as:

http://host:port/bea_wls_internal/classes/appName@compName/mydir/Foo.class

The ClasspathServlet code has been modified to address this specific requirement.

JCOM

Change
Request
Number

Description

CR184188, CR187469, CR202505, CR198780

JCOM_OUTGOING_CONNECTION_TIMEOUT was not being honored when using java2com.

WebLogic Server now sets the SO_TIMEOUT to the value specified in JCOM_OUTGOING_CONNECTION_TIMEOUT.

When WebLogic Server is started with this system property, com calls are interrupted after the timeout.

JDBC

Change
Request
Number

Description

CR175793

When LogRemoteExceptionsEnabled during server startup, an InstanceNotFoundException was being thrown.

Now, instead of calling AdminMbeanHome, WebLogic Server uses the local MBeanHome to getMBean and no exception is thrown when using LogRemoteExceptionsEnabled during server startup.

CR179600

Under certain statement failure conditions, the pool's statement cache would neglect to close statements which led to a cursor leak in the DBMS session.

Changes were made to resolve this problem. The cursor leaks no longer occur.

CR181368

WebLogic Server assumed that, during cleanup, when it found a connection in an autoCommit(false) mode that resetting it back to autoCommit(true)mode would release any DBMS locks. This is untrue for Oracle.

WebLogic Server rolled back any transactional context as a part of interrupting any transaction, but the idle-connection code had no knowledge of whether there was a transaction underway, and the cleanup() call it made, was not sufficient for a user-constructed local Oracle transaction.

inactive-conn-timeout now rolls back any transaction context during cleanup().

CR182879

WebLogic Server did not throw an error during startup when a MultiPool and a ConnectionPool had the same name, and a DataSource/TxDataSource was targeted at the name.

WebLogic Server now throws an error under these conditions.

CR183355

WebLogic Server was not returning the JTS connection to the pool when the initialization for the connection was failing.

Now, if the connection initialization fails, WebLogic Server returns the pool connection.

CR183884

When creating a XA JDBC connection pool using the Informix JDBC Driver, the hostname and servername properties were being transposed in the generated URL.

Now, the hostname and servername properties are in the correct place in the generated URL.

CR184819

WebLogic Server multipools were not failing over when multiple instances of RAC were configured and the first RAC instance was stopped.

Multipool now fails over correctly.

CR186957

CR198022

When a result set was closed more than once SQLExceptions appeared in the jdbc.log file.

WebLogic Server now ignores repeat closes, eliminating the SQLExceptions in the jdbc.log file.

CR189281

CR191429

WebLogic Server was neglecting to retain a stack trace where the connections were made, so when/if the connections leaked, the message contained no helpful information.

Now, WebLogic Server delivers a stack trace of where the connections were created which can be useful in diagnosing code that later neglected to close the connection.

CR190700

Calls to JDBC setTypeMap(map) and getTypeMap() were failing on XA Connection(JTA) with the following exception:

java.sql.SQLException: java.sql.SQLException: Cannot set type map

The setTypeMap(map) and getTypeMap() APIs have been implemented in JTAConnection. Now, when calls are made to these APIs, there is no longer an SQLException.

CR194051

WebLogic Server was leaking Oracle Database cursors when MetaData.getColumns() was called inside a transaction and ResultSet had not been explicitly closed.

Now, when the connection is closed, all created PreparedStatements and ResultSets are also closed. As a result, calls to MetaData.getColumns() no longer leak Oracle Database cursors.

CR196738

The MSSQLServer4 driver's Statement.cancel() method was corrupting the JDBC connection. JDBC statements were not being closed within a transaction after the connection was closed.

The MSSQLServer4 driver's Statement.cancel() method was changed so that it is now a no-op and therefore no longer corrupts the connection. This change has no effect on rolling back transactions.

CR197163

The JDBC connection pool's testing of connections was consuming a lot of database resources because each test was creating a new plain statement which requires the DBMS to parse and plan the test SQL every time.

Now, pools will reuse a single prepared statement for a connection's test which results in improved performance. However, if any application DBMS tables or procedures are referred to in the test SQL and if they structurally change at runtime, such as an index being added, this may invalidate the test PreparedStatement's query plan. As a result, the subsequent test will fail and the connection and test statement will be replaced. The test SQL suggested by the Admin Console will typically not include any structurally changing table, so the problem of needlessly recycling a connection is now minimized.

CR199348

An external client that was using RMI connections to pools and closing them properly, was still getting warnings about a leaked connection from the finalize() method of the RMI SerialConnection object.

Changes were made to the is-closed flag so that the client no longer receives these incorrect warnings.

CR200403

To get traces when calling the resetStatementProfile() method, WebLogic Server had to be restarted even if tracing was re-enabled.

Now, WebLogic Server ensures that the existing file and writer are both closed and never re-used before trying to create new ones. As a result, it is now possible to get traces when calling the resetStatementProfile() method without restarting WebLogic Server.

CR200672

The suggestion for MS and Sybase pool's test SQL was "select count(*) from sysobjects". Because this is a huge system table, the query was very slow and problematic for any DBMS concurrency that involved DDL, etc.

The suggested/default query text has been changed. Now, the query is no longer slow and it causes no problems for any DBMS concurrency.

jDriver

Change
Request
Number

Description

CR185527

When using the JDriver for XA, accessing metadata using DataBaseMetadata sometimes failed and resulted in a java.sql.SQLException.

Now, the DatabaseMetaData object retains the reference to the statement it uses for obtaining metadata information, so it is not garbage collected quickly. As a result, accessing the metadata no longer fails.

For Database Management Systems that retain cursors for open statements, the retained statement will demand one DBMS cursor until the DatabaseMetaData object is garbage collected.

JMS

Change
Request
Number

Description

CR135578

CR200466

The bytes pending counter for non-durable topics was not getting updated correctly when the consumer exited with outstanding non-durable topic messages still pending Redelivery delay on the topic.

Now, the bytes pending counters for JMS statistics will be appropriately adjusted for non-durable topic messages when the consumer exits and Redelivery parameters have been configured. There is no redelivery attempt on unacknowledged non-durable topic messages when the consumer goes away.

CR173542

CR188526

A Java-level deadlock was occurring among several cluster members when using JMS distributed queues. The locked objects were weblogic.jms.backend.BEQueue and weblogic.jms.common.DistributedDestinationManager.

This problem was resolved by reworking the object synchronization.

CR180414

When JMSEnumeration provided a message to the client, it did not make a copy of the message. Anyone using a browser inside the server (such as a servlet) was able to edit the messages that went to others.

WebLogic Server now provides a copy when the browser is using a local connection.

CR182338

A receiver stops processing messages when a RedeliveryLimit is configured and the number of times the RedeliveryLimit is reached is greater than the MessagesMaximum setting on the ConnectionFactory.

Example: RedeliveryLimit=0, MessagesMaximum=10. Receiver receives a message and calls sesssion.recover() 10 times. Receiver will stop processing messages and the console will show 10 messages pending.

Code was added to adjust the window counter when a message is removed from the queue because the RedeliveryLimit had been reached.

CR184045

JMS was logging an exception error when it failed to un-register a migratable JMSServer on shutdown.

Now, JMS no longer logs an exception error when it fails to un-register a migratable JMSServer that is already shutdown or suspended.

CR184821

In MessagingBridge.ProcessMessage(), if WebLogic Server did not receive any message, it rolled back the transaction and returned from the method. Retry happened with scan_unit delay, which introduced a one second delay.

Now, in MessagingBridge.ProcessMessage(), if WebLogic Server does not receive a message, it rolls back the transaction and continues and retries again immediately instead of waiting for scan_unit to kick off a retry after one second. This change has avoided a latency delay in the bridge.

CR185785

CR126613

When a transaction was rolled back by the transaction manager during onMessage() it was not getting properly cleaned off the thread.

Now WebLogic Server no longer throws AssertionErrors during MDB message processing when a transaction is rolled back during onMessage() processing due to a transaction TimedOutException.

CR187945

JMS DistributedDestination load balancer was not recognizing pre-existing consumer(s) when a member was added dynamically.

WebLogic Server now checks to see if a member has any consumers when a member is added to a distributed destination so that the load balancer has the information it needs to load balance correctly.

CR188040

WebLogic JMS was not receiving notification when ServerDebugMBean() JMS attributes were changed.

The ServerDebugMBean() can now be used to dynamically enable and disable "DebugJMS" ServerDebugMBean attributes. This allows customers to dynamically enable or disable JMS Debugging flags.

CR188264

CR194959

CR188391

CR190095

JMS was not properly managing its window pipeline (MessagesMaximum) when redelivery limits were reached.

WebLogic Server now properly adjusts the window pipeline when redelivery limit is reached to prevent a stall in message processing.

CR189899

For synchronous API calls, when a peerGoneException was detected, the exception was being directed to the ExceptionListener. This behavior violated the spec for synchronous API calls.

Now, JMS only delivers exceptions to the ExceptionListener that have no other place to be reported. PeerGoneExceptions are not delivered to the ExceptionListener if the exception is detected during a synchronous JMS API call. In those cases, the exception is thrown from the synchronous JMS API as a LostServerException.

CR189957

CR191998

CR195727

When a disconnect and reconnect occurred with a remote thin client connection before the JMS Server detected peerGone on the initial client connection, JMS was incorrectly cleaning up both the old and the new connections when it detected the lost connection.

WebLogic Server now behaves as expected and no longer loses the new connection.

CR190438

A Java-level deadlock was found between objects weblogic.jms.backend.BEQueue and weblogic.jms.backend.BEConsummer.

This problem has been resolved by updating the lock hierarchy to make sure that the destination has been locked down first.

CR190843

Using views on JMSState and JMSStore tables along with Oracle 10G driver and 8i server resulted in SQLExceptions when the JMSServer was booted.

Now, JMSServer boots without error when the customer is using a view for JMSStore and JMSState tables along with Oracle 10G driver and Oracle 8i server.

CR192455

Due to an enhancement, the performance of the JMS JDBC Store is now significantly improved. As a result, the JDBC store will now reserve two JDBC connections from the configured connection pool rather than one.

CR192466

The Administration console was updated to provide a simplified process for configuring a messaging bridge.

CR197857

JMS was not sustaining the minimum flow rate. The actual minimum flow rate was approximately double the configured value. When using the default flow control settings on a Connection Factory, FlowMinimum=50, JMS was sustaining a flow minimum of approximately 100 messages per second rather than 50 messages per second.

Now, once a JMS destination exceeds its specified bytes or messages threshold and flow control is started for the producer, flow control throttles back until it reaches FlowMinimum (default 50) and it should maintain that minimum flow rate as long as thresholds are exceeded.

This change causes a greater slow down from flow control than previously seen because JMS is now correctly sustaining the minimum flow rate.

To maintain previous flow control behavior (behavior prior to the release of 8.1 sp4), double any FlowMinimum configurations and add a FlowMinimum=100 on ConnectionFactories that were previously assuming default values.

JNDI

Change
Request
Number

Description

CR186048

While deploying a war file, WebLogic Server creates an environment for the Web Application. To build this environment WebLogic Server creates an InitialContext to look up objects from the JNDI tree. Since jndi.properties was in the classpath WebLogic Server created the InitialContext from the properties specified in jndi.properties.

WebLogic Server never closed this initialcontext even after the environment was built. so the user specified in jndi.properties remained on top of the stack which caused problems when the server tried to change the MBean attributes as part of deployment.

WebLogic Server now closes the InitialContext after the environment has been built.

CR191092

When a managed server hosting a distributed topic did a forced shutdown and restarted, the distributed topic never received messages even after the restart.

Code was changed in the clustering layer so that the topic is no longer prevented from being re-added to the distributed topics list.

JSP

Change
Request
Number

Description

CR131694

On AIX, ISO-2022-JP characters were sometimes garbled because an escape sequence was missing.

On AIX, ISO-2022-JP characters are no longer garbled.

CR136784

The weblogic.Deployer utility could not be used to redeploy a partial web application if pageCheckSeconds was set to -1 in the weblogic.xml file for the web application.

Now, weblogic.Deployer can redeploy partial modified web applications even if pageCheckSeconds is set to -1 in the weblogic.xml file.

CR179636

Due to the limitation of 64K size of Strings, Weblogic Server was failing to compile MultiByte JSP's that comprised of very long Strings. It failed to divide the string for avoiding JVM 64K limitation; therefore, the following Exception, was encountered,

java.lang.ClassFormatError: jsp_servlet/_docs/_pas5e/__gp5e0305001 (Illegal constant pool type)

WebLogic Server now supports Multi Byte JSPs without any limitation on String Size.

CR180854

When a JSP parsing error happened, the JSP source file was locked because the file streams were not closed.Thus the JSP file could not be updated.

The IO Streams are now explicitly closed, allowing JSP files to be updated.

CR185726

Running weblogic.jspc with over 2000 JSP files caused an OutOfMemory error.

The flag, -Dweblogic.jspc.useUniqueJspClassLoader, was added so that when it is set to true, each JSP is loaded in its own classloader, thus avoiding the OutOfMemory Exception.

CR185870

CR197362

Using wl:cache tags in JSP files was taking a long time and causing a deadlock when running multiple instances of the same JSP file.

Weblogic Server JSP container code was corrected to avoid the deadlock situation. As a result, using wl:cache tags in JSP files no longer causes a deadlock.

CR191143

The text in the body of an XML element that represented neither a standard action nor a custom action was not being translated.

Now, WebLogic Server passes this text to the current value of out and translates it.

CR197629

The async attribute of the wl:cache tag was not working because it was deprecated.

The async attribute was added back. Now, the wl:cache tag works correctly. The JSP page cannot flush data before wl:cache tag is used if async="true" is set.

JTA

Change
Request
Number

Description

CR125476

When a transaction was in the prepare phase and an XAER_RMERR or an XAER_RMFAIL exception was thrown, the transaction remained pending instead of being rolled back.

Now, under these conditions, the transaction is rolled back.

CR130073

When an application issued a number of rollbacks from Tuxedo 7.1 through WTC to WebLogic Server, some Oracle XA connections were leaked and not returned to the pool. XA Debug showed that XA End was not called so the connection was not cleaned up.

WebLogic Server now calls XA End, allowing the connections to be returned to the pool and eliminating the out of memory error.

CR134081

When a resource adapter becomes unregistered, either by calling unregister or by a resource failure, all transaction operations intended for that resource adapter fail.

Starting with Service Pack 5, if a second resource adapter with the same name is registered, all transactions that were intended for the first resource adapter will now operate on the second resource adapter.

CR176663

CR198213

Transactions that were recovered from the TLOG that had a non-XA participant could not be completed.

After a code modification, WebLogic Server now allows these transactions to be successfully completed.

CR184585

Added support for XAResource implementations that possess thread affinity behaviors.

CR184941

After a manual JTA migration to back up the server, attempts to boot the crashed WebLogic Server were not successful.

Now, after a manual JTA migration to back up the server, if the crashed WebLogic Server is restarted, it boots successfully.

CR188558

When the WebLogic Server was shut down before the timer thread went off, some resources were not being checkpointed to the TLOG. When the WebLogic Server was brought back up, recovery on those resources would not run and any pending transactions would be left pending.

Now, when the transaction enlists with a resource, if the resource is coordinated locally and if the resource needs to be checkpointed, it is flagged so that at prepare time, if the transaction is two-phase, the resource gets checkpointed to the TLOG.

JTS

Change
Request
Number

Description

CR189994

CR197412

Upon connection.close, if autocommit was set to false, the updates to the database were getting committed.

To avoid this, WebLogic Server now does a rollback first before closing the physical connection during connection pool reset and destroy operations.

Now, in order to ensure data integrity, the functionality does not commit by default when closing the physical connection due to a reset / destroy if setAutoCommit(false) is used.

CR196085

All public Statement methods are protected by a check that stops a user from doing any more JDBC once a transaction is no longer in progress. In the case of a transaction being rolled back, WebLogic Server itself was calling cancel() on any ongoing statements and the check was blocking WebLogic Server as if WebLogic Server were a user. The following exception was then being thrown:

java.sql.SQLException: The transaction is no longer active

The check for the cancel() call has been removed. As a result, SQLException is no longer thrown when a transaction is rolled back.

JVM

Change
Request
Number

Description

CR122722

In rare situations on a multi-processor system, a race condition in the Sun JDK would cause a java.lang.Error UnsupportedCharsetException which would terminate the running application.

Sun resolved the problem in JDK 1.4.2_05 by redesigning the way they load character sets (see Sun BugParade 4838512). No change was made to WebLogic Server and there are no side effects for WebLogic Server.

Node Manager

Change
Request
Number

Description

CR173733

CR197202

CustomTrustKeyStorePassPhrase is now encrypted so that it no longer appears in clear text in the nodemanager.config file.

CR184261

Threads were hanging on the Administration Server and the NodeManager when simultaneous start and kill requests were issued for the same server.

WebLogic Server now checks for duplicate requests and takes the appropriate action to prevent hung threads.

CR184760

The managed server was becoming defunct if it was shut down abruptly through Node Manager on Red Hat Enterprise Linux 3.0-1 because the NodeManager was ignoring the SIGCHLD which was not POSIX-compliant.

To avoid this situation, the code has been made POSIX-compliant for Linux OS i686 only because the problem did not occur on any other UNIX flavors.

As a result, the managed server processes now exit cleanly and do not become zombie processes in Linux.

CR186592

CR206553

NodeManager was leaking sockets when ...

    1. A server start request was sent from the Administration Server to the NodeManager and it was not being properly closed.

    2. Duplicate start/stop requests were sent for the same server.

When a socket connection is abruptly broken, WebLogic Server properly closes the socket and its underlying streams.

CR189124

For UNIX platforms, the pid file was being created when the NodeManager started a managed server, but the pid was not being written to the pid file.

Now, WebLogic Server writes the pid to the pid file for UNIX platforms.

CR193193

CR202754

NodeManager was not restarting a managed server when all the threads in the default queue were stuck.

Now, if all the threads in the default queue are stuck and there are no other application queues, NodeManager detects that the server is in a failed state and restarts the server.

Operations, Administration, and Management

Change
Request
Number

Description

CR101263

CR184396

When running the EXISTS_POOL command on the admin server of a domain with managed servers, the command only returned true if the pool was deployed on the admin server. Since connection pool names must be unique in a domain, this command should have returned true if the pool existed in the domain, not only on the server.

WebLogic Server now returns true if a pool with the specified name has been configured in the domain.

CR108002

weblogic.Admin CREATE_POOL used RefreshMinutes even though it was deprecated in 8.1. If you set refreshPeriod through CREATE_POOL, it was not displayed from the Administration Console because the Administration Console retrieved a value from TestFrequencySeconds.

WebLogic Server now uses TestFrequencySeconds instead of refreshMinutes when setting attributes on JDBCConnectionPoolMBean via an ant task.

CR108496

When editing an EJB deployment descriptor from the console, the <global/> tag was being changed to <global>true</global> in the deployed EJB jar file.

An empty tag for getGlobalRole method was added so that validation does not fail after persistence.

CR111896

The WL.Admin -batchupdate command did not allow single or double quoted strings in the batch file.

The single and double quote characters are now stripped before processing the command so that batch files can have quoted strings.

CR112292

weblogic.Admin TEST_POOL was not throwing an exception if the connection failed, and was therefore returning a 0 rather than a 1.

WebLogic Server has ben changed to make sure that an exception is thrown, in the event that there is a failure in testing the connection.

CR121202

User deployment actions sometimes interacted with server-scheduled work to cause a deadlock while logging and saving the Configuration repository.

WebLogic Server now has ordered the locks and moved the logging messages outside the synchronization code.

CR126191

The DESTROY_POOL command used with the weblogic.Admin tool merely disconnected all the users and suspended the pool. It did not actually delete the pool from

the domain configuration as it should.

DESTROY_POOL now deletes the pool configuration. Use DISABLE_POOL or SUSPEND to suspend the pool.

CR126499

WebLogic Server returned an incorrect exit code of 0 when the "ping" command failed.

WebLogic Server now returns the correct exit code in the event of an error.

CR127031

When trying to create a JMSQueue or a JMSTopic using the wlconfig ant task, a NullPointerException was seen. The exception appeared only when the parent attribute was used.The following error message was generated:

BUILD FAILED

<file:<drive>:/..../build.xml:6>: Error invoking MBean command:

java.lang.NullPointerException

WebLogic Server now addresses the parent attribute correctly and the NullPointerException no longer occurs.

CR127379

When reconnecting to managed servers, WebLogic Server was using the IP address instead of the hostname that had been specified in the config.xml file. As a result, hostname verification was not working.

Now, WebLogic Server uses the hostname to reconnect and hostname verification is working.

CR127563

The system property, net.http.URLStreamHandlerFactory, was not being recognized because it was not in the list of recognized properties.

It has been added to the list of recognized properties and is now being recognized.

CR134167

EXISTS_POOL did not work as expected. It was looking for runtime mbeans which may or may not exist even if the pool exists. DELETE_POOL, an undocumented command, was the internal implementation to delete a connection pool; however, this feature was documented as DESTROY_POOL externally.

The Help menu also displayed some undocumented commands.

EXISTS_POOL command implementation now looks for configuration mbeans to check whether the pool exists.

DESTROY_POOL command now uses the underlying DELETE_POOL implementation.

All the undocumented commands that appeared in the weblogic.Admin help menu are now disabled. Commands include TEST_POOL, REMOVE_POOL, SUSPEND_POOL, SHUTDOWN_POOL, RESUME_POOL, DELETE_POOL. These will not be supported going forward and will not work in 7.0 SP5.

The Help menu no longer lists these commands.

CR134843

When enforcing the filecount, the code used cached values of the directory contents taken prior to log rotation. These values did not include the latest log file, thus the file count was sometimes one higher than the value set.

WebLogic Server now re-reads the contents of the directory after rotation so that the filecount is enforced correctly.

CR135573

When a managed server booted in MSI mode, the msi-config.xml file was not being replicated correctly.

Now, WebLogic Server checks to see if the server is running in MSI mode each time instead of using a cached value. As a result, the msi-config.xml file is replicated correctly when a managed server boots in MSI mode.

CR172017

When creating a new server through JMX on a remote server, WebLogic Server no longer throws a NullPointerException if a server with the same name already existed.

CR174775

The system property, management.discover, was generating an unrecognized property warning when used because it was not in the list of recognized WebLogic Server properties. The property's functionality worked despite the warning message.

The system property, management.discover, has been added to the list of known WebLogic Server properties and the warning message no longer appears.

CR175474

A code assertion error was thrown when removing a webapp while the server it was deployed to was unavailable.

The assertion was removed and processing continues to remove the webapp.

WebLogic Server no longer throws an assertion in this particular case.

CR175911

The system property, weblogic.jsp.windows.caseSensitive, was generating an unrecognized property warning when used because it was not in the list of recognized WebLogic Server properties. The property's functionality worked despite the warning message.

The system property, weblogic.jsp.windows.caseSensitive, has been added to the list of known WebLogic Server properties and the warning message no longer appears.

CR176445

CR183762

WebLogic Server threw a NullPointerException when trying to target an application's EJB using nested create commands.

WebLogic Server no longer throws a NullPointerException when processing nested create commands.

CR177106

WebLogic Server generateConfig generated startup scripts with JAVA_VENDOR SUN instead of Sun.

WebLogic Server now generates startup scripts with the correct case for Sun.

CR177534

For two reasons, messages were not getting forwarded to the domain log even though managed server log messages were still being written and they should have been forwarded.

1) Using LogManager.readConfiguration and removing and adding WebLogic Server handlers to the root logger, the log was being closed inadvertently.

2) On the managed server, logging messages with large stack traces that were being forwarded to the domain log were causing the domain log forwarding mechanism to cease forwarding messages.

Code has been changed that resolved the problem. Now, messages are not getting forwarded to the domain log as expected.

CR17997, CR248538

Log Rotation was logging messages BEA-170017 and BEA-170018 as Alert type messages when they should be logged as Info type messages.

Log Rotation messages BEA-170017 and BEA-170018 were changed so that they are now logged as Info type messages. Any program or behavior that relied on BEA-170017 and BEA-170018 to be an Alert needs to be changed to rely on Info.

CR182115

The weblogic.Admin tool attempted to retrieve a custom type MBean (commo) if the MBean with the provided name did not exist. This resulted in a misleading audit record.

Now, the weblogic.Admin tool throws an InstanceNotFoundException when an MBean with the provided name does not exist instead of attempting to look up or create commo MBeans. As a result, the audit record is no longer misleading.

CR182686

A ConcurrentModificationException was sometimes thrown while setting System Properties in a startup class or servlet.

WebLogic Server has been modified to synchronize the properties and no longer throws the ConcurrentModificationException when setting System properties.

CR183420

getFullPath was @excluded and was therefore unavailable to clients.

Applications can now call applicationMBean.getFullPath() to retrieve the application path on the Administration Server.

CR183836

CR197100

CR187104

Caching of log records was causing OutOfMemory conditions.

WebLogic Server now provides an option so the number of log messages cached is configurable from 0 to infinity. The default is still 500 if this option is not used.

CR183961

The WebLogic Server ant task "nice shutdown" did not have a configurable time delay.

A "Delay=" feature was added to WebLogic Server which now allows you to specify the delay in seconds before shutdown.

CR184080

CR177963

On repeated deploy / undeploy cycles of the EAR with weblogic.Deployer the permanent generation area of the managed server grew until an OutOfMemory error was reported.

WebLogic Server now cleans metadata hashmap entries when an Mbean is unregistered. This eliminates the OutOfMemory situation caused by deploying and undeploying repeatedly.

CR184787

The Administration Console did not display the "replicated_if_clustered" value for PersistentStoreType on the session parameters page of the Deployment Descriptor page. As a result, when the descriptor was persisted, it put in a different value into the descriptor.

The Administration Console now displays the value and it is correctly added to the descriptor.

CR185307

The WLConfig ant task used "parent" to set the "Parent" mbean attribute.

The WLConfig ant task now uses the correct attribute.

CR186644

THe Administration Console was updating the PathURI attribute incorrectly when another attribute, LoadOrder, was modified.

PathURI is no longer settable after deployment, therefore LoadOrder modification no longer updates it incorrectly.

CR191198

The ErrorDestination parent could not be set to the JMS Queue using the WLConfig and the WL admin scripts.

Now, the WLConfig and WL admin scripts work as expected. They are able to set ErrorDestination on a deployed server.

CR191340

CR252299

When piping standard error and standard output to a file by simultaneously using the -Dweblogic.Stdout and -Dweblogc.Stderr options, the standard output was erroneously written into the log file specified using the weblogic.Stderr option, while the standard error was not written into any log files even if the -Dweblogc.Stderr option was used.

Now, when piping standard error and standard output files using the -Dweblogic.Stdout and -Dweblogc.Stderr options , both the standard error and the standard output are written to the correct log files.

CR191350

The properties:

-Dweblogic.Stdout=myserver/myserver_stdout.log

-Dweblogic.Stderr=myserver/myserver_stderr.log

were generating an unrecognized property warning when used because they were not in the list of recognized WebLogic Server properties. The properties' functionality worked despite the warning message.

These properties have been added to the list of known WebLogic Server properties and the warning message no longer appears.

CR194076

When the WebLogic logging level was set to FINE and WebLogic Server was under heavy load, all logging was hanging.

Access has been synchronized to the WebLogic Log record cache to improve performance. Now, when the WebLogic logging level is set to FINE and WebLogic Server is under heavy load, logging no longer hangs.

CR194477

The WebLogic Server WLCONFIG anttask did not correctly initialize internal data structures to correctly deal with Security MBeans (COMMO MBeans). As a result, creating custom providers via WLCONFIG anttask caused a NullPointerException.

A correction to WLCONFIG has been made so that it now correctly processes Security MBeans and creating custom providers via WLCONFIG anttask no longer causes a NullPointerException.

CR196774

When a WebLogic configuration property was used while booting WebLogic Server and that property was unknown to the WebLogic Server management subsystem, a message of severity WARNING was being logged.

The Message severity was lowered to INFO and the message text was changed to accurately reflect the nature of the message.

CR197981

CR200953

When deployed to a cluster, the Messaging Bridge was not correctly receiving Notification Listener messages after a server restart.

Changes were made so that now the Notifications are correctly delivered and the bridge is properly deployed and discovered.

CR202252

Unregistering MBeans that had any registered RemoteNotificationListeners was causing a memory leak. As a result, garbage collection was not able to clean up this memory. This eventually led to an out of memory situation.

All the listeners on the MBean are now removed before it is unregistered. Now, no memory leak occurs when unregistering MBeans that have any registered RemoteNotificationListeners.

Plug-Ins

Change
Request
Number

Description

CR095984

When the file size exceeded 30KB, a DNS error message of IE 6.0 was received instead of a 413 message when using the NSAPI plug-in.

The behavior of MaxPostSize configuration is now the same with or without a plug-in.

CR100070

It was not easy to maintain the WLLogFile for each virtual host in the Apache-WLS plug-in because there was only one global debug flag to enable or disable debugging for all the requests handled by the plugin.

Now, it is possible to specify the debugging option at the top most level and overwrite it within each virtual host and/or location tag.

CR136968

Weblogic Server was not accepting more than one header when the response.addHeader method was used.

The plug-in now allows WWW-Authenticate to have multiple values.

CR178792

(Apache) HTTP requests can contain either one of the following headers: Content-Length or Transfer-Encoding

Requests with a Transfer-Encoding header set to "chunked" were failing with an IO error.

Code was added to support requests using the Transfer-Encoding header set to "chunked".

CR180417

If a cookie was part of the POST data then the plug-in would corrupt the post data while extracting the cookie.

Code was added to fix the cookie extraction from Post Data.

CR180560

The plug-in was not printing the socket information (localhost:localport remotehost:remoteport) to the log file when making a new connection to WebLogic Server.

Log messages with the local hostname and local port number are now added when the plug-in makes a new connection to WebLogic Server.

CR180724

The initial cookie was created through web server one and sent to cluster one. When it hit the application again it went through web server two and instead of being directed to cluster 1 it went to cluster 2 and created a new session.

The WLCrossOverEnabled functionality now works correctly in WebLogic Server.

CR182434

Headings passed to rq->srvhdrs were not entirely in lower-case instead of mixed case.

Content-type, content-length and transfer-encoding headers are now passed to NSAPI entirely in lower case.

CR182971

ServerList was deleted after every DNSRefreshInterval which resulted in a core dump.

WebLogic Server now does a DNS lookup of all the servers in the list and updates the ServerInfo structure if any server has changed from the last time it was checked.

CR183188

The ISAPI plug-in was unable to handle requests with the Transfer-Encoding header set to chunked.

Functionality was added to enable ISAPI to handle such requests.

CR183311

When Apache was stopped while using a single-thread multi-process module, it would try to stop the timer thread first. This timer thread never existed, thus a core dump occurred.

WebLogic Server no longer creates timer threads when Apache is being used with a single-thread multi-process module.

CR183390

WebLogic Server was throwing an exception from inside the catch block which sometimes caused iPlanet to fail.

WebLogic Server no longer throws an exception from the catch block.

CR185089

The IIS plug-in was sending an Http status code of 500 (internal Server Error) when it encountered a WRITE_ERROR_TO_CLIENT exception due to a connection closed by the client.

The IIS plug-in now sends Http status code of 503 when a WRITE_ERROR_TO_CLIENT exception is caught.

CR185668

When using the Apache plug-in to proxy to multiple clusters using MatchExpressions, the PathTrim attribute was failing to trim off the segment of the url used to direct the request.

Reimplementing MatchExpressions parsing without using the strtok API corrected the problem.

CR186148

When the Apache plug-in encountered a missing page, it was returning a 500 error, rather than the correct 503 error.

The plug-in now returns the correct error.

CR186148

When the Apache plug-in encountered a missing page, it was returning a 500 error, rather than the correct 503 error.

The plug-in now returns the correct error.

CR186470

When using the IIS plug-in, the creation of a large number of new connections through a firewall resulted in an HTTP status 302, and the connection was closed.

WebLogic Server now recycles the connections if the HTTP status code is 302.

CR187282

Because the plugin did not follow a part of the HTTP1.1 specification, which states that if a request/response contains both a Content-Length header as well as a Transfer-Encoding: Chunked header, the Content-Length header MUST be ignored, there was a unique scenario involving a recycled connection from the pool that sometimes caused an error.

WebLogic Server now returns contectLength as -1 if CTE is on.

CR187577

When using multiple Location tags in a VirtualHost tag, the Apache plug-in generated a strange URL if the requests matched two more Locations.

The Apache plug-in no longer uses regular expression match, unless specified.

CR187578

When KeepAliveEnabled ON was configured in httpd.conf, KeepAliveSecs defaulted to 20.

This default setting could not be changed.

Code was changed to ensure KeepAliveSecs is configurable.

CR188811

WLExcludePathOrMimeType did not work correctly when a request had a query string.

Requests such as http://webserver:port/weblogic/something.jsp?value=123 were not excluded and requests such as http://webserver:port/weblogic/something.do?name=test.jsp were not forwarded.

The plug-in now ignores query strings while checking for excludes.

CR189251

Under load, Segmentation errors occurred while retrieving plug-in Properties for a virtual host.

Replacing strtok API with strchr, as strtok API is not thread safe, eliminated the errors.

CR189933

CR199045

The WebLogic Server plug-in was not thread safe. The memory address to SrvrInfo array and its size were being passed around and then could be modified by another thread. If they were then modified by another thread, the first thread could end up accessing invalid memory location which could result in seg fault.

Now, the WebLogic Server plug-in is thread safe. WebLogic Server makes a read-only copy of SrvrInfo array before passing it around.

CR190562

Requests were not retried when the plug-in encountered a broken pipe error on Solaris while sending post data to WebLogic Server. WebLogic Server now throws a HALF_OPEN_SOCKET_RETRY exception when sendPostData reports a broken pipe on Solaris

CR191552

The deprecated property, MaxSkips, was replaced by MaxSkipTime. This new property was not being used throughout the code. As a result, the parameter, MaxSkipTime, defaulted to a value of 10 that could not be changed.

MaxSkipTime is now used throughout the code and therefore its value can now be changed.

CR192875

The iPlanet Server was crashing if readPostDataIntoFile() threw a new exception from its try catch block.

This no longer occurs because readPostDataIntoFile() now returns an exception instead of throwing it if it encounters an error while writing post data to a temp file.

CR193447

The cookie did not contain, |, as the delimiter separating primary and secondary information present. As a result, parseJVMID() always returned the primary server information and ignored the secondary server information.

The cookie is now tokenized to separate primary and secondary information and then call parseJVMID() for both of the extracted values. Now, parseJVMID() returns both the primary server information and the secondary server information.

CR193985

WebLogic Server was logging "creating timer thread in child" messages as [warn] in the log level.

Now, these messages are logged as [info] in the log level which better reflects the nature of the message.

CR194141

The Apache plug-in was decoding the URI before passing the request to WebLogic Server even though getRequestURI states that the returned value should not be decoded.

Now, the Apache plug-in passes the URI to WebLogic Server without decoding it first.

CR194464

A call to internal initJVMID() was not updating the state of the server from GOOD to BAD if the connection was refused. As a result, time was wasted trying to reach a server that was already down.

Now, if the server is already marked BAD, initJVMID() will skip it and try the next server. Also, initJVMID() updates the state of the server if the connection is refused.

CR198530

The If-Modified-Since header was not being sent to WebLogic Server from the Apache plug-in using both non-SSL and SSL.

This problem has been resolved.

CR199045

When multiple object tags were configured for various path values using both SSL and non-SSL configuration, the plug-in was unable to switch correctly between SSL and non-SSL requests.

Replaced a global flag (convertDNSSToIP) with a per request flag (moved inside ConfigInfo structure), so that the plug-in now switches correctly between SSL and non-SSL requests.

CR199446

CR200295

The Apache plug-in did not support regular expressions in the Location and the LocationMatch tags.

Now, the Apache plug-in supports POSIX regular expressions.

The following Location tag is not valid anymore:

<Location */app/*>

...

</Location>

The tag should be changed to:

<Location /app/>

...

</Location>

Following are some commonly used entries in Location tags:

Request matches a certain path:

/app/*

should be changed to:

/app/

Request starts with a certain path:

/app/*

should be changed to:

^/app/

Request matches a particular mime type:

*/*.jsp

should be changed to:

\.jsp

CR199668

Hostname matches were case sensitive, so "HostName" did not match "hostname" when doing a host search.

Now, the host search for iisforward.ini proxy is no longer case sensitive. So, Hostname matches are not case sensitive.

CR201736

The WL-Proxy-SSL header is no longer missing when using the ISAPI plug-in.

RMI/RMI-IIOP

Change
Request
Number

Description

CR131692

When throwing a derived exception from the ejb method, the iiop layer was adding the Full Value Description for the derived exception but not for the base exception. When the client came back to get information about the base exception the server did not have it and threw an exception.

Code has been added to ensure that when creating a Full Value Description for the derived class, the Full Value description of the base classes is created as well.

CR176676

RMI timeout enables an RMI client making a remote call to return even when the remote method that it invoked has not returned from the called server. In other words, it does not wait to be notified on getting a response. Sometimes, due to the nature of the application, the response might take a long time to arrive. In such cases, the waiting thread on the caller is blocked. RMI timeout will provide a handle (during weblogic.ejbc/weblogic.rmic) in order that a timeout value per remote method can be specified.

CR177353

When a application client code cached the remote stub and invoked a remote method on a SLSB deployed to a cluster, the behavior was that each call refreshed the list which tracked the cluster nodes where the remote object is available. This list was used to failover the calls if any of the node failed with a recoverable exception. The issue here was that failover did not work when the entire cluster was restarted while the application client had cached the stub from a previous invocation.

The retry logic in the failover algorithm was incorrect. This logic originally allowed n-1 number of retries in a cluster with n nodes. When the entire cluster restarted, the cached stub would have stale list. And the retry logic scanned though the stale list and exhausted all the retry attempts. In the last attempt it would have potentially refreshed the list. Even though the client side stub now had a new copy of the list it did not attempt to failover as it has already reached n-1 attempts limit.

The remote stub cached in the application client now ensures it refreshes the list only when remote method invocation fails on all the nodes in the existing list. Then stub is given one last chance for failover if the list got refreshed. If this last chance does not succeed the stub will throw an exception to the application otherwise failover will continue to work as advertised transparently.

CR179595

During redeploy, the old finder was reused. Hence the new skeleton, according to new interfaces, was not generated. Instead, the old skeleton was used for new remote interfaces.

WebLogic Server now creates a new finder when the classloader is bounced.

CR183490

CR192555

When a stub was deserialized the server did not call connect on the stub which resulted in exception stating "Delegate not set".

In addition a problem occurred when a stub was obtained by connecting to a cluster. After deserilization the information that the stub was connected to the cluster was lost. The deserialized stub only remembered the last server to which it was connected.

WebLogic Server now extends a class from com.sun.corba.se.internal.javax.rmi.CORBA.StubDelegateImpl. In the new class derived from StubDelegateImpl WebLogic Server overrides writeObject and readObject. while writing, the object WebLogic Server also writes the clusterURL and while reading the object, WebLogic Server reads the cluster url and call connect on the deserialized stub.

A system property must be set on the client side in order to access this new functionality. The property is named javax.rmi.CORBA.StubClass. so the client side script might include something like this:

-Djavax.rmi.CORBA.StubClass=weblogic.corba.client.iiop.WLStubDelegate

CR184662

Serializing the stateful session bean (SFSB) handle no longer results in a NO_IMPLEMENT exception when using the IIOP protocol.

CR188229

CR196372

JDBCWrapper objects were lying in the heap even after the connection, statement, and result set objects were closed.

The JDBCWrapper objects are now GC'ed after the connection, statement and result set objects are closed.

CR189042

Now, WebLogic Server can proxy IIOPS requests using the thin client.

CR189042

IIOPS requests were unable to be proxied through an outbound webfilter such as Squid. These webfilters only allowed HTTP and HTTPS requests through.

WebLogic Server now allows the thin-client to create a proxy socket through the webfilter using the CONNECT command. IIOPS requests can now use this proxy socket.

CR189067

An applet hosting an RMI object was getting DGC'd after four minutes which is the distributed garbage collection (DGC) timeout period. The applet was unable to download the relevant rtd file for DGCServer, thereby allocating it an oid of >256. As a result, the leases were not being renewed for the RMI object and the applet was getting DGC'd.

To fix this, WebLogic Server now allows the ClasspathServlet to service .dtd and rtd files.

CR190380

IIOP connections could appear to randomly fail after initial use. These connections are now cleaned up correctly and therefore no longer appear to randomly fail.

CR192252

For hardware load-balancers in conjunction with IIOP, the system property, reconnectOnBootstrap, is now working correctly in the BEA ORB.

CR192648

The thin client usage of the SocketImpl class was causing network-related failures due to a problem in the way J2SE determines the implementation of the SocketImpl class.

The thin client has been changed to work around the J2SE problem. As a result, clients can now correctly connect through a firewall.

CR194465

During failover, when using thinclient and tunneling, the applet was trying to resolve the public address of the backend servers which resulted in a security exception.

Now, WebLogic Server does not resolve public addresses during tunneling. As a result, there is no security exception during failover when using thinclient and tunneling.

CR195105

WebLogic Server was sending the wrong port information so that while trying to download the stubs, the client was trying to connect to the wrong port. As a result, thin client could not be run using wlclient.jar with t3s.

Changes were made in the CodebaseComponent class so that the server now sends the correct address and port information to the client. As a result, thin client can work through a firewall.

CR199420

Using AsyncMessageSender was resulting in stuck threads when sending large messages. Under sustained load, a thread was stuck indefinitely.

Thread sending has now been batch pined. As a result, threads are no longer stuck when sending large messages using AsyncMessageSender.

Security

Change
Request
Number

Description

CR112486

CR199852

The CredentialMapper had insufficient privileges to modify the user credential mappings in all cases.

WebLogic Server now has sufficient privileges to modify the user credential mappings in all cases.

CR121761

The ParsePolicies class was not parsing some special permissions properly.

This problem has been resolved.

CR124562

WebLogic log was ignoring the Principals that extend WLSUser. Therefore, sometimes the wrong Principal was being displayed in the user field.

Now, WebLogic log displays the custom Principals that extend WLSUser.

CR125177

WebLogic Server was not checking for group circularity in weblogic.security.providers.authentication.LDAPAtnLoginModuleImpl. As a result, so many LDAPConnections were being created when the backend LDAP group had itself as a member that the server would crash.

Now, WebLogic Server has a flag called IgnoreDuplicateMembership. When checked, this flag warns if a group is being added that has already been added to the list of groups a user belongs to. In this case, WebLogic Server will then ignore the duplicate group. By default, the flag is unchecked.

Although this flag works in production mode, it is recommended that it only be used in development mode due to its affect on performance in production mode.

CR132634

Memory Leaks were detected when using DirContext.close with the embedded LDAP server.

This problem has been resolved.

CR132656

When the flag -Dweblogic.security.URLResourceCaseMapping=off was used during startup, a warning message was displayed even though the server started correctly.

WebLogic Server no longer displays the incorrect warning.

CR135587

WebLogic Server only supported the use of the weblogic.system.BootIdentity file with the SHUTDOWN and FORCESHUTDOWN operations of the weblogic. admin utility.

The weblogic.admin utility has been enhanced to support the use of the weblogic.system.BootIdentity file with all its operations.

CR172261

The Certicom implementation of the SSL protocol in WebLogic Server uses a class that is synchronized by the JDK. This synchronization caused the SSL session threads to hang.

The SSL implementation now uses a class that is synchronized outside of the JDK. This change resolved the SSL session thread problem.

CR172912

If two trusted CA certificates had the same Subject name, WebLogic SSL implementation was only using the first trusted CA certificate. This often resulted in an SSL client failing the peer certificate validation check.

This problem has been resolved. Now if there are two trusted CA certificates with the same Subject name, the SSL implementation finds the appropriate trusted CA certificate for the peer certificate presented.

CR175966

Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04-72.00.jsp.

CR176306

The muxable socket for the embedded LDAP server was not correctly calculating the message length. The result was the data in the embedded LDAP was not replicated in a cluster of managed servers.

WebLogic Server now calculates the available bytes and the LDAP messages correctly.

CR177522

When a context was opened during a jms call, the subject was pushed onto a stack of subjects. If the context was not closed, the subject was not removed, leaving an extra subject on the stack.

When the application continued to process and at some point accessed a protected resource, the extra subject was taken from the stack as the current subject. In some cases, it did not have the required privileges, so access to the resource was denied. Closing the context removed the subject from the stack, restoring the correct subject to the top of the stack.

CR177523

CR189057

When proxying a connection, the proxy hostname was being validated during hostname verification rather than the target system hostname, causing a validation error.

WebLogic Server now validates the target system hostname.

CR179633

When a client program was trying to establish a mutually-authenticated SSL connection to WebLogic Server, it was able to establish the connection and perform its task only once. Subsequent attempts to establish a connection were failing.

This problem has been resolved.

CR180729

When using the embedded LDAP server, membership information from both the LDAP etc/group and etc/passwd directories was not processed when group membership was determined.

WebLogic Server now combines and retrieves the membership information specified in the etc/group and etc/passwd directories.

CR180841

When the areWebAppFilesCaseInsensitive() method was added to the Security Service Manager, the calculation of the case-setting changed for client processes. As a result, the configuration and listing of security roles and security policies for a URL resource was failing.

This problem has been resolved.

CR180972

Performance of outbound SSL connections was slowed compared to JSSE because WebLogic Server created a new SSLSocketFactory for each outbound request.

WebLogic Server now caches the SSLSocketFactory when there is no certificate for the request.

CR181263

WebLogic Server was ignoring the weblogic.management.username command-line property.

The only way to get the username was to look in the boot.properties file or to prompt the user.

Code was added to so that WebLogic Server can obtain the username by using the weblogic.management.username command-line property when no boot.propertiesfile is available.

WebLogic Server uses the following process to obtain the username:

    1. If it exists, look in the boot.properties file.

    2. Obtain the username by using the weblogic.management.username command-line property.

    3. Prompting the user for the username.

CR182006

Certificate verification was failing because the SubjectAlternativeName extension to the x509 certificate was marked as critical.

WebLogic Server now allows x509 certificates with this extension marked as critical to be verified during the SSL handshake.

CR182702

When the Web Application was restricted with (/*) in the web.xml file there was no constraint on access to the root directory (/). For example, if the application was foo and policy was defined for (/*) in the web.xml file, the result was that /foo was not protected.

Now, WebLogic Server constrains access to the root directory (/) when the webapp is restricted with (/*) in the web.xml file.

CR182860

When Web browsers sent plain text through the secure port, SSL misunderstood the message header and waited for more data before finishing the message. This delay caused problems with the SSL handshake. The server was using 100%of its CPU usage trying to complete the SSL handshake. This problem was caused by an arithmetic error on the number of bytes read.

This arithmetic problem has been solved. Clients that send plaintext messages to the secure port now receive errors earlier and the server will not hang because of 100% CPU utilization.

CR184203

When a server joined a cluster, it obtained information from other servers in the cluster for purposes of synchronization. It the cluster was configured to use only SSL ports and required client certificates to establish the SSL connection, the synchronization was failing. The problem occurred because the new server (the SSL client) was not presenting a certificate to the other servers in the cluster.

This problem has been resolved.

CR185283

CR197577

When using the T3 or IIOP protocol, WebLogic Server was not propagating the Security context (javax.security.auth.Subject) between WebLogic Server instances.

The WebLogic Credential Mapping provider is now called for each outbound CSIv2 session that is established from a server. The Credential Mapping provider uses the inbound CSIv2 principal instead of the AuthenticatedSubject principal to propagate the security context. Note the WebLogic Credential Mapping provider does not have access to the credentials for the inbound principal.

If the credentials are required, a custom Authentication provider needs to be written to add them to the Subject so that the WebLogic Credential Mapping provider can access them.

CR185315

CR199865

The implementation of LDAP server in WebLogic Server had connection handlers each of which ran in its own threads. However, the implementation was not starting and stopping the threads properly therefore thread memory was not being recovered.

The implementation was changed so that the connection handlers no longer run as threads. This change allows normal memory recovery to take place.

CR185438

Connections to external LDAP servers were sometimes dropped if a load balancer or firewall was configured between WebLogic Server and the external LDAP Server.

WebLogic Server now automatically refreshes the connections if they are dropped and user requests complete if the connection is dropped during the request.

CR185792

When an LDAP connection was dropped by the LDAP server, WebLogic obtained a new connection. However, the stale connection was not getting cleared.

The stale LDAP references are now cleared correctly when using the Compatibility realm.

CR186186

The Certicom code was handling UTF8 incorrectly. It was treating the bytes of a String as individual characters causing a NullPointerException when Scandinavian characters are used.

WebLogic Server now processes UTF8 correctly.

CR186916

Two aspects of SubjectUtils.isUserInGroup were problematic.

  • Getting only Principals of a specific class required evaluating each Principal while building a set of Principals, then iterating through them to find if any Principal was in the group being searched for. This problem effectively caused two iterations through the Principals when one could b e used to get all Principals of the Subject and then iterating for the group name.

  • Getting an AuthenticatedSubject from the javax.security.auth.Subject interface and searching for the Subject in a group could not be done unless the Subject had been authenticated. This problem meant additional cycles to authenticate the Subject and determine to which groups the Subject belonged.

RESOLUTION:

All Principals are now gotten from the Subject and are iterated through once looking for the specified WLSGroup.

A second method has been added with an AuthenticatedSubject as the first parameter. Both public isUserInGroup () methods were changed to call an internal isUserInGroup ()method that works with a set of Principals rather than any Subject. This method eliminates the need for conversion from a Subject to an AuthenticatedSubject.

CR190679

The persisted authenticated Subject was reusable in a second session because the validation process did not detect the configuration change.

This problem was resolved by providing new functionality that re-authenticates an authenticated Subject presented during a request after a specified length of time.

CR191229

When Certificate Authentication was configured, Authorization was occurring even for unprotected resources. As a result, access for anonymous users was being denied.

Now, when Certificate Authentication is configured, Authorization no longer occurs for unprotected resources.

CR191419

The weblogic.security.X500Name class now implements the Serializable method.

CR193305

When querying the JDBCConnection MBean from a ServletContextListener and then deploying the associated EAR from the Administration Console, a NoAccessRuntime exception was thrown even though the application was successfully deployed.

This problem has been resolved.

CR196410

WebLogic Server was not honoring an authenticated Subject when a WebLogic Server security realm interoperated with a Compatibility security realm.

By default, WebLogic Server does not honor authenticated Subjects coming over the wire. The WLS User Principal Allowed attribute has been added to the WebLogic Server Administration Console. When the attribute is enabled in the WebLogic Authentication provider, WebLogic Server honors authenticated Subjects coming in over the wire.

CR196578

When WebLogic Server 6.1 and WebLogic Server 8.1 interoperated, an Authenticated User sent to a 8.1 server instance was not honored properly. As a result a java.rmi.AccessException was thrown.

The Authenticated User was changed to an Authenticated Subject.

Now, WebLogic Server 6.1 can interoperate with WebLogic Server 8.1 without a java.rmi.AccessException being thrown.

CR199331

The weblogic.servlet.security.CertificateServlet interface is deprecated in this release. Therefore, the Certificate Request Generator is also deprecated. Use the keytool utility from Sun Microsystems in place of the Certificate Request Generator servlet.

CR201690

The getLatestFailure() method no longer throws a NoSuchElementException.

Servlets

Change
Request
Number

Description

CR087857

When the character encoding was set by JSP pages or servlets, the ServletOutputStream.write(int) method, which takes int type as its argument, received the data encoded using the specified charset encoder.

WebLogic Server no longer encodes the binary data when ServletOutputStream.write(int) is called.

CR106348

A failure in the listener left the Web Application in an unstable (deployed) state instead of undeploying the Web Application.

When the listener fails (deployment is not completely successful), the Web Application deployment is rolled back.

CR108736

CR191543

When a user threw an exception wrapped in a ServletException while making a call to init, The exception cause for the ServletException was lost and the line number printed for the ServletException was incorrect.

WebLogic Server now handles this correctly. As a result, the Exception log prints the correct line number and the root cause of the ServletException.

CR134351

The flag, weblogic.http.client.defaultReadTimeout, has been introduced to set the default readtimeout on WebLogic Server's HttpURLConnection.

When this flag is set, every new HttpURLConnection created on the JVM will have this value set as default. The value can be overridden by setTimeout or setReadTimeout calls on the specific connection. When this flag is not used, the default value is -1. The value should be provided in milliSeconds.

CR136410

The HTTP access log rotation by size was working incorrectly on a multi-processor machine. After a number of log files were created, the rotation stopped working correctly, and eventually the rotation began overwriting the same two generations of the file.

The comparison function was modified, and WebLogic Server now creates new log files as needed.

CR172077

CR193354

Deployment of installed applications did not obey module order in application.xml while deploying the webapps.

During server start, ServletInitService.resume called the preloadResources on the deployed webapps but the Servlets were not necessarily invoked in the order the webapps had been deployed.

During server start, preload Servlets are now invoked in the same order as the webapps are deployed.

CR172088

WebLogic Server returned the HTTP 500 error for requests when the request contained a corrupt If-Modified-Since Http Header.

WebLogic Server now ignores the If-Modified-Since Header, if it is malformed.

CR172672

When HttpClusterServlet tried to reuse a recycled connection that WebLogic Server had already closed, it would get a SocketException and mark the WebLogic Server as BAD.

Now, if HttpClusterServlet gets a SocketException when using a recycled connection, it will make another attempt to connect to the same WebLogic Server with a new connection.

CR174501

When multiple Web Applications participated in a single signon, the sessions in some of the Web Applications were not invalidated.

WebLogic Server now correctly invalidates the sessions in all Web Applications.

CR175097

CR173748

During the process when Webapp deployment extracts the web-inf/lib JAR files to the .wlnotdelete directory, the time stamps of the JAR files were not being preserved. As a result, JSP compilation was failing.

Now, WebLogic Server preserves the timestamp of the JAR file when it is extracted to the .wlnotdelete directory.

CR175651

To enable the weblogic server to finish inflight requests for a WebApp during undeployment or shutdown of the server, use the following element in weblogic.xml:

<container-descriptor>

<inflight-request-timeout-secs>120</inflight-request-timeout-secs>

</container-descriptor>

The property, inflight-request-timeout-secs, indicates the number of seconds the server will wait in seconds. By default, the server will not wait for inflight work.

CR175781

If HttpUrlConnection.getOutputStream() for weblogic.net.http.HttpUrlConnection was called more than one time the previous content was deleted from the OutputStream.

Data previously written to that OutputStream was lost.

WebLogic Server now checks to see if there is a connection, and does not reset the stream if a connection exists.

CR177095

When using weblogic.appc and if the application code was using the context classloader, WebLogic Server was throwing a ClassNotFoundException for classes in the WEB-INF\lib directory.

WebLogic Server no longer throws a ClassNotFoundException under these circumstances.

CR177730

wl_authcookie was not being forwarded for single signon.

WebLogic Server now reuses wlauthcookie until the session is explicitly logged out or invalidated. By reusing the wlauthcookie across webapps, the single sign on remains valid even if a new user logs in to the first webapp.

CR179800

CR181640

CR173782

Some examples in the final version of the JavaServer Faces v1.0 Reference Implementation fail to preload on startup with the following ServletException:

<Mar 16, 2004 10:31:09 AM MST> <Error> <HTTP> <BEA-101216> <Servlet: "Faces Servlet" failed to preload on startup in Web application: "jsf-guessNumber". javax.servlet.ServletException

The problem was fixed by adding logic during the Web application startup for registering servlet listeners, which could be defined in .tld files in the lib folder of the application.

CR179941

When OptimisticSerialization is turned on, WebLogic server does not serialize-deserialize context and request attributes upon getAttribute(name), when a request is dispatched across servlet contexts.

To avoid ClassCastExceptions, you must make sure that the attributes common to the webapps are scoped to a common parent classloader; such as Application scopedor placed in the system classpath if the webapps do not belong to the same application.

When OptimisticSerialization is turned off (default value) WebLogic server serializes-deserializes context and request attributes upon getAttribute(name) to avoid ClassCastExceptions.

To turn on Optimistic Serialization use the command line flag:

"-Dweblogic.servlet.optimisticSerialization=true"

CR181747

CR189395

CR200944

Weblogic Server was not accepting more than one value for the header WWW-Authenticate header when the response.addHeader method was used.

The Weblogic Server now allows WWW-Authenticate to have multiple values.

CR181754

Even when the WebLogic Server was in suspended state, if a new request was sent to a secured resource, a new session was created for requests with secure resources.

WebLogic Server now checks for a suspended state before redirecting the request.

CR184326

CR188237

HttpClusterServlet was writing to the internal stream and ignored the case when client had a custom response wrapper, which used a custom outputstream.

WebLogic Server now correctly uses the custom output stream rather than the response outputstream when the client has a custom response wrapper.

CR184745

When DirectoryIndexEnabled was used and there were multi byte named files in the target directory, The directory index page became corrupted and was not retrieved correctly.

WebLogic Server now has a java-iana map for GBK and MS950, and retrieves multi byte named files correctly.

CR184997

This CR is regarding HTTP Log Rotation configured by date option.

The HTTP Log Rotation was not rotating the log files at rotation periods if there was no activity in that period. Logic was added so that rotation always occurs at the rotation period whether activity is present during that period or not.

CR185289

An infinite loop sometimes occurred in ChunkOutput.writeStream if the auto flush was 'false' and the content length was greater than the buffer size limit.

This problem was resolved by adding code to reset the auto flush flag for each new request.

CR185289

An infinite loop sometimes occurred in ChunkOutput.writeStream if the auto flush was 'false' and the content length was greater than the buffer size limit.

This problem was resolved by adding code to reset the auto flush flag for each new request.

CR185885

During graceful shutdown of the server, the HTTP container was returning 404 when the webapp was unregistered, rather than returning 503 Service Unavailable. This prevented the plug-in from attempting to failover.

WebLogic Server now returns a 503 status code when the server is suspended.

CR188348

The HttpURLConnection in WebLogic Server always sent the Connection:

Keep-Alive header(or Proxy-Connection: Keep-Alive header)

even in cases where http.keepAlive was disabled.

Keep-Alive can now be disabled with the -Dhttp.keepAlive=false property.

CR190652

WebLogic Server no longer throws an exception when making a HEAD request that invokes RequestDispatcher.

CR191347

CR178729

When a Web App was deployed on a managed server and the managed server was down, if the Web App was deleted and then re-configured using the Console, it was not getting re-deployed to the managed server.

Now, the new version of the Web App is re-deployed on the managed server when it has been re-configured while the managed server was down.

CR191427

WebLogic Server was logging the query string twice if the cs-uri field was specified.

Now, WebLogic Server does not log the query string twice if the cs-uri field is specified.

CR191946

The WebLogic Server WebApp Container was not initializing security for Weblogic Internal WebApps. As a result, the proxy header, WL-Proxy-Client-Cert, was getting ignored.

Now, the WebLogic Server WebApp Container initializes security for Weblogic Internal WebApps. The proxy header, WL-Proxy-Client-Cert, no longer gets ignored.

CR193743

Sessions were lost when multiple include() calls were made to the same external web application.

This problem has been resolved.

CR194121

When ChunkTransferDisabled was set to true in ChunkUtils the java.lang.NullPointerException was being thrown.

This problem has been resolved.

CR195698

Replacing the old WAR modules with new ones in the external_stage area was causing a 404 error.

This problem was resolved by staging the actual application in the temp folder.

CR197121

Now WebAppServletContext.getResourcePaths() returns both directories and files under the web-app root directory as well as any virtual directories configured in the weblogic.xml for the web-app.

CR198536

If the WebLogic Server failed unexpectedly, the access.log file sometimes lost the ELF header because the ELF header was not being flushed immediately when a log had been rotated.

Now, WebLogic Server flushes the ELF headers immediately after rotating the log. As a result, the access.log file no longer loses the ELF header.

CR199958

If the context-root was not present in the application.xml file (for an EAR) or the weblogic.xml file (for a given Web Application), WebLogic Server derived the context-root from the name of the WAR file (minus .war) or the name of the root directory if the Web Application was exploded. If the derived context-root was already in use by an existing Web Application, WebLogic Server appended a counter (i.e., /foo-1, /foo-2) in order to make it unique.

For example, if /root/apps/app1/foo.war was deployed, and if the application.xml or the weblogic.xml file had not specified the context-root, the context-root was derived as /foo. Then, if another application from /root/apps/app2/foo.war was deployed, the context-root was derived as /foo-1 to avoid context-root conflict.

This mechanism was convenient because it allowed deployment of a WAR file with the same name multiple times. However, it caused problems during cluster deployments.

WebLogic Server 8.1 SP4 and later releases no longer have this counter mechanism. Now, if context-root clash occurs, WebLogic Server does not allow the application to be deployed. So, it is now necessary to specify a unique context-root in the application.xml file or the weblogic.xml file.

CR199958

The context root display for Web Application Modules sometimes became corrupted as the number of Web Application Modules grew.

Now, WebLogic Server no longer supports deploying multiple applications with the same context root. Instead, there is an index appended to the context root as in the following example:

Instead of the context root: /test

Now, the context roots are: /test-1, /test-2, etc.

Now, the context root display for Web Application Modules does not become corrupted as the number of Web Application Modules grows.

CR200043

Locale variants passed by the browser were causing unexpected results in validation rules in Weblogic Server. The locale header parsing logic was not considering the variant part of it.

Now, WebLogic Server considers the locale variant while parsing the language header. The language header can be in the following format:

lang-country-variant;q=weight

SNMP

Change
Request
Number

Description

CR083630

Certain strings in SNMP traps and notifications were not localized. If the string contained multi-byte characters, it was not being displayed correctly.

String values have been localized and internationalized to support multi-byte characters. Now, WebLogic Server displays Japanese characters correctly in the log message trap.

CR190218

Autocast was failing for double type attribute values that had a return of type Integer.

WebLogic Server now correctly does the conversion between the data types before returning the value. As a result, Autocast no longer fails for double type attribute values that have a return of type Integer.

CR194161

Whenever the SNMP service was shut down, a serverDown trap was sent for each of the configured servers in the domain even if the managed servers were running.

Now, when the SNMP service is shut down and the managed servers are running, a serverDown trap is sent only for the Admin server and only if the SendAutomaticTrapsEnabled attribute is true.

Tools

Change
Request
Number

Description

CR124030

Opening an application.ear file in Marathon, but not changing anything, resulted in an invalid descriptor being written out, and thus the application no longer passed appc.

Applications can now be opened in Marathon without being corrupted.

CR136334

When using the BEA JDBC Driver under load, the following error was occurring:

java.lang.OutOfMemoryError: unable to create a new native thread

This problem has been resolved.

CR183190

There is no longer a java.sql.SQLException on package's dynamicSections.

Web Services

Change
Request
Number

Description

CR136707

CR196499

WebLogic Server could not get HttpServletRequest inside a webservice, and thus could not retrieve a remote client ip.

WebLogic Server now provides a public API to retrieve HttpServletRequest inside a webservice via WebServiceSession.getRequest(). It must be cast to HttpServletRequest.

Now one can retrieve HttpServletRequest in this manner:

WebServiceContext wsContext = WebServiceContext.currentContext();

WebServiceSession vHttp = wsContext.getSession();

String remoteAddr =

((HttpServletRequest)(vHttp.getRequest())).getRemoteAddr();

CR161835

Using reliable Web Services with JMS Transport was generating an AssertionError.

Now, WebLogic Server supports JMS Transport with reliable Web Services.

CR172119

WebLogic Server does not support overloading operations in Web Services Description Language (WSDL) due to a SOAP limitation. However, WebLogic Server was not detecting these operations during clientgen which was then failing with compilation errors.

Now, for overloaded WSDL operations, clientgen throws the WSDLParseException instead of resulting in compiler errors.

CR172463

WebLogic Server only passed JSESSIONID cookies from the webservice client to the server.

WebLogic Server now supports the use of non-JSESSIONID cookies.

CR176392

When trying to use WebLogic Server 6.1 based Java components to call WebLogic Server 8.1 services, an error occurred while attempting to invoke weblogic.webservice.WebServiceLogger.

wsclient81.jar now contains the weblogic.webservice.WebServiceLogger.class, thus eliminating this error.

CR177273

The test page could not accept empty input for datatypes other than java.lang.String.

WebLogic Server can now accept empty input for all built-in Java types on the test page.

CR177611

There was a namespace problem in web-service.xml when servicegen used the type mapping file generated by autotype.

servicegen now recognizes namespaces in the type mapping file generated by autotype.

CR178683

Synchronization was added to XMLSignature.validate() in 8.1sp3 to avoid multi-threading issue in the xml message signature validation process. This had an adverse effect on performance.

WebLogic Server has now eliminated the multi-threading issue in the xml message signature validation process and removed the synchronization to increase performance.

CR180643

CR200646

WebLogic Server was experiencing a memory leak of GenericClassLoader while performing the following steps:

    1. deploy a webservice application

    2. invoke the webservice

    3. undeploy the webservice application

WebLogic Server now has no memory leaks associated with GenericClassLoader.

CR181775

WebLogic Server generated the type dynamically when xmlType was not an element of the known schema during deployment, hence the element names from the original imported schema were not preserved in the generated wsdl.

A system property -Dweblogic.webservice.noDynamicTypeGeneration, has been added to webLogic Server, which when set to true, will preserve the original element names.

CR181987

There were two issues:

    1. The first message in the JMS queue failed to deliver after undeployment of an application.

    2. WebLogic Server created the WebServiceOperationRuntime mbean twice when two ports pointed to the same operation and caused a javax.management.InstanceAlreadyExistsException.

The first message is now delivered when an application is undeployed.

WebLogic Server no longer creates the WebServiceOperationRuntime mbean twice even when two ports point to the same operation.

CR182483

WebLogic Server did not encode invalid XML characters via character references in the response.

WebLogic Server now encodes invalid XML characters via character references.

CR183382

When QName Type was used as an attribute inside a complex type, it was not marshalled properly.

Now, WebLogic Server marshalls the QName Type when it is used as an attribute inside a complex type.

CR183555

CR192555

CR192568

JAX-RPC clients did not maintain session stickiness using the SESSION_MAINTAIN_PROPERTY.

WebLogic Server now supports session stickiness if SESSION_MAINTAIN_PROPERTY is set as

follows:

On the Call object:

call.setProperty(Call.SESSION_MAINTAIN_PROPERTY, "true"); or

call.setProperty(Call.SESSION_MAINTAIN_PROPERTY, new Boolean("true"));


On the Stub object:

(Stub)port)._setProperty(Stub.SESSION_MAINTAIN_PROPERTY, "true"); or

(Stub)port)._setProperty(Stub.SESSION_MAINTAIN_PROPERTY, new

Boolean("true"));

CR183676

CR195447

CR128604

When the complex type contained a sequence and an element was defined with maxOccurs>1 in the sequence, WebLogic Server tried to add an unnecessary outer layer for the array of elements in the response, which resulted in a weblogic.xml.stream.XMLStreamException: attempt to add an attribute to a null start element. exception being thrown.

Additional condition checking was added to WebLogic Server so that does not add an unnecessary outer layer for the array of elements.

CR185228

The WebService SSL client failed to connect the service when

"weblogic.webservice.client.ssl.strictcertchecking" was not set to false.

WebLogic Server now connects to the service with this property set to either true or false.

CR185260

CR196682

Autotype generated flawed Java Bean representations of XML Schema complexTypes when those types contained both attributes and elements in a choice block. Bean setter functions for the elements of the choice block cleared the values of any attributes associated with the bean.

Code was added to prevent clearing the attribute values and WebLogic Server now generates correct representations of XML Schema complexTypes.

CR186319

When the number of contiguous white spaces in an xml file exceeded 32, WebLogic Server required a long time to parse the file.

WebLogic Server now has a larger buffer size and parses xml files more efficiently.

CR187327

Using clientgen to generate a client jar against a WSDL of a web service generated from WebLogic Workshop 8.1.2 the following failure occurred;

weblogic.xml.schema.binding.internal.builtin.XSDDurationSerializer;

overridden method does not throw

weblogic.xml.schema.binding.SerializationException

WebLogic Server now allows the use of clientgen to generate such a client jar.

CR188548

When clientgen created [WebserviceName].XML, if the web service class name contained multibyte encoding, the XML was created by system default encoding and did not specify its encoding in the file.

Weblogic Server now Writes out the header and content with the specified encoding (-Dweblogic.webservice.i18n.charset) or UTF-8 by default.

CR189853

The fillDetail method of weblogic81.webservice.util.FaultUtil uses the code:

Throwable.getCause which is a JDK 1.4 API. In JDK 1.3, the getCause method is not present in Throwable.

As a result, when using a WebLogic Server 6.1 client to access a WebLogic Server 8.1 SP3 (or earlier) webservice over HTTPS, the following error occurred:

java.lang.NoSuchMethodError at weblogic81.webservice.util.FaultUtil.fillDetail(FaultUtil.java:84)

Catching NoSuchMethodError fixes the problem, thus eliminating the error.

CR190030

When running clientgen, codegen was invoking the protected constructor, Enumeration, and mapping SOAPElement did not propagate to child when the super was SimpleType. As a result, clientgen was failing with two compilation errors.

WebLogic Server no longer tries to invoke the Enumeration constructor and mapping of SOAPElement now propagates to child when the super is SimpleType. Thus, clientgen is now compiling as expected.

CR190527

When Message Level Security was enabled for Web Services, if the request message exceeded a certain size, WebLogic Server was throwing the JSAFE_InvalidUseException when trying to encrypt the request message.

WebLogic Server no longer throws the JSAFE_InvalidUseException when trying to encrypt a large request message.

CR192510

When WSSEClientHandler was used in the weblogic webservice client to invoke a secure non-WebLogic Web Service, the client got a SOAPException: unknown source type, when it processed the response.

Now, under these circumstances, no exception is thrown.

CR195535

The URI in the web-services.xml file generated from wsdl2service was the webservice name and should be the serviceURI portion of the URL used by client applications to invoke the Web Service.

Now, the URI in the web-services.xml file generated from wsdl2service uses the serviceURI portion of the full URL as in:

http(s)://host:port/contextURI/serviceURI

If the full URL to invoke the Web Service is not in the above format, the URI must be correctly entered in the web-services.xml file manually.

CR195817

Setting the web service client's timeout using the weblogic.webservice.binding.BindingInfo.setTimeout() method was not having any effect on the client when HTTPS was used.

Now, this method does have an effect on the client when HTTPS is used.

CR197241

WebLogic Server was unable to sign the webserviceclient+ssl.jar file using jarsigner because a duplicate class was present in the file. The following exception was being thrown:

jarsigner: unable to sign jar: java.util.zip.ZipException: duplicate entry: weblogic/utils/StringUtils.class

The duplicate entry in the jar file was removed. As a result, WebLogic Server can now sign the webserviceclient+ssl.jar file using jarsigner with no exception being thrown.

CR197698

As a result of a client-side code change, Webservice HTTPS client no longer fails with a java.net.UnknownHostException: null.

CR198996

WebLogic Server was throwing a SOAPFaultException for some non-WebLogic WebServices when a Content-type header in a SOAP message had single quotes around the charset as in the following example:

Content-Type: text/xml; charset='utf-8'

Because the single quotes around charset are not necessary, the single quotes have been removed and the SOAPFaultException that resulted from the use of the single quotes in charset is no longer thrown.

CR199190

When an element that had over 255 child elements was defined in the schema of Web Service Description Language (WSDL), WebLogic Server was failing to compile the bean source that clientgen had generated.

Now, WebLogic Server no longer generates a constructor that takes more than 255 parameters, thus eliminating the problem.

CR199783

WebLogic Server attempted a retry when a Webservice client set weblogic.webservice.rpc.timeoutsecs.

Now, WebLogic Server no longer attempts a retry when a Webservice client sets weblogic.webservice.rpc.timeoutsecs.

WebLogic Tuxedo Connector

Change
Request
Number

Description

CR127288

A local domain making a CORBA request via WTC to a remote Tuxedo domain CORBA C++ server causes WTC to hang. WTC hangs because it ties up a WLS ExecuteThread at a CORBA request to Remote Tuxedo domain, where the target CORBA C++ server has crashed.

CR182219

CR201408

After configuring WTC, looking up the Tuxedo domain in the JNDI tree of the server causes a connection attempt to Tuxedo using the TGIOP protocol. This protocol is not in the protocol list maintained on the server, resulting in an UNKNOWN_QOS error. If the protocol is unknown then there is no attempt to get its QOS and the security check that checks if an attempt is being made to connect using a secure protocol to a non-secure port is skipped.

CR185475

Support XA transaction timeout for Oracle by setting CALL_SET_TRANSACTION_TIMEOUT to true.

CR185974

Transactional CORBA call to Tuxedo hangs indefinitely if Tuxedo CORBA server dies. The transaction stays in GWTX_ACTIVE (TMGACTIVE) across domains, and it ignores the setTransactionTimeout().

CR186628

tBridge does not get cleaned when WTC service is undeployed. This leaks tBridge threads.

CR187267

Too many context switches occur on WTC when using a large number of threads.

CR187873

Forced shutdown during transactional activity causes error condition. WLS is unable to boot and this results in a memory leak.

CR189922

If the field of type CARRAY is empty (zero length), Tuxedo will not get zero length as intended, but receives 4 bytes.

CR189983

If a WTC service is undeployed and redeployed again, the tBridge redirection is not restarted.

CR194516

Under transaction, WLS execution thread hangs forever when a CORBA exception (due to ATMI error on Tuxedo CORBA server) is thrown back via WTC.

CR196598

An unknown WTC remote Tuxedo domain trying to connect to WTC will cause WTC memory leak.

CR198265

XA exceptions are not caught by WTC at the time of calling xa_end.

CR201408

Clone of CR182219.

After configuring WTC, looking up the Tuxedo domain in the JNDI tree of the server causes a connection attempt to Tuxedo using the TGIOP protocol. This protocol is not in the protocol list maintained on the server, resulting in an UNKNOWN_QOS error. If the protocol is unknown then there is no attempt to get its QOS and the security check that checks if an attempt is being made to connect using a secure protocol to a non-secure port is skipped.

CR201682

WTC export is uniquely identified by Local Access Point and Remote name, not Resource name.

WebLogic Workshop

Change
Request
Number

Description

CR189420

WebLogic Server was iterating over an array list, manipulating the list as it iterated, and then throwing a ConcurrentModificationException.

WebLogic Server no longer has a synchronization problem and is therefore no longer throwing ConcurrentModificationExceptions.

XML

Change
Request
Number

Description

CR135726

When WebLogic Server is unable to handle a given schema construct, it is mapped to SOAPElement.

When this occurred, autotype gave no indication that it had encountered an un-supported schema construct and only examination of the generated classes showed that something had gone wrong.

WebLogic Server now provides a warning message when it is unable to handle a given schema construct and falls back to SOAPElement.

CR175990

WebLogic Server's built-in xerces did not accept non-escaped multi-byte strings in the URI.

WebLogic Server now escapes multi-byte strings based on UTF-8 character encoding.

CR184002

CR198219

When the </soap:Envelope> tag was removed from the bottom of the soap-signed documents, and the certifier was run against it, it was still verified.

WebLogic Server now throws an XMLSignatureMalformedException for documents that are not well formed.

 

Skip navigation bar  Back to Top Previous Next