Skip navigation.

Release Notes

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

Resolved Problems for Service Pack 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

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://download.oracle.com/docs/cd/E13222_01/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 tx.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

CR128662

The Web Service client used to time out when the time is three times of the actual timeout value.

The problem was resolved with a code fix. Now the client times out at the exact value set.

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

 

Skip navigation bar  Back to Top Previous Next