Skip navigation.
Downloads | Product Documentation | Support

Release Notes

# Resolved Problems for Service Pack 3

Service Packs are cumulative; Service Pack 3 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 3:

- Administration Console
- Classloaders
- Clusters
- Compilers
- Configuration Wizard
- Connector
- Core WebLogic Server
- Deployment
- EJB
- Installation
- J2EE
- JCOM
- JDBC
- jDriver
- JMS
- JNDI
- JSP
- JTA
- JVM
- Node Manager
- Operations, Administration, and Management
- Plug-Ins
- RMI/RMI-IIOP
- Samples
- Security
- Servlets
- SNMP
- Tools
- Web Services
- WebLogic Type 4 JDBC Drivers
- WebLogic Tuxedo Connector
- WLEC
- XML

## Administration Console

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR111884 CR182433 | In WebLogic Tuxedo Connector, for imported services the combination of the resource name, local domain name, and remote domain name must be unique. However, the Administration Console prevented defining imported services with the same resource name. The Administration Console now enforces unique naming based on the combination of the resource name, local domain name, and remote domain name. | 8.1 SP3
CR125041 | A Connection Pool Waiter statistics monitoring area in the Administration Console sometimes showed an incorrect value. A check was added to ensure that the number of waiters is reported correctly. | 8.1 SP3
CR126506 | Users could not configure a console extension to replace the policy definition pages. Code was added to enable `CreateResourcesAction` to look for an extension before forwarding. | 7.0 SP5 8.1 SP3
CR127617 CR134432 | If a user did not have the correct permission to read files under a particular directory, NullPointerExceptions occurred in the console. Because the user did not have the correct permissions, empty arrays were returned. This problem was fixed by adding suitable checks. WebLogic Server does not display the files for which the user does not have permission. | 8.1 SP3
CR132229 | Console help was updated to properly identify a comma as the address separator when configuring Jolt and WLEC connection pools. | 8.1 SP3
CR132627 | When WebLogic Server started with a large heap size (such as "-Xms3069m -Xmx3069m" or "-Xms2500m -Xmx2500m"), the Administration Console displayed incorrect values under server->monitoring->performance. The maximum memory was always 1, and the current heap size was negative. This problem was corrected with a code fix. | 8.1 SP3
CR134434 | Symbolic links were resolved during the deployment process and absolute paths were saved in the configuration field (`config.xml`). A code change ensures that symbolic links are no longer resolved. | 8.1 SP3
CR135294 | The console was not able to generate information from custom security MBeans used to create a custom security provider. A code fix was implemented so the console generated the related pages without any exceptions. | 8.1 SP3
CR137213 CR174743 | The `config.xml` was incorrectly updated on UNIX systems when the Administration Console was used to change the load order of Web applications. The leading '/' character in an application's path got lost. The code was fixed to ensure the attribute values are updated whenever they are changed from the related Console pages and the path attribute is not updated. | 8.1 SP3
CR158522 | Console help was updated to properly identify the range for polling interval when configuring the String Monitor, Gauge Monitor, or Counter Monitor. The correct range of values is between 1 and 65535 seconds. | 8.1 SP3
CR172232 CR178004 | When a connection pool using a custom JDBC driver was created, it was not possible to edit the advanced properties tab of the JDBC driver, and the server instance would throw a `Java.lang.ClassNotFoundException` when the driver was not in the system classpath . A code fix was implemented to load the JDBC driver even if it is not found in the system classpath. The console displays the Connections-->Advanced page without the XA attributes. | 8.1 SP3
CR173345 | The Administration Console now includes the following language preference settings: Chinese Simplified/GB18030 Chinese Simplified/GB2312 Chinese Simplified/GBK Chinese Simplified/UTF-8 Chinese Traditional/Big5 Chinese Traditional/Big5-HKSCS Chinese Traditional/UTF-8 English English/UTF-8 Japanese/EUC-JP Japanese/Shift_JIS Japanese/UTF-8 Korean/EUC-KR Korean/UTF-8 | 8.1 SP3

## Classloaders

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR124348 | Client programs could not use `java.lang.reflect.Proxy` to access proxy objects deployed in WebLogic Server, unless the proxy classes were added to the system classpath. If an object did not reside in the system classpath, the client would receive a ClassNotFound exception. The `resolveProxyClass()` method was implemented to load interfaces from the application-specific classloader as well as the system classloader. | 6.1 SP6 7.0 SP5 8.1 SP3
CR128510 | If a WebLogic Server 8.1 server returned a Calendar object to a WebLogic Server 6.1 or 7.0 client, the client got a ClassNotFoundException. This problem was caused by a change in the Calendar class in JDK 1.4. The `readClassDescriptor()` of `MsgAbbrevInputStream` tried to resolve the class, leading to a `ClassNotFoundException` for unknown classes. Java serialization skipped this `ClassNotFoundException` if corresponding data was not being read. The `MsgAbbreveInputStream` `readClassDescriptor()` no longer tries to resolve the class, and `MsgAbbrevInputStream` now implements `resolveClass()`. | 7.0 SP5 8.1 SP3
CR137120 | The following error was encountered when sequentially starting two Managed Servers in the cluster. The error was not encountered if the two Managed Servers were started simultaneously. LinkageError : duplicate class definition The problem was resolved with a code change. | 8.1 SP3
CR161884 CR173695 | EAR files gave "NoClassDefFoundError" and "IllegalStateException: zip file closed" messages on classes that actually exist in the WAR file. When multiple threads tried to load a class from a WAR file within an EAR file, is was possible that some JAR files within the WEB-INF/lib directory were not looked into; resulting in NoClassDefFoundError and IllegalStateException. This problem was resolved with a code change, which added necessary synchronization to ensure that the zips structure within the Finders are not corrupted. | 8.1 SP3

## Clusters

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR111029 | The cluster members timed out if they did not receive a heartbeat within the default 30 second timeout period. Heartbeats were sent every 10 seconds and servers waited for 3 periods (total wait time was 30 seconds) to get a heartbeat before the cluster member was timed out and declared unavailable. For example, during session replication if the secondary server was unavailable at TCP level, the 30-second period was sometimes too long for a very busy web site. Before the secondary was removed from the cluster view, the primary tried to replicate many sessions to the secondary and thus caused the server to hang or made the server slower. The timeout value IdlePeriodsUntilTimeout is now tunable. It is set on the <Server IdlePeriodsUntilTimeout="3"> tag in the config.xml file. In general customers should not tune this value and should leave it at the default (3). However, in certain cases depending on the load, available redundancy in the architecture and specific application problems and/or certain production scenarios, tuning this value carefully might alleviate the problem temporarily until the root cause is identified and fixed. BEA WebLogic recommends that you use HIGH caution when changing this value and ensure sufficient testing of your application at peak load scenarios to ensure the expected behavior. There is no recommendation that fits all scenarios, so testing for load and stress is a must if this value needs to be changed. | 8.1 SP3
CR112326 | A memory leak occurred with `weblogic.cluster.BasicServiceOffer` during JNDI rebinds of replicable objects. The problem was resolved with a code correction. | 7.0 SP5 8.1 SP3
CR112874 | When a client of a stateful session bean accessed a bean deployed on a cluster configured for weight-based load-balancing, and the Managed Servers with the highest and second highest weight were killed in that order, the client gave the following message: `<Jul 22, 2003 1:32:56 AM IST> <Warning> <Kernel> <No replica in list has the expected weight. Reverting to round-robin>` When the Managed Servers were restarted, the load balancing algorithm switched to round-robin. Analysis revealed that the replica list was updated when a Managed Server went down, but due to a race condition the max weight in RichReplicaList was not reset properly. A code change to recompute max weight whenever the replica list size changes solved the problem. | 8.1 SP3
CR121113 | `HttpClusterServlet` did not print thread name in error messages, making it difficult to diagnose the problem when an error occurred. A code change was made to `GenericProxyServlet.trace()` to add the thread name in logged error messages to aid in troubleshooting. | 7.0 SP5 8.1 SP3
CR122924 | When cluster address was specified as t3://127.0.0.11:8001,127.0.0.12:9001 WebLogic Server incorrectly appended the port number when generating the home handles. WebLogic Server now confirms whether the port number is already specified by the user and uses that information to properly create the URL used by the home handle. | 8.1 SP3
CR126406 | The cluster service set the real uid/gid of the process after binding to the multicast port, which caused errors when binding the server to listen ports. A code change was made to ensure that the server only uses privileged uid/gid when binding to listen ports. For the rest of the server startup, the unprivileged uid/gid is used. | 8.1 SP3
CR127375 | In a single node cluster using a weight-based load balancing algorithm, a remote method invocation on an EJB from an external client resulted in an ArrayIndexOutOfBoundsException. When there is a single node cluster, WebLogic Server will not have any replicas for requests to fail over or load balance. Adding a check for this condition resolves the problem. | 8.1 SP3
CR127616 CR133899 | A NullPointerException sometimes occurred in the BasicReplicaHandler during 70->81 interop if cluster affinity is set. A null check was added to all affinity handlers. | 8.1 SP3
CR130407 | A client attempted to fail over even when there was only one server in the cluster. This was resolved with a code fix so that failover happens only when there is more than one server in the cluster. | 8.1 SP3
CR130507 | Session replication caused server nodes to hang in a cluster because batch updates were performed for the `lastAccessedtime` of the sessions, which were all stored in a hashtable for all sessions. While doing batched updates, this hashtable was locked until all the updates were done (all the updates were remote calls), thus preventing other threads from updating the hashtable and resulting in poor performance. The code was fixed so that a new hashtable (local variable) is created inside the trigger method of `BatchedLATUpdater`, which is a clone of the original hashtable. The new hashtable is used to access the `lastAccesstime` for the sessions; the old hashtable is synchronized only while it is being cloned. Therefore, it can be used by other threads while the remote calls are being made. | 8.1 SP3
CR177367 | An NPE was thrown when running a cluster under a heavy load or when the session stickiness was not maintained. When the load was high on the cluster nodes the plug-in was getting a connection refused from the node and hence failing over the requests to the other nodes in the cluster. Either condition was causing the session to change/get created randomly on any node in the cluster, and in certain scenarios it was possible that the primary was removed and a secondary was created for the session on the same node. Any thread trying to get the secondary information was failing with an NPE because finding the secondary information requires the primary. While the primary was removed first before creating secondary, the secondaryURL was being computed to null. A code fix ensure that WebLogic Server now checks for null secondaryURL. In addition, a warning message is now logged to inform users of the problem, so they can configure the cluster for the expected load. This also ensures that the situation can be debugged if the session stickiness is broken in the load balancer configuration or the plug-in. | 8.1 SP3

## Compilers

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR136199 | EjbObject.idl generated by ejbc -idl was not compliant with CORBA3.0. From CORBA 2.6: "3.2.3.1 Escaped Identifiers. As IDL evolves, new keywords that are added to the IDL language may inadvertently collide with identifiers used in existing IDL and programs that use that IDL. Fixing these collisions will require not only the IDL to be modified, but programming language code that depends upon that IDL will have to change as well. The language mapping rules for the renamed IDL identifiers will cause the mapped identifier names (e.g., method names) to be changed. To minimize the amount of work, users may lexically "escape" identifiers by prepending an underscore (_) to an identifier. This is a purely lexical convention that ONLY turns off keyword checking. The resulting identifier follows all the other rules for identifier processing. For example, the identifier `_AnIdentifier` is treated as if it were `AnIdentifier`." The problem was resolved by a code change that adds an underscore (`_`) to known IDL reserved words. | 8.1 SP3

## Configuration Wizard

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR128745 | When using the Domain Configuration Wizard in silent mode to create a domain configuration, the Administration Console showed a user assigned to same group more than once. The code was modified so that it does not add an entry if the corresponding assignment is already done. | 8.1 SP3
CR130268 | When the Domain Configuration Wizard encountered a problem that resulted in a failure it was returning a zero. The code was modified to return a non-zero when user script files are not found. | 8.1 SP3
CR130536 | On the AIX 5.1 platform running WebLogic Server 8.1, Service Pack 1 with the Posix Performance Pack, a SIGSEGV 11 (*) segmentation violation occurred from the IBM JVM. To recreate this error: 1. Create a new WebLogic domain using the Configuration Wizard. 2. Set the file descriptor limit to unlimited (`ulimit -n`) in the shell. 3. Run the `startWebLogic.sh` script. This issue was resolved with a code fix that ensures that the `resetFd()` method is called in the `commEnv.sh script`, which automatically resets the unlimited setting to 1025. | 8.1 SP3
CR132234 | Silent-mode script can now be used to create and edit the log child element of a Server element. Silent-mode configuration can be used to create and edit any valid configuration object and its child elements, except custom security objects. For more information about valid configuration objects, see the WebLogic Server Configuration Reference. For more information about silent-mode script configuration, see "Creating a Script for Silent-Mode Configuration" in Creating WebLogic Configurations Using the Configuration Wizard. | 8.1 SP3
CR132608 | While attempting to create a domain using WebLogic Server Template Builder on Solaris 2.9 and creating a MySQL JDBC connection pool, the JDBC URL failed. This problem was fixed with a code fix. | 8.1 SP3
CR135642 | When running the Configuration Wizard in silent mode, the wizard incorrectly converted the JDBC connection pool URL for the Oracle OCI driver (jdbc:oracle:oci:@<DBName>) to the URL for the Oracle Thin driver (jdbc:oracle:thin:@<DBHost:port:DBName>). This problem prevented deployment of JDBC connection pools with the Oracle OCI driver when the server was started. The Configuration Wizard now accepts the URL for either Oracle JDBC driver. | 8.1 SP3

## Connector

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR124102 | When the process of enlisting an adapter's connection with a transaction threw an exception, the state of the connection was not properly reset, which meant the connection could never be cleaned up by the shrinker. Also, the connection could not be used by incoming application requests. Eventually, this resulted in exhaustion of the connection pool. The server code has been repaired to properly reset the state of the connection when the enlistment fails. The connection can be cleaned up by the shrinker, and can also be used by future application requests. | 7.0 SP5 8.1 SP3
CR125399 | For adapters that failed the connection proxy test, connection idle detection should have be disabled even if inactive-connection-timeout-seconds is specified in the weblogic-ra.xml descriptor. Prior to this release, the server tried to perform idle cleanup using such an adapter, which would result in a NullPointerException. Now idle-detection is properly disabled for an adapter that fails the proxy test. As a result, the NullPointerException will no longer occurs. | 8.1 SP3
CR126184 CR135205 | In some Resource Adapters, the Connector container sometimes reported false connection leaks. The problem occurred for adapters which implement the ManagedConnection.getConnection() method in a way that the same handle could be returned in subsequent calls. The problem occurred because of the way it created proxies around the connection handles. When a proxy was finalized, and there was a handle with the same hashCode value still open, the container behaved as if there was a leak. The Connector container now keeps track of a count associated with handles that have the same hashCode. The count is incremented when opening and decremented when the proxy is finalized. In this way, the container will only report a leak if all the proxies associated with a handle are finalized, and no false leaks will be reported. | 8.1 SP3
CR129392 CR133572 CR177908 | A WebLogic Server instance hosting a Messaging Bridge had to be restarted when the MQSeries 5.3 Queue Manager was stopped and restarted. This was because the call into MQSeries would fail when the Messaging Bridge attempted to close an XASession object. This resulted in resources not being cleaned up with regards to the MQSeries Queue Manager after shutting it down. Also, the Queue Manager would not restart because it detected that there were still objects in use by the WebLogic Server process. Application of the IBM upgrade CSD06 to MQSeries 5.3 resolves this issue. As a result, the Queue Manager can be shutdown and restarted without error, and without having to shutdown the WLS server process. | 8.1 SP3
CR174339 | Some internally cached objects were not cleaned up properly when connections were permanently removed from the pool, which could then result in the cache growing arbitrarily large. A code change ensures that cached objects are cleaned up when a connection is permanently removed from the pool. | 8.1 SP3
CR175301 | Under a heavy load with the jRockit JVM, the `ConnectionRuntimeMBeanImpl()` API for WebLogic Connector sometimes throws an `InstanceAlreadyExists` exception. This is because the `ConnectionInfo#hashCode()` method is not always unique for different objects. In previous service packs, the hashcode of the connection was used to generate the MBean name. The code was improved so that it now uses a synchronized counter to generate the name. As a result, all runtime MBeans used for monitoring resource adapter connections are generated with unique names. | 8.1 SP3
CR176940 | When deploying an adapter on multiple servers in a cluster, the connections created on each server got an XAResource, and the server used the same name for resource registration. This caused the Transaction Manager to try to invoke calls on the wrong XAResource for some operations. The name used for resource registration is now qualified by the server and domain name, thus ensuring that an adapter deployed on different servers in a cluster will use different names for the resource registration. | 8.1 SP3

## Core WebLogic Server

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR098607 CR136879 | In a situation in which Application A is using Application B, while looking up Application B, the J2EE container of Application A creates a `DependencyClassLoader` by attaching Application B's `ClassFinder` to it. On redeployment of Application B, Application B encounters a new `ClassFinder` and its old `ClassFinder` is no longer valid. On a client request, the server attempts to use the old `DependencyClassLoader` and throws an exception. The behavior that caused the exception has been changed: WebLogic Server no longer uses `DependencyClassLoader` for loading impl class from`ReplicaAwareRemoteObject.getPrimaryRepresentative().` | 7.0 SP5 8.1 SP3
CR105257 CR174955 | If a call to WLECService.getConnectionPoolCount was made before the IIOP Connection Pool was initialized it resulted in a NPE. Code was added to return a 0 if the IIOPConnection Pool was null. | 8.1 SP3
CR105444 | The server would throw a `FileNotFound Exception` if a path for a log file was specified but the directory not exist when using the `-Dweblogic.Stdout` and `-Dweblogic.Stderr` command-line options. A code enhancement resolves this issue by creating the directory structure specified by the command-line options when the structure does not exist. | 8.1 SP3
CR108993 CR133901 | On HPUX11, the CPU usage was high when using the native posix muxer. A new muxer was designed, based on /dev/poll. This muxer can be enabled by setting the MuxerClass property as follows - <Server ... MuxerClass="weblogic.socket.DevPollSocketMuxer" ...> The following message should appear when the server starts up. This message confirms that the /dev/poll has been enabled. <Sep 9, 2003 5:29:28 PM PDT> <Info> <Socket> <BEA-000406> <DevPollSocketMuxer was built on Sep 8 2003 15:34:11> If the /dev/poll device is not available, it will fail to load. Currently it is available for: Solaris 7 with a patch and on Solaris 8 and above HP-UX 11.0 with PHKL_24064 patch required HP-UX 11i with PHKL_25468 patch required | 8.1 SP3
CR109180 | Transactions started on one server that used another server as the transaction coordinator would fail during the commit if the two servers have not previously exchanged transaction contexts. This occurred because the channel being passed to the JTA interceptor contained information on the local server, not the remote peer. A code fix was used to pass correct channel to the JTA interceptor. | 8.1 SP3
CR109307 | Previously you could not bring up a WebLogic Server 8.1 SP2 Managed Server in an 8.1 SP3 domain. A code change has brought the different service packs into compatibility and into accord with the WebLogic Server compatibility statement: "Servers within an Administrative domain can be at different Service Pack levels as long as the Administration Server is at the same Service Pack Level or higher than its Managed Servers." | 7.0 SP5 8.1 SP3
CR109688 CR133876 CR133877 CR135235 CR176217 | Under certain conditions a simple Java client looking up `InitialContext` would receive an incorrect "No version information" error. The problem was that line breaks in the header buffer were marked by "\n" instead of by the `line.separator` property. A code change corrected the problem. | 7.0 SP5 8.1 SP3
CR116707 | WebLogic Server provided a `ReplicaAwareRemoteRef` warning log when you used certain Factory/Trader patterns, displaying the following on the client side: `[ReplicaAwareRemoteRef] : WARNING: client-side RA stub didn't find environment on thread` Following a code change, the inappropriate log is no longer printed to the client. | 7.0 SP5 8.1 SP3
CR116712 | In WebLogic Server 6.1 SP04, the WLECConnectionRuntime MBeans were not updated when an INVOKE was issued on WLECConnectionPoolRuntime using Admin tool. Analysis revealed that when resetConnectionPool() was invoked on the WLECConnectionPoolRuntime MBean, the pool was not reset. Old connections were not removed. The problem was solved with a code change. Now, the mbeans that correspond to old connections are unregistered before the resetConnectionPool() invocation. | 6.1 SP6 8.1 SP3
CR120492 CR122551 | To improve HTTP tunneling performance, a code change sets the content length for tunneled responses to maintain keep-alive connections, and also enables caching of HTTP URL connections. | 7.0 SP5 8.1 SP3
CR120492 CR122551 CR171857 | To improve HTTP tunneling performance, a code change has set the content length for tunneled responses to maintain keep-alive connections, and has also enabled caching HTTP URL connections. | 7.0 SP5 8.1 SP3
CR120811 | When using the WebLogic thin client with an applet, concurrentModificationExceptions and JMSExceptions were thrown. Investigation showed that there were two problems: There was a problem with the Sun ORB implementation. An applet's virtual machine released AppletContext upon a browser refresh and stopped all threads in the applet context's thread group. When an ORB was initialized as part of an applet context, the reader threads were created in the applet context's thread group. When the browser was refreshed, the ORB reader threads were also stopped. The WebLogic thin client created two threads in the applet context group: a HeartbeatMonitor thread and a RequestTimer thread. When the browser was refreshed, these threads were stopped with others in the applet context group. The problems were solved with the following changes: The Sun ORB implementation changed in JDK 1.4.2_04 so that it creates the reader threads on a child thread group of the system thread group but not to the applet's context thread group. This change ensures the reader thread stays alive as long as the orb is alive or applet's JVM is alive. The WebLogic thin client TunnelResponse and HeartbeatMonitor threads are now created on a child thread group of the system thread group but not to the applet's context thread group. This change ensures these threads stay alive as long as applet's JVM is alive. The fix is provided only for signed applets. | 8.1 SP3
CR121311 | Server shutdown failed because of in-use resources. This was due to application problems: either an application leaked pooled resources, such as JDBC connections and JMS sessions, or an application was holding a reference to pooled resources after server shutdown had commenced. By default, pools are now shut down even if resources are in use. For JDBC connections, to revert to the previous behavior, set `ignoreInUseConnections="false"` on the JDBCConnectionPoolMBean. | 8.1 SP3
CR122361 | The Auditing enabled message did not record the USER identity: `<Aug 29, 2003 12:31:25 AM EDT> <Info> <Configuration Audit> <159909> <Configuration Auditing is enabled>` This was inconsistent with the disable message, which did record the USER: `<Aug 29, 2003 12:31:31 AM EDT> <Info> <Configuration Audit> <159910> <USER system, Configuration Auditing is disabled>` Following a code change, both audit messages record the USER identity. | 7.0 SP5 8.1 SP3
CR122706 | A clustered Web application deployed on a cluster that called an EJB on another cluster threw an `AssertionError`. Analysis revealed that generated code did not use the right method while calculating methods in the interfaces, which resulted in using the wrong classloader from the generated stub. A code change resolved the problem. | 7.0 SP5 8.1 SP3
CR122878 | MBeans were being deleted by KernelID. As a result, no matter who initiated the delete operation, the Auditor recorded that the Kernel had deleted the MBean. Following a code change, the MBean is deleted by the current Authenticated Subject. | 7.0 SP5 8.1 SP3
CR123509 | Performance degradation occurred when tunneling the t3s protocol through IPlanet for HTTP/1.0 requests because of an IPlanet change related to the Keep-Alive functionality. This problem was resolved by a code change that now specifies HTTP/1.1 for tunneling requests. | 7.0 SP5 8.1 SP3
CR123571 CR128843 CR183237 | When starting several T3 clients on the same machine simultaneously, there was a possibility that two or more of the clients could obtain the same JVMID, cause exceptions or hanging on the clients. The problem occurred only when starting multiple T3 clients on the same machine at the same time. This problem was solved by modifying the code used to generate JVMIDs. | 6.1 SP6 8.1 SP3
CR125245 | The java.lang.LinkageError: duplicate class definition: error sometimes occurred when multiple threads attempted to load the same class in a Web application while PreferWebInfClasses was enabled. This problem occurred the first time the classes were loaded. A code change to synchronize the loadClass method of ChangeAwareClassloader resolved this problem. | 7.0 SP5 8.1 SP3
CR125285 | WebLogic Server was masking certain exceptions during application deployment because of an unhandled internal exception. With the code fix which handles this exception, the original exceptions are rethrown, which makes it easier to debug the original issue. | 7.0 SP5 8.1 SP3
CR125440 | WebLogic Server cached the EndPoints based on ConnectionKey for iiop requests. The ConnectionKey was based on host, port and type information on which the connection was established. Because of the way the ConnectionKey was established, tunneling requests used the wrong Connection object. Some clients from the same host never got responses back under load test because they were going to different EndPoints. WebLogic Server now creates unique IDs for a Connection object so that tunneling requests use the correct Connection object. | 8.1 SP3
CR126374 | WebLogic Server was not calling the setPriority method on an ExecuteThread even when a priority was set for a particular execute queue. Code was added to call setPriority when an ExecuteThread gets created. | 8.1 SP3
CR126613 | When onMessage for an MDB was invoked on a thread, the following exception was thrown because the transaction previously associated with the thread was not cleaned up properly: `weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Left-over JTA transaction found on MDB listener thread ]` A stale transaction on the thread is now cleaned up before the thread is used to call the onMessage method on an MDB. | 8.1 SP3
CR127394 | When weblogic.jar was added as a ClassPathElement inside the ant task , ant used AntClassLoader to load classes from the weblogic.jar. This process worked, but ant did not properly set the contextclassloader on the thread. The context classloader on the thread was still the system classloader. This resulted in classloading issues while generating the stub. This problem has been fixed in the WLDeploy ant task that WebLogic Server creates. In the implementation of the WLDeploy task the correct context classloader is set. | 8.1 SP3
CR127455 | The Administration Server uses a trigger to send a heartbeat to each Managed Server to verify that the Managed Server is running. When a Managed Server is restarted, the trigger for the old Managed Server needs to be cancelled. In some situations, the trigger for the old Managed Server was not cancelled properly. The code was fixed to ensure the trigger is correctly cancelled. | 8.1 SP3
CR128417 CR134918 CR172274 | Sometimes server-side sockets remained in an IDLE state when a client issued a reset on the socket before the server could set the `TCP_NODELAY` option. Therefore, these IDLE sockets were not getting cleaned up properly. A code change ensures the clean up of server-side sockets when an exception occurs when setting the `TCP_NODELAY` option on the socket. | 8.1 SP3
CR128445 | The `weblogic.Admin` command line utility set the username and password for the `ServerStartMbean` each time it was used to start a server instance. If a user attempted to start a server with `weblogic.Admin`, it would fail without permissions to WRITE attributes. A code change ensures that WRITE attributes not set on `ServerStart`. | 7.0 SP5 8.1 SP3
CR128496 | Attempted interoperability between WebLogic Server 6.1 SP5 and 8.1 SP1 domains caused an InvalidClassException. This is because 6.1 SP5 was released with the pre-EJB 2.0 specification, while release 7.0 and later were released with the final EJB 2.0 specification, which changed the `class javax.ejb.TransactionRolledbackLocalException` in the final release. Therefore, if a release 6.1 SP5 domain sends this exception to an 8.1 domain, then the 8.1 domain fails to read the exception while deserializing this exception object with InvalidClassException because the SVUID of the local class and incoming response class are different. The code has been modified to load the local class and stamp the SVUID to the incoming class when the other peer is a release 6.1 domain. | 8.1 SP3
CR128646 | When running a servlet, the generic class loader could not find the WebLogic JDBC class. This was resolved by adding a check to the generic class loader to see if the JDBC class is set to null in `weblogic.utils.wrapper.WrapperFactory.java`. If it is set to null, then the current `classLoader(this.getClass().getClassLoader())` is loaded. | 8.1 SP3
CR129094 | Performance issues that involved TCP window shrinkage in the t3 protocol on the AIX platform have been resolved. | 7.0 SP5 8.1 SP3
CR130376 CR133631 CR174605 CR175607 CR172366 | According to the documentation in "Starting and Stopping Servers" if the CLASSPATH is too long, it can be added as a single line to a file and then accessed as `-classpath @filename`. However, when `beasvc` attempted to load the contents of CLASSPATH file, it truncated the last character when the file did not end with a new line. Now `beasvc` determines whether the file terminates properly and then reads the file accordingly. | 8.1 SP3
CR130409 CR178422 | When setting the maximum length of an execute queue with the `-Dweblogic.kernel.allowQueueThrottling` flag to throttle "slow moving resource intensive" requests on a custom queue, clients did not receive a 503 response and therefore waited for the timeout. This problem was resolved by a code fix to check for the dispatch return value on the caller and use the `sendError()` API to return the 503 response. | 8.1 SP3
CR132704 | When using the MBean.forceShutdown from a servlet's Init method and using load-on-startup, the server did not successfully shut down and the "Start this Server" button in the Control tab is greyed out and stays in this state for quite some time. After several minutes, the link is enabled. The problem was resolved with a code change. The forceShutdown call now ensures the server is shut down without hanging the server lifecycle thread. Because the server state is properly changed, the console properly activates the links as soon as the server is down. | 8.1 SP3
CR132994 | Due to a Sun plug-in bug, a lookup for an EJB was failing. However, a WebLogic Server bug was exposed because of this issue. There was only one server in the cluster and yet the system was trying to fail over to another server even when the replica list was empty. This problem was resolved with a code change; failover only occurs if the replica list is not empty. | 8.1 SP3
CR135122 | When an application in a WebLogic server instance made an RMI call to another application within the same server instance, it uses the Call By Value (CBV) Wrapper implementation. The CBV wrapper implementation cloned the values for all the object instances except primitive datatypes and Date instances. If application specific code derived the Date and provided it's own implementation for the Date class, cloning the user defined class created an object instance on the other server's classloader. A `ClassCastException` occurs when the other server assigned the instance to the caller's application. The problem was resolved with a code change. | 8.1 SP3
CR135255 | When a request comes over a network channel, the server (instead of writing the default channel information as part of JVMID) writes the address information of the network channel. This information from streams is used to detect if the request came over a default channel or a network channel. In this case, the ChunkedObjectOutputStream did not implement the EndPointStream interface because the server was unable to make a distinction between the default and network channel. This problem caused a degradation in performance. A code fix ensures that the ChunkedObjectOutputStream implements the EndPointStream interface so that the JVMID class can determine on which channel the request came. | 8.1 SP3
CR135256 | The server wrote the address information of the default channel rather than the network channel information as part of JVMID. This caused the client to throw a `java.rmi.ConnectException` because the default channel was not visible to the client. A code fix ensures the server writes the address information correctly. | 8.1 SP3
CR136076 | EJB network channel issue; unable to connect to the business channel. When the connection request was received on the network channel, the server correctly translated the JVMID by writing the network channel information in it. However the server was also translating the rawAddress and calculating it based on the network channel address. The rawAddress must be calculated based on the defaultChannel address so that JVMID equality is maintained. A code fix was implemented to always write the rawAddress based on the defaultChannel address, even if the request is received on a network channel. | 8.1 SP3
CR136250 | When a request was retried for proxy authentication, the original headers and post data were not sent by HttpURLConnection, which caused Proxy Authentication to fail. A code fix ensures that any headers and data from the original request are re-sent during a retry. | 8.1 SP3
CR136756 | A client threw a `java.net.UnknownHostException` exception when it tried to connect to a server. The exception was thrown because the client had previously connected to a server that had a private network channel. The client threw the exception when it was unable to determine if a connection existed before attempting to open a new connection. A code fix was used to resolve this issue. | 8.1 SP3
CR172105 CR177136 | Calling the setTimeout method of weblogic.net.http.HttpURLConnection no longer takes twice the amount of time specified. | 8.1 SP3
CR172366 | Messages printed by `beasvc` to the event log were not readable in Japanese locale. A code fix ensures that English messages are printed for all non-English locales. | 8.1 SP3
CR173345 | When trying to determine if a client was an applet, WebLogic Server tried to read a system property, and if it threw a security exception the client was assumed to be an applet. For signed applets a security exception was never thrown and it was incorrectly assumed to be a Java client when it was actually an applet. Therefore, WebLogic Server could not distinguish between a Java client and a signed applet. A code change ensures that in addition to determining whether a client is a signed applet, WebLogic Server also reads additional properties that are only set for an applet. | 8.1 SP3
CR173958 | Interoperability between 6.1 SP4 and 8.1 SP2 domains using `t3` failed when the protocol was changed from "secure" to "non-secure" between the front-end and back-end. The front-end QOS was being propagated to the back-end for the authentication call and it was failing. The problem was resolved by using "anonymous" when doing the bootstrap authenticate call. | 8.1 SP3
CR174605 | The `beasvc` service was generating thread dumps when it received the SERVICE_CONTROL_INTERROGATE control code. This could cause unintended thread dumps when `beasvc` was interrogated by other tools. A code fix ensures that thread dumps are generated only when a custom control code is received. | 8.1 SP3
CR175607 | Installing WebLogic Server as a Windows service immediately after uninstalling it sometimes created wrong registry keys, which could lead to startup problems. A code fix ensure that the registry keys are flushed and properly closed. | 8.1 SP3

## Deployment

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR127393 | A number of memory leaks were identified with this problem: ClientRuntimeDescriptors of EO objects remained on the heap after undeploying application. EJBCache objects were not cleaned up after undeploying of the application. Runtime mbeans specific to WebAppServletContexts were not unregistered after undeploying an application. KeepAliveCache's timer object held an application-specific classloader. Descriptor objects were not unregistered after undeploying an application. Application-specific classes were held by the Introspector caches after undeploying an application that uses struts. Code has been added to WebLogic Server that fixes these problems. | 8.1 SP3
CR128537 | The weblogic.deployer utility exited after 60 minutes with the following exception, even if the Timeout parameter was set to a higher value: `<Error> <Deployer> <lcaix17.bea.com> <myserver> <ExecuteThread: '0' for queue: 'weblogic.kernel.System'> <<WLS Kernel>> <> <BEA-149014> <Target myserver is not defined - error null>` The code was fixed to use the default timeout only if it is not provided in the Deployer options. This way deployment will not fail at the default 60 minutes, when the timeout is provided. Instead, it will wait for the timeout to expire. | 8.1 SP3
CR130062 | When the `weblogic.Deployer` command was used from a wrapper class, deployment to multiple domains could have produced deployment failures. This was due to RMI calls that were made without a properly authenticated subject on the thread. A code fix was made to keep the subject properly authenticated until the deployment activity is complete. | 8.1 SP3
CR130592 CR133154 CR135864 | For Managed Servers in Managed Server Independence (MSI) mode, the logic to determine the type of J2EE-module did not use the local or staged copy of the application. This problem surfaced in the MSI mode as a result of the server's inability to determine the J2EE-module type. `stagingLocation` is now used to determine the type of J2EE-module if the original path does not exist in the config.xml file of the Managed Server | 8.1 SP3
CR132685 | An EJBModule maintains a Map that maps the implementation class with the list of all EJB names whose implementation classes are derived from the keyed implementation class. This map is used during redeployment. There were two bugs in this implementation where: There was an unnecessary map maintained in EJBModules. The same EJB name was added repeatedly to the list in the map. These issues lead the EJB container to consume more memory and caused the server to run out of memory. The unnecessary map was removed and the EJB container only adds EJB names to the list which are not already added. | 8.1 SP3
CR133764 | An application was successfully deployed as an exploded ear and the META-INF directory contains a `weblogic-application.xml` file where a listener-class is defined and a listener class was located in APP-INF directory. After an extension template was created using `config_builder.cmd`, the META-INF and APP-INF directories were missing from the created `.jar` file and the application could not be deployed. A code fix was used to resolve this issue. | 8.1 SP3
CR133864 | When `wlconfig` and `wldeploy` ant commands were used to deploy applications, the deployment tasks were hanging. A code fix ensures that the RMI queue threads no longer poll for task completion while deployment is running. | 8.1 SP3
CR134856 | The administration console did not correctly display the current status of a Web application deployed on a cluster after clicking Stop on the Deploy tab. A code fix was used to resolve this issue. | 8.1 SP3
CR134938 CR137390 | There was a classloader issue when undeploying applications. A J2EE container maintains an application-specific classloader and classloader tree, which are used for loading application classes and module-specific classes. When the undeploy command was issued on the application, it closed the classloader and classloader tree before rolling back the modules in it, and therefore got a `NoClassDefFoundError errors` for the classes that were referred from the `destroy()` method of the servlet for the first time, because servlet `destroy()` is called from the `rollback()` of that specific module. A code fix ensures that the container will not close the classloader tree before rolling back the modules in it. | 8.1 SP3
CR135145 | During deployment, an application that contains a Web application targeted to virtual hosts tries to search for an existing application on the default Web server even though it is not targeted to the default Web server. Hence it fails to deploy the component on the virtual host if there is another application deployed on the default Web server with the same context-path. The application no longer searches for the existing application on the default Web server when it is not targeted to default Web server. | 8.1 SP3
CR136885 | During server startup, all applications were staged. This included applications that were not needed by the current server. This was observed from the entries in the StagedTargets property in the Application stanza of the `config.xml` file and the stage directory had all available applications staged. A code change was used to resolve this issue. Only the necessary applications needed on the current server are staged. | 8.1 SP3
CR175858 | Staged directories were not removed when an application was removed using the Administration Console. A code fix ensures that the staged directories are removed after an application is removed. | 8.1 SP3

## EJB

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR090405 CR091204 | WebLogic Server newly supports `java.net.URL` resource connection factory, so that an EJB can obtain a obtain an HTTP connection to a Web server external to the WebLogic Server environment using the `java.net.URL` resource connection factory. WebLogic Server will support this in the following ways: If the Bean provider provides a direct URL for the `res-type java.net.URL`, WebLogic Server will create a URL object with the `jndi-name` provided and bind the object to the `java:comp/env`. The bean provider declares the `jndi-name` as follows in that case in the `weblogic-ejb-jar.xml`: `<resource-description>` `<res-ref-name>url/MyURL</res-ref-name>` `<jndi-name>http://www.rediff.com/<;;/jndi-name>` `</resource-description>` If the bean provider provides a string that is not a valid URL, Weblogic Server treats it as an object that maps to a URL and is already bound in the JNDI tree. In that case, WebLogic Server binds a `LinkRef` with that `jndi-name`. `<resource-description>` `<res-ref-name>url/MyURL1</res-ref-name>` `<jndi-name>firstName</jndi-name>` `</resource-description>` The URL can then be accessed as follows inside the Bean code: `URL url = (URL) context.lookup("java:comp/env/url/MyURL");` `connection = (HttpURLConnection)url.openConnection();` | 7.0 SP6 8.1 SP3
CR103038 | When the `<allow-remove-during-transaction>` element in the `weblogic-ejb-jar.xml` was set to "False", and an application attempted to remove a stateful session bean involved in a transaction, an inaccurate exception was thrown. `weblogic.ejb20.locks.LockTimedOutException` is not the exception called for in the EJB 2.0 specification, and it was replaced with the exception required: `javax.ejb.RemoveException`. | 8.1 SP3
CR108169 | When an EJB deployment descriptor was edited using the Administration Console, an incorrect method name was introduced. The correct method name has now been implemented. | 8.1 SP3
CR109267 | When using entity EJBs with container-managed persistence and automatic key generation, the following error was thrown when using some XA JDBC drivers: `XAER_RMERR : A resource manager error has occurred in the transaction branch` A change to the automatic key generation code resolved the problem. | 8.1SP3
CR110440 | For an entity cache timeout with a combined (application level) cache, if the `idle-timeout-seconds` for one of the beans is set to 0, other beans with `idle-timeout-seconds > 0` are also not removed from the cache after timeout. A code change involving the registration of `idle-timeout-seconds` resolved the problem. | 7.0 SP5 8.1 SP3
CR122524 | An incorrect string was passed to retrieve the tableName from the DatabaseMetaData if the schemaName was not specified with the tableName. Code was added to pass the correct string to retrieve the tableName from the DatabaseMetaData when the schemaName is not specified with the tableName. | 8.1 SP3
CR123213 | Stateless session beans were not returned to the free pool if they were invoked from the BMP ejbRemove. As a result, the pool reached maximum size and timed out while waiting to get an instance. A code change resolved the problem. | 8.1 SP3
CR125501 | WebLogic Server was throwing an `Illegal Reentrant call error` in some situations when a client removed an EJB and then created a new EJB with the same primary key. A code fix was implemented resolve this issue. | 8.1 SP3
CR127187 | A CacheFullException was thrown for cmp11 beans because of back door database deletes. For EJB creates, WebLogic Server now checks if the bean exists in the cache before inserting it into the cache. This eliminates the possibility that the cache state will get out of sync with the database due to back door database updates. The cache is now remains consistent even after back door database updates. | 8.1 SP3
CR127397 CR131629 | This problem was there for Remote Objects using ActivatableServerRef. Entity beans use ActivatableServerRef. ActivatableServerRef called activate to get the bean instance. after invoking the bean method it called deactivate. In deactivate we were releasing the bean to the pool.In some cases only activate was being called. Because deactivate was not being called WebLogic Server was not releasing the bean. WebLogic Server no longer relies on activate and deactivate calls. The ActivatableServer ref now explicitly calls notifyRemoteCallBegin and notifyRemoteCallEnd. | 8.1 SP3
> CR127872 CR135787 | A java.sql.BatchUpdateException: `ORA-01006` or `java.lang.ArrayIndexOutOfBoundsException` is thrown when enable-batch-operations is set to true for an EJB that uses Optimistic Concurrency and a batch of queries arrive such that a parameter is null in the predicated clause of one query and not null in the predicated clause of another query. A code fix provides a check to verify whether the queries are fit for batching. If they are not, batching is turned off and the queries are executed using multiple update statements. The following warning message is sent to the server log:
>     <Apr 27, 2004 11:25:12 AM PDT> <Warning> <EJB> <BEA-011078> <The CMP EJB UserSession has enable-batch-operations set to true, however the update queries are not suitable for batching. Batched operations are turned off for this batch and the queries shall be executed with mutliple update statements.>
| 8.1 SP3
CR128063 | When an MDB suspended a transaction, if the transaction was later resumed, it was committed or rolled back using a different thread. This caused problems for some XA implementations. The MDB container now ensures that the transaction is started and committed using the same thread. | 8.1 SP3
CR128956 CR133894 CR154779 | When the domain had two JMS targets with the same JNDI name, MDB deployment was trying to create two MDB pools with the same name. As as a result of this, it was trying to create two `MessageDrivenEJBRuntimeMBeanImpl` objects with same name, which was causing an Instance Already Exists exception. This was resolved by a code fix so that when the `<provider-url>` stanza is mentioned in the MDB descriptor, it is treated as any foreign JMS provider. Also, when performing the Distributed and/or Migratable destination optimizations, consideration is given only to the JMS target that is related to the current server or current cluster. No consideration is given to the JMS targets of other clusters. This way, MDB deployment will not fail when the JNDI name is reused for different JMS destinations across the domain in different clusters. Also, the <`provider-url>` stanza should not be mentioned in the MDB descriptors to have the Distributed and/or Migratable destination optimizations, as documented in the "MDB Deployment Options" section of Programming WebLogic Enterprise Java Beans". | 8.1 SP3
CR128980 CR135722 | When an MDB used the synchronous message polling scheme, it had issues when a TIBCO JMS server was used. Specifically, the MDB container's polling optimizations could result as a delay in messages being received. The code was fixed so that the optimized poller is not used. Since the TIBCO message delivery scheme does not work well with this scheme, MDBs now use a poller that continuously polls the TIBCO JMS server. And since these pollers need an exclusive thread, when a dispatch-policy is specified with an MDB, the fix ensures there are enough threads for polling. Otherwise, the user can also tune the max beans count in the MDB descriptors. Note: This fix only applies to TIBCO JMS, so other foreign JMS servers still use the existing mechanism. Therefore, there will not be any change in the behavior for MDBs using foreign JMS servers other than TIBCO. | 8.1 SP3
CR129035 CR132804 | For a CMP20 bean using automatic key generation with the MS SQL Server database, and the `delay-db-insert-until` element set to `ejbPostCreate`, an entity local object that did not have the correct identity set got cached in the relationship set. This unidentified, entity local object, was returned when a getter method was called for the CMR field, thereby causing a ClassCast exception. This was resolved by associating a dummyPK to the entity object\entity local object before calling a create on the bean and replacing it with the correct identity when the PK is known. | 8.1 SP3
CR129185 | WebLogic Server loaded optimistic-concurrency beans in a separate transaction, suspending the current transaction, starting a new one, loading the bean and resuming the old transaction for all databases except Oracle, to avoid acquiring locks during the SELECT. Because the default behavior in Sybase is for a a shared-lock to be acquired during the SELECT but released even before the statement has completed the statement, the loading behavior has been changed: When the concurrency-strategy is optimistic, WebLogic Server now suspends and resumes the transaction for databases other than Oracle only if the isolation-level is higher than Read-Uncommitted or Read-Committed. | 7.0 SP5 8.1 SP3
CR129223 | CMP20 EJBs using Optimistic concurrency and `cache-between-transaction` failed for many-to-many relationships. With the `cache-between-transactions` element set to true, the bean along with the generated many-to-many set was cached, which caused the new transaction to use the cached bean and hence the cached set. The previously cached values in the set were not cleared and hence at the end of the transaction when the M2NJoinTable inserts are done, it failed with a `ORA-00001: unique constraint violated error`. This indicated that an attempt was made to insert a record with a duplicate (unique) key. The problem was resolved by clearing the cached many-to-many set for the new transaction since the many-to-many set is maintained per transaction. | 8.1 SP3
CR129379 CR136730 | When an EJB transaction created many new entities or otherwise engaged many beans that all use JDBC, WebLogic Server risked running out of Oracle cursors, because in an attempt to avoid a suspected Oracle driver bug, WebLogic Server delayed closing JDBC statements until the end of a transaction, holding the cursors for the statement until then. This behavior has been changed so that the session need not hold cursors until the transaction ends. | 7.0 SP5 8.1 SP3
CR131848 | A `ClassCastException` was thrown at runtime when "cache-between-transactions" is set to true for a `BMP bean.java.rmi.RemoteException: EJB`. A check for BMP and CMP20 beans was added to prevent the `ClassCastException`. | 7.0 SP5 8.1 SP3
CR133602 | WebLogic Server used a special handling code for SonicMQ 4.* version, when XAconnections were used. This code was not required for Sonic 5.* version and caused a connection leak when used with it. A code fix eliminated the connection leak. | 7.0 SP5, 8.1 SP3
CR133774 | The following part of the description for the `max-beans-in-cache` element in the `weblogic-application.xml` DTD was incorrect: If 0 is specified, then there is no limit for max-beans-in-cache. A `max-beans-in-cache` size of 0 would set the actual size of the cache to 0, thus causing a `CacheFullException`. The above note has been removed from the DTD. Also, a compliance check has been added to prohibit a value of 0 for the `max-beans-in-cache` in `weblogic-application.xml`. If you need to set a large size (infinite) for your cache, set the value of the max-beans-in-cache to `java.lang.Long.MAX_VALUE` in the DDs. This makes it compliant with the behavior of the same element in `weblogic-ejb-jar.xml`. | 8.1 SP3
CR134082 | The `trans-timeout-seconds` property was missing from the Marathon General Panel for session beans (both stateful and stateless) and for message-driven beans. The property has been added the General Panel for all EJBs and removed from the Persistence Panel for entity EJBs. | 8.1 SP3
CR135410 | When the bean is looked up and a business method is called for the first time, the call to EntityContext.getCallerPrincipal() from ejbStore returns the user as "anonymous". After this, when ejbStore is invoked again, it returns the correct username. This problem only occurs with ejbStore and no other method. The problem was resolved with a code change. | 8.1 SP2 8.1 SP3
CR174119 | When the `cache-between-transaction` element was set to true and a transaction was rolled back, the bean was marked as invalid but was still kept in the cache. Also, when `cache-between-transaction` was true, the `findByPrimaryKey` implementation checked whether the bean was already cached. Therefore, a been could be reused from the cache even if it had been in an invalid state. It could also be returned and lazily loaded when a remote method was called. When the bean was loaded from the database, a `NoSuchObjectException` was thrown because the row did not exist in the database since the earlier transaction was rolled back. Therefore, an invalid bean was being made valid and returned from the cache. Now when findByPrimaryKey checks whether the bean is already in the cache, it checks only for ready beans and valid beans, and the cache check no longer returns an invalid bean. After not finding a bean in the cache, the findByPrimaryKey runs the query against the database. If it does not find the bean in the database, it throws a `FinderException`. | 8.1 SP3
CR174845 | Under some conditions, ReadOnly entity beans were not refreshed after the read-timeout-seconds value expired. A code change was made to initialize the bean, load from the `resultSet` and set the `lastLoadTime` only if the bean has timed out or has been invalidated. | 8.1 SP3

## Installation

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR103125 CR172837 | The "-log:C:/temp/xxx.log" option was added to beasvc. It redirected all stdout/stderr to a log file. In production, this file grew quickly and became very large. On Windows, there was no way to copy or rename the file. Code was added to allow rotation of the log file on a Windows service. For additional information, see http://e-docs.bea.com/wls/docs81/adminguide/winservice.html | 6.1 SP6 8.1 SP3
CR107512 | There were issues with using Smart Update with a proxy. During the Smart Update process, the hard-coded proxy settings were not carried over or recognized. Proxy support is now enabled by automatically passing the following command-line system properties from appBoot to the Smart Update utility: http.proxyHost http.proxyPort http.proxySet https.proxyHost https.proxyPort https.proxySet Log priority settings are now also passed to Smart Update. | 8.1 SP3
CR121882 | The generic UNIX installer threw a misleading error message when the tmp filesystem was either too small or too full. The code was changed so that the `-Djava.io.tmpdir` property can be set to a filesystem with enough space. | 8.1 SP3
CR125514 | When the config_builder.sh script was run the Configuration Template Builder did not start up, and generated the following message: "Unable to instantiate GUI, defaulting to console mode". However, it did not start up in Console mode and returned to the command prompt. This is the correct behavior. However, the Console now provides the following message: "The Configuration Template Builder is not supported in console mode." The Configuration Template Builder can be invoked only in graphical mode. Therefore, the console attached to the machine on which you are running the Configuration Template Builder must support a Java-based GUI. All Windows-based consoles support Java-based GUIs; only a subset of UNIX-based consoles support Java-based GUIs. For more information, see "Starting the WebLogic Configuration Template Builder", in Creating WebLogic Configurations Using the Configuration Wizard. | 8.1 SP3

## J2EE

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR107166 | Using a custom classloader structure with EJB implementation inheritance caused a NoClassDefFound error. This was resolved by setting the module classloader as the parent to the impl classloader. | 8.1 SP3
CR112618 | wlcompile failed when the weblogic.jar was not in the $CLASSPATH. Code was added to enable wlcompile to locate a weblogic.jar file referenced in an ant task's taskdef. | 8.1 SP3
CR125191 | Deployment could not properly resolve the application path if the path was relative and the JVM user.dir was not equal to the WebLogic root directory. Deployment now uses the weblogic.RootDirectory path to resolve relative paths. | 8.1 SP3
CR125191 | BootStrap.apply() was not used in J2EEutils.getDeploymentCategory(). If a path does not exist, SlaveDeployer.resolveStagingPath() is now used to resolve the path correctly, by invoking BootStrap.apply(). | 8.1 SP3
CR126403 CR134398 | When an application with one hundred or more modules was deployed, the deployment activity was taking too much time. This increased the startup time for the server. The J2EEApplicationContainer code asserted for certain conditions and tried to frame a string as part of this activity. Code was added to avoid the formatting of unnecessary large strings during deployment. | 8.1 SP3
CR137465 | Because only a single class finder was used for all listeners, it was reset for every invocation. However, only the last listener's URI was available with the class finder. The code was changed so that a new class finder was created for every URI entry and is available for the application classloader. | 8.1 SP3
CR173871 | When compiling a large EAR file, the `appc` compiler ran out of memory. The compilation of the generated EJB files is now done inline by default. Before this change, the default behavior was to fork the compiler process (`javac` by default). This sometimes required `-J` options to be set in the `ExtraEJBCOptions` so that they would be passed to the forked compiler process. With the default behavior changed to inline compilation, you no longer need to set the `-J` options in `ExtraEjbcOptions`. | 8.1 SP3

## JCOM

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR095485 | A COM object that closed during a load could result in sockets being left in a CLOSE_WAIT state. The sockets now close on `endOfStream`. | 7.0 SP5 8.1 SP3
CR172074 | jCom would throw a NullPointerException when the thread context object associated with a subject is null. This problem was resolved with a simple code fix. | 8.1 SP3
CR182512 | COM to Java clients failed when the Microsoft Security Bulletin MS04-011 was applied. This has now been resolved. | 8.1 SP3

## JDBC

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR099912 | HighestNumUnavailable defaulted to 0, which caused all idle connections to be locked for testing and released all at once. This condition held connections longer than necessary, and caused unexpected ResourceExceptions from pools that seemed to be sized correctly. New code makes the HighestNumUnavailable test and release connections one at a time. There is also a new configurable attribute added, secondsToTrustIdleConnection, which allows a connection to skip testing if it has been used within the set number of seconds. | 8.1 SP3
CR108826 | WebLogic Server Multipool did not provide an option to define time-based failover. The exact condition under which failover would be triggered to a secondary connection pool was uncertain. It would go through all the connections in the pool before it decided that it did not have a good connection. If the primary database went down, it needed to wait for xx time before the connection failed over to a secondary database. Code was added to provide an option to run a time check before returning the connection to the primary database. See JDBC MultiPool Failover Enhancements. | 7.0 SP5 8.1 SP3
CR111231 CR128673 | In previous releases of WebLogic Server, memory leaks occurred when a BLOB column was used through a JDBC Tx Data Source. A code fix resolved the problem. | 6.1 SP6 7.0 SP4 8.1 SP3
CR120411 | When an applet made a connection via a datasource and the applet was killed, WebLogic Server printed leak detection messages. These messages were sometimes sent in error, and were not properly formatted for the JDBC/WLS log. JDBCLogger is now used to format the message in case of connection leak detection. | 8.1 SP3
CR120455 | A memory leak was discovered in WebLogic Server 6.1 Service Pack 2. The leak occurred when using a TxDataSource to access a BLOB column on a database with the WebLogic XA driver. This problem was solved with a code fix. | 6.1 SP6 8.1 SP3
CR120533 | When a JDBC log name was specified with the ".log" suffix, JDBC logging did not rotate as expected. The prior log file was overwritten by a new JDBC log when WebLogic Server was restarted. JDBCService.initLog() was modified to fix the problem. | 8.1 SP3
CR124017 | When PoolShrinking was enabled with an Informix database, XAConnectionPool failed with a SQLException. A JDBC XAConnection wrapper code change resolved the problem. | 8.1 SP3
CR124933 | An Oracle BLOB sometimes used a pooled connection after the connection pool determined that the connection was available for reassignment. Code was added to ensure the BLOB is completely processed before closing the pool connection or ending the transaction. | 8.1 SP3
CR125844 | Configuring idle-connection-timeout limits could result in unintended thread blocks or deadlocks because the JDBC pool may try to reclaim a connection that has not changed for the idle-timeout period but is still waiting for the DBMS to respond. A code fix was implemented to ensure that the JDBC pool correctly recognizes idle connections. Note: Configuring idle-connection-timeout limits are not intended to aid in stopping runaway or deadlocked transactions. | 8.1 SP3
CR126808 | When two applications with one application-scoped datasource per application were deployed on the same server and the datasources have the same name, an `InstanceAlreadyExistsException` was thrown. Code was added to configure the pool name to be application-specific when necessary. | 7.0 SP5 8.1 SP3
CR126950 CR174756 | In an instance where DB side cursors were discarded, such as by running an Oracle STATS package for the cost based optimizer, the cached prepared statements for the JDBC connections on WLS side became invalid. There was no transparent way to have the prepared statement cache cleared by WebLogic Server in case exceptions were thrown due to this scenario. The cached statements remained invalid in the WebLogic Server cache until either WebLogic Server was restarted or the cache was cleared via the WebLogic Server Administration Console, or a JMX call. WebLogic Server now clears a prepared cache when an error occurs. | 8.1 SP3
CR127615 CR161930 | The connection pool held a "ConnectionEnv" object that did not refer to any connection directly, but contained a map with statements. Those statements had a reference to the connection that created them, and so were still holding on a hierarchy of database objects. Code was added to release the ConnectionEnv object in a timely manner. | 8.1 SP3
CR127720 | New versions of JDBC drivers track the transactional state of connections. If a local transaction was active on a connection, XA operations could not be performed on it, resulting in an `XAER_PROTO` or `XAER_RMERR` when an `xa_start()` was called on the connection. As a result, applications had to go through the tedious process of narrowing down where in their code they had started but not ended a local transaction. The problem was resolved by a code change in the recovery method that prevents special XA connections from being released to the pool twice. | 7.0 SP5 8.1 SP3
CR127891 | The format of the connection leak file was modified to make the information more readable. | 6.1 SP6 8.1 SP3
CR128117 | You can now configure a data source so that it binds to the JNDI tree with multiple names. You can use a multi-named data source in place of configuring multiple data sources that point to a single JDBC connection pool. For more details, see "Binding a Data Source to the JNDI Tree with Multiple Names" in the Administration Console Online Help. | 8.1 SP3
CR128156 CR134273 CR161930 | The code that replaces a pooled JDBC connection did not completely remove all references to replaced objects, so memory grew with each replaced connection. The problem was noted when using the `getVendorConnection()` method. Now when WebLogic Server replaces a pooled connection, the connection is not referenced by other objects. This makes the replaced connection available for garbage collection. | 8.1 SP3
CR128419 CR132944 | During a graceful shutdown, the `BufferedOutputStream` to the jdbc.log was not completely flushed/closed, which could result in data loss in the buffer. The code was modified so that `BinaryOutputStream` is now `closed()` in the `JDBCService.prepareToSuspend()` method. | 8.1 SP3
CR128545 | Batched RowSet updates were failing on Informix if a table name included an upper-case letter. Informix uses lower-case letters for all metadata names. The WebLogic Server RowSet implementation relies on metadata for batch updates. The WebLogic Server RowSet implementation now converts metadata names to lower-case when using an Informix JDBC driver. | 8.1 SP3
CR130306 | In `jta.DataSource`, when doing `refreshAndEnlist`, WebLogic Server called t`x.enlist()`, but the connection was not returned to the pool if there was an exception in the `refreshAndEnlist` call. A code change catches the exception and releases the connection to the pool. | 7.0 SP5 8.1 SP3
CR131575 | WebLogic Server sometimes threw a bogus warning about a JDBC connection leak: `[SerialConnection] : Connection Leak detected!!!!!!java.lang.Throwable: StackTrace at creation of connection: /n` The leak detection code that sent this warning is obsolete. A code change resolved the problem. | 7.0 SP5 8.1 SP3
CR131702 | During an attempt to reset a connection pool during high load, a deadlock was occurring between `DataSource.commit()` and `RESET_POOL`. In the `weblogic.jdbc.common.internal.ConnectionPool.reset()` method, the connection pool is now suspended before being refreshed, and is then resumed to avoid a deadlock. | 8.1 SP3
CR132293 CR134921 | For certain JDBC connections, the call to roll back a transaction was not being handled immediately because the driver had to wait for any currently-executing statement to return. In order to remove this delay, code was implemented to send a `Statement.cancel()` to abort any such executing statement when WebLogic Server is in the process of rolling back an ongoing transaction. | 8.1 SP3
CR132675 | The `isClosed()` method for all non-XA connections within a given transaction returned true after a `Connection.close()` call to any one of them. A code fix supplies a separate wrapper for the same underlying connection to all users involved in the transaction. | 8.1 SP3
CR132839 | When the test-connections-on-reserve is enabled and the isolation level is TransactionReadCommitted, a SQLException occurs when the customer is using the Ingres driver. The EJB has the TRANSACTION_READ_COMMITTED transaction isolation level. When calling the EJB, the database connection fails on the following SQLException: "SQLState(25000) vendor code(5932) ca.edbc.util.EdbcEx: SET TRANSACTION: This statement is not allowed. No change, except that those calls which would fail on a connection that already held DBMS locks should now succeed. | 8.1 SP3
CR134364 | A synchronization issue (not a deadlock) occurred when the ResourcePoolMaintanenceTask attempted to time out all inactive resources. It got a lock to the ConnectionPool and proceeded to check all the connections. However, if a connection was active at that point and locked on another object, the ResourcePoolMaintanenceTask had to wait to get that lock. This caused a slowdown and a "frozen" server to the end user. The task completed but took a very long time. A code change prevents the connection pool from locking the entire connection pool. Another method to avoid this is to turn off the reclaim process, by setting the timeout value to zero. | 8.1 SP3
CR135116 CR172353 | WebLogic Server unexpectedly changed autocommit mode for a JTS connection. This occurred when WebLogic Server failed connection testing on reserve. Because a JTS connection accepts global transactions and a connection is in the user transaction, it should honor the user transaction boundary. Furthermore, connection testing should be implicit behavior for users. This has not been the case in prior releases. The problem was resolved with a code change. | 8.1 SP3
CR136624 | When Connection Creation Retry Frequency on a JDBC connection pool was set to enable connection retries (not set to 0), the connection creation retry logic was invoked when an application attempted to reserve a connection. If the database was unavailable, the thread would hang during the wait and retry cycles. Connection reserve requests now succeed or fail quickly as in previous releases. | 8.1 SP3
CR136681 | The wlconfig ant task did not properly remove a pool. The problem is within the JDBC connection manager code. The problem was resolved with a code change. | 8.1 SP3
CR136746 | Enhancement request to allow explicit naming of JDBC driver being used in class VendorId. This customer enhancement was made through a code change. | 6.1 SP7 8.1 SP3
CR137180 | Changes in weblogic.jdbc.vendor.oracle.OracleStatement from 81SP1 to 81SP2 broke Oracle 9 Driver compatibility. The return type for the method getDBDescription() on Interface weblogic.jdbc.vendor.oracle.OracleStatement changed from DBColumn[] in 81SP1 to Object[] in 81SP2. This change made 81SP2 incompatible with Oracle 9 Drivers when a customer would like to wrap the java.sql.Statement object with a dynamic proxy. This problem was resolved through a code change. In OracleStatement.java, references to the following two unsupported methods were removed: getDBDescription and getBinds. | 8.1 SP3
CR174025 | In response to requests for a "Purge Policy" for JDBC connection pools, the StatementTimeout and TestStatementTimeout attributes were added to JDBC connection pools to limit the amount of time that a statement can execute on a database connection from a JDBC connection pool. For detailed information, see "JDBC Connection Pool Testing Enhancements" in Programming WebLogic JDBC. | 8.1 SP3
CR174126 | Using multiple different prepared statements in a single transaction invoked a bug in the XA statement cache, which lost the handle to unclosed JDBC statements. This quickly caused all the available cursors in Oracle to be consumed and leaked. A fix was made to the underlying collection object being used to implement the XA statement cache. | 8.1 SP3
CR174575 CR175701 | A JDBC Multipool fails with an `IndexOutOfBoundsException` under a heavy load due to a non-threadsafe manner of incrementing an array index. The code was repaired to be threadsafe. | 8.1 SP3
CR174658 | When a Java client that used Weblogic datasources experienced a "PeerGone" exception, the transaction contexts related to the connection were not properly cleaned up. The problem was resolved with a code fix. | 8.1 SP3
CR177220 | In a multi-server domain, a client involved in a global transaction got the following exception: `weblogic.transaction.RollbackException: delist() failed on resource jdbcXAPool` The code was changed so that if the data source is null, then the resource manager is not set. When the data source is initialized, the resource manager is wrapped by VendorXAResource. | 8.1 SP3
CR180097 | The JDBC connection pool's "CountOfTestFailuresTillFlush" property neglected to clear statement caches. The problem was resolved with a code fix. For detailed information about using the "flush pool" feature, see "JDBC Connection Pool Testing Enhancements" in Programming WebLogic JDBC. | 8.1 SP3
CR208038 | When a JDBC connection pool was created using the silent script mode, with the MaxCapacity parameter set to 1, the Administration Console incorrectly displayed the parameter's value as 15. This problem has been resolved. | 8.1 SP3

## jDriver

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR113462 | WebLogic Server threw a NumberFormatException when using BigDecimal types in an environment with Oracle's NLS_LANG setting. The problem did not occur when using Oracle's NLS_NUMERIC_CHARACTERS parameter to match American-style numeric character definitions. This problem was solved with a code fix. | 6.1 SP6 8.1 SP3
CR125135 | By default, WebLogic jDriver for Oracle/XA Data Source set the value of the `oracleXATrace` parameter to true, rather than false. This caused the driver to create trace files of the form `xa_poolname*.trc` that could grow large over time, unless you specifically disabled trace files by setting `oracleXATrace="false"` in `config.xml`. The code was modified to set the default value of `oracleXATrace` to false if no value is specified. | 7.0 SP5 8.1 SP3
CR125135 | By default, WebLogic jDriver for Oracle/XA Data Source set the value of the `oracleXATrace` parameter to `true`, rather than `false`. This caused the driver to create trace files of the form `xa_poolname*.trc` that could grow large over time, unless you specifically disabled trace files by setting `oracleXATrace="false"` in `config.xml`. The code was modified to set the default value of `oracleXATrace` to false if no value is specified. | 7.0 SP5 8.1 SP3
CR127949 | Statement.getResultSet() sometimes generated an unnecessary new ResultSet wrapper. A code change has resolved the problem. | 6.1 SP6 8.1 SP3
CR129220 | WebLogic Server Oracle jDriver was not properly releasing CLOB objects for garbage collection. A code change resolved the problem. | 6.1 SP6 8.1 SP3
CR129220 | WebLogic Server Oracle jDriver was not properly releasing Clob Objects for garbage collection. A code change resolved the problem. | 7.0 SP5 8.1 SP3
CR134285 CR137123 CR181738 | The `weblogic.db.oci.OciLob` class defined two class level variables to hold the returned byteArray for either BLOB or CLOB data from the database. As this byte array could be quite large each instance of OciLob filled up the heap quickly until a garbage collection occurred. Further testing and a modified OciLob moving the class level variables `retBArray[]` and `retCArray[]` into the methods caused the variable to be allocated on the stack and reduced the size of the OciLob object instance and thus overall heap usage was reduced. Code was added to move the global variables `retBArray` and `retCArray` to the method level in order to reduce the size of the memory heap usage. | 6.1 SP? 7.0 SP5 8.1 SP3
CR136168 | WebLogic jDriver may cause the server to crash with Oracle error message ORA-02392 when using the long raw type under heavy loads. A code fix was implemented to resolve this issue. | 8.1 SP3
CR142730 | After a long database outage, a JDBC connection pool that used the XA jDriver for Oracle with TestConnectionsOnReserve="true" could not recover and recreate connections to the database. The following error messages were thrown: `<Warning> <JDBC> <001096> <Refreshing this bad pool connection failed weblogic.common.ResourceException: java.sql.SQLException: open failed for XAResource 'oracleXAPool' with error XAER_RMERR : A resource manager error has occurred in the transaction branch.` and `<Warning> <JDBC> <001096> <Refreshing this bad pool connection failed weblogic.common.ResourceException: java.sql.SQLException: LDA pool exhausted - make sure you call Connection.close()` The problem was that during the outage, the JDBC connection pool attempted to recreate connections, but on failure, those connection attempts were not cleaned up and were depleting Oracle client resources (in the LDA). The jDriver now cleans up connection creation attempts that fail. | 8.1 SP3
CR172462 | The WebLogic Server jDriver was not functioning properly with Oracle 9.2 when using the AL32UTF8 character set. This problem was resolved with a code fix. | 7.0 SP5 8.1 SP3

## JMS

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR110911 | Ordered redelivery did not always work correctly when a new message was added to the queue. Code was added and ordered redelivery now works correctly when the restrictions are followed. | 8.1 SP3
CR110991 CR117044 | The `JMSServerRuntimeMBean` method `getHealthState` is no longer a public method. | 7.0 SP5 8.1 SP3
CR112112CR135792 CR181852 | During server startup, JMS code created DestinationRuntimeMBeans and did not register them with the MBeanServer. Before these destinationMBeans were registered, it then created and registered DurableSubscriberRuntimeMBeans(children of DestinationMBeans) for subscribers that were persisted in the FileStore. The subscribers then had no parent component in their names and fell out of the scope of the parent when the console scoped them. WebLogic Server now waits and registers the destination's durable subscribers after the destination has been registered, but before the destination is advertised.Durable Subscribers are not dropped from the console when monitoring JMS Destinations. | 8.1 SP3
CR121041 | A problem occurred with a Messaging Bridge between two JMS topics running in two Managed Servers in the same domain, running on the same machine. As the Messaging Bridge was started during WebLogic Server startup, it threw the following warning message. Messages could not be forwarded. `####<Aug 20, 2003 12:49:11 PM MST> <Warning> <MessagingBridge> <slsol4.bea.com> <server2> <ExecuteThread: '10' for queue: 'de fault'> <kernel identity> <> <200026> <Bridge "Test Messaging Bridge" encountered some problems to one of its adapters or underlying systems. It stopped transferring messages and will try to reconnect to the adapters shortly. (Exception caught was ja va.lang.Exception: javax.resource.spi.IllegalStateException: Managed connection is closed at weblogic.jms.adapter.JMSManagedConnection.checkIfDestroyed(JMSManagedConnection.java:263) at weblogic.jms.adapter.JMSManagedConnection.sendEvent(JMSManagedConnection.java:231) at weblogic.jms.adapter.JMSBaseConnection.throwResourceException(JMSBaseConnection.java:1266) at ...` Analysis revealed that the bridge failed to create the message listener because it was configured for durable topics and there was no JMS store available. The Bridge encountered an internal error when trying to log the resource exception so the customer was not able to tell why the bridge was failing. The problem was resolved by a code change to allow the bridge to throw the correct resource exception. Now, the correct exception is logged by the bridge. | 7.0 SP5 8.1 SP3
CR121226 | The Messaging Bridge failed with a NullPointerException on startup when migrated. The migratable code was modified to properly initialize before starting so that the Messaging Bridge can now successfully migrate without errors. | 8.1 SP3
CR121741 | Inconsistent behavior occurred when shutting down the MQ-WLS bridge using MBeans. The exception occurred because `Recover()` is not a valid operation on a transacted session.`` A code change verifies that a session is not transacted before calling `recover()`. | 7.0 SP5 8.1 SP3
CR121760 | An `InvalidDestinationException` was received when using WebLogic Server Messaging Bridge to integrate WebMethods 6.0 JMS with WebLogic Server. When sending messages to WebLogic Server, WebMethods 6.0 requests an `ack`. The bridge sends `ack` of type `weblogic.jms.DestinationImpl` when WebMethods expected type `com.wm.broker.jms.Destination`. An exception resulted. As WebLogic Server is providing bridge functionality between the two JMS implementations, the request is to convert message acknowledges to the correct type. It seems that this is correctly done for regular messages. Analysis revealed that the standard WebLogic JMS client was handed a WebMethods message to send, and attempted to call `setJMSDestination` on the WebMethods message using a WebLogic destination.WebMethods throws an InvalidDestinationException when this occurs. The problem was resolved by a code change to catch and ignore the InvalidDestinationException. | 7.0 SP5 8.1 SP3
CR123194 | In previous WebLogic Server service packs, when the server instance went down but its clients remained active, JMS threw a runtime exception `weblogic.rmi.extensions.RemoteRuntimeException`, instead of a JMSException as expected per the JMS specifications. A code change resolved the problem. | 7.0 SP5 8.1 SP3
CR124286 CR128684 | When MDB lost the connection to MQSeries because MQSeries had been shut down, the resource was not unregistered and MQSeries was left with prepared transactions that were not resolved until WebLogic Server was restarted. The JMSConnectionPoller was changed to call unregisterResource if it was disconnecting from JMS due to a connection failure. If it was disconnecting for any other reason (undeployment, migration, shutdown) then registeredResource was set to null. Transaction recovery now occurs correctly if MQSeries is stopped and restarted while the MDB connected to MQSeries is processing messages without having to restart WLS. | 8.1 SP3
CR125014 CR171724 | When a JMS client was repeatedly connected and disconnected to a JMS server, a memory leak occurred on the server side that resulted in `OutOfMemoryError`. A code fix was used to resolve this issue. | 8.1 SP3
CR125693 | The legal minimum value of the `flowMinimum` attribute of the `JMSConnectionFactoryMBean` had been changed to 1 and so, to be consistent, the legal minimum value of the `flowMaximum` attribute was also changed to 1. | 7.0 SP5 8.1 SP3
CR125979 | Customers who set up a JMS bridge within a cluster sometimes found that when starting the bridge, the following exception was thrown from the Managed Servers, and that the JMS message could not be sent to the intended destination. `<Oct 16, 2003 3:12:49 PM PDT> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode> <Oct 16, 2003 3:23:17 PM PDT> <Error> <JMS> <BEA-040368> <The following exception has occurred: java.lang.NullPointerException at weblogic.jms.bridge.internal.MessagingBridge.startInternal(MessagingBridge.java:519) at weblogic.jms.bridge.internal.MessagingBridge.execute(MessagingBridge.java:956) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197) at weblogic.kernel.Kernel.execute(Kernel.java:336) at weblogic.kernel.Kernel.execute(Kernel.java:321) at ...` A code fix was implemented to ensure the Bridge starts correctly in clustered configurations where a Managed Server's `Started` attribute is changed from "false" to "true" and no adapter has been deployed. | 8.1 SP3
CR126183 | An idle bridge was logging a message after the maximum idle time setting had been reached. Code was added to suppress the repetitive log message "Bridge X start transferring messages" logged by an idle bridge. If the bridge is stopped and restarted, or if it encounters an exception and is restarted you will see the "Bridge <bridgename> starts transferring messages" log message, but you will not see the repetitive message logged by an idle bridge. | 7.0 SP5 8.1 SP3
CR126671 | The Message Bridge did not register a notification listener when a bridge adapter was deployed to a cluster. This problem was corrected with a code fix. | 8.1 SP3
CR127260 | `MessagingBridgeRuntime` Means was not stopped by the `weblogic.Admin` utility command: `java weblogic.Admin -url t3://127.0.0.1:7001 -username weblogic -password weblogic INVOKE -type MessagingBridgeRuntime -method stop` The `MessagingBridge` start and stop methods now throw an informative exception about how to start and stop `MessagingBridge` at runtime. | 7.0 SP5 8.1 SP3
CR128596 | Message flows sometimes stalled when messages were sent over the Messaging Bridge using distributed destinations from a 7.0 SP2 cluster to 8.1 SP2 cluster when one of the 8.1 SP2 cluster servers was restarted. A code change resolved the problem. | 7.0 SP5 8.1 SP3
CR132606 | Messages Pending counters in the Administration Console were incorrect for Distributed Topic members that were on the same WebLogic Server instance. Counters were correct for remote distributed topic members. Code was changed to correctly manage the distributed topic reference count when forwarding to other non-remote distributed topic members. | 8.1 SP3
CR133155 | WebLogic Server took too long to recover JMS messages from the JDBC store at boot time. Including JMS in the getTables prefix resolved the problem. A code change solved the problem. | 8.1SP3
CR133474 | Messages were not dispatched to MDBs properly after a migrated JMS server was re-migrated back to the original host server instance. A code change solved the problem. | 8.1 SP3
CR134155 | JMS messages from topic sessions caused a memory leak when the receiver was created using a transacted session, used AUTO-ACKNOWLEDGE mode, and the message was rolled back. A code fix resolved this issue. | 8.1 SP3
CR137145 | Some JMS thin clients using IIOP were hanging because the server used the same lock when performing registrations and when notifying callback due to heartbeat failures. This problem was resolved with a code change. | 8.1 SP3
CR172511 | Closing a JMSConnection session before closing all JMSConsumer clients first could cause a memory leak. A code change solved the problem. | 8.1 SP3
CR172780 | Restarting a Tibco Server prevented a wrapped JMS object (ForeignJMSConnectionFactory) from sending any further messages, and threw the following security exception: `weblogic.management.NoAccessRuntimeException: Access not allowed for subject: principals=[], on ResourceType: ForeignJMSConnectionFactoryConfig Action: read, Target: Password weblogic.management.NoAccessRuntimeException: Access not allowed for subject: principals=[], on ResourceType: ForeignJMS ConnectionFactoryConfig Action: read, Target: Password` The problem was resolved by a code fix to the JMSConnectionHelper API so that it is aware of the KERNEL_ID for access to the username and password needed by the ForeignJMSConnectionFactory when reconnecting. | 8.1 SP3
CR173565 | JMS messages were delivered twice when an XA transaction failed. A code fix was made to handle failed transactions, and to log an appropriate error message to notify the user that there is a transaction in an ambiguous state. Prior to this change, any message involved in a transaction that was in an ambiguous state would still be rolled back and redelivered because the message was in memory. However, the record in the store (if there was one) was not properly updated because the store's handle for that record was invalid, leaving the record (if there was one) in the store. Therefore, when the JMS server was rebooted the message was redelivered, resulting in duplicate message. Now any message involved in a transaction that is in an ambiguous state will require a JMS server restart before it can be recovered. Any attempts to recover the message without JMS server restart will result in an RMERR. | 8.1 SP3
CR176366 | When the `getObject()` method is set on the `Boolean.TYPE` in the `onMessage()` API, it throws the following JMSException: `javax.ejb.EJBException: nested exception is:weblogic.jms.common.JMSException:` `Error deserializing object weblogic.jms.common.JMSException: Error deserializing object` The problem was resolved with a code fix to the`weblogic.jms.common.resolveClass()` API. | 8.1 SP3
CR178405 | During a scan for expired messages, a `java.util.ConcurrentModificationException` was thrown. The problem was resolved with a code fix. | 8.1 SP3

## JNDI

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR110136 CR176352 | The NamingException was thrown as part of NestedException from the server when the client could not correctly deserialize the contents of the NamingException. The NamingException contained the WLContextImpl object and for this object to be deserialized, WebLogic Server needed the environment to be on the thread for load balancing. This problem was fixed by initializing a default environment if an environment is not found on the thread . | 8.1 SP3
CR125793 CR185265 | When trying to obtain an InitialContext, WebLogic Server spent a significant amount of time trying to obtain the stub name. Code was added to ensure that WebLogic Server generates the stub name statically from PeerInfo. | 8.1 SP3

## JSP

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR104429CR134313 | If a JSP was updated and manually recompiled, and the updated JSP class file was copied to the `jspWorkingDir`, WebLogic Server recompiled updated JSP pages without checking to see if recompilation was necessary. A new parameter, `-Dweblogic.jsp.alwaysCheckDisk`, when set to true causes WebLogic Server to check the JSP class on disk to determine if the JSP must be recompiled. This parameter is set to false by default, so default behavior is not changed. | 7.0 SP5 8.1 SP3
CR107421 | When a JSP containing jsp:useBean used a inner class, the compilation failed. Always use the'$'class separator for an inner class within jsp:useBean. The JSP container has been modified to internally generate 'types' which always contain the '.' separator instead of the '$'. | 8.1 SP3
CR111423 | When packaged in a WAR file, precompiled JSPs stored in a sub-context of the application were always recompiled upon deployment to WebLogic Server. This problem did not occur when JSPs were deployed from an exploded archive directory, or for JSPs in the root-context of a WAR file. The problem occurred because of a difference in the rounding behavior of timestamps used in the jar and zip formats. The discrepancy in rounding could cause an older timestamp (by one second) to be recorded in class files inside the WAR file, triggering the server to recompile the classes. The code was modified to advance the timestamps in compiled JSP classes by one second, thereby preventing JSPs from being recompiled. | 6.1 SP6 8.1 SP3
CR111655 | Previously, it was not possible to use JavaServer Pages Standard Tag Library (JSTL) tags in JSPs that include Japanese characters. When such a JSP is executed, an error starting with the following lines occurred: `java.io.IOException: javax.servlet.jsp.JspException: The taglib validator rejected the page: "org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x82) was found in the CDATA section."` If the `pageEncoding` attribute was not specified in the page directive, the byte stream, which is used for taglib validation, was constructed using default encoding. The problem was corrected with a code change to ensure use of the character encoding defined in the `contentType` attribute if the `pageEncoding` is not specified. | 7.0 SP5 8.1 SP3
CR112794 | A JSP was refreshed with a copy that did not parse correctly, and this caused a deadlock. The problem was resolved by a code change that added a check during JSP refresh. | 7.0 SP5 8.1 SP3
CR120914 | When you used the WebLogic Server form validation tag library, request parameters were not available to subsequent JSPs. This problem was solved with a code fix. | 6.1 SP6 8.1 SP3
CR123659 | WebLogic Server did not allow comments in JSP tags. Code was added to parse java/xml comments in JSP tags, so that xml comments are ignored in the generated java file and java comments are kept. | 8.1 SP3
CR124505 | A JSP with pre-compiled classes in a WAR file was being recompiled when it should not have been recompiled. Time stamp differences of up to 1.75 seconds were noted. New time buffer logic was applied and the time buffer was changed from 1 to 2 seconds. JSPs in WAR files with precompiled classes are no longer recompiled. | 8.1 SP3
CR127515 CR068074 | When there was a javac error statement on a jsp file, the jsp container displayed the error message correctly on both the browser page and the log file. When weblogic.jspc was used, the message became corrupted. A code change corrected the problem. | 8.1 SP3
CR127944 | In jspc code WebLogic Server parsed the JSP descriptor options provided by the user. One such option was the compileFlags attribute that suggested what type of compiler to use. The flag is denoted by the string compileFlags in weblogic.xml. WebLogic Server checked for the string compilerFlags; therefore the descriptor element was ignored. Code was added to change the string comparison from compilerFlags to compileFlags in jspc code. When you specify a compiler flag with the compileFlags option, it will be honored by jspc. | 8.1 SP3
CR130057 | When the `wlpackage` Ant task was used to build an exploded EAR application, it was not preserving the time stamp of the JSP files. This caused needless recompilation of JSPs even when they had already been compiled. This issue was resolved with a code fix so that `wlpackage` preserves the timestamps of the files that it copies. | 8.1 SP3
CR130438 | A translation error occurred with taglib and CDATA in a JSP page, as shown in this snippet: `sample.jsp : <%@ page contentType="text/xml" %> <?xml version="1.0" encoding="iso-8859-1" ?> <%@ taglib uri="http://java.sun.com/jstl/core"; prefix="c"%>` `<ablock> <![CDATA[ This is a cdata block ]]> </ablock>` When the JSP is compiled using the `weblogic.jspc` compiler, here is the output: `"sample.jsp": Translation of /sample.jsp failed: javax.servlet.jsp.JspException: The taglib validator rejected the page: "org.xml.sax.SAXParseException: The element type "jsp:text" must be terminated by the matching end-tag "</jsp:text>"., "` A code fix checks the existence of CDATA while converting the content in XML syntax to a JSP document. | 8.1 SP3
CR133172 CR178872 CR179626 | The `jspc` compiler's "compileAll" option was ignoring JSPs under the WEB-INF directory. This was resolved with a code fix. | 8.1 SP3
CR133453 CR177115 | Pre-compiled JSPs were failing the stale checks. This was resolved with a code fix that adds logic for stale checks. | 8.1 SP3
CR172250 | There was no backward compatible property for `weblogic.jspc`. A new command line flag was added for `weblogic.jspc` called `backwardcompatible`. If it is set to true, then the Web application will be compiled maintaining backward compatibility with WebLogic Server 6.x and earlier. With the new "backwardcompatibility" flag, you can compile Web applications as in WebLogic Server 6.x. | 8.1 SP3
CR172380 | A struts-based application failed to pre-compile an EAR file, and throwing the following exception: `<Error> <Deployer> <149205> <The Slave Deployer failed to initialize the application dos due to error weblogic.management.ManagementException: 149233 - with nested exception: [java.lang.ExceptionInInitializerError]. java.lang.ExceptionInInitializerError: java.lang.NullPointerException` A code change resolved the problem by setting the thread class loader before precompiling all the JSPs to the `ServletClassLoader()` method. This ensures that the same classloader gets used for loading the struts classes and loading any other class that the struts library tries to load afterwards. | 8.1 SP3
CR175937 | In the exploded webapp format, JSPs were recompiled when moved from one time zone to another. Stale-checking logic was added for exploded webapps. | 8.1 SP3

## JTA

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR112772 | Transactions were timing out at 30 seconds with out regard to the configured value of the transaction timeout attribute in the `config.xml` file. A code fix was implemented to ensure that WebLogic JTA utilizes the configured transaction timeout value at startup. |
CR113226 | When a resource name contained more than 64 characters, WebLogic Server could throw an exception when testing the connection pool. The problem occurred because only the first 64 characters were tested for uniqueness. The code was modified to properly handle resource names longer than 64 characters. | 7.0 SP5 8.1 SP3
CR122212 | When a timeout exception occurred within a Usertransaction it was marked for rollback. The actual rollback was scheduled by a timer and happened asynchronously. If in this situation the customer called rollback() explicitly on the transaction, the call did not directly issue the rollback or wait for the timer to perform the rollback. Directly calling begin() again lead to an IllegaStateException as the thread was still associated with the transaction to be rolled back by the timer. The call to rollback() should only return when the rollback has been performed. In this scenario rollback() returned immediately and no manual rollback operation was started as the transaction was internally marked to be rolled back by the timer. Code was added to ensure that in cases where the rollback() method is called due to other exception conditions, the transaction is now immediately removed from the thread and begin() can again be called immediately. | 8.1 SP3
CR122842 | When registering a new resource under the same name as the old resource, any subsequent XA transaction operations could not go to the new resource. They continued to attempt to reach the original resource. Code was added to allow the substitution of a second resource with the same name. | 7.0 SP5 8.1 SP3
CR124503 | WebLogic Server was synchronized on the Transaction Manager rather than the transaction itself, so the method that should have been called was setRollbackOnly instead of setRollbackOnlyUnsync. Code was added to make setRollbackOnly synchronous. | 8.1 SP3
CR173964 | In XA transactions with WebLogic JMS and Oracle XA as resource managers, killing the connection to Oracle at the moment where `Xa.prepare` is being done can lead to XAER_RMFAIL being returned, which means that WebLogic Server leaves transactions in doubt on the Oracle side. In this situation, Oracle has a global transaction created in a prepared state, but it is never being rolled back by WebLogic Server, thus causing the table being locked and subsequent calls returning with ORA-1591 errors. A code change ensures that if RMERR or RMFAIL are received at `Xa.prepare`, then rollback is allowed to be called on the resource. | 8.1 SP3
CR177865 | The JTA recovery process stops the server from shutting down gracefully. This was resolved by changing the shutdown order of the JTA, JMS, and JDBC services (in that order) during server shutdown. | 8.1 SP3
CR182243 | A JDBC connection leak occurred when a connection was created under a transaction and the enlist with the current transaction failed; that is, the connection was not returned to the pool. A code fix resolved the problem. | 8.1 SP3

## JVM

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR125688 CR177828 | When using the JRockit JVM, calling java.io.File.getCanonicalPath()when using a UNC path, the following error was thrown: `java.io.IOException: \\UNC path: The file name, directory name, or volume label syntax is incorrect.` This error was noted when using the DeployerRuntimeMBean to deploy an EAR file with an application source file path listed as a URL in the descriptor file, such as file://localhost/D:/myfolder/myapp.ear or file:/localhost//D|/myfolder/myapp.ear. JRockit correctly handles UNC paths in version 1.4.2_04. | 8.1 SP3
CR135783 | WebLogicMBeanMaker yielded different results with JDK version 1.4.1_05 and 1.4.2_03. With JDK 1.4.1_05, when a source folder was specified that contained no class files , WebLogicMBeanMaker silently ignored the error and created an MBean JAR file. With JDK 1.4.2, WebLogicMBeanMaker failed if there were no class files in the source path. Now the WebLogicMBeanMaker behavior is the same for both JDK 1.4.1 and JDK 1.4.2. | 8.1 SP3
CR136167 | The Administration Console could not display the server log in a Japanese locale because of a problem in JDK 1.4.2_03 and earlier JDK 1.4.2 releases. WebLogic Server 8.1SP3 includes JDK 1.4.2_04, which includes a fix that prevented displaying the server log in a Japanese locale. | 8.1 SP3

## Node Manager

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR076968 CR177156 | `UnixProcessControl`|`NodeManager.c` sends a SIGTERM in offline, when it should send a SIGKILL, as `JavaProcessControl` does. Following a code change, `UnixProcessControl` offline now returns SIGKILL. | 7.0 SP6 8.1 SP3
CR120410 | When Node Manager was stopped and restarted, sometimes after restart Node Manager detected that it was monitoring a Managed Server. It waited for 180 seconds for the Managed Server to contact it, after which it tried to restart the Managed Server. The Managed Server has a timer which tried repeatedly to contact the Node Manager. The timer interval increased exponentially.It tried after 2,4,8,16... seconds. If the Node Manager was started after a long time then the Managed Server timer interval could be larger then 180 seconds, leading the Node Manager to behave as if the Managed Server was down. Additionally, the Managed Server was not starting a timer when the Node Manager failed because it received a NumberFormatException and the thread ended. Two changes were implemented. 1) The Managed Server timer interval is restricted to a maximum of 128 seconds which is less than the 180 second interval at which the Node Manager attempts a restart. 2) When the Node Manager failed, the Managed Server got an exception. That exception is caught in NodeManagerCommandListener and a timer thread is started to attempt to connect to the Node Manager periodically. | 8.1 SP3
CR127930 CR135441 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04_51.00.jsp. | 7.0 SP5 8.1 SP3

## Operations, Administration, and Management

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR099488 | WebLogic Server calculated the Administration port URL incorrectly. A code change ensures that the URL is calculated based on the Administration Port if it is enabled or, secondly, on the Administration channel if it is enabled. | 7.0 SP6 8.1 SP3
CR105572 | When using wlconfig Ant task to create a JMS server and two JMS queues for a running server instance, the JMS Server and the two JMS queues were created and reflected correctly through the Administration Console. However, wlconfig did not properly update the config.xml file, because it incorrectly placed the 2nd JMS queue outside the </JMSServer> end tag. A code fix resolved the problem. | 8.1 SP3
CR106122 CR124247 | Previous releases of WebLogic Server required specification of the NAME attribute of the MLET element. To comply with JMX specifications, the NAME attribute is now optional. | 7.0 SP4 8.1 SP3
CR111199 | Restarting the Administration Server and then starting two Managed Servers simultaneously resulted in heavy CPU consumption. One Managed Server completed initialization, the second started initialization and stopped. Use of `kill -QUIT pid` revealed that the main thread was stuck in `HashMap.rehash`, as shown: `"main" prio=5 tid=0x29240 nid=0x1 runnable [0xffbec000..0xffbedbd4] at java.util.HashMap.rehash(HashMap.java:292) at java.util.HashMap.put(HashMap.java:344) at weblogic.management.internal.DynamicMBeanImpl$XInfo.get(DynamicMBeanImpl.java:2270) at weblogic.management.internal.DynamicMBeanImpl.<init>(DynamicMBeanImpl.java:195) at weblogic.management.internal.DynamicMBeanImpl.<init>(DynamicMBeanImpl.java:167) at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:70) at weblogic.jms.frontend.FEConsumer.<init>(FEConsumer.java:100) at weblogic.jms.frontend.FESession$3.run(FESession.java:952) at ....` A code change increased the size of the default HashMap to accommodate all MBean attributes without resizing, and synchronized thread access to the HashMap. | 7.0 SP6 8.1 SP3
CR113455 CR132578 CR185306 | The weblogic.Admin command returns to the main class. The main class returns an exit code that is determined by whether or not an exception was thrown. An unnecessary exception was thrown when the command succeeded. WebLogic Server no longer throws an exception when a command succeeds. | 8.1 SP3
CR120398 | `weblogic.common.internal.AdminProxy` code threw an exception if the caller was not an admin user. The operator user requests were dispatched to the default queue. The server hung during shutdown behaving as if it had a pending request on the default queue. But the admin user requests were dispatched to a different queue than the default. Code was added to enable WebLogic Server to check if the user is an operator, and if so, allow the user to shut down the server. Additional code was added to dispatch the operator user requests to a queue other than the default. This resolves the problem. | 8.1 SP3
CR120926 | Managed server logs could not be viewed when attempting a remote connection to the Managed Server because the url specified the wrong port when the administration port or admin channel were used. WebLogic Server was updated to use the correct port and do the operation with QOS_ADMIN set. | 8.1 SP3
CR121015 | MBean auditing was recording clear-text passwords in certain cases where properties were tagged with @exclude. A code change ensures that WebLogic Server does not print the values of the encrypted attributes in clear text. | 8.1 SP3
CR121728 | Enhancement: Mbeans for custom authentication providers no longer must be put inside of the WebLogic installation tree in the `WL_HOME``\server\lib\mbeantypes` directory. `WL_HOME``\server\lib\mbeantypes` is the default directory for installing MBean types. However, if you want WebLogic Server to look for MBean types in additional directories, use the -`Dweblogic.alternateTypesDirectory=``<dir>` command-line flag when starting your server, where `<dir>` is a comma-separated list of directory names. When you use this flag, WebLogic Server will always load MBean types from `WL_HOME``\server\lib\mbeantypes` first, then will look in the additional directories and load all valid archives present in those directories (regardless of their extension). For example, if `-Dweblogic.alternateTypesDirectory = dirX,dirY`, WebLogic Server will first load MBean types from `WL_HOME``\server\lib\mbeantypes`, then any valid archives present in `dirX` and `dirY`. Note that you must continue to use the option or your server will be come unbootable (for example, if you used the option and created some users and then decided not to use the`alternateTypesDirectory` option). For more information, see Install the MBean Type Into the WebLogic Server Environment in Developing Security Providers for WebLogic Server. | 7.0 SP5 8.1 SP3
CR121856 CR132551 CR179078 CR183921 | Time formatted log files caused infinite loop, resulting in the following issues: During startup, the next rotation time was not set. More than one log file was created at startup. The log files were rotated twice because WebLogic Server tried to log an exception to a log file when the log file was closed. During rotation, WebLogic Server tried to write to a closed file, which threw an exception. Even when the log files were restricted, WebLogic Server would let them grow beyond the file count specified. There was no code in place to delete the older log files. The correct rotation time is now set during startup. If an exception is thrown during rotation, WebLogic Server no longer logs to the file, but prints it to stdout instead. After each rotation, WebLogic Server now checks to see if the files exceed the limit, if restricted. It now deletes older log files. | 8.1 SP3
CR122204 | When a Managed Server with a custom COMMO bean was restarted without restarting its Administration Server, the Managed Server could not create an instance of the COMMO bean. This exception occurred: `javax.Management.InstanceAlreadyExistsException is thrown, and the Detailed message in the exception is, The Object name specified 'wlidomain:Name=t,Server=managed1,Type=AppViewRuntime' is not unique across the domain. Please choose an unique Object Name` Analysis revealed that the Mbean was not unregistered on the Administration Server's MBeanServer when it went down. For this reason, upon restart, the Managed Server could not re-create the bean—the Administration Server still had a bean instance with that bean's name in its list of instantiated beans. Mbean names must be unique across a domain. The problem was resolved by a code change to unregister all of a Managed Server's server-specific beans when it goes down. When a Managed Server goes down, the Administration Server receives a `PeerGoneEvent` and unregisters all MBeans associated with the Managed Server. | 7.0 SP5 8.1 SP3
Cr122839 | When you set the value of SqlStmtProfilingEnabled through MBeans or manually in the config.xml file and then attempted to retrieve that value through MBeans it did not show the value. Instead, it returned the following message, "It appears that no attributes have been specified for this MBean". Code was added to fix this problem. | 8.1 SP3
CR123821 | Could not shut down a server instance using the weblogic.Admin SHUTDOWN command. A code fix ensures that weblogic.admin correctly uses the default URL (that is, `t3://localhost:7001`). | 8.1 SP3
CR124099 CR135050 | Applications were deployed on servers to which they were not targeted. Code was added to check the target before deploying applications. | 8.1 SP3
CR126529 CR173999 | The Weblogic MBeanLoader generated the following error message: `weblogic.management.commo.WebLogicMBeanLoader security.xml Exception in thread "main" weblogic.management.ManagementError: [Management:141113] The management subsystem was accessed prior to its initialization.` This was resolved by fixing the weblogicMBeanLoader/weblogicMBeanDumper initialization code. | 8.1 SP3
CR126570 CR132988 | In previous service packs, the log method of the`java.util.logging.Logger` was not honored. A code fix resolved this issue. | 8.1 SP3
CR126615 | -Dweblogic.ProductionModeEnabled=true was not being processed correctly because WebLogic Server was expecting it to be a Boolean rather than a string. This problem was fixed by adding code to make WebLogic Server process this as a string in the ant task. | 8.1 SP3
CR126930 CR181748 CR183828 | In WebLogic Server 8.1, the log rotation methodology changed. Log rotation was triggered by not only time, but also by the output activity to the log file. In other words, if there was no message at rotation time, WebLogic Server did not rotate the log until it was modified. This problem has been addressed by forcing WebLogic Server to rotate the logs at the scheduled times, after initially rotating based on the first log activity after starting the server. | 8.1 SP3
CR127698 CR132901 | The Managed Server was started in production mode only when the Administration Server started in production mode. In all other combinations, the Managed Server was started in development mode. Code was added to fix the logic for ProductionModeEnabled on the Managed Server. | 8.1 SP3
CR128032 CR174966 CR177166 | Users from the Deployers group were not able to deploy applications either from the console or using the command line tool weblogic.Deployer. Deployment of applications required write permissions on certain attributes & execute permissions on other actions. Permissions were added to users in deployers group to be able to deploy application to various targets (clusters, servers, virtual hosts). | 8.1 SP3
CR128061 CR177278 | When you configured a new Managed Server node using the Administration Console, the execute queue of the new server instance could not be configured on the console until the Administration Server was restarted. Now new server nodes created after the Administration Server has been started have editable default execute queues. | 8.1 SP3
CR128506 | The Log file was not stored relative to the server directory path. The log file MBean now recognizes where the server was being started (in what directory), so the log can be found and rotated. | 8.1 SP3
CR129439 | A local context lookup and call for a local server runtime MBean failed. A code change was made so that when server runtime MBeans are called by class type, then "*" domain is used instead of null. | 8.1 SP3
CR129539 | The `weblogic.logging.NonCatalogLogger` with the `StdoutEnabled` flag set to false disregarded this value by displaying the log output to the Administration Console for client-side logging. Now the `consoleHandler` logger recognizes the `stdoutEnabled` flag. | 8.1 SP3
CR130042 | WebLogic Server startup was failing when the configuration file (config.xml) was referencing other XML files. A code fix resolved this problem with JDK 1.4 XML parser. However, other than the fact that the config.xml file is an .xml extension, WebLogic Server does not document the config.xml as an XML-compliant file, nor does the documentation recommend such XML-like references. | 8.1 SP3
CR130142 | In a clustered configuration, the `userExists()` call sometimes fails after attempting to create a new user or group on a Managed Server. The problem was resolved by a code fix so that newly created user lookups using the `userExists()` API occur on the Administration Server, and existing user lookups occur on the local Managed Server. | 8.1 SP3
CR130413 CR168268 | For Attribute Change Audit Notifications, the auditor printed the old value of the attribute as the new value. A code fix ensures that the auditor uses the correct value as the new value for a given attribute. For detailed information about obtaining auditing information from the Administration Console, see "Auditing Providers" in Developing Security Providers for WebLogic Server. | 8.1 SP3
CR130441 | In previous version 8.1 service packs, `weblogic.Admin` did not properly handle the "commotype" syntax. This caused the sample security providers to break. When you built the samples, started the server, and tried to set up the domain, you received a number of `javax.management.MBeanException` errors. A code change enables `weblogic.Admin` to correctly handle the "commotype" syntax. As a result, the sample security providers will run correctly against this service pack. | 7.0 SP5 8.1 SP3
CR132445 | `weblogic.Admin` did not work properly with the default URL. For example:`java weblogic.Admin -username ss -password ss VERSION` returned no results, but adding `-url t3://localhost:7001` returned correct results. Following a code change, `weblogic.Admin` now checks the input URL for null, because it has the default URL internally already. | 7.0 SP5 8.1 SP3
CR132824 | For Web applications deployed on a cluster, the number of servlets in the Web application displayed in the Administration Console was incorrect because of a java.lang.ClassCastException. The problem was resolved with a code fix. | 8.1 SP3
CR133879 | The `weblogic.properties` MBean conversion tool uses a separate MBeanServer than what is used for internal server operations. Therefore, an `invalidAttributeValueException` was thrown when the MBean being converted was not found in the MBeanServer, which was causing the conversion to fail. A code change was made so that when an MBean properties conversion is in progress, a check is performed to see if the MBean exists in the MBeanServer that the weblogic.properties converter uses before throwing an exception. | 8.1 SP3
CR136488 | Any file, regardless of extension, is loaded by the plug-in mechanism and produces server start-time errors. Only .jar files in lib/mbeantypes should be considered security providers; other suffixed files should be ignored. Previously, any file that was in the .../lib/mbeantypes directory would be treated as security providers and be loaded at server boot time. This would happen independently of the file extension type. Now, only files that end in .jar or .zip will be treated as security providers. If you relied on security providers being loaded that were not in a file ending in .jar or .zip, then your domain will not boot any longer as those security providers will no longer be loaded. Those security provider files will have to be renamed to work correctly before booting the server. | 8.1 SP3
CR137144 | A `LogRotationException` was thrown when rotating the domain log. This occurred when the logger generated log index(0001) based in a new log directory was rotated into the current log directory where a file by the same name existed. A code fix was used to resolve this issue. | 8.1 SP3
CR161933 CR177137 | The following weblogic.Server command-line options were restored to provide interoperability with previous releases: `-Dweblogic.management.rmiQueueSize` `-Dweblogic.management.htmlQueueSize` | 8.1 SP3
CR172130 | Failure to specify a name while doing an MBean lookup resulted in a Null Pointer Exception. A code fix was used to resolve this issue. | 8.1 SP3
CR172534 CR174686 | WebLogic Server performance has been enhanced by minimizing the synchronization block to reduce excessive thread waiting. | 8.1 SP3
CR172579 | When the startup class used the JDK1.4 logging API `LogManager.getLogManager().readConfiguration()`, WebLogic Server stopped the stdout and no further logging messages were available. WebLogic Server now uses an anonymous logger to resolve this issue. | 8.1 SP3
CR172872 | When a clustered server node was shut down, it was not removed from the migration managers active servers list. Therefore, in situations where a migratable server was then deleted and recreated, it would generate an InstanceNotFoundException (INFE). Now during shutdown of a migratable server, INFEs are ignored when traversing the active server list in the migration manager. | 8.1 SP3
CR173623 | During startup, the administration server failed to discover its managed servers. A code fix resolved this issue. | 8.1 SP3
CR175233 | During server shutdown, methods related to the managed server rediscovery process were incorrectly invoked. Also, the deployment callback handler used stale configuration MBean references. This problem was resolved so that Managed Server rediscovery methods are no longer invoked during server shutdown. And the callback handler now uses administration MBean references to avoid stale configuration MBean references. | 8.1 SP3
CR177510 | Adding or redeploying a module that was part of a large EAR file (600MB) took a very long time. A code change to the WebApp module improved performance: The WebApp module now considers the update of a module when the delta is for changing the whole module. To reduce the startup time for large application deployment, deployment was modified to persist the staged targets attribute for configured applications. Remote call traffic between the Administration Server and a Managed Server was reduced during application deployment. | 8.1 SP3
CR180117 | The logging handler (`WLErrorManager.error`) was causing re-entry into the logging code when reporting a fatal error, which was resulting in a logging deadlock with another logging thread. A code change prevents a logging deadlock when logging handlers report a fatal error. | 8.1 SP3
CR186194 CR183447 CR125018 | Certain userLockoutManager operations were incorrectly executed on the Administration server rather than on the local managed server; Code was changed to ensure the operations are executed on the correct server. | 7.0 SP5 8.1 SP3

## Plug-Ins

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR084303 | WebLogic Server proxy plug-ins restricted the HTTP commands that could be submitted from the client to the server. The validation rules in the plug-in code now allow the following HTTP commands that are needed for WebDAV implementations: `DELETE` `GET` `HEAD` `OPTIONS` `POST` `PUT` `*COPY` `LOCK` `MKCOL` `MOVE` `PROPFIND` `PROPPATCH` `SEARCH` `UNLOCK` | 6.1 SP7 7.0 SP5 8.1 SP3
CR105123 | (ISAPI) DefaultFileName did not work if iisforward.dll was not used. The problem was exhibited when: Virtual Directory was configured. Mime type was configured to * (proxy everything). DefaultFileName was added to iisproxy.ini On a request for a directory that had no filename, the DefaultFileName was not used. The problem was corrected with a code fix. | 6.1 SP7 8.1 SP3
CR105173 | (NSAPI) When a client stopped a response from being sent to it (for example, closing the browser before the response is completely received), a 500 [WRITE TOCLIENT ERROR] was logged in the Web server logs. The Web server health monitoring tools used a 500 error to indicate that something was wrong with the server's health and that since this was not a server health issue but the client terminating the response, the error if any should not have been 500. The request response path is as follows: `client -> proxyWebserver->plug-in->wls` and the expected response path is `client <- proxyWebserver<-plug-in<-wls` After WebLogic Server had successfully sent the response, but the Web server had not completely sent it to the client, the client aborted the communication and a 500 error was logged in the Web server's access.log which normally indicates that something is wrong with the server. A code change was implemented so that 500 errors are not generated if the client breaks the connection. | 6.1 SP7 8.1 SP3
CR113033 | (ISAPI) In WebLogic Server 6.1 Service Pack 4, the plug-in did not recognize the WLTempDir flag for the _wl_proxy folder. The code was fixed to use the flag. | 6.1 SP7 8.1 SP3
CR113093 | [Apache] When using multiple MatchExpression parameters in httpd.conf to route requests to different locations, as in: `MatchExpression *.jsp WebLogicHost=localhost|WebLogicPort=8001` `MatchExpression *.html WebLogicCluster=localhost:8001,localhost:8003` Each request overwrote the same global parameter info, which caused requests to go to the wrong location. In the above example, this problem resulted in *.jsp requests going to the server at port 8003. The code was fixed to ensure that each request uses its own copy of the parameter information. | 6.1 SP7 8.1 SP3
CR122207 | (NSAPI) If KeepAliveEnabled and DynamicServerList were both enabled, the plug-in could leave sockets in a CLOSE_WAIT state. This problem was solved with a code fix. | 6.1 SP6 8.1 SP3
CR122754 | (ISAPI) In WebLogic Server Service Pack 4, the plug-in parameter `WLExludeByPathOrMimeType` did not work when forwarding by mime type. This problem was solved with a code fix. | 6.1 SP6 8.1 SP3
CR122755 | (ISAPI) In an earlier WebLogic Server Service Pack, the plug-in filter was bypassed if ".wlforward" was manually appended to a URL. The code was modified to throw a 404 error if the initial request has a mime type of .wlforward. | 6.1 SP6 8.1 SP3
CR123120CR123775 | (Apache, NSAPI) If the POST method was used through the plug-in and the Content-Length was not defined, the proxy log file would contain message such as: POST and PUT requests *must* contain a Content-Length. The code was modified to set a content length of zero (0) if Content-Length is undefined. | 6.1 SP6 8.1 SP3
CR124433 | (ISAPI) If IIS was configured with WlForwardPath=/, the plug-in would try to forward requests even if the server was down. The error page was never served to clients. The plug-in was modified to properly exclude paths in this situation. | 6.1 SP6 8.1 SP3
CR124464 | (NSAPI) A memory leak was detected that could cause the plug-in to crash. The problem occurred because the plug-in accessed an exception object after the object had been deleted. The code was fixed to retrieve the exception code from the exception object and then delete the object, which prevents the memory leak from occurring. | 6.1 SP6 8.1 SP3
CR125690 | (ISAPI) In a configuration that included nine IIS servers and nine clustered WebLogic Server instances, IIS crashed every a few hours, writing an Event 37 to the event log. The wlproxy log contained this message: Thu Oct 09 13:01:46 2003 *******Exception type [WRITE_ERROR_TO_CLIENT] raised at line 1269 of .\iisproxy.cpp The Reader::fill() method was not allocating enough memory while growing the initial buffer. The four bytes used to mark the end of buffer were getting lost which resulted in the core dump. The problem was solved with a code fix. | 6.1 SP6 8.1 SP3
CR126103 | (NSAPI) During load testing, when NSAPI was running on HP11.00 proxying to a six-node cluster on two Solaris boxes (three WebLogic Server instances on each), memory consumption steadily increased, and after approximately 50 minutes, the ns-httpd process crashed. The same load test did not crash on HP11.00 or Solaris. Codes in proxy.cpp used strdup(), a native system call. strdup() allocated system memory to the program's heap space. WebLogic Server used Iplanet's FREE macro to free previous allotted space when it is no longer needed. Because FREE did not free the allocated space by strdup() call, the memory leak occurred. The problem was solved by replacing all native strdup() system calls in proxy.cpp with Iplanet's STRDUP macro so the FREE macro knows what to free. | 6.1 SP6 8.1 SP3
CR126568 | (NSAPI) Plug-in did not handle %0A in the post request gracefully A POST request %0A at the end sent to WebLogic Server through the NSAPI plug-in added extraneous data into the body stream, and headers appeared at the end of the body. Requests sent directly to WebLogic Server were processed correctly. The problem was corrected by code change to the plug-in to detect and handle HTTP/0.9 responses correctly. | 6.1 SP6 8.1 SP3
CR126982 | (NSAPI) When WLExcludePathOrMimeType was set, the file types were cut in the request to WebLogic Server, but iplanet failed to serve those files instead. For example, this request for a .jsp that contained a .jpg was made: `<Object name="test5" ppath="*/weblogic/*"> Service fn="wl_proxy" WebLogicHost="lorna" WebLogicPort="7001" PathTrim="/weblogic" Debug="ALL" DebugConfigInfo="ON" WLExcludePathOrMimeType="*.jpg" </Object>` The request for the .jsp was proxied to WebLogic Server, and the .jsp was displayed without the .jpg. Iplanet failed to server the jpg.The iplanet access log contained this message: `10.40.4.117 - - [28/Oct/2003:11:45:34 -0500] "GET /weblogic/images/logo_tm_onwt.jpg HTTP/1.1" 500 305 I get the following in wlproxy.log: Tue Oct 28 11:45:35 2003 ============================= new request =============================== Tue Oct 28 11:45:35 2003 INFO: SSL is not configured Tue Oct 28 11:45:35 2003 URI=[/hello.jsp] Tue Oct 28 11:45:35 2003 attempt #0 out of a max of 5 Tue Oct 28 11:45:35 2003 general list: trying connect to '10.40.4.117'/7001/7001 at line 1224 for '/hello.jsp' Tue Oct 28 11:45:35 2003 INFO: New NON-SSL URL Tue Oct 28 11:45:35 2003 Going to check the general server list Tue Oct 28 11:45:35 2003 WLS info : 10.40.4.117:7001 recycled? 0 Tue Oct 28 11:45:35 2003 Hdrs from Client:[accept]=[*/*] Tue Oct 28 11:45:35 2003 Hdrs from Client:[accept-language]=[en-us] Tue Oct 28 11:45:35 2003 Hdrs from Client:[accept-encoding]=[gzip, deflate] Tue Oct 28 11:45:35 2003 Hdrs from Client:[user-agent]=[Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)]` WLExcludePathOrMimeType should cause WebLogic Server not to service the request, and to pass control to the Web server, allowing it to continue processing the request. The problem was solved with a code change. | 6.1 SP6 8.1 SP3
CR127231 | A request did not fail over to the next available server in the cluster after receiving 503 HTTP status. The same server was tried repeatedly until a READ_ERROR_FROM_SERVER or a CONNECTION_REFUSED exception was raised. Code now marks the server as failed on getting a 503 HTTP status error, gets the next available server and re-sends the request. All requests now successfully fail over to next available server. | 7.0 SP5 8.1 SP3
CR127658 | If a connection was grabbed from the pool, but the server instance has already closed the connection, the `HALF_OPEN_SOCKET_RETRY` exception was thrown, causing the deletion of the previous connection object and the creation of a new one to connect to the same server. The problem was resolved by the addition of code to handle the `HALF_OPEN_SOCKET_RETRY` exception properly. | 7.0 SP5 8.1 SP3
CR127973 | The ISAPI plug-in sometimes failed after a persistent cookie was added to a servlet session. A correction to the cookie parsing code resolved the problem. | 7.0 SP5 8.1 SP3
CR128518 CR136974 CR173517 CR173985 | (Apache) The plug-in was dropping sessions after WebLogic Server was restarted. The problem occurred because Apache 1.3.x creates multiple child processes to handle incoming requests. Each process maintains its own server list where each server entry is uniquely identified by the JVMID. Weblogic Server provides the JVMID to the process. When a server instance is restarted, it generates a new JVMID, so a request whose cookie contained a new JVMID could not locate the corresponding primary server plug-in if the JVMID was not refreshed in the plug-in. A code fix ensures that if the JVMIDs extracted from a cookie do not match the ones stored in the server list, WebLogic Server refreshes the JVMIDs. | 8.1 SP3
CR129026 | A memory leak in the ISAPI plug-in was fixed by a code change. | 7.0 SP5 8.1 SP3
CR129138 | (NSAPI) When the NSAPI plug-in performed name resolution on backend WebLogic Server instances, name resolution used `sysGetHostByName`, which called `getHostByName`, which called internal methods that had maximum limits for open file descriptors, causing name resolution to occasionally fail. A fix to cookie parsing and the substitution of JVMIDs to locate primary and secondary servers resolved the problem. | 7.0 SP5 8.1 SP3
CR129342 | The ISAPI plug-in sent the `WL-PATH-TRIM HTTP` Header value to a WebLogic Server in place of the `WL-PATH-TRIM` value. A code change resolved the problem. | 7.0 SP5 8.1 SP3
CR129442 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA03_39.00.jsp. | 8.1 SP3
CR129471 | In previous service packs, the Apache plug-in did not recognize the `WLTempDir` parameter. This has been corrected. | 7.0 SP5 8.1 SP3
CR131640 | Request to provide a plug-in for the Sun Java System Web Server (Formerly Sun ONE Web Server). The Sun Java System Web Server is now fully supported. For more information, see "Supported Web Servers, Browsers, and Firewalls" in the Supported Configurations documentation. | 7.0 SP5 8.1 SP3
CR132399 | Request for certification of WebLogic Server on HP-UX 11i with Apache 2.0.48. For more information, see "Supported Web Servers, Browsers, and Firewalls" in the Supported Configurations documentation. | 8.1 SP3
CR132690 | The WebLogic plug-in was not translating `http://hostname:port/` to `http://hostname:port/index.html` when using Netscape 4.0. A code fix was used to resolve this issue. | 8.1 SP3
CR133641 | iPlanet users experienced a problem with host name verification and received the following: `INFO: Host () doesn't match (), validation failed` `ERROR: SSLWrite failed` A code fix resolved this issue. | 8.1 SP3
CR134413 | (Apache) The plug-in caused a duplicated HTTP header and body for the 302 response. There was no problem between the plug-in and backend servers, but the Apache server added an additional 302 response. Code was added which reverted the return value of the `request_handler` method to OK. | 7.0 SP5 8.1 SP3
CR135002 | In an Apache configuration with multiple virtual hosts, if only one of the virtual hosts was configured with SecureProxy=ON for the WebLogic Server plug-in, and the other virtual hosts did not use SecureProxy or WLProxySSL, the virtual hosts with no SSL configured saw that the plug-in attempted an SSL connection with the backend WebLogic Server. This caused a performance problem. The problem was resolved with a code change which provides a new parameter that determines whether the SSL connection needs to be initiated. | 8.1 SP3
CR135259 | The plug-in returned the incorrect status code when the server was down. A code fix was used to resolve this issue. | 8.1 SP3
CR136374 | The WebLogic plug-in failed to route requests by path when Apache is configured to use SSL between the browser and Apache. A code fix was used to resolve this issue. | 8.1 SP3
CR171978 | When the `FilterPriorityLevel` was set in the `iisforward.ini` file, the forwarding path was broken. A code fix was implemented to ensure that when a virtual host was not defined in the `iisforward.ini` file, the `iisproxy.ini` file from the same location as where the `iisforward.dll` file was loaded is used. | 8.1 SP3
CR172072 | Provided an enhancement to the `WLExcludePathOrMimeType` parameter allowing it to be used at the `Location` tag level. `WLExcludePathOrMimeType` parameter can now be defined locally at the Location tag level as wells as globally. When the property is defined locally, it does not override the global property but defines a union of the two parameters. | 8.1 SP3
CR172497 | (NSAPI) The "pluginparams.ErrorPageTest" failed when attempting a proxy by extension. The workaround for the ErrorPage to be loaded locally is to use the WLExcludePathOrMimeType property if proxying by MIME type. For the SUN One Web Server, version 6.1, some additional configuration steps are required: 1. Remove `NameTrans fn="ntrans-j2ee" name="j2ee"` from the default object in the `obj.conf` file. 2. Remove `Init fn="load-modules" shlib="C:/Sun/WebServer6.1/bin/https/bin/j2eeplugin.dll" shlib_flags="(global|now)"` from the `magnus.conf` file. For more information, refer to Sun's documentation, at `http://docs.sun.com/source/817-1831-10/agjava.html#wp1084 323` | 8.1 SP3
CR173581 CR173878 | (Apache) The plug-in was logging a confusing "error page is unavailable" log message to the `apache error.log`, even when the client had closed the connection. This was resolved by a code change that commented out the erroneous log message. | 8.1 SP3
CR173653 | When the `WLExcludePathOrMimeType` property was defined within a Location tag, it should not have had a global scope. (However, when the property was defined outside a Location tag, then it should have had a global scope.) This was resolved by a code change to ensure that the `WLExcludePathOrMimeType` property is applied only to the requests that match the appropriate Location path for the defined property. | 8.1 SP3
CR174431 | (NSAPI) The Iplanet plug-in now gracefully handles an EINTR OS error. | 8.1 SP3
CR174777 | [iPlanet] POST_TIMEOUT errors occurred in the iPlanet log file due to a broken pipe. Code was added to throw a `HALF_OPEN_SOCKET_RETRY` exception if an EPIPE error is encountered while sending POST data to WebLogic Server. | 8.1 SP3
CR175672 | (Apache) The Apache server is hanging when the WebLogic plug-in tries to open the `wlproxy` log file, even though Debug is OFF. The code has been fixed so that the log file is not set if debugging is turned off. | 8.1 SP3
CR175989 | (Apache) The Apache server generated core dumps when using the worker (multi-threaded) option instead of the prefork (only multi-process) option. This was resolved by fixing the Locking and Unlocking logic. | 8.1 SP3
CR177707 | When using the release 7.0 SP02 plug-in with client certificates, WebLogic Server worked fine. However, after an upgrade to release 8.1 SP02, the server log reported the following error: `Failed to parse the client certificate in header: WL-Proxy-Client-Cert. Ignoring this certificate. java.security.cert.CertificateException: Could not parse certificate: java.io.EOFException` The error occurred because the 8.1 SP02 plug-in truncated the `WL-Proxy-Client-Cert` header when it sent it to the server instance. The code was changed so that `WL-Proxy-Client-Cert` is lazily added to the request sent to WebLogic Server. | 8.1 SP3
CR179537 | (ISAPI) The IIS proxy plug-in caused heap corruption on the Microsoft Windows platform. The problem was resolved with an internal code fix. | 8.1 SP3
CR180236 | The release 8.1 SP02 plug-in with client certificates reported the following error: `Failed to parse the client certificate in header: WL-Proxy-Client-Cert. Ignoring this certificate. java.security.cert.CertificateException: Could not parse certificate: java.io.EOFException.` The error occurred because the plug-in truncated the `WL-Proxy-Client-Cert` header when sending it to the WebLogic Server instance. The problem was resolved with a code fix. | 8.1 SP3
CR187184 | When using multiple Location tags in a VirtualHost tag, PathPrepend parameter was not working correctly. A code fix was used to ensure that custom properties defined within Location tags are stored locally and do not conflict with global properties. | 8.1 SP3

## RMI/RMI-IIOP

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR124596 | An optional enhancement to the BEA ORB forces reconnection when bootstrapping and allows hardware load-balancers to correctly balance connection attempts. For more information on this feature and its limitations, see Using RMI over IIOP with a Hardware LoadBalancer in Programming WebLogic RMI over IIOP. Note: This feature was only partially implemented in WebLogic Server 8.1SP3. See RMI/IIOP Known Issues for more details. | 8.1 SP3
CR126232 | Fragmentation was enabled by default and caused a decrease in performance. Now Fragmentation is disabled by default, which eliminated the decrease in performance. | 8.1 SP3
CR128594 | WebLogic Server could not handle typecode aliases when reading Java objects on AIX. The code was modified to discard the alias wrapper. | 6.1SP6 8.1 SP3
CR129099 | IIOP did not explicitly close socket connections on failed sends to non-responsive clients. A code fix resolved the problem. | 8.1 SP3
CR132427 | A thin client that transmitted large, complex objects concurrently over IIOP using multiple threads would result in the following exception: `Exception in thread ;ExecuteThread: '23' for queue: 'weblogic.kernel.Default'; org.omg.CORBA.MARSHAL: stream corrupted: reading past end of chunk at: 186504 vmcid: 0x0 minor code: 0 completed: No` This was due to GIOP version mismatch in the response triggered by the interleaving of response fragments with out-of-band heartbeat messages. A code fix to place the proper GIOP version in the response resolved this issue. | 8.1 SP3
CR136505 CR136542 | An IIOP client that started a transaction and executed methods on a CORBA object hosted within the WLS 8.1 ORB was experiencing a rollback exception because the transaction was started in one thread and ended in different thread. A code fix resolved this issue. | 8.1 SP3
CR136877 CR175151 | The container seemed to cache the RMI Stub incorrectly and raised the issue of ClassCastException casting RMI objects. Once the RMI Stub is created for a Web application, subsequent lookup by another Web application with the same RMI interface as the former returns the Stub for the former Web application and hence causes a ClassCastException. This is due to the incompatibility in classloaders between the Web applications. This problem only occurs when the lookup happens over T3 and HTTP. IIOP does not seem to have the caching implementation in place and hence does not cause the ClassCastException. This problem was fixed with a code change. Two Web applications looking up the same RMI object in the JNDI tree now have their individual stubs instead of trying to use the stub loaded by a previous invocation of one of the Web applications. This is the correct behavior. | 8.1 SP3
CR137508 | For PeerGone handling in the server, the server pings the client when the muxer makes a request to close down a connection. If this ping hangs, the muxer never shuts down the socket. To fix this, WebLogic Server now sets the failed flag before pinging the client so that a hang counts as a failure. | 8.1 SP3
CR176358 | While testing `ExceptionListener` functions in a standalone JMS client with the `wlclient.jar` and `wljmsclient.jar` thin clients, the following errors occurred as the connection went down: `Error: CORBA COMM_FAILURE 1398079696 Maybe; nested exception is: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 208 completed: Maybe` The thin client code was changed so that if the current user on the thread is null, then it will use the anonymous user instead. | 8.1 SP3
CR178242 | ORBs using an SSL port greater than 32k could not be contacted by WebLogic Server. Such ports were interpreted as a signed short instead of an unsigned short, which resulted in ports greater than 32k being converted to a negative number. The code was modified to treat the port as an unsigned short. | 8.1 SP3
CR178243 | SSL was not enforceable for IIOP connections established by calling the `string_to_object()` method on a foreign IOR. This occurred because SSL was only used when there was an SSL port in the SSL tag and bootstrapping occurred over SSL, or when there was no plain port. The code was fixed so that it observes protocol when bootstrapping using ORB functions. As a side effect, it is now possible to force SSL usage when using the `string_to_object()` method by setting the `weblogic.corba.orb.ORBProtocol` property to `iiops`. | 8.1 SP3
CR179987 | When using the IIOP protocol (for example, when using the WebLogic Server Thin Client or when interoperating with a foreign application server), login attempts using a null password caused a null pointer exception. This failure was not occurring when using the T3 protocol. The code was changed to allow null passwords when using IIOP. | 8.1 SP3
CR181321 | The WebLogic Thin-client JAAS implementation did not allow passwords over 64 characters. A code fix resolved the problem. | 8.1 SP3

## Samples

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR130313 | The DOCTYPE of the `weblogic.xml` in the WebLogic Clustering sample had the wrong entity. A space was added between "BEA" and "Systems" in the word "BEASystems". The final correct, complete DOCTYPE definition should read: `<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd";;>` | 8.1SP3
CR132509 | When using the .NET C# example included with the MedRec application (`%WEBLOGIC_HOME%\samples\server\medrec\src\clients\CSharpClient\bin\ReleaseCSharpClient.exe`), the client successfully retrieves a patient record, but when attempting to "Save Changes" from the client application, a date field error was flagged. A code change fixed the date validation. | 8.1 SP3

## Security

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR090199 | Previously, for an `init.d` script on a UNIX box to gracefully shut down WebLogic Server when the server rebooted, the user name and password needed to be specified on the command-line at invocation of `weblogic.Admin`. Using a boot identity file plugs this security hole. A new command, `StoreUserConfig`, has been added to the `weblogic.Admin` utility and the `weblogic.Deployer` utility. This command lets you specify the location of a pre-created boot identity (and `SerializedSystemIni.dat`) file. | 7.0 SP5 8.1 SP3
CR105933 | WebLogic Server was unable to filter connections from LDAP servers because the LDAP protocol was not supported by the connection filter rules. LDAP has now been added to the list of filterable protocols, so that connections from LDAP can be filtered. | 7.0 SP5 8.1 SP3
CR106192 | When you set the security debug flags `<ServerDebug DebugSecurityAtn="true" DebugSecurityAtz="true" ...>` with `StdoutDebugEnabled="true" StdoutSeverityLevel="64"`, the server logged the user password to stdout in clear text. This problem has been resolved by removing the password string from the statement that is written to the log file. | 7.0 SP5 8.1 SP3
CR107359 CR135441 | CR107359 reported a problem in which the Node Manager instantiated its encryption service using the configured private key password as its password. This was an issue when the Node Manager configuration was modified to configure a new private key password because the encryption service could no longer be instantiated. The Node Manager has been modified so that it instantiates its encryption service using an internal string as the password. However, existing encrypted properties cannot be decrypted with the new encryption service, so they must be decrypted with the old service and re-encrypted with the new service. The Node Manager will do this conversion on the first reboot after the service pack is installed (or a patch applied). On any subsequent reboots, the new encryption service is instantiated. | 8.1 SP3
CR107373 CR178661 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04_52.01.jsp. | 8.1 SP3
CR108624CR128228 | In a performance tuning enhancement, new attributes were added that allow you to limit the depth of a group membership search in an LDAP directory. You can tune the search according to your membership hierarchy, and eliminate searching that you know will not find group members. The new attributes are `GroupMembershipSearching` and `MaxGroupMembershipSearchLevel`. | 7.0 SP5 8.1 SP3
CR112147 | The existing ServletAuthentication API methods such as weak, strong, authenticate etc., were not propagating the LoginException back to the caller. Two overridden login methods were added, which perform similarly to the weak and authenticate methods. The assertIdentity method, which performs in the same way as the strong method, was added. These new methods will propagate the LoginException to the calling code. | 8.1 SP3
CR112233 CR121114 CR133071 CR135017 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04_61.00.jsp. | 8.1 SP3
CR112471 | The All Groups filter was not included in a group search of the embedded LDAP server. Code was added to include the All Groups filter. This filter is enabled through the Administration Console. | 8.1 SP3
CR112820 CR112875 CR135819 | In the weblogic.security.SSL.TrustManagerJSSE interface, a custom TrustManager contained a setting to govern certificateCallback() behavior. This setting was overridden by variable in validateErr. A code change resolved this problem. Now SSL in WebLogic Server evaluates results returned by a custom trust manager. | 7.0 SP5 8.1 SP3
CR120233 CR123481 CR178414 | A code change has resolved the problem that caused a `java.lang.ArrayStoreException` to be thrown when configuring a custom auditor and a custom role mapper. | 8.1 SP3
CR120850 | In WebLogic Server 6.1 SP05, weblogic.net.http.HttpsURLConnection did not honor https.nonProxyHosts environment variable. The problem was exhibited in this scenario: client <--> Proxy <---> Server The client can be running within WebLogic Server or be a stand-alone Java program. Requests always went through the proxy even if the targeted host was specified in https.nonProxyHosts. If instead, the host is specified in http.nonProxyHosts, the problem does not occur: a direct connection to the host, not to the proxyHost is established, not to the proxyHost, if defined. Analysis revealed that logic for connecting directly to a host specified in https.nonProxyHosts, even when a proxyHost is defined. This problem did not exist for http.nonProxyHosts, only with https.nonProxyHosts. Appropriate logic was developed to connected directly to a host specified in https.nonProxyHosts, even when a proxyHost is defined. | 6.1 SP6 8.1 SP3
CR121043 | Properties set directly in the JSP were not being captured and set in the HTTP client. A code change has resolved the problem. | 7.0 SP5 8.1 SP3
CR121310 CR127992 CR155332 | Two-way SSL did not working properly with Web Services clients. This problem was resolved by updating the WEBLOGIC_X509_WORKAROUND variation of the `convertToCertiom()` method to use the WLSDEBUG macros. | 8.1 SP3
CR123182 | The X509 token used for asserting identity was taken from a certificate not from the request header. This occurred even when X509 identity assertion was not configured. A test was added to determine if any of the Identity Assertion providers in the security realm were configured to use X509 tokens. If not, the X509 token type is ignored when determining what token to use for asserting identity. | 8.1 SP3
CR123716 | The security policy for server shutdown was being applied to all server lifecycle methods. The security policy has been updated so that it only applies to server shutdown. | 8.1 SP3
CR125592 CR196597 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04-66.00.jsp. |
CR124746 CR175051 CR175045 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04_48.01.jsp. | 7.0 SP5 8.1 SP3
CR125911 | In a performance tuning enhancement, new attributes were added that allow you to limit the depth of a group membership search. You can tune the search according to your membership hierarchy, and eliminate searching that you know will not find group members. The new attributes are GroupMembershipSearching and MaxGroupMembershipSearchLevel. For more information see, "Improving the Performance of WebLogic and LDAP Authentication Providers" in Managing WebLogic Security. | 7.0 SP5 8.1 SP3
CR126062 | A NullPointerException was sometimes encountered when data was imported from an LDAP directory. Code was added to prevent the exception. | 8.1 SP3
CR126275 | When an Auditing MBean (or a similar non-server MBean) was configured in a domain, the Managed Server tried to add a Notification Listener to the MBean when the server was booting. The Managed Server would then try to cast a NotificationRelay Listener which would cause an exception. WebLogic Server no longer tries to cast a Notification Relay Listener. | 8.1 SP3
CR126829 | The WebLogic Security framework ignored security policies configured in the `weblogic-ra.xml` deployment descriptor file. This problem was solved by combining the Java security policies and the WebLogic security policies. Security policies specified in the `weblogic-ra.xml` deployment descriptor file are now honored. | 8.1 SP3
CR126837 | There was a problem getting a list of users through the listGroupMembers implementation used by the iPlanetAuthenticator MBean. Specifically, the `listGroupMembers()` method returned an empty cursor. This was resolved by changing the default value of the StaticMemberDNAttribute to "uniquemember". | 8.1 SP3
CR127426 | The WebLogic Authentication provider used a dynamic group to represent group membership while the rest of the LDAP Authentication providers used a static group. The recursive search used in the `isMember()` method of the GroupReader MBean expected a static group; therefore, group membership searches did not work correctly for the WebLogic Authentication provider. Code was added to update the recursive search to handle dynamic groups. The `isMember()` method of the GroupReader MBean now works consistently for all LDAP-based Authentication providers. | 8.1 SP3
CR127964 | The embedded LDAP server can become corrupt when an application is processed. The ArrayIndexOutOfBounds exception occurs in this situation. Code was added to fix the ArrayIndexOutOfBounds exception. | 8.1 SP3
CR128054 | The signature implementation in the WebLogic Security system incorrectly used the dsig:Id attribute on outbound messages and only checked for dsig:Id on inbound messages. A code change corrected the problem. | 8.1 SP3
CR128150 CR130280 CR135329 | Users in the "Deployer" global role were prevented from performing the following tasks: Test a JDBC connection pool after it is created (from the Administration Console or from weblogic.Admin TEST_POOL). Clear the statement cache for a JDBC connection pool. Suspend, force suspend, destroy, force destroy, or shut down a JDBC connection pool. Resume or enable a JDBC connection pool. Deploy or undeploy a J2EE application or application component to a cluster. Deployers are now permitted to perform these tasks. | 8.1 SP3
CR128873 | When other JCE providers existed in the classpath, RC4 did not work, which caused the SSL handshake to terminate. Now with the nCiphr JCE provider, the SSL handshake will not break, even though RC4 is being used as the handshake algorithm. | 8.1 SP3
CR130467 CR168230 CR172100 | If a WebLogic Server domain had two Active Directory Authentication providers configured to use the same Active Directory LDAP server, the connections to the LDAP server would fail if both providers tried to simultaneously access the LDAP server. WebLogic Server would have to be rebooted to clear the bad connection. The Connection Retry Limit attribute was added to the Active Directory Authentication provider. When specified, this attribute to retries connections to the LDAP server if the initial connection failed. | 8.1 SP3
CR131535 | When a server instance is configured with Verisign SGC/Stepup certificates, the SSL handshake is failing with the following exception: `<<WLS Kernel>> <> <BEA-000430> <isMessageComplete javax.net.ssl.SSLProtocolException: FATAL Alert:UNEXPECTED_MESSAGE - A message out of sequence was received.` This has been resolved by adding support for Verisign SGC/Stepup certificates. | 8.1 SP3
CR131659 | Performance was unduly affected due to synchronization occurring in the `SSLSocketFactory.getJSSE` call A code fix resolved the problem. | 8.1 SP3
CR132276 | In a domain with a custom keystore, a user who had the Operator security role was not able to start a Managed Server using the Node Manager. This failure occurred because the Operator security role did not have the required permission to access the secured attributes necessary to start the Managed Server. A code fix ensures that a user assigned the Operator security role can start a Managed Server from the Administration Console using the Node Manager. | 8.1 SP3
CR132346 CR174423 | The ProxyAuthenticator's constructor not being invoked and not using the `SSLLayeredSocket` causing a `java.net.ConnectException`. A change was made to the `T3SJvmConnection.newSocket` method to use the proxy authenticated socket. | 8.1 SP3
CR132949 CR178812 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04_55.00.jsp. | 8.1 SP3
CR133655 CR183238 | Connection pool code was not behaving properly, causing the LDAP searches to slow down, which caused, for example, slow authentication with a third-party LDAP. A code change resolved the problem. | 7.0 SP5 8.1 SP3
CR134110 | The weblogic.Deployer utility threw a`java.io.FileNotFoundException` when using a STOREUSERCONFIG with username and password and the `-upload` flag. Code was added to ensure that the deployer uses userconfig in all cases. | 7.0 SP6 8.1 SP3
CR134367 | The configuration file (`config.xml`) could not be modified when using a `setUID` script due to a JVM bug in `File.canWrite()`. A code change workaround has been implemented in WebLogic Server. For more information on the `File.canWrite()` issue, see: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4993360 | 8.1 SP3
CR135488 | Previously, any file in the security provider directory was treated as a security provider and loaded at server boot time without regard to its file extension. Now only files that end in `.jar` or `.zip` are treated as security providers. Security providers that use other extensions will no longer load. If your domain uses alternate file extensions for security providers, change them for Service Pack 3. | 7.0 Sp5, 8.1 SP3
CR136262 CR182644 | Embedded LDAP has a search limit = 1000". The problem was resolved with a code change. Embedded LDAP can return more elements when a search query is executed. | 8.1 SP3
CR137054 | An applet that used the `setIgnoreTrustValidation(true)` method resulted in a `java.lang.ExceptionInInitializerError`. A code fix was implemented so that the security manager for an applet would allow an SSL handshake. | 8.1 SP3
CR171885 CR099476 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04_59.00.jsp | 8.1 SP3
CR172151 | Authentication errors occur while creating local context after using t3s. This problem was resolved with a code change, which clears the certificate from the thread when the context is closed. | 8.1 SP3
CR172510 | On authentication, the default Authentication provider in the security realm should set the user principal name in the Subject with the same case stored in the LDAP. The Subject was set with whatever case the client uses to log in with (the user name is case-insensitive in the LDAP). This was resolved by adding the `UseRetrievedUserNameAsPrincipal` attribute to the Details tab on the Administration Console for any WebLogic LDAP Authenticator provider. When enabled, this attribute retrieves the user name from the LDAP to use as the principal name for authentication, instead of the supplied user name. | 8.1 SP3
CR172548 | The `DefaultAuditRecorder.log` file in the default domain directory can grow very large and possibly use up the available disk space. This was resolved by providing a command-line argument for specifying a directory where the audit log file will be written: `-Dweblogic.security.audit.auditLogDir` For more information see "Configuring Security Providers" in Managing WebLogic Security. | 8.1 SP3
CR173632 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04-60.00.jsp. | 8.1 SP3
CR173853 | The `DefaultAuditRecorder.log` file in the default domain directory can grow very large and possibly use up the available disk space. This was resolved by introducing a Rotation Log Minutes attribute, which allows you to specify how many minutes to wait before creating a new `DefaultAuditRecorder.log` file. At the specified time, the audit file is closed and a new backup file is created. For more information see "Configuring Security Providers" in Managing WebLogic Security. | 8.1 SP3
CR174021 | The performance when querying Active Directory Group Membership was found to be inefficient. A code fix has resolved this issue. For more information see the "Improving the Performance of WebLogic and LDAP Authentication Providers" section in the "Configuring Security Providers" chapter of Managing WebLogic Security. | 8.1 SP3
CR175135 | A custom object extending UserInfo could not be passed into InitialContext for authentication, which broke backwards compatibility. The "Custom Object Authentication Enabled" attribute was added to the Security Mbean and the Compatibility Advanced tab on the Administration Console so that if a user passes a custom object that extends UserInfo for authentication, it will be taken care of. This attribute is disabled by default because it affects performance. | 8.1 SP3
CR177133 | The connection filter for the `t3s` protocol was not working as documented. A code fix resolved the problem. | 8.1 SP3
CR177514 | The Administration Console allowed you to create a new user with a password that contained special characters (for example, German umlauts). However, when the new user attempted to log on with that password, the password was not accepted. The problem was resolved with a code that obtains password bytes from an LDAP entry with UTF-8. | 8.1 SP3
CR178854 | Some of the demonstration certificates and trusted CA certificates shipped in previous services packs of WebLogic Server 8.1 expired on May 14, 2004 or will not work with the Basic Constraints feature. This service pack includes updated trusted CA certificates that will work with the Basic Constraints feature. The certificates (democert.pem, democert1024.pem ca.pem, ca1024.pem, trusted.crt, demo.crt) are provided as files. If you are using a previous service pack of WebLogic Server 8.1, you can upgrade to the updated demonstration certificates and trusted CA certificates following the instructions at http://dev2dev.bea.com/products/wlserver81/wls_demo_cas.jsp. | 8.1 SP3
CR179066 | During server startup, static application deployment was freezing in the LDAP code. This occurred while deploying the security roles for components such as EJBs. The freeze happened because of missed notifications in the LDAP code. This was resolved by a fix to the embedded LDAP code. | 8.1 SP3
CR182276 | The iPlanet LDAP server returned a wildcard search when performing an explicit user search. A fix was made to the "wild card search" algorithm so that it also matches the "exact name search" algorithm. | 8.1 SP3
CR182650 | When using identity assertion based on Common Secure Interoperability Version 2 (CSIv2) and Generic Security Service (GSS) tokens, certain lengths of principal names were not properly decoded. This sometimes resulted in the `IdentityAssertionProvider` not being called, or being called with a truncated principal. A code fix properly encodes and decodes GSS tokens. | 8.1 SP3

## Servlets

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR098500 | Directory index page could corrupt when the directory had a multi-byte name file and prevent access to files from the corresponding index. A code fix was used to resolve this issue. | 8.1 SP3
CR108034 | Inappropriate error messages generated by a user breaking a connection have been suppressed. | 7.0 SP5 8.1 SP3
CR108350 | The Administration Console incorrectly indicated that the log file format could be dynamically changed between Common Log Format (CLF) and Extended Log Format (ELF), when such a change actually requires a server reboot. The code was changed to properly indicate the required server reboot when changing this configuration parameter. | 7.0 SP5 8.1 SP3
CR108577 CR175505 | Module order was not considered during undeployment. This logic is fixed. Now the modules are deactivated and rolled back in the exact reverse order in which they were deployed. | 7.0 SP5 8.1 SP3
CR109885 CR135207 | Session replication to a failed secondary node caused the primary node to hang. The primary node appeared to be attempting to connect to the secondary node and holding a lock that other threads had to wait on. A code change has resolved the problem. | 7.0 SP5 8.1 SP3
CR110692 | The WebAppComponentRuntimeMBean now includes methods that you can use to retrieve information about the cookies that your applications set. For example, you can retrieve the comment and name that identify the cookies your applications set. | 8.1 SP3
CR110798 | Calling `weblogic.servlet.security.ServletAuthentication.killCookie(req)` on a JSP caused the session to remain in WebLogic Server without ever being cleaned up. The code was fixed to ensure that the session is invalidated just before `killCookie(req)` completes. | 7.0 SP5 8.1 SP3
CR120281 | HttpServletRequest.getParameterValues(String) sometimes returned parameter values twice. Analysis revealed that query parameters in forwarded requests were being checked for parsing in a manner that caused properly parsed parameter values to be returned twice. A code change has resolved the problem. | 8.1 SP3
CR120440 | When multiple Web Applications were deployed in a Single Sign-On configuration and one application called weblogic.servlet.security.ServletAuthentication.invalidateAll(request), the HttpSessionListeners in the other applications were not invoked until their session timeouts occurred. This happened because only the session associated with the first Web Applications was registered for invalidation; after the user was authenticated, subsequent sessions were not registered. The code was fixed to ensure that both the session ID and context path of all Web Applications are registered for invalidation as necessary by invalidateAll(request). | 6.1 SP6 8.1 SP3
CR121175 | `HTTPClusterServlet` routed requests to a different server instance than the primary instance identified by its JVMID in the session cookie. `HTTPClusterServlet` was proxying requests to multiple unclustered Managed Servers. The webapp on the backend server instance consisted of an `index.jsp` and a `frameset.jsp`. The starting point of the webapp is index.jsp, where a session is created. `index.jsp` forwards requests using `<jsp:forward>` to `frameset.jsp`, which contains a frameset. The first time `index.jsp` was accessed by a proxy server (`HTTPClusterServlet`), a session was created and a cookie was set in response. When `index.jsp` forwarded to `frameset.jsp`, new requests (for each JSP in frameset) were sent with the cookie. Intermittently, a cookie was found in the request but the request was sent to a server in server list (other the primary server) and the session was lost. The proxy log had the following entry: `<Thu Aug 21 15:41:15 PDT 2003>: Found cookie: -1339390245 <Thu Aug 21 15:41:15 PDT 2003>: In-bound headers: <Thu Aug 21 15:41:15 PDT 2003>: Content-Length: 117 <Thu Aug 21 15:41:15 PDT 2003>: #### Trying to connect with server -1189081773!172.17.26.74!7201!443` The problem was solved with a change to the logic that updates the server list. When updating a JVMID for the server in the list, now the server is removed from list, updated, and then added back to the list. Simply updating the object did not sort the list. | 7.0 SP5 8.1 SP3
CR121359 | A `weblogic.utils.ParsingException` occurred when a JSTL end-tag contained a white space between the tag name and the right angle bracket(>). The problem was resolved with a code change to allow zero or one occurrence of white space between an tag's name and '>'. | 7.0 SP5 8.1 SP3
CR121846 | It was possible for the server to write standard log entries to a log file before the writing Extended Log Format headers. This situation could occur during a log rotation when multiple threads attempted to write to the new log file at the same time. The code was fixed to ensure that the thread handling the log rotation has exclusive access to the new log file until after the log headers are written. | 6.1 SP6 8.1 SP3
CR124174 | The following setter methods in WebAppComponentMBean have been deprecated: SessionCookieName, SessionCookieComment, SessionCookieDomain, SessionCookiePath and SessionIDLength. | 8.1 SP3
CR124600 | WebLogic Server sometimes failed to read ELF headers under high load at the initial stage of ELF logging service. This occurred if multiple threads concurrently called the initial stage of ELF logging. A code fix moves the initial method to the constructor rather than calling it lazily. | 8.1 SP3
CR125846 | According to the Servlet Specification, an exact pattern should take precedence over a wildcard pattern. But this was not working correctly. For example if you have: "/TestPath/*" maps to "WildcardServlet" and "/TestPath" maps to "ExactMatchServlet", if the incoming relative URI is '/TestPath' then `ExactMatchServlet` should have been served, not `WildcardServlet`. This was fixed by making appropriate changes in the pattern matcher. | 7.0 SP5 8.1 SP3
CR127050 | A NullPointerException sometimes occurred when: A thread t1 called getLogStream(), and checked whether the value of logStream field was null or not. Another thread t2 tried to rotate log file and changed the logStream value to null. The getLogStream() method returned the logStream value which had been changed by t2. WebLogic Server will now return the logStream value in the synchronized block. | 8.1 SP3
CR127621 | The value maxKeepAliveSecs for weblogic.management.configuration.WebServerMBean has been made configurable up to a maximum of 300 seconds. | 8.1 SP3
CR127644 | javax.servlet.http.HttpSessionActivationListener and javax.servlet.http.HttpSessionBindingListener are acceptable listener interfaces, but they were missing in WebAppDescriptorComplianceChecker for APPC, so when compiling using wlappc, an error occurs. The missing interfaces were added. | 8.1 SP3
CR128051 | Clients that post a request that does a forward may see the following warning message: `"Warning: One of the getParameter family of methods called after reading from the ServletInputStream(), can't mix these two!".` A code fix was implemented to ensure that a forwarded request tries to get query parameters only after the post parameters have been parsed to avoid the warning message. | 8.1 SP3
CR128234 CR174645 | The patch generated by CR121053 caused an NPE when accessing the session ID from the `sessionDestroyed()` method on the SessionListener and the network channel name is null. The code was changed to check the null value of the network channel. The NPE was occurring because there wasn't an associated request and, therefore no network channel name was returned. Although this was caused by user error, throwing an NPE is not an appropriate response. Therefore, the best solution is to return the default network channel name. However, this will be wrong if network channels are being used. | 8.1 SP3
CR128420 | `breakUpAndWriteItOutAsNecessary()` tried to separate a manifest header to enforce a maximum of 72 bytes per line, and wrote one line to an output stream at a time. The cause of this problem was that the start offset for the new line is wrong. A code change resolved the problem. | 7.0 SP5 8.1 SP3
CR128464 | The `welcome-file-list` entry in the web.xml file was ignored by WebLogic Workshop during iterative development. This was occurring because before the index file could be served, a check was made for its existence. However, because it did not exist in the docroot of the split directory application (which is expected to be the `src` directory, but which is the `outdir` directory in the WebLogic Workshop application) it could not be found. The code was changed to look in both the `src` and `outdir` directories for index files. | 8.1 SP3
CR128624 CR132552 | When an application attempted to encode a URL which included an HTML anchor tag, such as this: http://localhost:7001/WebApp/target.jsp#section4, the resulting URL was incorrect: http://localhost:7001/WebApp/target.jsp#section4;jsessionid= 16OXDN2vax5g2lbGucG4uspB9h6vzhaZw8KtDLl5urAhK96dqvfo!-1835542719. The anchor tag should be at the end of the URL, so it is ignored. The correct URL would be: http://localhost:7001/WebApp/target.jsp;jsessionid= 16OXDN2vax5g2lbGucG4uspB9h6vzhaZw8KtDLl5urAhK96dqvfo!-1835542719#section4. Code was added to look for an anchor if there is no query string in the original URL, and to append the anchor to the end of the encoded URL. | 7.0 SP5 8.1 SP3
CR128679 | Webapps with `save-sessions` enabled were leaking memory on undeployment and making bad assumptions about `Object.hashCode` being unique. A code fix ensures that the webapp context path is used as the key for session data and removes the session data on an undeployment. | 8.1 SP3
CR129211 | Using `ServletOutputStream.write(byte)` to write more than the buffer size caused infinite loop. A code change resolved the problem by updating the check for boundary conditions when the buffer is full and autoflush is set to false. | 7.0 SP5 8.1 SP3
CR129553 | The servlet context listeners were not being invoked in the reverse order of their declarations in the `web.xml` file during the application (webapp) undeployment. A code change ensures that Servlet context listeners are invoked in the reverse order during undeployment. Therefore, any application that depends on the wrong behavior of context listeners order will be affected by this change, as required by the Servlet specification. | 8.1 SP3
CR130051 | The following warning message is always logged for memory session data where the session attribute is not serializable and cannot be disabled: `<Warning> <HTTP Session> <BEA-100061> <Web application: ServletContext(id=13577225,name=SessionServlet,context-path=/SessionServlet) tried to place a non-serializable attribute: simplesession.time into the session: 1PNw8xxxxx. This attribute will be lost upon redeployment. This message is logged only once per session.>` This problem was resolved with a code fix so that: The warning message is logged only when the server is running in development mode. For memory session data, the warning message is logged only when the `save-sessions-enabled` flag is set to `true`. | 8.1 SP3
CR130182 | When a servlet and a filter used attributes, and if the servlet class was updated after the filter checked whether its ClassLoader had been changed, the `ClassCastException` could occur because of the difference between the servlet's and filter's classloader. This was resolved with a code change. | 8.1 SP3
CR130487 | The following error message occurred while running the webauction test due to JSP classes from an older WebLogic Server release being deployed on a release 8.1 server instance: `java.lang.NoSuchMethodError: weblogic.servlet.jsp.StaleChecker.isResourceStale` This is due to changes to the stalechecker interface for release 8.1. This problem was resolved by a code fix so if the `isStale()` method throws an exception, the exception is caught and the JSPs are regenerated. | 8.1 SP3
CR132321 | A ClassCastException occurred when using HttpProxyServlet with a Wrapped Response from a Servlet filter. A code fix ensures getting the original response in case of a Response Wrapper. | 8.1 SP3
CR132447 | If there is a cookie in a header that contains the SESSIONID name as a substring, the SESSIONID was unexpectedly being changed. This problem was resolved by correcting the logic in parsing SESSIONID from the cookie header. Due to this new change, no new SESSIONID is created when there is an existing SESSIONID or an existing session. | 8.1 SP3
CR132488 | Editing `weblogic.xml` from the Administration Console generated a `SAXParseException`. A code fix changed the order of elements of `weblogic.xml` according to the `weblogic810-web-jar.dtd` when generating `weblogic.xml` through the Administration Console. | 8.1 SP3
CR132522 | On a Web server without a default Web application, an HTTP request for a missing resource received a response that included an incorrect date header: `HTTP/1.1 404 Not Found Date: Thu, 01 Jan 1970 00:00:00 GMT` This header is not valid according to section 14.18 of RFC2616. A code change resolved the problem. | 8.1 SP3
CR133291 | A protocol exception, `excjava.net.ProtocolException: Didn't meet stated Content-Length`, was occurring when a client cancelled a request while the default fileServlet was sending a file. This was resolved with a code change. | 8.1 SP3
CR133558 | ServletContext.setAttribute threw a NullPointerException when a null value was passed to it. The problem was resolved by a code change that calls removeAttribute() when a null value is passed to the setAttribute(). | 7.0 SP5 8.1 SP3
CR134412 | In a Web application that uses a Struts framework, the classloader and environment context was not set correctly for the application's error pages. A code change was made to set the classloader and environment context correctly for the Web application's error pages. | 8.1 SP3
CR134414 | When a Serializable Servlet request attribute was added, and then overwritten it with a non-Serializable value, the original value masks the new one. A code change was made to try to remove the value from a HashMap table of serializable attributes if necessary, when replacing a Serializable value with a non-Serializable one. | 8.1 SP3
CR134767 CR130216 | In development mode, servlet-init was being called twice, first by the Deployment subsystem and second by the App-Poller if the time-stamp of files were changed from its last deployment. A code change prevents GenericPoller from being deployed until WebLogic Server is not in a running state. | 8. SP3
CR134813 | A code fix was implemented to initialize servlets, context listeners and filters according to the Servlet 2.4 specification. | 8.1 SP3
CR136273 | When trying to download a file from Internet Explorer, the following error occurred: `"Internet Explorer Cannot download a .txt from localhost Internet Explorer was not able to open this internet site. The requested site is either unavailable and cannot be found. Please try again later."` This error occurred because the browser failed to handle the situation when both the `Content-Disposition` and `Cache-Control` headers were set. Additional code was added to check if both the `Content-Disposition` and `Cache-Control` headers were set. If both headers were present, the following warning message is logged to notify users of the situation and help them debug their code: : `####<May 4, 2004 7:13:40 PM PDT> <Warning> <HTTP> <mint> <myserver> <ExecuteThread: '13' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-1 01324> <Some Browsers may fail when both "Content-Disposition" and "Cache-Control" are set.>` | 8.1 SP3
CR136735 | A SessionData memory leak occurred in the Servlet Container when using Custom Logger and calling getRemoteUser. The reference count of a SessionData may be increased while logging the request if a custom logger calls the HttpAccountingInfo.getRemoteUser(), getRemoteUse(), getRequestedSessionId(), getUserPrincipal() or isRequestedSessionIdValid(), because these methods try to acquire the SessionInternal object. But the reference count is not decremented. The problem was resolved with a code change. The code change caches the values returned from getRemoteUse(), getRequestedSessionId(), getUserPrincipal() and isRequestedSessionIdValid() of ServletRequestImpl into the HttpAccountingInfoImpl object before logging the request, and use the cached value if a custom logger calls the methods of HttpAccountingInfo. This avoids incrementing the reference count. | 8.1 SP3
CR137009 | The administration console ignored the setting of the `wapEnabled` attribute. A code fix was implemented so that when `wapEnabled` was checked by the user and `URLRewriting` was set to true, the `sessionid` returned in the URL contains no special characters and has a length of less than 52 characters. | 8.1 SP3
CR137162 | WebLogic Server was not adding entries for directory listings when it created `.war` files. A code fix ensures that after a user edits the deployment descriptors for `.war` files and persists those changes, the new `.war` file has the proper entries for both the directory and the files contained within it. | 7.0 SP5, 8.1 SP3
CR143448 | The`java.lang.IllegalStateException: HttpSession is invalid` exception occurs in the servlet container's internal call. If other threads using the same session ID invalidate the session object during processing of ServletRequestImpl.syncSession(), an IllegalStateException may occur while calling SessionData.putValue() or SessionData.isNew(). Ignore the IllegalStateException if the session has been invalidated by other threads. | 6.1 SP07 8.1 SP3
CR173782 | Some examples in the final version of the JavaServer Faces v1.0 Reference Implementation fails 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. | 8.1 SP3
CR176207 | In FormBasedAuthentication, the requested URL was not getting properly stored, both before and after the user was being authenticated using the form-based login page. To store the complete URL (including the http or https protocol scheme) of the original request, the following parameter was added to the weblogic.xml file: `<container-descriptor> <retain-original-url> true </retain-original-url> </container-descriptor>` | 8.1 SP3
CR176941 | The `GenericProxyServlet.readStatus` fails intermittently. This problem occurs if `GenericProxyServlet` reuses the connection that had already been closed by a backend server. This was resolved with a code fix to retry the same request when encountering the half-open socket exception and filtering out the connection header. | 8.1 SP3
CR177512 | If `GenericProxyServlet` was included within a `ResponseWrapper` and the content length was equal to zero, then `GenericProxyServlet` would wait a long time for the return from the `java.io.DataInputStream.read()` method. A code change ensures that `DataInputStream` is not read in such cases. | 8.1 SP3
CR177521 | The `ClassPathServlet` could not load the class from the Webapp `WEB-INF\classes` directory. This is because the Webapp module was created with an extra forward slash "/" as a prefix (as mentioned in the `context_root` of this module in the application.xml file). Therefore, the J2EE application container could not find the appropriate class for this module. The problem was resolved by adding logic to `ClassPathServlet` so that it considers the extra forward slash of the Webapp module name. Also, the J2EE container was modified to create the Webapp module names for new deployments without using the "/" prefix. | 8.1 SP3
CR178684 | The `servletContext.getRealPath()` method was not returning the canonical path. The code was fixed to verify the canonical path in the `ServletContext.getRealPath()` method. | 8.1 SP3
CR129064 | Now, when an HTTP request is sent through the iPlanet plug-in, WebLogic Server is no longer incorrectly setting the dynamic server list to WebLogic Cluster 2. | 7.0 SP6 8.1 SP3

## SNMP

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR109689 | When SNMP information was collected using a third-party collector task, the following message was logged: <Error> <SNMP Agent> <000000> < Unable to set Entry Field Value ...> A code fix was implemented to resolve this issue. | 8.1 SP3
CR113122 | The value that the WebLogic Server SNMP agent returned for `sysUpTime` did not accurately report the duration since the SNMP agent had been initialized. A code change resolved the problem. | 7.0 SP5 8.1 SP3
CR121478 CR136137 | Certain token names were longer than the 64 bytes allowed by SNMP. Code was added to make the token names less than 64 bytes. | 8.1 SP3
CR135708 | The JMSDestinationRuntimeMBean is missing from the list in the types drop down, when creating an SNMP counter monitor. See: SNMP->Traps->Monitors->Counter Monitors->Configure a new Counter Monitor The bean itself is present in the MIB file and can be retrieved with both the MIB explorer and weblogic.Admin GET command. The problem was resolved with a code change which added JMSDestinationRuntime to the dropdown menu for all Monitors (String, Gauge, JMX, and Counter). | 8.1 SP3

## Tools

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR125017 | The wldeploy ant task did not support the failonerror attribute. Setting this attribute generated an error. Code was added to ensure that WebLogic Server now recognizes the failonerror attribute. | 8.1 SP3
CR125428 | WebLogic Builder was saving the content of the `multiplicity` attribute in all lower case. A code fix was implemented to comply with Enterprise JavaBeans Specification, Version 2.0. | 8.1 SP3
CR127407 | Using `appc` without having the `weblogic.jar` file in system classpath caused the following exception to be thrown: `java.util.MissingResourceException: Can't find bundle for base name weblogic.i18n.J2EELogLocalizer, locale en_US` A code fix allows Ant to implement the correct classloader when the `weblogic.jar` file is not in system classpath. Note: Ant version 1.6 is incompatible with the version bundled in the weblogic.jar file. If you wish to run an external Ant file, you must remove the weblogic.jar file from system classpath. | 8.1 SP3
CR127628 | No error message was generated for an invalid URL. This problem was corrected by adding code to catch throwable exceptions when creating connections. | 8.1 SP3
CR130352 | The WLServer Ant task sometimes created a configuration file (config.xml) file without the specified properties. Analysis revealed that WLServer never explicitly called saveDomain, which writes MBean changes to config.xml. Instead, it relied on the trigger calling saveDomain. The problem was that WLServer started and shut down a server so quickly that sometimes the trigger did not happen in time. This problem was resolved by putting a saveDomain call into the WLServer ant task to force the config.xml to be written out before the server is shut down. | 7.0 SP5 8.1 SP3
CR131740 | There were problems with the `wlconfig` ANT task's ability to pass multiple values for the properties attribute in a JDBC connection pool configuration. A code fix enables Ant and the WebLogic command-line utilities to set JDBC connection pools that have more than one property. | 8.1 SP3
CR134423 | The `DDInit` utility could not create deployment descriptors when an application has large number of EJBs. A code fix ensures that the `DDInit` utility can open documents with Java encoding strings. | 8.1 SP3
CR136468 | When a `tld` file contained multi-byte characters, the header did not match to the file encoding. If editing the tag library using Builder, a `tld` file is saved by the default encoding. For example. on Japanese Windows, it would be Shift_JIS. However, the header encoding was ISO-8859-1 irrespective of file encoding. A code fix was used to resolve this issue. | 8.1 SP3
CR173675 | Running Ant 1.5 and using JDK 1.4.2_0x on Windows 2003 Server resulted in an `ntvdm.exe` problem, which caused build failures. This problem was resolved with a code fix. | 8.1 SP3

## Web Services

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR091230 | The WebLogic Server clientgen Ant task was incorrectly allowing hyphens to remain in WSDL files. This caused generated Java code to have class and method names that contained hyphens, which is not legal in java. A modification to `NameUtils` now causes clientgen to strip out hyphens. Additionally, for JAXRPC methods and classes, if the resulting string is also a Java keyword, WebLogic Server prepend a _ to it, as per JAXRPC Specifications 1.0 and 1.1 | 7.0 SP5 8.1 SP3
CR102959 | When a UDDI operation failed, a "dispositionReport" was returned. The dispositionReport XML was created by using SAAJ classes. SOAPElement.addChildElement(Name name) now declares the namespace of "name" if its namespace is not already defined. | 8.1 SP3
CR103985 | Setting the property in "`Setting javax.xml.soap.MessageFactory`" in the `startWebLogic.cmd` script did not work properly for `org.xml.sax.driver`, `org.xml.sax.parser`, `javax.xml.soap.MessageFactory` and `javax.xml.rpc.ServiceFactory` for JSPs and Servlets. Following a code change, WebLogic Server checks whether the property is already set before setting it, and sets it to the default value if is not set. | 7.0 SP5 8.1 SP3
CR105715 | The WebLogic Server `clientgen` Ant task was incorrectly allowing hyphens to remain in WSDL files. This caused generated Java code to have class and method names that contained hyphens, which is not legal in java. A modification to `NameUtils` now causes `clientgen` to strip out hyphens. Additionally, for JAXRPC methods and classes, if the resulting string is also a Java keyword, WebLogic Server prepend a _ to it, as per JAXRPC Specifications 1.0 and 1.1 | 7.0 SP5 8.1 SP3
CR106741 | Setting useServerTypes=True with multiple service entries did not parse the correct tag, and did not parse more than one tag in web-services.xml. As a result, only the first tag in the web-services.xml was being processed correctly. This was fixed by adding code to look for the correct tag in web-services.xml and process "all". More than one service entry can now be processed for clients setting useServerTypes=True. | 8.1 SP3
CR107934 | When the `encryptKeyName` and `encryptKeyPass` attributes are not specified in the security section for `servicegen`, the generated `web-services.xml` file would contain an `EncryptionSpec` attribute with the value of `EncryptBody` set to "true". This caused the SOAP messages to be encrypted A code fix resolved this issue by ensuring the `web-services.xml` file is generated correctly. | 8.1 SP3
CR108659 | When application resources were not loaded by the same classloader as webserviceclient.jar, an error occurred. Code was added enabling WebLogic Server to correctly handle application resources loaded by multiple classloaders. | 8.1 SP3
CR120263 | Due to a change in some Security specifications, WebLogic Server has been updated in order to ensure that timestamps are now generated inside the security header. | 8.1 SP3
CR120796 | Having multiple <soap:operation>s in the same WSDL that are set to different styles is a mixed-style Web Service and is not supported. <soap:operation> now overrides <soap:binding>. If there are multiple operations, each <soap:operation> should be set to the same value. However, if <soap:binding> is set to a value different from <soap:operation>, <soap:operation> will override <soap:binding>. | 8.1 SP3
CR121394 CR128988 CR174095 | Calling a method in the Web service through the ISAPI filter caused this exception: `java.lang.IllegalArgumentException: Illegal MimeHeader name or value` A code change has resolved the problem. | 7.0 SP5 8.1 SP3
CR121683 | `<wsr:reliability persistDuration="60000">` entries were generated in WSDL files when reliable messaging was not enabled A code fix was used to resolve this issue. | 8.1 SP3
CR122033 | Images attached to Web services were not working correctly. The problem occurred when the user attached a java.awt.Image to a webservice and the image was improperly serialized/deserialized. Code was added to fix serialization and deserialization. | 8.1 SP3
CR122156 | The new draft of the x509 profile in the OASIS WSS Spec changed the reference model for x509 certificates. Code was added to change the value type for SKIDs in the KeyIdentifier (to X509SubjectKeyIdentifier) and allow Issuer DN + Serial to be embedded in SecurityTokenReferences. | 8.1 SP3
CR122502 | In using reliable SOAP Messaging to invoke a Web service from a Sender WebLogic Server instance to a Receiver WebLogic Server instance, the Sender continued to retry invocations beyond the configured retry limit. The retries continued until the Receiver was restarted or the Sender's container killed the client because it exceeded the transaction timeout value. This failure to observe the specified retry limit resulted in long running transactions and hung clients. Code was added to ensure that the sender will not retry beyond the configured retry limit. | 8.1 SP3
CR124690 | When the `simpleType` contains attribute `final`, autotype would fail with the following message: `weblogic.xml.schema.model.parser.XSDParseException: invalid attribute "final" in element "xsd:simpleType"` A code fix was used to allow the attribute `final` to be used with simpleType. | 8.1 SP3
CR124892 | Autotype failed to create typemapping for types that derive from anyType: Types that depend on other types that are mapped to SOAPElement (like anyType) have to be mapped to SOAPElement themselves. Previously only the 'hasA' dependency was considered. Code was added to map types that derive from anyType to SOAPElement. | 8.1 SP3
CR125082 | Enhancement provided the WebLogic XML Digital Signatures API which contains classes to digitally sign and validate SOAP messages. See Using the WebLogic XML Digital Signatures API for more details. | 8.1 SP3
CR125852 CR130095 CR137242 | The Apache AXIS client was rejecting a SOAP response message because the elements Message and ErrorCode did not have the same namespace prefix. This occurred because WebLogic Server only qualified the top level element. A code fix introduces a system property, `-Dweblogic.xml.schema.binding.qualifytoplevelelementonly`, to determine if the top level element is qualified. Valid values are: true —Qualify the top level element. Default value. false—Do not qualify the top level element. Apache AXIX client users should set this value to false. | 8.1 SP3
CR126960 CR175031 | A NullPointerException occurred while starting the server with a WebLogic Express 8.1 license. Code was added to eliminate this exception. | 8.1 SP3
CR127276 CR178573 | An exception was thrown when a SOAP message had interlaced SOAP attachments and the start parameter of the MIME header did not match the content ID header. A code fix resolved this issue. | 8.1 SP3
CR127344 | servicegen failed when the accessors of a Java Bean threw checked exceptions. WebLogic Server will now catch the checked exceptions and re-throw with the runtime exception weblogic.xml.schema.binding.PropertyException. | 8.1 SP3
CR127391 | The SOAP HTTP Binding states that when an Exception occurs within a WebService, the server should throw a HTTP 500 "Internal Server Error", with a SOAP Fault response representing the exception. Many WebService clients use URLConnection in order to make the HttpConnection to the WebService. Weblogic Server overrode the java.net.HttpURLConnection with a different version. WebLogic's version threw an exception from the getInputStream method if the status code was >= 400. Since the exception was thrown there was no way for the WebService client to retrieve the inputstream, and thus it violated the Http SOAP Binding Specification. WebLogic Server now retrieves the inputstream upon a 500 error. | 8.1 SP3
CR127396 CR176324 CR184605 | Clientgen did not produce the right exception type when an exception extended another exception in a different package. This problem was fixed with a code change. | 8.1 SP3
CR127409 | WebLogic Server only displayed request/response debugging on the client side. When a browser was used, the debug message went to server out. If a Java client was used, the message should have been seen on the client out. Both client and server debugging are now displayed. | 8.1 SP3
CR127610 | When generating the stub, the wrong parameter class was used due to typemapping information from the provided types.xml being overwritten by JAX-RPC default. Typemapping information from types.xml is not overwritten anymore. Clients programming against the stub have to use the class that corresponds to the XML element as a parameter (as expected), not the class that corresponds to the type. | 8.1 SP3
CR127687 | When a WSDL was generated from the JPD and a java client was used to invoke a method, the input request xml from the client was invalid and resulted in a NullPointerException. Code was added to fix this problem. | 8.1 SP3
CR128214 CR136606 | Could not merge an existing web-services.xml file with a new one using the `mergeWithExistingWS` attribute in the source2wsdd task. The problem was resolved by a fix to the `source2wsdd` task when setting `mergeWithExistingWS="True"`, and by adding a new `targetNameSpace` attribute to source2wsdd. As a result of this change, you cannot generate a WSDL file when there are two services in the web-services.xml; that is, you cannot specify the `wsdlFile` attribute for the source2wsdd task, because a WSDL is generated for one service only per web-services.xml. | 8.1 SP3
CR128255 | When a .Net client (using a 512 bit key to encrypt) invoked a secure WebLogic Web Service (using a 1024 bit key to decrypt) it caused the following exception: `Unhandled Exception: System.Web.Services.Protocols.SoapException: Exception during processing: java.lang.AssertionError: weblogic.xml.stream.XMLStreamException: Unable to decrypt EncryptedKey - with nested exception: [weblogic.xml.security.encryption.EncryptionException: Invalid input length for decryption. Length should be multiple of 128 - Block Size. - with nested exception: [com.rsa.jsafe.JSAFE_InputException: Invalid input length for decryption. Length should be multiple of 128 - Block Size.]] (see Fault Detail for stacktrace)` A change was made to provide a clearer error message to explain mismatched encryption/decryption keys: `Unable to decrypt EncryptedKey: key size of encryption/decryption mismatched` | 8.1 SP3
CR128446 | The clientgen Ant task failed to generate a client .jar file for a WSDL with multiple services defined, throwing the following error: `Client FAIL Exception during Service Create javax.xml.rpc.JAXRPCException: unable to find port:SubmitStatusRequest This may be because the WSDL file and the generated stub is out sync. Doing clientgen again may fix this problem.` The problem was resolved with a code fix. | 8.1 SP3
CR128747 | The service interface generated by wsdl2service did not throw a custom exception when "element" is used in "part". For example: `<message name="WSException"> <part element="cio:WSException" name="WSException"/> </message>` However, it worked properly when using "type" instead of "element", as follows: `<message name="WSException"> <part name="WSException" type="cio:WSExceptionType" /> </message>` A code change ensures that the wsdl2service generates an exception properly in situations where "element" is used in "part". | 8.1 SP3
CR128771 | A security configuration exception was thrown when invoking a secure WebLogic Web Service with encryption only. The code was changed so that is no longer necessary to specify a signature key when not signing response. | 8.1 SP3
CR129010 | When schema files were not in the same directory of a wsdl file, running the clientgen Ant tool would yield the following error: `[clientgen] Finished Schema2Java parameter validation [clientgen] schemaURL file:/C:/edrive/462245/AaisTransactionManagerService.WSDL [clientgen] java.io.FileNotFoundException: C:\edrive\462245\Ont.xsd (The system cannot find the file specified) [clientgen] at java.io.FileInputStream.open(Native Method) [clientgen] at java.io.FileInputStream.<init>(FileInputStream.java:103) [clientgen] at java.io.FileInputStream.<init>(FileInputStream.java:66) [clientgen] at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:69) [clientgen] at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:156) [clientgen] at weblogic.xml.schema.model.SimpleSchemaResolver.fetchSchemaLocation(SimpleSchemaResolver.java:120) [clientgen] at weblogic.xml.schema.model.SimpleSchemaResolver.doExternalLookup(SimpleSchemaResolver.java:90) [clientgen] at weblogic.xml.schema.model.SimpleSchemaResolver.resolveSchemaLocation(SimpleSchemaResolver.java:68) [clientgen] at weblogic.xml.schema.model.XSDSchema.resolveInclusion(XSDSchema.java:533) [clientgen] at weblogic.xml.schema.model.XSDSchema.resolveInclusion(XSDSchema.java:524) [clientgen] at weblogic.xml.schema.model.XSDSchema.resolveInclude(XSDSchema.java:489)` In previous service packs, WebLogic Web Services expected a WSDL file and the to-be-included schemas to reside in the same directory. With this change, Web Services now supports relative includes of schemas. For example: `a.wsdl ---import---> b/b.xsd ---include--->b/c/c.xsd` | 8.1 SP3
CR129536 | Using the `clientgen` Ant task with a document-oriented Web Service caused the following exception: `[clientgen] weblogic.xml.schema.model.XSDValidityException: unable to resolve type name` A code fix resolved the problem. | 8.1 SP3
CR130300 | During a call to a business process from a standalone Java Web Service client, an attempt was being made to retrieve the root element from XMLBean, causing a ClassCastException to be thrown. WebLogic Server wrote out `xsi:type` for anonymous inline types, which caused a ClassCastException in WebLogic Workshop when retrieving the root element from XMLBean. This problem was resolved with a code fix. | 8.1 SP3
CR130490 | Previous service packs of WebLogic Server 8.1 did not implement the Web Services "InclusiveNameSpaces" correctly. According to the Web Services specification, "all visibly used namespaces used in the document must be added in the InclusiveNameSpaces PrefixList," as demonstrated here: `<c14n:InclusiveNamespaces xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#"; PrefixList="n1"></c14n:InclusiveNamespaces>` Previous 8.1 service packs put the namespaces as the value of "InclusiveNameSpaces" tag instead of being an attribute of "PrefixList." For example: `<c14n:InclusiveNamespaces xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#"; >n1/c14n:InclusiveNamespaces>` WebLogic Web Services now adheres to the Web Services specification by using the "PrefixList" attribute. Therefore, documents signed by release 8.1 service pack 2 or earlier cannot be verified by service pack 3, and vice versa. | 8.1 SP3
CR131753 CR120847 | The XML was getting stripped to the next child node in the tree when passing `org.w3c.dom.Document` to a doc/literal web service. This has been resolved with a code fix. | 8.1 SP3
CR132583 | Attempts to generate a `clientJar` for a Web Service that had `http-soap12=true` was failing with the following exception: `weblogic.webservice.tools.wsdlp.WSDLParseException: transport not supported:http://schemas.xmlsoap.org/soap12/http` In previous service packs, only the SOAP 1.1 HTTP transport in WSDL files was checked when running the `clientgen` command. A code fix ensure that checks are done for both SOAP 1.1 and SOAP 1.2 HTTP transport in WSDL files when running `clientgen`. | 8.1 SP3
CR132914 | The Web Service SSL client left the socket in the CLOSE_WAIT state after execution. The problem was resolved with a code fix to properly close the socket on the client after the execution. | 8.1 SP3
CR134014 | The wsdl2service Ant task would only generate the interface of the service. By default, it would not generate the implementation class. The code was changed so that the wsdl2Service Ant task generates the interface and the skeleton of the implementation class if "generateImpl" is set to true. For more information, see "Web Service Ant Tasks and Command-Line Utilities" in Programming WebLogic Web Services. | 8.1 SP3
CR134913 | WebLogic Server fails to validate .NET signed XML documents that contained timestamps. A code change resolved this issue. | 8.1 SP3
CR134931 | WebLogic Web Services now implements the following final OASIS Standard 1.0 Web Services Security specifications, dated April 6 2004: Web Services Security: SOAP Message Security Web Services Security: Username Token Profile Web Services Security: X.509 Token Profile Service Pack 2 implemented a Working Draft Version 1.0 of the specification, which was the most up-to-date version of the specification at that time. This implementation is not backwards-compatible with previous version 8.1 service packs. For more information on this lack of compatibility, see What's New in WebLogic Server 8.1 SP3. For more information on Web Service security, see "Configuring Security" in Programming WebLogic Web Services. | 8.1 SP1
CR135317 | The webservice ant task did not obey the second level include with autotype ant task. If the first schema imported the second schema and the second schema included another schema, WebLogic Server did not search for this included schema. Thus autotype failed. The problem was resolved with a code change. WebLogic Server now searches for child includes of imported schema. | 8.1 SP3
CR136582 | A ClassCastException occurred when adding a filter in front of Weblogic 8.1 WebServiceServlet and at the end of the filter, passing a customized HttpServletRequestwrapper instance to the doFilter(req, resp) call. The problem has been resolved with a code change. | 8.1 SP3
CR136804 | The web-services.xml descriptor contained an extra element of <xsd:documentation>. For example: xsd:annotation> <xsd:documentation> <xsd:documentation> The the extra <xsd:documentation> tag was removed. | 8.1 SP3
CR137520 | Using servicegen to generate a webservice on a service method which throws `javax.jms.JMSException` caused a `weblogic.xml.schema.binding.BindingException` exception. A code fix was used to resolve this issue. | 8.1 SP3
CR137522 | When creating a WSDL file from a `web-services.xml` file, the order of operations in the `web-services.xml` file was not preserved in the WSDL. This problem was resolved with a code change, which preserves the order of operations appearing in the WSDL file while generating the `web-services.xml`. | 8.1 SP3
CR172993 | For a document-style Web service, the client was failing to catch a user-defined exception because an incorrect namespace prefix was being returned by the service endpoint. A code fix has resolved the problem. | 8.1 SP3
CR173969 | A web service endpoint could not understand HTTP requests with the "Accept-Charset: UTF-8, UTF-16" included in the request header. A code change solved the problem. | 8.1 SP3
CR175093 | Setting the `-Dweblogic.webservice.i18n.charset=UTF-8` property generates a warning message: `<Unrecognized property: webservice.i18n.charset.>` This was resolved by adding this property to management admin to remove this warning message. | 8.1 SP3
CR175471 | Accessing an external web service via an outbound proxy server (iPlanet Web Proxy Server) returned a SOAP fault. This occurred because using http and https to invoke a remote web service through proxy server with proxy authentication turned on was not allowed. A code change was made to allow http and https tunneling through a proxy server for a web service client. | 8.1 SP3
CR178574 | The servicegen Ant task failed with the following error when the service method threw a `java.sql.SQLException`: `weblogic.xml.schema.binding.BindingException: No default constructor was found for class java.lang.StackTraceElement loaded from file:/usr/bea/jdk141_03/jre/lib/rt.jar!/java/lang/StackTraceElement.class. All classes that will be serialized or deserialized must be non-interface, non-abstract classes that provide a public default constructor - with nested exception: [java.lang.NoSuchMethodException: java.lang.StackTraceElement]` A code change resolved the problem. | 8.1 SP3
CR179311 | A Web Service client did not invoke a foreign Web Service when attempting to send an empty SOAP header element that had no child elements or attributes. For example, `<env:Header/>` The code was fixed so that empty SOAP header elements are no longer sent if they do not contain child elements and attributes. | 8.1 SP3

## WebLogic Type 4 JDBC Drivers

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR127143 CR128664 | XA Driver for DB2 When using the XA WebLogic Type 4 JDBC driver for DB2 in a transaction, after executing a prepared statement and committing the transaction, the prepared statement could not be re-used. The problem was corrected with a code fix to the driver. | 8.1SP3
CR127310 | Drivers for Microsoft SQL Server and Sybase The WebLogic Type 4 JDBC drivers for MS SQL Server and Sybase did not support stored procedure versions with a full stored procedure name such as `<stored_proc_name>;<versionNumber>`. A code fix to the drivers resolved the problem. | 8.1SP3
CR127434 | XA Driver for Sybase XARecover failed with the XA WebLogic Type 4 JDBC driver for transactions that were prepared using a different JDBC driver. A code change to the driver corrected the problem. | 8.1 SP3
CR127655 | XA Driver for Microsoft SQL Server Performance degradation occurred the XA WebLogic Type 4 JDBC driver for MS SQL Server. The problem was corrected with a code fix to the driver. | 8.1SP3
CR127834 | Drivers for DB2 Calling `commit()` after a batch update caused the database connection to be reset. The problem was corrected with a code fix to the driver. | 8.1SP3
CR128654 | XA Driver for DB2 When creating an XA connection, the driver interpreted an unknown warning message as an error message and prevented the connection creation. The problem was corrected with a code fix to the driver. | 8.1SP3
CR128742 | Drivers for DB2, Informix, Microsoft SQL Server, and Sybase The following issues were noted with the DATE and TIMESTAMP data types: DB2—Using a TIMESTAMP data type failed with a server protocol error when running with `Connection.setAutocommit(true)`. Informix—Did not recognize the TIMESTAMP data type. MS SQL Server—Disallowed implicit conversion of data from the DATETIME data type to the TIMESTAMP data type. Sybase—Did not recognize DATE or TIMESTAMP data types. The problem was corrected with a code fix to the drivers. The drivers now support the DATE and TIMESTAMP data types. | 8.1SP3
CR129559 | Drivers for Oracle When using the YYYY-MM-DD and YY-MM-DD date formats in the Japanese locale, the TO_DATE function failed with an SQL exception. A code fix to the driver corrected the problem. | 8.1SP3
CR132575 CR133146 | XA Driver for Microsoft SQL Server With clients using the XA WebLogic Type 4 JDBC driver, the DBMS can not detect a client disconnect. Client disconnects can cause abandoned transactions, and there was no way to provide a transaction timeout for abandoned transactions. A setting was added to the driver to time out abandoned transactions. WebLogic Server was updated so that if you use the XA WebLogic Type 4 JDBC driver for MS SQL Server, `XASetTransactionTimeout` is automatically set to `true` internally, to take advantage of the transaction timeout setting on the driver. See Support for XAResource Transaction Timeout for more information about the `XASetTransactionTimeout` attribute. | 8.1SP3
CR133508 | Drivers for DB2, Informix, Oracle, and Sybase A PreparedStatement with many parameters caused a `StackOverflowError`. A code change to the drivers corrected the problem. | 8.1SP3
CR134410 | Drivers for Sybase When callable statement was used multiple times, incorrect values were returned. The problem was corrected with a code fix to the driver. | 8.1SP3
CR178619 | XA Driver for DB2 and Microsoft SQL Server Drivers return the error code of RMERR (-3) instead of NOTA (-4) which causes transactions to be retried until `AbandonTimoutSeconds` instead of the transaction being resolved on recovery. The problem was corrected with a code fix to the drivers. | 8.1SP3

## WebLogic Tuxedo Connector

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR100556 | XOPEN standard data types were supported in Tuxedo, but not in WebLogic Tuxedo Connector. Three new types were added to weblogic.wtc.jatmi that support the XATMI required buffer types. The new types are TypedXOctet, which implements the X_OCTET buffer type and is identical in semantics to a TypedCArray; TypedXCommon and TypedXCType, which implements the X_COMMON and X_C_TYPE buffer types, respectively. These types are identical in semantics and usage to a TypedView. | 8.1 SP3
CR125533 | When CLASSPATH does not include an EJB JAR file, the invocation of a session bean's service method triggers object replication logic which results in a call to `TypedFML._tmpresend`. If the CARRAY field is null, the `_tmpresend` records the field length as 0 (instead of FLDID_SIZE + FLDLEN_SIZE). Ultimately, `_tmpostrecv` is called and assumes the field length is FLDID_SIZE + FLDLEN_SIZE. Because `_tmpresend` did not record this information, a negative value was read as field length. Currently the check made for field length is to check if it is 0. This is the reason for the `NegativeArraySize` exception. Code was added in `_tmpostrecv` to check the field length and determine whether it is less than or equal to 0. | 7.0 SP5 8.1 SP3
CR127636 | When running any tBridge FML or Queue example, `tBfrom2jms` did not recognize `quit` from `tBsend2jms` resulting in a timeout failure. This was fixed by changing the code in `tBfrom2jms` to receive messages from `weblogic.jms.Tux2JmsQueue`. The `quit` is now received. | 8.1 SP3
CR128909 | The viewj compiler parameter of the encoding routine is set to false if the incoming Java string reference is `null`. When using the `-modify_string` option, the compiler should add nulls to empty strings. The fix now sets the parameter of the encoding routine to true for null strings allowing nulls to be added to empty strings. | 8.1 SP3
CR129485 | The `xdr_decode_bstring` method returned padding bytes with real bytes for CARRAYs. The fix changed `xdr_decode_bstring` to discard padding bytes. | 8.1 SP3
CR134794 | The WLS/WTC v7.0sp4 tBridge did not propagate the CorrelationID for CARRAY type messages (ByteMessage) /Qmessage from Tuxedo to WebLogic JMS. Code was added so that when CARRAY messages are received from a Tuxedo queue, it sets the CorrelationID in the JMS message. | 8.1 SP3
CR136356 | WebLogic Tuxedo Connector FML/VIEW failures occurred with large string types because the current Weblogic Tuxedo Connector did not pad the non-used space for strings in VIEWs. Now WebLogic Tuxedo Connector always sends the fixed length of a string specified in the VIEW file. | 8.1 SP3
CR137437 | WebLogic Tuxedo Connector `tpcall` with `TPNOTRAN` flag set failed, forcing the rollback of the transaction. This occurs because if the `tpcall` attempt failed, the transaction was marked for rollback irrespective of the flag `TPNOTRAN` being set. The fix results in the transaction not being marked for rollback if the flag `TPNOTRAN` is set for `tpcall`. | 8.1 SP3
CR173656 | WebLogic Tuxedo Connector Utility routine can throw a null pointer exception when the `xdr_encode_string_length` method encounters null strings as input. The fix added a check for null input strings. | 8.1 SP3
CR180469 | WebLogic Tuxedo Connector coordinates a transaction with multiple Tuxedo domains. If the first domain voted `ROLLBACK` in the first phase of two-phase commit, other Tuxedo domains were not rolled back. Now all Tuxedo branches are rolled back before throwing an `XAException`. | 8.1 SP3

## WLEC

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR121105 | WLEC clients were experiencing the following problems with WLEC connection pools: Corruption of the ConnectionPool display in the administration console COMM_FAILURES caused by unregistered endpoints A code fix was implemented to resolve these issues and improve the overall performance of WLEC connection pools. | 8.1 SP3
CR132509 | Clients making calls through WLEC preferentially created new WLEC connections rather than reusing existing connections until the number of connections exceeded the `maxpoolsize`. Once this threshold was reached, connections were reused. A code fix was used to provide improved system performance and resource utilization when using WLEC connection pools. | 8.1 SP3

## XML

####

Change Request Number | Description | Release Fixed
--- | --- | ---
CR126140 | When configuring a custom xml parser in weblogic-application.xml, a NullPointerException sometimes occurred. This problem was fixed with a code addition. | 8.1 SP3
CR130177 | An null pointer exception was occurring in a document-oriented service when using `javax.xml.transform.Source` as a parameter or a return value. The problem was resolved with a code fix. | 8.1 SP3
CR172469 | In previous service packs, you could not determine the WebLogic Server XML parser class objects from the JAXP properties file. To define the XML parser class objects in the JAXP properties, add the following entries to the `$java.home/lib/jaxp.properties` file: `javax.xml.parsers.DocumentBuilderFactory=weblogic.xml.jaxp.RegistryDocumentBuilderFactory javax.xml.parsers.SAXParserFactory=weblogic.xml.jaxp.RegistrySAXParserFactory javax.xml.transform.TransformerFactory=weblogic.xml.jaxp.RegistrySAXTransformerFactory` | 8.1 SP3
CR180943 | `UnsupportedOperationException` sometimes occurred while upgrading from 8.1 applications or domains to 8.1 SP2 or SP3. An incorrect error message "This operation requires xqrl.jar" was displayed with this exception. This error message has now been modifed to indicate that the query is too complex to be processed. Note: This exception may have occurred because the `wlxbean.jar` file is not in the server CLASSPATH. So, if this exception occurs during the upgrade process, make sure that `wlxbean.jar` is in the server CLASSPATH. | 8.1 SP3