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

<