BEA Home | Events | Solutions | Partners | Products | Services | Download | Developer Center | WebSUPPORT
| WebLogic Server Doc Home | Release Notes | Previous Topic | Next Topic | Contents | View as PDF

Resolved Problems

The following sections describe problems that have been resolved by Service Packs for WebLogic Server 6.1. Service Packs are cumulative; the current release, Service Pack 7 contains all the fixes made in earlier Service Packs released for WebLogic Server 6.1.

- WebLogic Server 6.1 Service Pack 7 Solutions

- WebLogic Server 6.1 Service Pack 6 Solutions

- WebLogic Server 6.1 Service Pack 5 Solutions

- WebLogic Server 6.1 Service Pack 4 Solutions

- WebLogic Server 6.1 Service Pack 3 Solutions

- WebLogic Server 6.1 Service Pack 2 Solutions

- WebLogic Server 6.1 Service Pack 1 Solutions

- WebLogic Server 6.1 Release Solutions

WebLogic Server 6.1 Service Pack 7 Solutions

The following sections describe problems that have been resolved for the release of WebLogic Server 6.1 Service Pack 7.

- Administration Console

- Classloader

- Cluster

- Core

- Deployment

- EJB

- Internationalization

- JDriver

- JDBC

- JMS

- JNDI

- JSPs and Servlets

- JVM

- Operations, Administration and Management

- Plug-Ins

- RMI-IIOP

- RMI

- Samples

- Security

- SNMP

- WLEC

- WebLogic Tuxedo Connector

Administration Console

CR Number | Description
--- | ---
CR172370 | When the Administration Console created an Application MBean, the associated WebAppComponent MBean incorrectly inherited the Application MBean name instead of the WebAppComponent's URI name. This caused the deployer tool to incorrectly create an additional deployment repository for this application when it was updated. This defect was corrected by a code change.
CR105735 | Navigation through the directories did not go through action servlet, so encoding was not set properly. A change was made to set the encoding explicitly in the page, so the correct encoding is used to produce the response.
CR087598 | Propagation from list page to realm deletion changed the MBean class name specific to the MBean to be deleted. Because of this MBean showed only the last deleted type MBeans in the list. A attribute (original class name from list) has been introduced which will be propagated in the above described flow. This attribute provides a way to recover the original class name and listing remains undisturbed. This solution applies to all MBean types.
CR184891 | The console jsp that was used to upload applications to remote servers was calling the ApplicationManager.update() method even when the server was not in development mode. Removed the call to ApplicationManager.update() if ProductionMode is enabled. Uploaded applications are no longer automatically deployed when Production Mode is enabled.
CR097378 | A NullPointerException sometimes appeared on the Administration Console while the WebApplication Deployment Descriptor was being edited. WebLogic Server was not checking for the descriptor being null, which is the case when it can not be parsed. For this reason a NullPointerException was thrown. If the descriptor is null, the proper error action will now be called to display the correct message.
CR097036 | The correct icons were not being retrieved by the console pages due to changes in the getServletContext code to be in compliance with the Servlet 2.3 specification. Code changes were made to buildIconList() to provide the path to the images subdirectory in the console.war. Correct icons now appear in the navigation applet.
CR044503 | Creating a new ACL with a blank Permission caused an unexpected error. This was due to names not being checked for null and blank values under some circumstances. Appropriate checks have been added, and messages for null names have been corrected.
CR08296 | The getParameter() method in GraphApplet is used to get the value of the min/max heap size. Although the return type is long, WebLogic Server was using Integer.parseInt to convert the string values. When the heap size was over 2G, there was an overflow in the integer value. Because of this, the current free memory was sometimes reported as a negative number. WebLogic Server now uses Long.parseLong to avoid overflow and to get the correct value of the heap even if it is over 2G .
CR079771 | WebLogic Server was sending a file link to the browser to report the results of start cluster and start/kill domain operations. That link worked only if the browser was running on the same machine as the administration server. This occurred on all platforms. WebLogic Server now sends a action link which will process the file and send the output to the browser in an HTML format.
CR077058 | When a JMSJDBCStore was created, the "None" option was eliminated from the Connection Pool drop down list. Adding the ability to make JDBCConnectionPool null restored "None" to the list.
CR069130 | When an application with an incorrect web.xml file was added to the applications directory, the Administration Console reported it as having been deployed even though it was not deployed at startup. WebLogic Server now correctly reports such applications as undeployed.
CR075168 | WebLogic Server was using the greater than symbol, '>', as the Token delimiter. Because of this, if a custom message contained a '>', it was being truncated while being displayed. WebLogic Server no longer truncates the last token when writing to the log.

Classloader

CR Number | Description
--- | ---
CR128510 | readClassDescriptor() of MsgAbbrevInputStream was trying to resolve a class and throwing a ClassNotFoundException for unknown classes. Java serialization will skip this ClassNotFoundException if corresponding data is not being read. readClassDescriptor() of MsgAbbrevInputStream no longer tries to resolve unknown classes and MsgAbbrevInputStream implemented resolveClass().

Cluster

CR Number | Description
--- | ---
CR129234 CR189793 | ReplicatedSessionContext has two hashtables, one of which stores the sessions for which the server is primary, and the other stores sessions for which the server is secondary. The hashtable with secondary sessions has sessionId as a key and ROID as value. When a session was invalidated and the request to remove the session came to the secondary server, WebLogic Server passed the ROID to the ReplicatedSessionContext, iterated over the values in the hashtable in order to compare ROID with that value, and then removed the entry. WebLogic Server now avoids iterating over the hashtable by passing the sessionId instead of ROID.
CR135131 | weblogic.cluster.MulticastObjectListener was locked on a call to objectAdded and waited to lock a HashMap while in a different thread MulticastReceiver locks the HashMap and attempted a lock on MulticastObjectListener. This caused a Java Level Deadlock. Changing the lock order eliminated the deadlock.
CR127765 | When a node in cluster was restarted, it first tried to synchronize with other cluster members resulting in one server adding the other to the cluster view. Before that cluster node opened the listen port, if a request came in with this cluster node as a secondary, it resulted in an error and from that point on all requests to create secondaries on that cluster node failed. Now during cluster synchronization, when a node is coming up, it first identifies all the running nodes in a cluster and then sends out a broadcast identifying itself. This ensures that the cluster node coming up is identified by other nodes after it opens a listen port.
CR127643 | When a Dynamic Proxy that implemented interfaces declared inside the web application was put into the HttpSession and the session was replicatable, WebLogic Server was not able to load the interface classes on the secondary server. Dynamic Proxies implementing interfaces stored in the application archive can now be put into HttpSession and be correctly replicated.
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.

Core

CR Number | Description
--- | ---
CR190507 | Fixed a problem with oneway calls for ReplicationManager..
CR190417 | When a request landed on a server that was neither primary nor secondary, it got the session from the existing secondary by looking it up on the secondary server with the host port information from the session id.After it successfully got the session from existing secondary it removed the existing session and tried to create a new session. When two such requests occurred at the same time a distributed deadlock could occur since these requests landed on the 'Replication' thread queue and the 'Replication' thread queue had only two threads and there was no other thread available for reading the response. Code was added to WebLogic Server which fixed the problem so that it will not deadlock.
CR183210 | In WebLogic Server 7.0 and higher, the javax.ejb.TransactionRolledbackLocalException's SVUID was changed and when WebLogic Server 7.0 or 8.1 experienced a javax.ejb.TransactionRolledbackLocalException when a WebLogic Server 6.1 client made a remote call to ejb hosting by a WebLogic Server 7.0 or 8.1 server instance, it experienced an InvalidClassException. This problem is fixed in WebLogic Server 6.1 so that it now understands the incoming final-ejb20 ClassDescriptor for javax.ejb.TransactionRolledbackLocalException.
CR133631 | Stopping a windows service configured with beasvc.exe sometimes caused a timeout when a stopclass was specified. The service was timing out because there was a race condition between the stop and main threads of beasvc.exe. The race condition has been corrected and the windows service no longer times out.
CR121483 | A ConcurrentModificationException was thrown when the monitoring subsystem was trying to read the values of the abbrev table and at the same time the abbrev table was being modified by the rjvm layer. Cloning the key set before sending the data to the monitoring subsystem so that the HashMap is not modified simultaneously by two threads eliminates the ConcurrentModificationException.
CR188371 | When an application cached a stateless session bean remote stub, and all the servers in the cluster were restarted, the stub was unable to refresh its lists of server nodes where the remote object was available and failover did not succeed. This was happening because the stub did not have the information needed to re-establish the initial context with the cluster nodes, hence the remote method invocation failed. WebLogic Server code was not propagating the thread environment for the stateless session bean stubs in WebLogic Server 6.1 versions and it is required in WebLogic Server 7.0 and higher versions for unmarshalling to set the environment so failover works. The runtime descriptors for the clusterable stateless session beans now have the propagate-environment attribute set to true by default. The descriptor is now read and the propagateEnvironment is set so the environment is passed on during unmarshalling. This will allow the failover logic to reconnect to the cluster nodes to retrieve the new list of server nodes where the remote object is available and allow for proper failover.
CR182684 | Every time the beasvc service handler was called, the beasvc log added a line indicating that it was called. For example: Tue Apr 27 11:52:17 2004] [I] [service_ctrl] 4 This caused the log to fill up when there was no real activity on the server. The debug statement was removed, eliminating the log problem.
CR181986 | WebLogic Server running as a service sometimes ran out of memory if it was using a large number of threads. Reducing the reserve stack size used by beasvc.exe and beasvc64.exe from 1mb to 256kb eliminated the memory problem.
CR176614 | Stateful Session Bean handles taken from the 70 (or 81) WebLogic Server servers to WebLogic Server 61 server/client were failing with a ClassNotFoundException in the serialization code. Compared to the WebLogic Server 6.1 server, WebLogic Server 70 and 81 servers used a different PK mechanism for SFSB in the ejb container. Adding the necessary classes to 6.1 line to support the inter-op requirement eliminated the ClassNotFoundException.
CR174605 | 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.
CR173958 | Interoperability between 6.1 SP04 and 8.1 SP02 us t3 was failing 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.
CR172366 | Messages printed by beasvc.exe to the event log were not readable in Japanese locale. A code fix ensures that English messages are printed for all non-English locales.
CR135225 | A deadlock was occurring between RJVM and NTSocketMuxer. Code was added to ensure that WebLogic Server does not hold a lock on IORecord during dispatch, thus ensuring that a deadlock will not occur.
CR134971 | When <<no stack trace available>> was sent out as part of the exception message field (from the server side) rmi layer was recursively adding / appending the exception as server side stack trace. This was filling up the log files. This manifested when the server was running out of heap and there was a NullPointerException thrown by the application code (EJB + Servlets) WebLogic Server now parses the exception message field, traps this specific exception and ensures that it is appended only once.
CR133880 | Under heavy load, T3File client often threw an ArrayIndexOutOfBoundsException when closing OutputStream/InputStream. WebLogic Server now acquires the lock on the Vector before starting the loop.
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.
CR130409 | 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.
CR130376 | According to the documentation at "Starting and Stopping Servers" if the CLASSPATH is too long, it could be added as a single line to a file and then accessed as -classpath @filename. However, this was not working because when beasvc attempted to load the contents of CLASSPATH file, it sometimes truncated the last character. This only happened when the file did not end with a new line. A code change was made so beasvc figures out whether the file terminates properly and is then read accordingly."
CR129094 | Performance issues that involved TCP window shrinkage in the t3 protocol on the AIX platform have been resolved.
CR122939 | A distributed deadlock occurred due to a failure to maintain session stickiness with the primary server. When a request lands on the server which is neither primary nor secondary, it will try to remove the existing session from the primary as well as the secondary and create a new one on the current server and register a new secondary to it. In doing so, this server makes a remote request to the primary to remove the session on non-blocking queue, the primary server makes a remove call to the secondary server to remove itself on non-blocking queue. If there are more than one such requests, there will be no other thread to receive the response on the current server since there will be only two threads available in non-blocking queue and hence there is a distributed deadlock. WebLogic Server now makes no new remote requests while processing requests that come in on a non-blocking queue. This fixes the problem, as it ensures that there will always be a thread available in the non-blocking queue to receive a response.

Deployment

CR Number | Description
CR134122 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04_57.00.jsp.

EJB

CR Number | Description
--- | ---
CR124991 | When <validate-db-schema-with>MetaData</validate-db-schema-with> was used AND a cmp-field and a cmr-field were mapped to the same column, a java.lang.IndexOutOfBoundsException was being thrown. WebLogic Server has been modified and this exception is no longer thrown under these circumstances.
CR055396 | When a EJB QL syntax error occurred, WebLogic Server generated an error message with an incorrect xml file reference. WebLogic Server now generates the message as follows if there are syntax errors in EJB QL. [java] ERROR: Error from ejbc: Error while reading 'META-INF/ejb-jar.xml' or 'META-INF/weblogic-cmp-rdbms-jar.xml'. The error was:
CR185643 | For BLOBs, in the generated code, WebLogic Server calls ObjectOutputStream.writeObject and ObjectInputStream.readObject to serialize/deserialize the object before writing/reading it to the database. These calls add extra header information. The writeObject method writes the class of the object, the signature of the class, the values of the non-transient and non-static fields of the class, and all of its supertypes are written. (This is the reason for the extra header seen in the database.) These calls do not cause a problem when customers are using only WebLogic Server to set and get BLOBs, because it uses readObject to convert the bytes into the appropriate object, which needs that extra header information. However, if the BLOB has been inserted directly into the database by some other vendor or programmer using: OutputStream os = ((weblogic.jdbc.common.OracleBlob) lob).getBinaryOutputStream(); os.write(this.tiffImage); // byte[] tiffImage then problems may occur because WebLogic Server uses readObject and the header information is missing. For the data inserted using WebLogic Server, the other programs that would read the bytes directly get the extra header information and fail. A system property has been added which allows WebLogic Server to correctly report header information.
CR187121 | A high value for idleTimeoutSecs, for instance, 60000000, in the Deployment Descriptor when multiplied by 1000 to convert it into msecs was overflowing into a negative value. This caused the trigger that cleans the passivated beans from the disk to constantly fire, causing high CPU usage. The variables within the EJB container which held the timeout values in milliseconds, such as idleTimeoutMS, sessionTimeoutMS, and readTimeoutMS, have been changed from the int type to long. This prevents any numeric overflow.
CR135367 | EJBStatelessHomeRuntimeMBean's implementation class did not provide correct details of pool statistics. Code was changed to provide the correct pool statistics in the runtime mbean methods.MBean calls now show the correct data.
CR127097 | The Stateful EJB monitoring page did not have the machine name prefixed to its output so it was impossible to see to which machine the entry referred. The machine name was added to the Stateful EJB monitoring page.
CR124026 | The read-only concurrency strategy in 6.x used Exclusive concurrency. This guaranteed exclusive access to the bean, but not to the generated Set for the 1-N relationship. It was possible for two clients to get access to the same Set. In such a case, when some method was called on the relationship Set, it caused a NullPointerException. Relevant code changes were made to guarantee exclusive access to the relationship Set to fix the issue.
CR104539 CR102308 | In WebLogic Server 6.1 SP04, the Administration Console reported incorrect values for waiters for entity beans. The problem was solved by adding a waiterCurrentCount attribute that is incremented when a client starts waiting for a lock and decremented when the lock is acquired or the client times out.
CR096398 | EJBContext.getRollbackOnly() returned "true" if a transaction marked for rollback and had not yet been rolled back. After the transaction was rolled back, it returned "false". EJBContext.getRollbackOnly() now returns "true" even if the transaction has already been rolled back.
CR060229 | The Administration Console was not exposing the Transactions Committed Total Count, the Transactions Rolled Back Total Count or the Transactions Timed Out Total Count for Stateful and Entity EJBs. The Administration Console now allows monitoring of these items.
CR087261 | The EJBDeployer was writing an incorrect deployment message to the log for Message Driven Beans. The correct message is now being logged when a Message Driven Bean is deployed.

Internationalization

CR Number | Description
--- | ---
CR079432 | MessageLocalizer was not setting the l10n_package attribute in localized catalog files using the l10ngen utility. MessageLocalizer now correctly sets the l10n_package attribute in a localized catalog file.

JDriver

CR Number | Description
--- | ---
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.
CR134285 | class weblogic.db.oci.OciLob defined two class level variables to hold the returned byteArray for either BLOB or CLOB data from 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.
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.
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.
CR129220 | WebLogic Server Oracle jDriver was not properly releasing Clob Objects for garbage collection. WebLogic Server now releases Clob Objects correctly.

JDBC

CR Number | Description
--- | ---
CR095876 | In previous releases, methods in the weblogic.jdbc.common.Pool and weblogic.jdbc.common.JDBCServices interfaces were referenced in the Programming WebLogic JDBC guide, but the Javadocs for those interfaces were not published. In WebLogic Server 6.1 SP7, the Javadocs for these interfaces are published at ../javadocs/weblogic/jdbc/common/package-summary.html. Note, however, that the methods in these interfaces have been deprecated and are not available in WebLogic Server 7.0 and 8.1.
CR128888 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04_53.00.jsp.
CR127949 | Statement.getResultSet() sometimes generated an unnecessary new ResultSet wrapper for the one underlying DBMS resultset, if a result set had already been returned to the user code. If the user code had run an executeQuery() call first, without retaining the result set it returned, garbage-collecting could close it immediately, with the underlying DBMS resultset, invalidating and prematurely closing any result set returned by a subsequent getResultSet() call. WebLogic Server no longer generates unnecessary wrappers due to a code change.
CR184143 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA04_53.00.jsp.
CR182410 | Under a high load condition, WebLogic Server slowed significantly. Removing synchronization In weblogic.jdbc.common.internal.MultiPool.searchLoadBalance() method eliminated the slowdown under high load conditions.
CR133612 | In Service Pack 7, the Oracle thin driver is modified with latest 9.2.0.4 drivers in classes12.zip in the 3rdparty/oracle/920 directory
CR131575 | WebLogic Server sometimes threw an incorrect warning about a JDBC connection leak that began: [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.
CR130306, CR135909 | 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.
CR129379 | 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.
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.

JMS

CR Number | Description
--- | ---
CR188040 | WebLogic JMS was not receiving notification when ServerDebugMBean() JMS attributes were changed. The ServerDebugMBean() can now be used to dynamically enable and disable "DebugJMS" ServerDebugMBean attributes. This allows customers to dynamically enabled or disable JMS Debugging flags.
CR099554 | Under certain circumstances when a server with JMS messages in a pending state was shut down or crashed, pending messages were not recovered when the server was restarted. Pending messages are now recovered upon restarting the server.
CR123194 | In previous WebLogic Server 6.1 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 has resolved the problem in this Service Pack.
CR126192 | Long-lived JMS connections lacked a periodic heartbeat check. Following a code change, when JMS is idle the connection pings the database every five minutes to keep connection fresh.
CR182338 | A receiver stops processing messages when a RedeliveryLimit is configured and the number of times the RedeliveryLimit is reached is greater than the MessagesMaximum setting on the ConnectionFactory. Example: RedeliveryLimit=0, MessagesMaximum=10. Receiver receives a message and calls sesssion.recover() 10 times. Receiver will stop processing messages and the console will show 10 messages pending. Code was added to adjust the window counter when a message is removed from the queue because the RedeliveryLimit had been reached.
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.
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.

JNDI

CR Number | Description
--- | ---
CR136746 | Enhancement request to allow explicit naming of JDBC driver being used in class VendorId. This customer enhancement was made through a code change.

JSPs and Servlets

CR Number | Description
--- | ---
CR122556 | HTTP tunneling requests were sometimes producing ProtocolExceptions. Code was added to WebLogic Server to eliminate the ProtocolExceptions.
CR087857 | When the character encoding was set by JSP pages or servlets, the ServletOutputStream.write(int) method, which takes int type as its argument, received the data encoded using the specified charset encoder. WebLogic Server no longer encodes the binary data when ServletOutputStream.write(int) is called.
CR180425 | WebLogic Server was sending wlsproxy specific headers even when the request did not originate with a proxy. Code was added to check if the request is coming from a proxy and send the appropriate header.
CR077922 CR063304 | The HttpSessionBindingListener were not getting fired correctly. In some cases they were invoked twice. Re-implementing the callbacks strictly per the Servlet Specification fixed this problem.
CR123308 | T3ServicesDef and LogServicesDef interfaces have been deprecated beginning with the WebLogic Server 6.1 SP5 release.
CR101992 | A web application that had a local EJBObject reference in its session, sometimes got an javax.ejb.EJBException after it was redeployed. Code was added to catch the exception and log a message. An error message is now logged to indicate serialization failure and the getAttribute() of HttpSession, ServletRequest or ServletContext returns null under these circumstances.
CR085091 | There was a problem that was preventing serving custom error pages, if the request was a conditional GET (Is-Modified-Since header set) for a protected resource. The logic was fixed to serve the custom error page if one is defined.
CR127959 | Code that used a response wrapper and called getOutputStream on the original response passed into a JSP resulted in NestedBodyResponse always throwing an IllegalStateException. Mixed use of getWriter() and getOutputStream() from NestedBodyResponse are now allowed, so the exception will only be thrown when appropriate.
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.
CR127708 | WebLogic Server decoded the path /foo/bar%c0%baz/ to /foo/bar because sun.io.ByteToCharConverter stopped converting the remaining bytes if it encountered bytes that were not valid in UTF8 (for example, 0xc0). This problem does not occur on JDK 1.4. The problem was resolved with a WebLogic Server UTF-8 converter that replaces invalid UTF-8 sequences with U+FFFD characters. As a result of this fix, the path /foo/bar%c0%baz/ is decoded to /foo/bar?%baz.
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.
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.
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.
CR173042, CR110910 | HttpClusterServlet threw this exception, when KeepAliveEnabled was set to true after a large file download was canceled. Analysis revealed that when a client canceled a file download, the remaining data was left in the inputstream. If the socket was recycled for a subsequent request, the servlet read the remaining data, resulting in the exception.The problem was solved with a code fix to drain the inputstream and if the download is canceled we will read this remaining data.
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().
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.
CR128986 | After a protocol exception, the server hung while trying to process a new license because of a problem with the ensureContentLength method. A code change ensured that the server no longer hangs during this process.
CR128420 | breakUpAndWriteItOutAsNecessary() tried to separate a manifest header to enforce a maximum of 72 bytes per line, and wrote one line to an outputstream 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.
CR127836 | A JSP in a subcontext of the root context was precompiled when deployed as a Web application packaged in a WAR file, but not if it was deployed in exploded format. JSPs now precompile when deployed in an exploded format.
CR127090 | Jsp used several MBeans with attributes that had the same names, thus when they were displayed, it looked as though there were duplicates, when in fact, there were none. The display labeling of the MBean attributes was changed for the mbeans that had the same attribute names. They are now distinguishable.
CR116209 | When a Serializable ServletContext attribute was added and then overwritten with a non-Serializable value, the original value masked the new value. When replacing a Serializable value with a non-Serializable one, WebLogic Server now removes the original value from the attributes hashtable.
CR121343 | A race condition arose during the computation of a secondary JVMID when more than one frame was used. It appeared that the computation of the secondary JVMID was resetting the member variable value by one thread, causing the race condition. Following a code change, the computation of the secondary JVMID no longer leads to the race condition.
CR120932 | The HTML page served by the CertificateServlet displayed the wrong value for the radio button—it displayed 2048 for the radio button, but using the button resulted in a 1024 bit certificate. The radio button now produces the correct 2048 bit certificate.
CR091831 | The WebLogic Server implementation of HttpURLConnection did not check whether keep-alive connection had been timed out on the server side when using POST method, resulting in the error: Connection aborted by peer: socket write error on flush. Checks were added to ensure that the HttpClient is non-null before updating the timestamp.
CR108034 | Inappropriate error messages generated by a user breaking a connection have been suppressed.

JVM

CR Number | Description
--- | ---
CR132228 | Harmless IOExceptions were not being suppressed on Japanese locales. WebLogic Server now sets the locale to C by default when enabling nativeIO. Customers who do not want to set the locale to C can use the system property -Dweblogic.nativeIO.useDefaultLocale=true On non-english locales, the harmless exceptions are now suppressed.

Operations, Administration and Management

CR Number | Description
--- | ---
CR122811 | A change to support piping of passwords into weblogic.Admin. That change locked up the System.in stream, preventing automated scripts from working correctly. The change that locked the System.in. stream has been corrected and scripts can now be automated.
CR097343 | When a deployment was done where the targets were across two different platforms (such as unix and windows), the deployment files were not found. The deployment location was not being localized for the local machine type. If one deployed a webapp from an administration server running on windows and targeted it to a unix based machine, the location of the deployment was malformed for that platform. The deployment path has now been localized for each machine type.
CR190237 | The WebLogic Server MBeanHome method getAllMBeans() threw an exception when running in a WebLogic Portal environment. WebLogic Server MBeanHome Helper needed additional knowledge of WebLogic Portal mbean class locations and a correction to existing logic. The ClassNotFound exception is no longer thrown in the WebLogic Portal environment.
CR190212 | when an exception was thrown while retrieving attributes via MBeanServer.getAttributes(), any exceptions thrown by the JMXServer were handled and a null value was returned. WebLogic Server now rethrows the exception instead of returning a null value.
CR188030 | CounterMonitor.stop() was synchronized causing a deadlock. Synchronization was removed, as called for in the documentation, eliminating the deadlocks.
CR187170 | When the attributes of an array type changed(meaning certain elements of the array were added or deleted or both), AttributeAdd/Remove notifications were not being sent out. Thus certain deployments were not being carried out properly. The WebLogic Server now sends AttributeAdd/Remove notifications, in addition to the AttributeChange notification, when an array type attribute values change.
CR113085 | When the value of SqlStmtProfilingEnabled was set through MBeans or manually in config.xml file and then you tried to retrieve that value through MBeans it did not show the value. Instead, it returned a message, "It appears that no attributes have been specified for this MBean". Exposing the SqlStmtProfilingEnabled attribute of JDBCConnectionPoolMBean eliminated the error.
CR104435 | The KernelDebugMBean options, DebugDGCEnrollment and ForceGCEachDGCPeriod, could not be enabled. There was no way to "set" the enable attribute in weblogic.management.configuration.KernelDebugMBean. The setter signature did not take boolean for these attributes, so the values for these flags could not be changed from the default. These attribute setters now accept boolean.
CR081349 | When printing the ExecuteQueueRuntimeMBean, the ExecuteThreads attribute was not being displayed correctly with the weblogic.Admin tool. The entries in the ExecuteThreads attribute are now displayed as a readable string value.
CR094219 | When Domain and Server logfile names were date and time based (SimpleDateFormat), the following features were not fully functional: These type of logs were not being rotated. The total number of log files were not restricted even when the FileCount was set.There was no code in place to delete the older log files because the FileFilter could not list these files because of their file name patterns. File rotation has been implemented for these types of file names.After each rotation, WLS now checks to see whether the files exceed the limit, if restricted. It then deletes the older log files.

Plug-Ins

CR Number | Description
--- | ---
CR180724 | The initial cookie was created through web server one and sent to cluster one. When ithit the application again it went through web server two and instead of being directed to cluster 1 it went to cluster 2 and created a new session. The WLCrossOverEnabled functionality now works correctly in WebLogic Server.
CR132699 | The Apache 2.0.x plugin for Redhat Linux AS 2.1 returned an incorrect status code. The problem was resolved with a code change, which sets the status code to 500 when the backend WebLogic Server instance is not available.
CR178792 | Apache) HTTP requests can contain either one of the following headers: Content-Length or Transfer-Encoding Requests with a Transfer-Encoding header set to "chunked" were failing with an IO error. Code was added to support requests using the Transfer-Encoding header set to "chunked".
CR190562 | Requests were not retried when the plug-in encountered a broken pipe error on Solaris while sending post data to WebLogic Server. WebLogic Server now throws a HALF_OPEN_SOCKET_RETRY exception when sendPostData reports a broken pipe on Solaris
CR189251 | Under load, Segmentation errors occurred while retrieving plugin Properties for a virtual host. Replacing the strtok API with strchr, as the strtok API is not thread safe, eliminated the errors.
CR182971 | ServerList was deleted after every DNSRefreshInterval which resulted in a core dump. WebLogic Server now does a dns lookup of all the servers in the list and updates the ServerInfo structure if any server has changed from the last time it was checked.
CR187282 | Because the plugin did not follow a part of the HTTP1.1 specification, which states that if a request/response contains both a Content-Length header as well as a Transfer-Encoding: Chunked header, the Content-Length header MUST be ignored, there was a unique scenario involving a recycled connection from the pool that sometimes caused an error. WebLogic Server now returns contentLength as -1 if CTE is on.
CR095984 | When the file size exceeded 30KB, a DNS error message of IE 6.0 was received instead of a 413 message when using the NSAPI plug-in. The behavior of MaxPostSize configuration is now the same with or without a plug-in.
CR188811 CR188808 | WLExcludePathOrMimeType did not work correctly when a request had a query string. Requests such as http://webserver:port/weblogic/something.jsp?value=123 were not excluded and requests such as http://webserver:port/weblogic/something.do?name=test.jsp were not forwarded. The plug-in now ignores query strings while checking for excludes.
CR187578 | When KeepAliveEnabled ON was configured in httpd.conf, KeepAliveSecs defaulted to 20. This default setting could not be changed. Code was added to ensure KeepAliveSecs is configurable.
CR187577 | When using multiple Location tags in a VirtualHost tag, the Apache plug-in generated a strange URL if the requests matched two more Locations. The Apache plug-in no longer uses regular expression match, unless specified.
CR186470 | When using the IIS plug-in, the creation of a large number of new connections through a firewall resulted in an HTTP status 302, and the connection was closed. WebLogic Server now recycles the connections if the HTTP status code is 302.
CR186148 | When the Apache plug-in encountered a missing page, it was returning a 500 error, rather than the correct 503 error. The plug-in now returns the correct error.
CR185668 | When using the Apache plug-in to proxy to multiple clusters using MatchExpressions, the PathTrim attribute was failing to trim off the segment of the url used to direct the request. Reimplementing MatchExpressions parsing without using the strtok API corrected the problem.
CR185089 | The IIS plug-in was sending an Http status code of 500 (internal Server Error) when it encountered a WRITE_ERROR_TO_CLIENT exception due to a connection closed by the client. The IIS plug-in no longer sends Http status code of 500 when a WRITE_ERROR_TO_CLIENT exception is caught.
CR180417 | If a cookie was part of the POST data then plugin would corrupt the post data while extracting the cookie. Code was added to fix the cookie extraction from Post Data.
CR136816 | If the PRIMARY server could not be located, then the request was served by the next available server in the list. It ignored the Secondary server. If the Primary server can not be located, but the Secondary server is present then the request will be forwarded to Secondary server rather than being served by another server on the list.
CR183390 | WebLogic Server was throwing an exception from inside the catch block which sometimes caused iPlanet to fail. WebLogic Server no longer throws an exception from the catch block.
CR183311 | When Apache was stopped while using a single-thread multi-process module, it would try to stop the timer thread first. This timer thread never existed, thus a core dump occurred. WebLogic Server no longer creates timer threads when Apache is being used with a single-thread multi-process module.
CR183188 | The ISAPI plug-in was unable to handle requests with the Transfer-Encoding header set to chunked. Functionality was added to enable ISAPI to handle such requests.
CR182434 | Headings passed to rq->srvhdrs were not entirely in lower-case instead of mixed case. Content-type, content-length and transfer-encoding headers are now passed to NSAPI entirely in lower case.
CR175787 | WebLogic Server was throwing CONNECTION_REFUSED errors with the Iplanet plugin. After polling a socket for WRITE operation, if the state of the socket is in any one of the following states, then the plug-in will not throw aCONNECTION_REFUSED exception. Valid states are: POLLOUT POLLWRBAND POLLWRNORM
CR173985 | (Apache) The plug-in was dropping sessions after WebLogic Server was restarted. This is because Apache 1.3.x creates multiple child processes to handle incoming requests. Each process maintains its own serverlist where each server entry is uniquely identified by the JVMID (provided by WebLogic Server, and which is updated when a request is successfully processed). Whenever a server instance is restarted, it generates a new JVMID. So a request whose cookie contains a new JVMID will fail to locate the corresponding primary server plug-in if the JVMID is not refreshed in the plug-in. A code fix ensures that if the JVMIDs extracted from cookie do not match with the ones stored in the serverlist, then WebLogic Server will try to refresh the JVMIDs once again.
CR136968 | Weblogic Server was not accepting more than one header when the response.addHeader method was used. The plug-in now allows WWW-Authenticate to have multiple values.
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. A new argument was added to an internal method to determine if a SSL connection needs to be initiated.
CR134413 | Apache plugin caused a duplicated http header and body for the 302 response. There was no problem between the plugin 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.
CR132840 | Apache access logs improperly recorded a 200 code rather than a 500 error when application servers were down. A code change resolved the problem.
CR132426 | When the plug-in parameter "QueryFromRequest" was used in the httpd.conf file it gave the following syntax error during Apache Server startup Syntax error on line 971 of C:/Program Files/Apache Group/Apache2/conf/httpd.conf:Invalid command 'QueryFromRequest', perhaps misspelled or defined by a module not included in the server configuration. The Apache 2.0 plug-in now supports the "QueryFromRequest" parameter.
CR131640 | WebLogic Server was requested to provide a plug-in for the Sun One 6.1 web server. The SUN ONE 6.1 Web Server is now fully supported.
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.
CR179537 | (ISAPI) The IIS proxy plug-in caused heap corruption on the Microsoft Windows platform. The problem was resolved with an internal code fix.
CR177707 | When using the release 7.0 SP02 plug-in with client certificates, WebLogic Server worked correctly. 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.
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.
CR175672 | (Apache) The Apache server was hanging when the WebLogic plug-in tried to open the wlproxy log file, even though Debug was OFF. The code has been fixed so that the log file is not set if debugging is turned off.
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.
CR174431 | (NSAPI) The Iplanet plug-in now gracefully handles an EINTR OS error.
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.
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.
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: Remove NameTrans fn="ntrans-j2ee" name="j2ee" from the default object in the obj.conf file. 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
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.
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.
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.
CR130060 | A performance problem in the IIS plug-in has been resolved in Service Pack 5 by a code change that causes the plug-in to check whether data equivalent to a specified content length has already been read.
CR129471 | In previous service packs, the Apache plug-in did not recognize the WLTempDir parameter. This has been corrected.
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. WebLogic Server now receives the correct value.
CR129138 | 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 sometimes to fail. A fix to cookie parsing and the substitution of JVMIDs to locate primary and secondary servers resolved the problem.
CR129026, CR129323 | A memory leak in the ISAPI plug-in was fixed by a code change.
CR127973 | The ISAPI plug-in sometimes failed after adding a persistent cookie to a servlet session. A correction to the cookie parsing code resolved the problem.
CR127658 | [ISAPI] When a connection was retrieved from the pool, but the WebLogic Server had already closed the connection, then the HALF_OPEN_SOCKET_RETRY exception was raised. Requests will be now be retried after receiving the HALF_OPEN_SOCKET_RETRY exception.
CR084303 | WebLogic Server proxy plug-ins restrict the HTTP commands that can 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
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.

RMI-IIOP

CR Number | Description
--- | ---
CR188748 CR180749 | During the repository id generation of getter and setter operations, sometimes an extra '_' was added if the getter or setter contained a reserved keyword. This sometimes resulted in the failure of a remote call. WebLogic Server now ensures it truncates extra underscores.
CR175112 | The method used to send IIOP messages was unsynchronized leading to corruption of the underlying data if multiple threads tried to send and receive data at the same time. The method was made synchronized and the product now works correctly in multi-threaded environments.

RMI

CR Number | Description
--- | ---
CR177353 | When a application client code cached the remote stub and invoked a remote method on a SLSB deployed to a cluster, the behavior was that each call refreshed the list which tracked the cluster nodes where the remote object is available. This list was used to failover the calls if any of the node failed with a recoverable exception. The issue here was that failover did not work when the entire cluster was restarted while the application client had cached the stub from a previous invocation. The retry logic in the failover algorithm was incorrect. This logic originally allowed n-1 number of retries in a cluster with n nodes. When the entire cluster restarted, the cached stub would have stale list. And the retry logic scanned though the stale list and exhausted all the retry attempts. In the last attempt it would have potentially refreshed the list. Even though the client side stub now had a new copy of the list it did not attempt to failover as it has already reached n-1 attempts limit. The remote stub cached in the application client now ensures it refreshes the list only when remote method invocation fails on all the nodes in the existing list. Then stub is given one last chance for failover if the list got refreshed. If this last chance does not succeed the stub will throw an exception to the application otherwise failover will continue to work as advertised transparently.

Samples

CR Number | Description
--- | ---
CR183199 | Building the examples on Windows XP resulted in a StringIndexOutOfBoundsException. Upgrading to Ant 1.6.1 eliminated the build problem.
CR183527 | In WebLogic Server 6.1 SP06, the examples.ejb 1.1 package, examples/ejb/building.html provides incorrect instructions for building samples, and incorrectly describes how the samples build script works. The instructions and description refer to previous version of the build script which used build.cmd or build.sh. The current version of the build script (build.xml) uses ant. To run build.xml, type ant in the directory for the sample you wish to build. To understand how the build script works, refer to the comments in build.xml
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.

Security

CR Number | Description
--- | ---
CR045135 | Some internal WebLogic Server objects that are bound into the JNDI tree were insufficiently protected. Some of these objects control key functions of the server. Simply unbinding the appropriate objects renders the server unreachable. It was possible to leave the server operational but to have some confidential data transmitted to a foreign object rather than the internal WebLogic Server object. The patches available in this release control access to the JNDI tree. See Security Advisory BEA04-65.00.
CR103309 | Whenever an HTTP or HTTPS request was made of the server, information about the WebLogic Server version was supplied. The default setting for returning a Web Server version upon HTTP or HTTPS request has been changed from true to false. See Security Advisory BEA04-70.00.
CR125520 | A deadlock occurred between two threads when using Netscape LDAP classes - LDAPConnection and LDAPConnThread. This deadlock grew until all the default execution threads were deadlocked with LDAPConnThreads. After updating to the new Netscape SDK, deadlocks no longer occur.
CR128940 | A protection problem occurred when WebLogic Server was running on an operating system that required case-sensitive filenames and cross-mount directories containing Web applications from an operating system that did not support case-sensitive filenames. For example, this problem occurred when mounting Windows-based Web applications onto a Linux-based WebLogic Server. This resulted in some URL patterns in the web.xml file being incorrectly evaluated so that access control was compromised.The associated patch adds configuration options to specify that Web application files should be treated as case-insensitive even though the operating system may be running in case-sensitive mode. See Security Advisory BEA04-67.00.
CR123860 | The constructor method for a flat group used by a custom realm expected a case-sensitive value. When a case-sensitive value was not found, a NullPointer exception was thrown. WebLogic Server no longer throws a NullPointer exception when the value for the CachingRealm MBean value is null.
CR136544 | A set of enhancements have been added to the WebLogic Server command-line utilities and Administrative ant tasks to eliminate the need for a system administrator to enter a clear-text password. With these fixes, the WebLogic Server command-line utilities and Administrative ant tasks now create and read user-managed configuration files. Like the boot.properties files, this new capability relies on strong encryption and file system protections for security. See Security Advisory BEA04-68.00.
CR179663 CR188110 | A NullPointer exception occurred when using the WebLogic Server Administration Console to list LDAP users. Code was added to eliminate the NullPointer exception.
CR174299 | The Use Java attribute on the SSL tab in the WebLogic Server Administration Console was not working properly. The behavior of the attribute has been fixed.
CR172187 | A password echo occurred intermittently on the Linux operating system when booting WebLogic Server using the Administrative Console. No-echo capabilities have been added to resolve the issue. See the README file in the patch for further documentation. See Security Advisory BEA04-69.00.
CR172567 | If the certificate name was the same for both an Administration Server and remote Managed Server, WebLogic Server used the certificate for the Administration Server for the remote Managed Server. The SSL Listen thread has been updated so that is only loads local certificates.
CR161836 | WebLogic Server was setting the AuthenticatedUser in the session rather than the AuthenticatedUserName. Servlet authentication has been changed so that is sets the AuthenticatedUsername resolved in the ClassCast exception.
CR127722 | If host name verification failed but the setExpectedName() method was defined, WebLogic Server ignored the host name defined in the method and dropped the connection. WebLogic Server now performs the host name verification check first. If that check fails, WebLogic Server uses the ExpectedName() method to verify the hostname. If that verification fails, the connection is rejected.
CR112619 | A NullPointerException was being thrown when an Applet attempted to obtain an initial context using the t3s protocol. The basic constraints check for applets was updated, and this eliminated the NullPointerException.
CR124746, CR175051, CR175045 | Following a code change, WebLogic Server does NOT support HTTP TRACE requests by default. If you want to turn on HTTP TRACE support, in WebLogic Server 6.1 and above, set HttpTraceSupportEnabled="true" in cluster/server. In 5.1, set weblogic.httpd.httpTraceSupport.enabled=true. See Security Advisory BEA04-48.01.
CR112220 | WebLogic Server was verifying the hostname of the administration server against the administration certificate in the nodemanager, thus causing an error. Hostname verification in the nodemanager now only checks against the nodemanager hosts file.

SNMP

CR Number | Description
--- | ---
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. The duration since initialization is now accurately reported.
CR103678, CR109869 | 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.

WLEC

CR Number | Description
--- | ---
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.

WebLogic Tuxedo Connector

CR Number | Description
--- | ---
CR133654 | Fixed a problem with a race condition between the tBridge spawning threads for each redirect definition and the WTC Service setting an initialized flag to true.
CR185588 | Fixed a problem in which the last character in a double byte character set is being cut in the middle and turning into 'null' on the WLS side after passing through WTC.

WebLogic Server 6.1 Service Pack 6 Solutions

This section lists problems resolved in WebLogic Server 6.1 SP06.

- Classloader

- Cluster

- Connector

- Console

- Core

- Deployment

- EJB

- JDBC

- jDriver

- JMS

- JNDI

- JSP

- JTA

- Node Manager

- OA&M (Operations, Administration, and Management)

- Plug-ins

- RMI

- RMI/IIOP

- Security

- Servlets

- SNMP

- Web Services

- WTC-ATMI

- XML

Classloader

Change Request Number | Description
--- | ---
CR101547 | A memory leak occurred when deploying an Enterprise Application that contained a singleton class with static data. The problem did not occur when the singleton class was deployed as a Web Application. This problem was solved with a fix to the application classloader.
CR104513 | With the fix for CR069506 introduced in WebLogic Server 6.1 Service Pack 2, the classloader failed to find files when one manifest finder recursively referenced other manifest entries. The problem was solved by changing Classloader.getResources() to handle this case.
CR111924 | WebLogic Server threw a ClassNotFoundException when processing a user-defined exception thrown from an EJB on a remote server to an EJB on the local server. This occurred even though the user-defined exception was included in the classloader for the local EJB. The problem occurred because the socket reader that processed the exception used the system classloader, rather than the application classloader. This problem was solved with a code fix.
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 ClassNotFoundException. The resolveProxyClass() method was implemented to load interfaces from the application-specific classloader as well as the system classloader.

Cluster

Change Request Number | Description
--- | ---
CR103807 | WebLogic Server 6.1 SP04 threw a null pointer exception at weblogic.rmi.cluster.BasicReplicaList.add(BasicReplicaList.java:61). The problem occurred when a managed server was restarted after a failure. Upon restart, the NPE occurred and all server instances in the cluster had to be restarted. The error was related to a timing issue, and was solved with a code fix.
CR104430 | Clustered servers could lose sessions when a client switched to a third server in the cluster from the first and second servers, which had been the client's primary and secondary servers. A process would remove the session from the first two servers, and when the client switched back to the primary server, the primary server looked for the session on the secondary server, instead of properly looking on the third server. A code fix resolved the problem by causing the session to be recreated from session information on the third server, completely removing the session from the primary and secondary servers.
CR107471 | In WebLogic Server 6.1 SP02, when using HTTP Tunneling with a cluster, the client got this message: java weblogic.Admin -url http://colma:17683 -username system -password password PING 10 <May 29, 2003 10:14:18 AM PDT> <Error> <RJVM> <000515> <execute failed java.net.ProtocolException: Tunneling result not OK, result: 'DEAD', id: '0'java.net.ProtocolException: Tunneling result not OK, result: 'DEAD', id: '0' at weblogic.rjvm.http.HTTPClientJVMConnection.receiveAndDispatch(HTTPClientJVMConnection.java:422) at weblogic.rjvm.http.HTTPClientJVMConnection.execute(HTTPClientJVMConnection.java:305) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213 at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)> Failed to connect to <urldeleted> due to: <urldeleted>:Bootstrap to <urldeleted> failed. It is likely that the remote side declared peer gone on this JVM] The problem occurred because the plug-in tried to round-robin each tunnel request to the next server. The request did not stick to the same server. The problem was solved with a code fix to ensure state was maintained in the client by setting the jsessionid cookie and sending it back to the plugin.
CR108127 | In WebLogic Server 6.1 SP04, an error occurred when trying to update a secondary session. Given three clustered server instances: Server A, Server B, and Server C. 1) Hit Server A, PRIMARY A, SECONDARY C 2) Hit Server C, PRIMARY C, SECONDARY B 3) Hit Server A again This error occurred on Server A: <Jun 4, 2003 4:24:56 PM PDT> <Debug> <Cluster> <Error updating secondary for 3535724191309537720 on 7312270160516507840S:<IPaddressdeleted>: [7005,7005,7002,7002,7005,7002,-1]:<IPaddressdeleted>:7005, <IPaddressdeleted>:7005,<IPaddressdeleted>:7005:mydomain:myserver3. Re-creating secondary.> This error occurred on Server C: <Jun 4, 2003 4:24:56 PM PDT> <Info> <Cluster> <Lost 0 replication updates of object 3535724191309537720. Re-fetching secondary.> The problem was solved by a code change.
CR112874 | In WebLogic Server 6.1 SP03, 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 are killed in that order, the client gives 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 are restarted, the load balancing algorithm was switched to round-robin. Analysis revealed that the replica list was getting 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.
CR116954 | The web application container returned 404 messages for InitJVMID requests from the HTTPClusterServlet, resulting in log files filling up with messages: ####<Sep 6, 2002 4:56:43 PM EDT> <Debug> <HTTP> <petunia> <ms1petunia> <ExecuteThread: '13' for queue: 'default'> <kernel identity> <> <101147> <HttpServer(887891,null default ctx,ms1petunia) found no context for "/WLDummyInitJVMIDs". The problem was solved by sending InitJVMID requests to the internal web application which is always deployed on WebLogic Server.

Connector

Change Request Number | Description
--- | ---
CR109463 | When a transaction obtained connections to two resource adapters and both adapters used the same resource manager, WebLogic Server cleaned up only one connection. The connections were closed before the committing the transaction. This problem appeared as a javax.resource.spi.ResourceAllocationException. The problem occurred because the transaction manager ignored the second connection that used the same resource manager. This was solved with a code fix.
CR121418 | When allocating a new connection, the connector container used the descriptor MBean to obtain configuration information. Because the descriptor MBean resides on the Administration Server, Managed Servers required the Administration Server to be available in order to allocate the new connection. If the Administration Server was down, the process of allocating new connections would throw a exception: weblogic.rmi.extensions.RemoteRuntimeException The container was modified so that it stores configuration information locally after an adapter is deployed. Managed Servers use this local configuration information, rather than the descriptor MBean, for allocating new connections.
CR125555 | When WebLogic Server Service Pack 5 obtained MetaData information from a Resource Adapter, it did not check the return value for nulls before using the object. This could cause a NullPointerException and connection failure. The code was modified to check the return value for null after calling getMetaData(). If an adapter's implementation of ManagedConnection.getMetaData() returns a null value, WebLogic Server no longer throws a NullPointerException and no MetaData is logged.

Console

Change Request Number | Description
--- | ---
CR100006 | WebLogic Server sometimes displayed the following NullPointerException when a domain contained two Administration Servers and you tried to access the servers via the Administration Console: java.lang.NullPointerException at weblogic.management.console.helpers.UrlHelper.buildIconList(UrlHelper.java:149) at weblogic.management.console.helpers.UrlHelper.getIcon(UrlHelper.java:174) at weblogic.management.console.tags.SmartNavNodeTag.getIcon(SmartNavNodeTag.jacva:111) at weblogic.management.console.tags.SmartNavNodeTag.inferStuffFromContext(SmartNavNodeTag.java:96) at weblogic.management.console.tags.SmartNavNodeTag.doStartTag(SmartNavNodeTag.java:44) at weblogic.management.console.webapp._domain.__nav._jspService(__nav.java:301) at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:262) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:198) at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:250) [...] This problem was solved with a code fix.
CR102824 | After upgrading from WebLogic Server SP02 to SP04 on Solaris 8, when customer logs into the console they get the following exception in the log files. The console continues to work. java.lang.NullPointerException at weblogic.management.console.utils.ConsoleComparator.compare(ConsoleComparator.java:81) at java.util.Arrays.mergeSort(Arrays.java:1176) at java.util.Arrays.sort(Arrays.java:1123) at java.util.Collections.sort(Collections.java:116) at weblogic.management.console.utils.MBeans.sort(MBeans.java:1103) at weblogic.management.console.tags.DeclareBeanSetTag.doStartTag(DeclareBeanSetTag.java:99) at weblogic.management.console.webapp._domain.__nav_services._jspService(__nav_services.java:982) at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:262) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:198) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:490) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:316) at weblogic.servlet.jsp.PageContextImpl.include(PageContextImpl.java:116) at... Analysis revealed that MBeans were returning a null displayName. The problem was solved with a code fix.
CR105598 | New testing with an Active Directory LDAP uncovered a problem where a call to group.isMember() would fail if a member name contained a comma character (,). This problem was solved with a code fix.

Core

Change Request Number | Description
--- | ---
CR071415 | In WebLogic Server 6.1 SP02, when the WebLogic Server security manager starts and sets the policy file, the path /usr/lib was prepended to javac during JSP compilation, causing a java.security.AccessControlException. The problem was solved with a code fix.
CR094410 | When DebugHttp was activated in ServerDebugMBean, WebLogic Server reported SocketResetExceptions as errors, rather than simple debug messages. To address this problem, logMuxableSocketResetException() was added to the message catalog for reporting this debug message.
CR096091 | In WebLogic Server 6.1 SP04 and SP05, when starting WebLogic Server as an Windows service using a classpath from a file, the error "Thread created successfully! Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/Server" is thrown if classpath file is over about 2k length. The problem was solved by correcting an error related to reading the classpath from a file.
CR102058 | When using URLClassLoader on the client, a remote method call resulted in a NoClassDefFoundError. c:\java\java131_07\bin\java -classpath ".;client.jar;C:\home\ravia\weblogic\dev\src700\3rdparty\weblogicaux.jar" URLTest qa146 9901 ejb20-statefulSession- TraderHome installadministrator installadministrator java.lang.NoClassDefFoundError: weblogic/rmi/extensions/server/Stub at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:488) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:106) at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:401) at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:162) at java.lang.ClassLoader.loadClass(ClassLoader.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:250) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:310) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at weblogic.utils.classfile.utils.CodeGenerator.generateClass(CodeGenerator.java:71) at ... The problem was solved by setting ThreadContextClassLoader as the parent for AugmentableSystemClassLoader.
CR103525 | In WebLogic Server 6.1 SP04, this error occurred: weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Old socket closed and released FD before FDRecord still exists,... The problem was solved with a code change to Ensure that socket closes outside the muxer are handled gracefully.
CR103774 | The Solaris and Windows 2000 versions of WebLogic Server logged socket exceptions similar to: <Apr 3, 2003 11:40:07 AM EST> <Error> <socket> <000424> <IOException on socket: weblogic.servlet.internal.MuxableSocketHTTP@1eca988 - idle timeout: '30000' ms, socket timeout: '0' ms, fd: 53 java.net.SocketException: Connection reset java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:168) at weblogic.socket.PosixSocketMuxer.readBytesProblem(PosixSocketMuxer.java:876) at weblogic.socket.PosixSocketMuxer.deliverGoodNews(PosixSocketMuxer.java:767) at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:694) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213) ad.run(ExecuteThread.java:189) > However, these messages do not indicate a defect with the server or application. The code changed so that the above exceptions are displayed only when the server is in debug mode.
CR103967 | In WebLogic Server 6.1 SP04, child threads of WebLogic Server execute threads did not inherit the correct context classloader. This problem common occurred when a servlet or an ejb created a timer (java.util.Timer). Analysis revealed that WebLogic Server execute threads maintained their own context classloader and child threads of these execute threads did not inherit the context because java.lang.Thread directly assigned the member variable of its own to the child threads. The problem was solved with a code fix.
CR104218 | In WebLogic Server 6.1 SP04, the following exception occurred on a Solaris 8 server with patch for CR100665_61sp4.jar: <Apr 23, 2003 3:36:27 PM CDT> <Error> <Posix Performance Pack> <Uncaught Throwable in processSockets java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:750) at java.util.HashMap$EntryIterator.next(HashMap.java:792) at java.util.HashMap.putAllForCreate(HashMap.java:408) at java.util.HashMap.clone(HashMap.java:624) at java.util.HashSet.clone(HashSet.java:217) at weblogic.socket.PosixSocketMuxer.closeSockets(PosixSocketMuxer.java:486) at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:589) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) The problem was solved with a code fix.
CR105426 | WebLogic Server ships with a file named wlntio_g.dll, which is a debug version of of wlntio.dll (and is required only for debugging purposes). WebLogic Server 6.0 Service Pack 2 included the wrong version of wlntio_g.dll, which could cause stack traces similar to the following when used for debugging: <NT Performance Pack> NATIVE.malloc(): allocated at 0x08DAD008 numAllocs 1 numFrees 0 NATIVE: start io on 1972 with addr 0x08dad008 NATIVE: GetQueuedCompletionStatus on 1972 with addr 0x08dad008 <May 6, 2003 11:17:19 AM EDT> <Error> <NT Performance Pack> <failure in processSockets() - GetData: 'weblogic.socket.NTSocketMuxer$GetData - native pointer: '0', numBytes: '0'' java.lang.NoSuchFieldError: fd at weblogic.socket.NTSocketMuxer.getNextSocket(Native Method) at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:589) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:24) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)> Service Pack 6 now includes the correct version of wlntio_g.dll.
CR105516 | In WebLogic Server 6.1 SP04, stateful session EJB failover did not work when multiple failovers were required In a three node cluster a JSP creates or calls a replica-aware stateful session EJB. The remote EJB stub is stored in the http session. After each call to the stateful session EJB the updated EJB stub is also updated in the http session to reflect any changes for the EJB replica list (primary/secondary). The following call sequence with the same browser window leads to a java.rmi.ConnectException when only one node of the cluster survives: 1. All three cluster nodes are running. 2. Making a call to node1, create EJB and store remote in http session (http session replication is enabled) 3. Kill node1 4. Make a call to the secondary node2, the EJB remote is retrieved from the replicated http session and the call to the EJB works fine. After this EJB call again the remote is stored in the http session. 5. Kill node2 6. Make a call to node3, get the EJB remote from http session. WebLogic Server tries to lookup the EJB on node2 and does not try to use node3 (this should now be the new secondary?). The following exception is thrown on node3: java.rmi.ConnectException: Could not establish a connection with -3088833905169218734S:172.23.64.38:[7001,7001,7002,7002,7001,7002,-1]:mydomain:managed2, java.rmi.ConnectException: Destination unreachable; nested exception is: java.net.ConnectException: Connection refused: connect; No available router to destination at weblogic.rjvm.RJVMImpl.getOutputStream(RJVMImpl.java:275) at weblogic.rjvm.RJVMImpl.getRequestStream(RJVMImpl.java:408) at weblogic.rmi.internal.BasicRemoteRef.getOutboundRequest(BasicRemoteRef.java:97) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:255) The problem was solved with a code fix.
CR105814 | In WebLogic Server 6.1 SP04, a customer saw close_waits running under AIX. Analysis revealed that when WebLogic Serve 6.0 clients connected to a WebLogic Server 6.1 instance, WebLogic Server leaked sockets. This occurred when WebLogic Server attempted to close the MuxableSocket via the muxer without registering the socket with the muxer—the socket was rejected after being claimed by t3, before it could be registered with the muxer. The problem was corrected with a code fix.
CR106957 | In WebLogic Server 6.1 SP04, running with IBM's MQWorkflow on AIX 5.2., invocation of an MQWorkflow Java API by a servlet in WebLogic Server resulted in an error in MQWorkflow. The problem was not exhibited under Window, if Native IO (Performance Pack) was disabled, or if the libmuxer.so library was removed from the classpath. Analysis revealed that WebLogic Server did not set the "language code", an encoding parameter, to "en-us" as it should, but to "c". The problem was corrected with a code fix.
CR107598 | In WebLogic Server 6.1 SP03 and SP04, restart of the Administration Server resulted in this error: java.rmi.ConnectException: This RJVM has already been shutdown The problem was reproduced consistently when beforing these steps: Configure a cluster with server instances on at least two machines. Deploy a sample EJB to cluster. Restart the Administration Server. Untarget the EJB from cluster Retarget the EJB to cluster. The following error resulted: <Feb 5, 2003 7:03:27 PM PST> <Info> <J2EE> <Undeployed: ejb_basic_statelessSession> java.rmi.ConnectException: This RJVM has already been shutdown -7152222714009328 37S:172.17.25.250:[7001,7001,7002,7002,7001,7002,-1]:mydomain:myserver at weblogic.rjvm.RJVMImpl.getOutputStream(RJVMImpl.java:280) at weblogic.rjvm.RJVMImpl.getRequestStream(RJVMImpl.java:408) at weblogic.rmi.internal.BasicRemoteRef.getOutboundRequest(BasicRemoteRef.java:97) at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:125) at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35) at $Proxy7.getMBeanServer(Unknown Source) at weblogic.management.internal.MBeanProxy.getAttribute(MBeanProxy.java:253) The problem was solved with a code change to remove stale MBean references.
CR109339 | In WebLogic Server 6.1 SP05, a security exception initializing kernel in applets. A code fix solved the problem.
CR109590 | In WebLogic Server 6.1 SP04, running with AIX, a method call made over IIOP to a remote object hung. The customer has a server (non-WebLogic Server) hosting remote objects. An EJB running on WebLogic Server calls a remote object on the non-WebLogic Server over IIOP. The method call hung indefinitely. The method call was simple—it returns a boolean type. The thread dump showed: "ExecuteThread: '11' for queue: 'default'" (TID:0x300C12A8, sys_thread_t:0x35649A58, state:CW, native ID:0x1011) prio=5 at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:429) at weblogic.iiop.SequencedRequestMessage.waitForData(SequencedRequestMessage.java:24) at weblogic.iiop.EndPointImpl.sendReceive(EndPointImpl.java:641) at weblogic.iiop.OutboundRequestImpl.sendReceive(OutboundRequestImpl.java:43) at weblogic.iiop.IIOPRemoteRef.invokeInternal(IIOPRemoteRef.java:128) at weblogic.iiop.IIOPRemoteRef.invoke(IIOPRemoteRef.java:90) at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35) at $Proxy70.isRunning(Unknown Source) at java.lang.reflect.Method.invoke(Native Method) at weblogic.iiop.IIOPInvocationHandlerImpl.invoke(IIOPInvocationHandlerImpl.java:285) at $Proxy71.isRunning(Unknown Source) at... Analysis revealed a classloader problem. A code fix resolved the problem.
CR110347 | In WebLogic Server 6.1 SP05 a lookup on context (and assigning to object) throws IllegalArgumentException if EJB stubs is not in classpath The problem occurred with a stateful session EJB (examples.ejb20.basic.statefulSession, shipped with WebLogic Server) deployed to a single WebLogic Server server. A JDNI lookup was performed on the EJB home object and the returned value was assigned to the class object. The client classpath contained weblogic.jar and no client classes. This code was used to perform the lookup on the context. Context ctx = new InitialContext(ht); Object objref = ctx.lookup("ejb20-statefulSession-TraderHome"); The lookup succeeded for latter succeeds for WebLogic Server 6.1 SP03 but failed on WebLogic Server 6.1 SP05. The exception was: java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: interface examples.ejb20.basic.statefulSession. TraderHome was not visible from the class loader With verbose classloading set for the JVM, it was found that the examples.ejb20.basic.statefulSession.TraderHome class was successfully loaded by the In WebLogic Server 6.1 SP03, although it was not in the classpath. With In WebLogic Server 6.1 SP05, the failure occurred when attempting to load that class. The problem was solved by a code change to ensure the ClientRuntimeDescriptor uses the current classloader, if it is a GenericClassLoader.
CR110892 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA03-35.jsp.
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.
CR117200 | In WebLogic Server 6.1 SP05, a deadlock in weblogic.socket.PosixSocketMuxer was detected when a Managed Server could note connect to the Administration Server. This is an extract from the thread dump: 1wasLKDEADLOCK Deadlock detected!!! NULL NULL 2LKDEADLOCKTHR Thread "ExecuteThread: '0' for queue: '__weblogic_admin_rmi_queue'" (0x8461B8A0) 3LKDEADLOCKWTR is waiting for: 4LKDEADLOCKMON sys_mon_t:0x84D183A8 inflaming: 0x00000000: 4LKDEADLOCKOBJ weblogic.socket.PosixSocketMuxer$FDRecord@31FD4B10/31FD4B18: 3LKDEADLOCKOWN which is owned by: 2LKDEADLOCKTHR Thread "ExecuteThread: '98' for queue: 'default'" (0x767D26E0) 3LKDEADLOCKWTR which is waiting for: 4LKDEADLOCKMON sys_mon_t:0x83AD8C18 inflaming: 0x00000000: 4LKDEADLOCKOBJ weblogic.rjvm.ConnectionManagerServer@31FA3430/31FA3438: 3LKDEADLOCKOWN which is owned by: 2LKDEADLOCKTHR Thread "ExecuteThread: '0' for queue: '__weblogic_admin_rmi_queue'" (0x8461B8A0) The following exception is also thrown: java.rmi.ConnectException: The connection manager to ConnectionManager for: 'weblogic.rjvm.RJVMImpl@2a7512ad - id: '8419466038107054512S:10.32.197.52:[7001,7001,-1,-1,7001,-1,-1]:bossapp:AdminServer' connect time: 'Fri. Aug 01 09:43:07 CST 2003'' has already been shut down at weblogic.rjvm.ConnectionManager.getOutputStream(ConnectionManager.java(Compiled Code)) at... Analysis revealed that PosixSocketMuxer hit the deadlock due to contention for the FDRecord and ConnectionManager locks. One thread holds the FDRecord lock and waits for a ConnectionManager lock, which is held by another thread which is waiting for the FDRecord lock to do a cleanup. A code fix removed the contention. Now, the FDRecord lock is not held during dispatch.
CR122280 | For context-wide sessions, WebLogic Server did not check if an object was Serializable before placing it in the session. This could lead to the error: Could not deserialize context attribute java.io.NotSerializableException: com.app.name at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java(Compiled Code)) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java(Compiled Code)) at weblogic.servlet.internal.AttributeWrapper.getObject(AttributeWrapper.java(CompiledCode)) at weblogic.servlet.internal.WebAppServletContext.getAttribute(WebAppServletContext.java(Compiled Code)) at weblogic.servlet.internal.WebAppServletContext.getAttribute(WebAppServletContext.java(Compiled Code)) The code was modified so that setAttribute() checks for a serializable object before adding it to the session.
CR123571 | 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.
CR124763 | Prior to WebLogic Serve Service Pack 6, all server instances in a cluster used the server listen port as the multicast port for cluster communication. There was no way for a cluster to use a multicast port different from the server listen port. This Service Pack introduces a new, optional Java property, -Dweblogic.cluster.multicastport=port_number, to specify the multicast port used in a cluster. To use the new property, all cluster members must specify the same -Dweblogic.cluster.multicastport value in their startup scripts. If the -Dweblogic.cluster.multicastport is not specified at startup time, servers continue to use the listen port as the multicast port for cluster communication.

Deployment

Change Request Number | Description
--- | ---
CR102324 | Prior to this Service Pack release, WebLogic Server did not log a nested exception associated with a deployment error. The logged text indicated only the deployment error, as in: <Mar 28, 2003 1:10:51 AM PST> <Error> <J2EE> <Error deploying application application_name: Caught IOException for path=path_to_application> The code was modified to log the nested exception as well as the deployment error itself, as in: <Mar 28, 2003 1:10:51 AM PST> <Error> <J2EE> <Error deploying application_name: with deployment error Caught IOException for path=path_to_application and nested error java.io.FileNotFoundException: File not found>

EJB

Change Request Number | Description
--- | ---
CR056023 | A CMP2.0 EJB accessing an Oracle database did not timeout when the database was locked. The problem was exhibited when running the ejb2.0 cmp example, with trans-timeout-seconds to a non-zero value such as "10", against a locked database table (the table was locked using SQLplus "lock table ejbaccounts in exclusive mode"). When the table was locked, and the client ran, the client hung indefinitely trying to create an account. After the database lock was released using SQLplus, a rollback exception occurred in the client. The rollback should occur when at the end of the transaction timeout. Analysis revealed that, when the timeout period expired, and the timer sent a TransactionRolledBack message to the database, the database did not release the lock. The problem was resolved, for the Oracle thin driver, for row-level locks by: Doing a canceAllStatementsBeingUsed in the internalRollback method of the weblogic.jdbc.jts.Connection class before calling a rollback on the connection. Introducing a new method, canceAllStatementsBeingUsed in the weblogic.jdbc.common.internal.ConnectionEnv class that iterates through all the open statements and calls cancel on them for the connection being rolled back, ignoring the SQL exception. The fix works only for the Oracle thin driver, for row-level locks.
CR098343 | In WebLogic Server 6.1 SP02 and SP04, JDBC connections were not returned to the pool when a transaction was distributed over two server instances. The JDBC attribute KeepXAConnTillTxComplete was set to true. This sequence of events led to the problem: Start a user transaction on one server instance 1. Put a JMS message into a persistent queue. The JMS server and queues are on server instance 2. Update an EJB on server instance 2. Commit the transaction. No error messages were generated. The updates were performed and the message was placed in the JMS queue. However, some connections remained 'in use' in the ejb connection pool. After repeating the sequence of steps several times, the connection pool runs out of connections. The problem did not occur if the actions are executed on a single server instance, or if the JMS message is placed in the queue outside the transaction scope. The problem was solved with a code change to release the connection in the aftercompletion callback.
CR099041 | In WebLogic Server 6.1 SP04, a customer reported random generation of the following exception while invoking methods in a particular EJB in his application: java.lang.ClassCastException: java.lang.String at weblogic.utils.classfile.DoubleKey.equals(DoubleKey.java:24) at java.util.Hashtable.get(Hashtable.java:318) at weblogic.utils.classfile.ConstantPool.find(ConstantPool.java:58) at weblogic.utils.classfile.ConstantPool.getUtf8(ConstantPool.java:251) at weblogic.utils.classfile.expr.ClassInfo.addField(ClassInfo.java:86) at weblogic.utils.classfile.expr.DotClassExpression.code(DotClassExpression.java:34) at weblogic.utils.classfile.expr.InvokeExpression.code(InvokeExpression.java:31) at weblogic.utils.classfile.expr.ExpressionStatement.code(ExpressionStatement.java:19) at weblogic.utils.classfile.expr.TryCatchStatement.code(TryCatchStatement The problem was corrected with a code fix to the equals() method in weblogic.utils.classfile.DoubleKey.
CR099626 | In WebLogic Server 6.1 SP03 ejbc generated invalid SQL for an ejbSelect query. The query failed because table aliases were generated incorrectly, resulting in this error: ORA-00904: invalid column name The problem was corrected with a code fix.
CR099760 | A field optimization was implemented for EJB 1.1 CMP beans, so that fields that are updated, but whose value did not change, are not written to back to the database. The optimization is only done for primitives and immutable objects.
CR100246 | A LockTimeoutException occurred during a test, upon attempt to remove a stateful EJB. The sequence of operations was: During test within the remote method of an entity bean, create a stateful session bean (local/localhome interfaces). Call business methods on the stateful session bean, which in turn create different types of beans. Try to remove the stateful session bean. On calling remove the following exception is thrown: Nov 18, 2002 12:51:33 AM PST> <Info> <EJB> <010049> <EJB Exception in method: remove: weblogic.ejb20.locks.LockTimedOutException: The lock request from EJB:LibraryInfoEJB with primary key:85335648642269185 timed-out after waiting 0 ms. The transaction or thread requesting the lock was:Thread[ExecuteThread: '6' for queue: 'default',5,Thread Group for Queue: 'default']. weblogic.ejb20.locks.LockTimedOutException: The lock request from EJB:LibraryInfoEJB with primary key:85335648642269185 timed-out after waiting 0 ms. The transaction or thread requesting the lock was:Thread[ExecuteThread: '6' for queue: 'default',5,Thread Group for Queue: 'default']. at weblogic.ejb20.locks.ExclusiveLockManager$LockBucket.lock(ExclusiveLockManager.java:449) at weblogic.ejb20.locks.ExclusiveLockManager.lock(ExclusiveLockManager.java:259) at weblogic.ejb20.manager.StatefulSessionManager.acquireLock(StatefulSessionManager.java:248) at weblogic.ejb20.manager.StatefulSessionManager.acquireLock(StatefulSessionManager.java The problem was solved by adding a new weblogic-ejb-jar.xml deployment descriptor element, <allow-remove-during-transaction>. When this element is set to true, the exception does not occur
CR101918 | The following error was thrown during ejb20 home methods tests, on NT with hotspot, and Native IO disabled: java.lang.IllegalStateException: zip file closed at java.util.zip.ZipFile.ensureOpen(ZipFile.java:377)atjava.util.zip.ZipFile.getEntry(ZipFile.java:138)at eblogic.utils.classloaders.ClasspathClassFinder.getSourcesInternal(ClasspathClassFinder.java:225)at weblogic.utils.classloaders.ClasspathClassFinder.getSource(ClasspathClassFinder.java:155)at weblogic.utils.classloaders.MultiClassFinder.getSource(MultiClassFinder.java:53)at weblogic.utils.classloaders.MultiClassFinder.getClassSource(MultiClassFinder.java:45)at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:303)at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:161)weblogic.rmi.internal.BasicRuntimeDescriptor.getClientRuntimeDescriptor(BasicRuntimeDescriptor.java:526)... Analysis revealed that the problem was related to uncanceled triggers during undeployment. The following correction solved the problem: rmic code was fixed to remove the static classloader entry in the Utilities class at the end of ejbc ExecuteThread was fixed to clean the contextclassloader before re-using the thread. ejb code was fixed for canceling the triggers when the cmp/bmp with exclusive concurrency was undeployed.
CR102028 | DB QueryString was generated incorrectly when using the Oracle thin driver for Connection Pool creation. Create a connectionPool using oracle thin driver. Run the test case ejb20/relations/FindersTest/testStringFunctionLOCATE(). The above test case can be run from the ejb20/relations/finder.ts file. Make sure the EJBs "ComputerEJB", "EmployeeEJB" and "FinderEmployeeEJB" use this connection Pool, created using thin driver. When this is run, we get "Invalid Character" error. The stack trace is javax.ejb.FinderException: Problem in findByNameEquals while preparing or executing statement: 'weblogic.jdbc.jts.PreparedStatement@55c5eb': java.sql.SQLException: ORA-00911: invalid character java.sql.SQLException: ORA-00911: invalid character at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol... THe problem was corrected with a code fix to generate the correct SQL query
CR102180 | In WebLogic Server SP03, ejbc failed while compiling stubs and skeletons for a .jar with 100 EJBs. The following exception occurred: java.io.IOException: CreateProcess: c:\VisualCafe\bin\sj.exe -classpath c:\java\java130\jre\lib\rt.jar; c:\java\java130\jre\lib\i18n.jar;c:\java\java130\jre\lib\sunrsasign.jar;c:\java\java130\jre\classes; c:/java/java130/lib/tools.jar;D:/weblogic/dev/src/3rdparty/jconnect/jConnect.jar;D:/weblogic/src_130sj/license;D:/weblogic/dev/src/3rdparty/oracle/816/classes12.zip; D:/weblogic/src_130sj/classes;D:/weblogic/src_130sj/lib/xmlx.jar;D:/weblogic/src_130sj/lib/ejb20.jar;D:/weblogic /dev/src/3rdparty/weblogicaux.jar;D:/weblogic/dev/src/3rdparty/cloudscape/lib/cloudscape.jar;D:/weblogic/src_130sj/classes_ifmx4; D:/weblogic/src_130sj/classes_mssql4;D:/weblogic/src_130sj/tools;c:/java/java130/jre/lib/rt.jar;D:\raviWork\ejb... The problem was a result of a compiler command line length limitation. It was solved by using the javac @tempfile feature, which allows file names to passed to the compiler using a temporary file.
CR102308 | In WebLogic Server 6.1 SP04, the Administration Console reported incorrect values for waiters for entity beans. The problem was solved by adding a waiterCurrentCount attribute that is incremented when a client starts waiting for a lock and decremented when the lock is acquired or the client times out.
CR103047 | It was reported in WebLogic Server 6.1 SP03 that transaction timeouts on MDBs were not logged. When the time an MDB takes to process a message from a JMS Destination exceeds the transaction timeout limit, the transaction is rolled-back and the message is place backed on the destination for re-delivery, but no transaction-timeout or transaction-rollback messages were logged. This problem was resolved by a code change to the MDListener code to report the transaction timeouts.
CR103978 | In WebLogic Server 6.1 SP02, a web application failed to obtain a remote object from a session under the following circumstances: A web application deployed on the Administration Server of Domain 1. An EJB was deployed to one Managed Server in a cluster in Domain 2. The web application did a lookup on the EJB using the URL of the Managed Server to which the EJB was deployed. The web application created a remote object and put it on the HttpSession The web application failed to obtain the remote object from the session with the following exception: <Apr 21, 2003 11:42:47 AM PDT> <Error> <HTTP Session> <Error reconstructing the EJBObject put into session for name: trader java.rmi.NoSuchObjectException: Unable to locate EJBHome: 'statelessSession.TraderHome' on server: 't3://acaoclust:7001 at weblogic.ejb20.internal.HomeHandleImpl.getEJBHome(HomeHandleImpl.java :80) at weblogic.ejb20.internal.HandleImpl.getEJBObject(HandleImpl.java:179) at weblogic.servlet.internal.session.SessionData.getAttribute(SessionDat a.java:390) at jsp_servlet.__remoteejb._jspService(__remoteejb.java:119) at weblogic.servlet.jsp.JspBase.service(JspBase.java:27) at The error occurred because the web application used the cluster URL to get the remote EJB object from the HttpSession, although EJB was deployed to a single Managed Server, not to the cluster. A code fix solved the problem. Now the EJB Handle (HomeHandle) uses the URL of the server to which the EJB is deployed, if the EJB home is not clusterable, as specified in the EJB's home-is-clusterable deployment element in the weblogic-ejb-jar.xml file. The cluster URL is used only when home-is-clusterable is true.
CR104414 | In WebLogic Server 6.1 SP04, server-side ejbc compilation errors resulted when the classpath was long. This error resulted: [EJBCompiler] : Compiling EJB sources Warning: UNIXProcess.forkAndExec native error: The parameter or environment lists are too long. <Apr 24, 2003 2:55:27 PM GMT> <Error> <J2EE> <Error deploying application applicationname: Unable to deploy EJB: monitor/EMAServerManager.jar from monitor/EMAServerManager.jar: Compiler failed executable.exec(java.lang.String[javac, -nowarn, -classpath, ................................long classpath which is not shown here............................................................) at weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java(Compiled Code)) at weblogic.ejb20.deployer.Deployer.runEJBC(Deployer.java(Inlined Compiled Code)) at weblogic.ejb20.deployer.Deployer.compileEJB(Deployer.java(Compiled Code)) The problem was solved by using in-line compilation by specifying the -compilerclass option, and using noexit instead of the callcompile flag so that the compile method of the compilerclass gets called.
CR105609 | A Null Pointer Exception was thrown when a WebLogic Server 6.1 SP04 servlet or stateless session bean invoked a stateful session bean deployed on WebLogic Server 6.1 SP02. The stack trace is: java.lang.NullPointerException at weblogic.ejb20.internal.HandleImpl.readExternal(HandleImpl.java:101) at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1212) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386) at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2263) at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:519) at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1412) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236) at java.util.ArrayList.readObject(ArrayList.java:531) at java.lang.reflect.Method.invoke(Native Method) at java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java:2214) at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1411) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:386) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:236) at Analysis revealed that the wire format of the handle is extended after WebLogic Server 6.1 SP02 to resolve handle issues related to differences for stateful session bean handles when the stub is stamped with the handle. In the case of stateless session beans, stubs are not added with handles. The problem was resolved by a code change to allow for the "no handle" case for stateless session beans.
CR106136 | In WebLogic Server 6.1 SP04, getter methods for a EJB 1.1 CMP bean did not call isModified() when delay-updates-until-end-of-tx was set to false A session EJB called an entity EJB's getter methods. Both EJBs had container managed transaction with transaction attribute set to Required. Each call to a getter method is followed by a call to ejbStore() and delay-updates-until-end-of-tx was false. However, before calling ejbStore on the bean the container did not call the isModified method. The isModified() method was only called when the transaction committed. ejbStore should be called from postInvoke() depending on the result of the isModified method in the bean. The problem was solved with a code fix.
CR111551 | In WebLogic Server 6.1 SP05, EJBC generated CMP code that caused a java.lang.ClassCastException: oracle.sql.BLOB error. Analysis revealed that the CMP RDBMS code generated for the query was incorrect. Prior to WebLogic Server 6.1 SP05, server-side JDBC went through the RMI drive, to the pool driver, then on to the DBMS driver. Starting in WebLogic Server 6.1 SP05, the RMI driver is now only invoked in external clients. Server-side client code accesses the pool driver directly, which returns the DBMS driver BLOBs directly, not wrapped in an RMI wrapper. This change requires that code cast directly to oracle.sql.BLOB instead of weblogic.jdbc.common.OracleBlob. The problem was solved by correcting the EJBC to generate code that reflects the SP05 and later behavior.
CR111771 | In WebLogic Server 6.1 SP02, the database was left in inconsistent state when a bean is undeployed. The problem occurred in this invocation scenario: webApp <--> OuterBean <--> InnerBean The beans are stateless session beans, using container-managed transactions, with trans-attribute=Required. OuterBean.m() inserts a row in a table, then calls InnerBean.m(), which inserts a row in a different table. Since the scenario happens within the context of a single transaction, both tables have the same number of rows. The beans are packaged in different jars. OuterBean caches the home of InnerBean and everything is deployed on a single server. InnerBean is untargeted from the server during the course of the test. In this case, the tables are left in an inconsistent state: OuterBean no longer inserts any rows in its table while InnerBean still does. Analysis revealed that when InnerBean was undeployed, TxManager.undeploy rolls back in-flight transactions and marks the instance as dead, so that no further transactions can be enlisted. OuterBean and InnerBean were packaged in the same enterprise application, and calls were by reference and did go through RMI. The home and the bean are cached in OuterBean, so even after InnerBean has been undeployed, the remote methods called are serviced. After InnerBean was undeployed, when OuterBean called InnerBean.insert(), there was a transaction associated with the call—the one started by OuterBean. In the preInvoke, the TxListener is set up and the transaction is register with the TxManager. While registering with the TxManager, the instance was determined to be dead, and WebLogic Server rolled back the transaction and silently return. As no transaction is enlisted, the database connection obtained within the InnerBean.insert() is not within the called transaction, so the rollback done in OuterBean has no effect on the row inserted by InnerBean—resulting in the situation where OuterBean no longer inserts any rows in its table while InnerBean still does. Silently returning, after rolling back the transaction because the bean is undeployed is the cause of the problem. The problem was solved with a code change to check the deployment status in the preInvoke of the BaseEJBManager, thus preventing calls from reaching a bean that has been undeployed.
CR115026 | In WebLogic Server 6.1 SP02, using MDBs listening on MQSeries, the MQSeries java threads on the WebLogic Server side were not correctly closed upon on an MQSeries failure and re-start of MQSeries. With every failure/restart the number of MQSeries AsyncThreads doubled. The problem was solved with improvements to the failure and cleanup code in JMSConnectionPoller.createJMSConnection().

JDBC

Change Request Number | Description
--- | ---
CR098343 | JDBC connections were not returned to the pool when a transaction was distributed over two server instances. The JDBC attribute KeepXAConnTillTxComplete was set to true. This sequence of events led to the problem: Start a user transaction on one server instance 1. Put a JMS message into a persistent queue. The JMS server and queues are on server instance 2. Update an EJB on server instance 2. Commit the transaction. No error messages were generated. The updates were performed and the message was placed in the JMS queue. However, some connections remained 'in use' in the EJB connection pool. After repeating the sequence of steps several times, the connection pool ran out of connections. The problem did not occur if the actions were executed on a single server instance, or if the JMS message was placed in the queue outside the transaction scope. The problem was solved with a code change to release the connection in the aftercompletion callback.
CR099872 | The message for the Exception during commit of transaction stack trace exception contained the connection pool name, but not the data source name. <Exception during commit of transaction Xid=39:74a54046e2c2bb30(5962554),Status=Rolled back. [Reason=ja vax.transaction.xa.XAException: JDBC driver does not support XA, hence cannot be a participant in two-phase commit. To force this participation, set the EnableTwoPhaseCommit property on the corresponding JDBCTxDataSource property, to true. Pool = CatPhase1]... The stack trace content was enhanced to include the name of the data source.
CR103046 | When using a JDBC connection pool, issuing Statement.close() did not release all resources associated with the underlying ResultSet, which could lead to an OutOfMemoryError. This problem occurred only when closing the Statement via a connection pool. It did not occur when explicitly closing the ResultSet itself, or when closing a statement while directly using the driver. This problem was solved with a code fix.
CR103299 | This Service Pack corrects an error in the leak detection code that caused the following stack trace: [SerialConnection] : Connection Leak detected!!!!!!java.lang.Throwable: StackTrace at creation of connection: Start server side stack trace: java.lang.Throwable: StackTrace at creation of connection: at weblogic.jdbc.rmi.SerialConnection.<init>(SerialConnection.java:47) at weblogic.jdbc.pool.Connection.writeReplace(Connection.java:1427) at java.lang.reflect.Method.invoke(Native Method)at java.io.ObjectStreamClass.invokeMethod(ObjectStreamClass.java:1615) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:303) at weblogic.common.internal.ChunkedObjectOutputStream.writeObject(ChunkedObjectOutputStream.java:115) at weblogic.rjvm.MsgAbbrevOutputStream.writeObject(MsgAbbrevOutputStream .java:82) at weblogic.jdbc.common.internal.RmiDataSource_WLSkel.invoke(Unknown Source) at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:398) at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:114) at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:339) at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:850) at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:334) at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest .java:30)at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:215) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:191) End server side stack trace
CR103321 | In WebLogic Server 6.1 SP04, the getConnectionsTotalCount() method of JDBCConnectionPoolRuntimeMBean did not behave as expected. Instead of returning the total number of JDBC connections in the pool since instantiation, it returned the maximum number of connections since instantiation. The problem was resolved with a code fix the method.
CR103421 | In WebLogic Server 6.1 Service Packs 3 and 4, transactions involving the BigDecimal datatype threw a SQLWarning exception if the transaction obtained a local DataSource before obtaining a remote DataSource. The text of the stacktrace was: java.sql.SQLException: java.sql.SQLWarning: Exhausted Resultset Start server side stack trace: weblogic.common.internal.WLSQLWarning: Exhausted Resultset at weblogic.jdbc.common.internal.DriverProxy.getWLSQLFromSQLException(DriverProxy.java:2 at weblogic.jdbc.common.internal.ResultSetProxy.execute(ResultSetProxy.java:716) at weblogic.t3.srvr.ClientRequest.execute(ClientContext.java:769) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) End server side stack trace This problem occurred because the T3 driver always queried the remote result set for getBigDecimal(), rather than querying the cached data. This problem was solved with a code fix.
CR103619 | This Service Pack fixes a problem with the isClosed() method and JTS connections. The problems were detected while running Sun's CTS for JDBC.
CR106767 | When applications try to close JDBC objects more than once, WebLogic Server now throws an exception.
CR108580 | WebLogic Server failed to check for a null pool name before creating a ConnectionLeakProfile object, causing the exception: java.lang.NullPointerExceptionat java.lang.String.<init>(String.java:193) at weblogic.jdbc.common.internal.ConnectionLeakProfile.<init>(ConnectionLeakProfile.java:21)at weblogic.jdbc.rmi.internal.ConnectionImpl.unreferenced(ConnectionImpl .java:144) at weblogic.rmi.internal.BasicServerRef$UnreferencedExecuteRequest.execute(BasicServerRef.java:702) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:234 at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:210) This problem was solved with a code fix.
CR112607 | If the URL or password for a connection pool was incorrect, WebLogic Server 6.1 Service Pack 4 still created a new JDBC connection pool with an initial capacity of 0. The code was modified to ensure that the creation of a JDBC connection pool fails if either the URL or password are incorrect.
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.
CR120531 | In WebLogic Server Service Pack 5, resetting a connection pool using weblogic.Admin RESET_POOL (or an equivalent API) caused an exception similar to the following if a connection was already released: <Aug 13, 2003 1:33:11 PM EST> <Error> <HTTP> <[WebAppServletContext(7096795,jdbc_webapp,/jdbc_webapp)] Servlet failed with Exception java.lang.Error: 1 Was already released:weblogic.jdbc.common.internal.Connection After a garbage collection, the server would then display a connection leak warning: <Aug 13, 2003 1:33:19 PM EST> <Warning> <JDBC> <A JDBC pool connection leak was detected. A Connection leak occurs when a connection obtained from the pool was not closed explicitly by calling close() and then was disposed by the garbage collector and returned to the connection pool. The following stack trace at create shows where the leaked connection was created. Stack trace at connection create: at weblogic.jdbc.pool.Connection.<init>(Connection.java:55) at [...] The code was fixed to eradicate the connection leak warning; the server still correctly displays the initial exception if a connection was already released at the time the pool is reset.
CR121671 | In WebLogic Server Service Pack 4, the weblogic.jdbc.jta.ResultSet.getType() method could recursively call itself and lead to a stack overflow exception: java.lang.StackOverflowError at weblogic.jdbc.jta.ResultSet.checkIfClosed(ResultSet.java:106) at weblogic.jdbc.jta.ResultSet.getType(ResultSet.java:507) at weblogic.jdbc.jta.ResultSet.getType(ResultSet.java:508) This problem was solved with a code fix.
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.
CR125705 | When using a JDBC MultiPool, WebLogic Server threw a resource exception to the client and failed to serve connections from a backup pool if the initial pool was fully reserved at the time of the connection attempt. The code was modified to throw a ConnectDeadException instead, which the MultiPool interprets as a reason to fail over to the next pool in its list.
CR127891 | The format of the connection leak file was modified to make the information more readable.

jDriver

Change Request Number | Description
--- | ---
CR104968 | WebLogic jDriver for Oracle/XA did not properly handle the NLS_NUMERIC_CHARACTERS parameter set by an Oracle RDBMS instance. This caused a java.sql.SQLException when retrieving double or float values if a comma (`,') was used as a decimal separator in the database: java.sql.SQLException: java.lang.NumberFormatException - '1,2' at weblogic.jdbc.oci.ResultSet.getFloat(ResultSet.java:312) at weblogic.jdbc.jta.ResultSet.getFloat(ResultSet.java:190) at weblogic.jdbc.rmi.internal.ResultSetImpl.getFloat(ResultSetImpl.java:224) at weblogic.jdbc.rmi.internal.ResultSetStraightReader.getFloat(ResultSetStraightReader.java:67) at weblogic.jdbc.rmi.SerialResultSet.getFloat(SerialResultSet.java:219) at examples.servlets.DBAccess.service(DBAccess.java:54) at [...] The problem did not occur with the non-XA version of WebLogic jDriver for Oracle. This problem was solved with a code fix.
CR107474 | In WebLogic Server 6.1 Service Pack 3, OciObjectStream did not nullify a buffer after a close() was performed. This problem was solved with a code fix.
CR113462 | WebLogic Server Service Pack 5 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.

JMS

Change Request Number | Description
--- | ---
CR103001 | WebLogic Server displayed an overly long exception if a server hosting a Messaging Bridge destination was unavailable. The code was fixed to display a shorter exception message.
CR104538 | A JMS deadlock was fixed by changing the BESession.java close(long lastSequenceNumber) method. The deadlock could be viewed in the partial thread dump: ExecuteThread: '9' for queue: 'queue_1'" daemon prio=5 tid=0x2757938 nid=0x5e waiting for monitor entry [0xce97f000..0xce97fc68] at weblogic.jms.backend.BETopic._addMessageToConsumers(BETopic.java:590) at weblogic.jms.backend.BETopic.addMessageToConsumers(BETopic.java:296) at weblogic.jms.backend.BEMessageWriteListener.storeIOComplete(BEMessageWriteListener.java:85) at weblogic.jms.store.StoreRequest.execute(StoreRequest.java:342) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) "ExecuteThread: '14' for queue: 'queue_2'" daemon prio=5 tid=0x57b200 nid=0x54 waiting for monitor entry [0xd1b7f000..0xd1b7fc68] at weblogic.jms.backend.BESession.stop(BESession.java:386) at weblogic.jms.backend.BESession.close(BESession.java:434) at weblogic.jms.backend.BESession.close(BESession.java:1083) at weblogic.jms.backend.BESession.invoke(BESession.java:1024) at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:585)....
CR112750 | When the server failed to send JMS messages, there was no error message on the client. The transaction manager had declared the messages unhealthy, and JMS was rolling back the messages when it failed to enlist resources. The failure to enlist the transaction is now communicated back to client, which will be able to report that the commit failed.
CR120619 | When you removed all targets from a JMS Server having a JMS Template and then tried to re-target the JMS Server, WebLogic Server threw an exception: <Aug 13, 2003 4:50:58 PM PDT> <Error> <JMS> <Failed to deploy JMS Server "server_name" due to weblogic.jms.common.JMSException: Error initializing JMSServer server_name. weblogic.jms.common.JMSException: Error initializing JMSServer server_name at weblogic.jms.backend.BackEnd.initialize(BackEnd.java:448) at weblogic.jms.JMSService.createBackEnd(JMSService.java:906) at weblogic.jms.JMSService.addJMSServer(JMSService.java:1273) at weblogic.jms.JMSService.addDeployment(JMSService.java:1169) at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:364) at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:150) at java.lang.reflect.Method.invoke(Native Method) [...] This problem occurred because the JMS service exported a temporary destination factory to the RMI runtime, and the factory reference was not removed when the factory was unbound from JNDI. The code was fixed so that the reference to the temporary destination factory is now removed when the factory is unbound. Untargeting and retargeting a JMS Server having a JMS Template no longer causes an exception.
CR122749 | Fixed a problem where calling EJBComponentRuntimeMBean.getEJBRuntimes() caused an ASSERTION FAILED error followed by an ArrayStoreException.
CR123675 | A problem in the optimization code for non-durable messages sometimes caused a destination to be nullified. This would result in the following exception while paging out messages under heavy loads: <Sep 12, 2003 9:54:12 PM EDT> <Error> <Kernel> <BEA-000802> <ExecuteRequest failed java.lang.NullPointerException. java.lang.NullPointerException at weblogic.jms.common.MessageImpl.writeExternal(MessageImpl.java:1622) at weblogic.jms.common.TextMessageImpl.writeExternal(TextMessageImpl.java:92) at weblogic.jms.store.ObjectIOBypassImpl.writeObject(ObjectIOBypassImpl.java:155) at weblogic.jms.store.BufferDataOutputStream.writeObject(BufferDataOutputStream.java:175) at weblogic.jms.store.FileIOStream.write(FileIOStream.java:506) at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:282) at weblogic.jms.store.JMSStore.execute(JMSStore.java:493) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170) The problem was solved with a code fix.

JNDI

Change Request Number | Description
--- | ---
CR105592 | In WebLogic Server 6.1 Service Pack 5 the server attempted to pop the environment from a ReadOnlyWrapper that did not push the environment onto a thread. This caused the following AssertionError and EmptyStackException: java.util.EmptyStackException at weblogic.utils.collections.Stack.pop(Stack.java:82) at weblogic.kernel.ResettableThreadLocalStack.pop(ResettableThreadLocalStack.java:79) at weblogic.jndi.internal.ThreadEnvironment.pop(ThreadEnvironment.java:18) at weblogic.jndi.internal.WLContextImpl.close(WLContextImpl.java:72) at weblogic.jndi.factories.java.ReadOnlyContextWrapper.close(ReadOnlyContextWrapper.java:30) [...] --------------- nested within: ------------------ weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ attempt to pop from an empty stack ] - with nested exception: [java.util.EmptyStackException] at weblogic.kernel.ResettableThreadLocalStack.pop(ResettableThreadLocalStack.java:81) at weblogic.jndi.internal.ThreadEnvironment.pop(ThreadEnvironment.java:18) at weblogic.jndi.internal.WLContextImpl.close(WLContextImpl.java:72) [...] The code was modified so that a pop is not attempted on a ReadOnlyWrapper.
CR105761 | This Service Pack includes a new JNDI caching mechanism that significantly improves the performance of JNDI lookups in the server.
CR100726 | WebLogic Server now properly logs a ClassNotFoundException if you target a stateless session EJB to a single member of a WebLogic Server cluster and you fail to set home-is-clusterable and stateless-bean-is-clusterable to false in the deployment descriptor.
CR110916 | WebLogic Server threw an EmptyStackException if a context was created in an ejbCreate() method and Context.close() was subsequently called in an ejbRemove() method. The partial exception text is: java.util.EmptyStackException at weblogic.utils.collections.Stack.pop(Stack.java:82) at weblogic.kernel.ResettableThreadLocalStack.pop(ResettableThreadLocalStack.java:79) at weblogic.jndi.internal.ThreadEnvironment.pop(ThreadEnvironment.java:18) at weblogic.jndi.internal.WLContextImpl.close(WLContextImpl.java:72) at javax.naming.InitialContext.close(InitialContext.java:476) [...] This problem was solved with a code fix.

JSP

Change Request Number | Description
--- | ---
CR088525 | In previous WebLogic Server 6.1 Service Packs, JSP parameters with a value of "/////" were interpreted by getParameter() as having the value "/". The problem was resolved with a code change.
CR092039 | WebLogic Server threw an UnsupportedEncodingException if you included extra quotation marks around the charset value of a JSP. For example, the following tag would yield the exception: <%@ page contentType="text/html; charset=\"Shift_JIS\"" %> The problem was resolved with a code fix.
CR093014 | In WebLogic Server 6.1 SP02, Java comments that start in one scriptlet and end in the next one, cause this exception: <22.07.2002 14:12:24 CEST> <Error> <HTTP> <[WebAppServletContext(7422744,DefaultWebApp,/DefaultWebApp)] Servlet failed with Exception weblogic.servlet.jsp.JspException: (line 12): scriptlet close brace '}' unbalanced at line 12 which breaks scope '_base_service_scope_' at weblogic.servlet.jsp.ScriptletScopeLexer.mCLOSE_BRACE(ScriptletScopeLexer.java:527) at weblogic.servlet.jsp.ScriptletScopeLexer.mTOKEN(ScriptletScopeLexer.java:232) at weblogic.servlet.jsp.ScriptletScopeLexer.nextToken(ScriptletScopeLexer.java:159) at weblogic.servlet.jsp.ScriptletScopeLexer.parse(ScriptletScopeLexer.java:119) at weblogic.servlet.jsp.JspLexer.mSCRIPT(JspLexer.java:4367) at weblogic.servlet.jsp.JspLexer.mSTANDARD_THING(JspLexer.java:2173) at .... The problem was resolved by a code fix to the make the ScriptletScopeLexer to skip an entire Java comment.
CR093520 | When you precompiled JSPs on a machine in one time zone, and then deployed those same JSPs on a server in a different time zone, WebLogic Server sometimes re-compiled the JSPs. This occurred because WebLogic Server checked JSPs by comparing the local timestamp of the JSPs (as embedded by the JAR utility) against the timestamps in the generated class files. The problem was resolved by storing the time zone at compile time and using that time zone at deployment time to determine whether recompilation is necessary.
CR100823 | If you refreshed a JSP with a copy, and the copy did not parse correctly, WebLogic Server entered a deadlock condition. The problem involved two separate deadlocks. The deadlocks were removed by throwing and evaluating an exception in the JSP stub level, and by removing unnecessary synchronization of threads in getJarFiles().
CR102628 | The following JSP code: <jsp:plugin type="applet" code="examples.applets.PhoneBook1.class" codebase="/bea_WebLogic Server_internal/classes/DefaultWebApp@DefaultWebApp/" height="800" width="500" type="applet" jreversion="1.3.1_06" nspluginurl="http://java.sun.com/products/plugin/1.1.3/plugin-install.html"; iepluginurl="http://java.sun.com/products/plugin/1.1.3/ jinstall-113-win32.cab#Version=1,1,3,0" > generated this HTML: <embed type="application/x-java-applet;version=1.3.1_06" pluginspage="http://java.sun.com/products/plugin/1.1.3/plugin-install.html"; height="800" width="500" code="examples.applets.PhoneBook1.class" codebase="/bea_WebLogic Server_internal/classes/DefaultWebApp@DefaultWebApp/"> The generated HTML code failed on Netscape: Netscape attempted to download the plug-in from WebLogic Server instead from the SUN site. When the plugins page line was moved before the codebase line, the code worked correctly on Netscape. A code fix to order the applet attributes properly resolved the problem.
CR103214 | When you set the compilerclass JSP parameter, WebLogic Server logged a compilerclass=null message in the startup log, as in: JSPServlet with initArgs '[JspConfig: verbose=true,packagePrefix=jsp_servlet,-compiler= C:\61sp4\jdk131/bin/javac,compileFlags=,workingDir=C:\61sp4\wlserver6.1\config\examples\applications\ examplesWebApp\WEB-INF\_tmp_war_examples_examplesWebApp,pageCheckSeconds=1,superclass=weblogic.servlet.jsp. JspBase,keepgenerated=false,precompileContinue=false, compilerSupportsEncoding=true,encoding=null,defaultfilename=index.jsp,compilerclass= null,noTryBlocks=false]'> The problem occurred because the setting of compilerclass was not used during startup. The correct setting was used for compiling JSPs. The code was fixed to obtain the correct parameter value during server startup.
CR105229 | WebLogic Server could fail to evaluate empty BodyTags, causing the exception: <ExecuteThread: '14' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <> <BEA-101017> <[ServletContext(id=12216222,name=xmlxTestApp,context-path=/xmlxTestApp)] Root cause of ServletException. javax.servlet.jsp.JspException: Could not find file: java.io.FileNotFoundException: Could not find appropriate xml file at weblogicx.xml.tags.XsltTag.doEndTag(XsltTag.java:280) at jsp_servlet.__xsltprocessor._jspService(__xsltprocessor.java:195) at weblogic.servlet.jsp.JspBase.service(JspBase.java:33) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6304) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:361 [...] This problem was solved with a code fix.
CR105772 | WebLogic Server displayed a JSP parsing error if a JSP used a tag library that specified an empty body tag using an empty element tag, as in: <%@taglib uri="/problem-taglib" prefix="c" %> <html> <head><title>Problem scenario</title></head> <body> <table border="1"><tr><th>Local file content</th> <th>Included file content</th></tr> <tr> <td>Cell containing data from the original JSP</td> <td><c:import url="IncludedResource.jsp" /></td> </tr> </table> </body> </html> The problem did not occur if a closing element tag was added to the empty body content, as in: <td>Cell containing data from the original JSP</td> <td><c:import url="IncludedResource.jsp" ></c:import></td> This problem was solved with a code fix.
CR106072 | The pageCheckSeconds attribute, which sets the interval, in seconds, at which WebLogic Server checks to see if JSP files have changed and need recompiling, did not work the first time a JSP was modified. This problem occurred because WebLogic Server did not set a lastStaleCheck time the first time a JSP was invoked. The code was modified so that if lastStaleCheck is not set yet, it is set to the current time. This prevents the JSP from being recompiled unnecessarily.
CR107042 | If you specified com.sun.tools.javac.Main as the value of the JSP compilerclass parameter, WebLogic Server would suddenly exit when you accessed the JSP. This problem was solved with a code fix.
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 was caused 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.
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.
CR127515 | In WebLogic Server 6.1 SP02 a javac error message through weblogic.jspc was corrupt in Japanese installation. The problem was corrected by a code change to use InputStreamReader instead of DataInputStream.

JTA

Change Request Number | Description
--- | ---
CR082504 | When using the Sybase jConnect/XA Driver, connections were not reusable after being returned to the connection pool. This would cause the following exception, after all available connections in the pool were used: XA error: XAER_RMERR : A resource manager error has occured in the transaction branch start() failed on resource 'ZeusPool': XAER_RMERR : A resource manager error has occured in the transaction branch javax.transaction.xa.XAException The problem occurred because Sybase initiates a local transaction for DDL calls, and the transaction was not cleaned up when the connection was returned to the pool. The connection cleanup code was fixed to end the local Sybase transaction generated by DDL calls.
CR091192 | This Service Pack includes an enhancement to recover transactional resource managers immediately, rather than wait five minutes before recovery.
CR091974 | If XA recovery did not return an XID, WebLogic Server 6.1 Service Pack 3 could throw a NullPointerException: java.lang.NullPointerException at weblogic.transaction.internal.ServerResourceInfo.rollback(ServerResourceInfo.java:721) at weblogic.transaction.internal.ServerSCInfo.rollback(ServerSCInfo.java:318) at weblogic.transaction.internal.ResourceDescriptor.rollbackXids(ResourceDescriptor.java:1160) at weblogic.transaction.internal.ResourceDescriptor.recover(ResourceDescriptor.java:1060) at weblogic.transaction.internal.ResourceDescriptor.access$9(ResourceDescriptor.java:1029) at weblogic.transaction.internal.ResourceDescriptor$1.execute(ResourceDescriptor.java:770) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) The code was modified to check for the presence of an XID and prevent the exception from occurring.
CR098273 | Stale entries in the transaction log sometimes caused unnecessary recovery overhead when a server is restarted. This problem was solved with a code fix.
CR103327 | After a transaction has timed out, two threads could try to roll back the same transaction ID, resulting in an error similar to: XA.end FAILED (rm=pool_name, xar=pool_name, error code: XAER_RMERR : A resource manager error has occured in the transaction branch, message: null> oracle.jdbc.xa.OracleXAException at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:659) at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:305) at weblogic.jdbc.jta.VendorXAResource.end(VendorXAResource.java:47) This problem was solved with a code fix.
CR103601 | In WebLogic Server 6.1 SP03 and SP04, if an object passed in the "equals" method of weblogic.transaction.internal.XidImpl is not an instance of XidImpl (for instance, it is of type String), then this exception is thrown: java.lang.ClassCastException: java.lang.String at weblogic.transaction.internal.XidImpl.equals(XidImpl.java:114) at test.main(test.java:9) The problem was solved with a code fix to check and report type mismatches.
CR113226 | When a resource name contained more than 64 characters, WebLogic Server 6.1 Service Pack 4 could throw the following exception when testing the connection pool: java.sql.SQLException: XA error: XAER_RMERR : A resource manager error has occured in the transaction branch start() failed on resource 'weblogic.jdbc.jta.DataSource' null at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1167) at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1133) at weblogic.jdbc.jta.Connection.getXAConn(Connection.java:153) at weblogic.jdbc.jta.Connection.prepareStatement(Connection.java:241) [...] 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.
CR126201 | In a multiple-server domain, if a Managed Server was rebooted to use a different address or port number, the JTA subsystem failed to update the address information. This would cause the following exception when the changed server was rebooted: javax.naming.CommunicationException. Root exception is java.net.ConnectException: t3://ip_address:port_number: Destination unreachable; nested exception is: java.net.ConnectException: Connection refused; No available router to destination [...] The code was fixed to obtain new address information from the Administration Server in response to an address or port change.

Node Manager

Change Request Number | Description
--- | ---
CR104285 | Node Manager's shared object code could cause a segment violation if certain code paths were taken while starting a server instance. The same code paths also failed when using IBM's zLinux JDK. These problems were solved with a code fix to Node Manager.
CR125829 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA03_42.00.jsp.

OA&M (Operations, Administration, and Management)

Change Request Number | Description
--- | ---
CR090118 | In WebLogic Server 6.1 SP03 and later, temporary directories created by the Administration Console deployment descriptor editor in under the bea\wlserver6.1 directory with name jarxxxx (for example, bea\wlserver6.1\jar7018) were not deleted. Analysis revealed that the temporary directories were not deleted because of a open file stream on an inner file. The problem was resolved with a code change.
CR093653 | In WebLogic Server 6.1 SP04, updates to an exploded web application that was deployed to a Managed Server were reflected in the exploded application staged on the Managed Server, but not in the .war file in the .wlnotdelete directory. After server restart the old version of the application was deployed. Refreshing the application using weblogic.refresh caused the updated .jsp to be copied into the exploded application format staged on the Managed Server, but not the original version of the .war. The problem was resolve by a code change to remove the application entry from the local deployment file.
    As a result of this change, the latest version of an application is copied from its source
    to a Managed Server's staging area when the Managed Server is restarted after a
    refresh.
CR093687 | In WebLogic Server SP03, a startup class that created a dynamic connection pool and targets it to a server instance, caused the server to hang, when LoadBeforeAppDeployments=true for startup class. No exception was reported. Analysis revealed a synchronization problem, which was corrected with a code fix.
CR095967 | In WebLogic Server SP03 and SP04, when a Managed Server and Administration Server were shutdown at the same time, the Managed Server tried to reconnect to the Administration Server. The problem was solved with a code change to ensure that Managed Servers do not attempt reconnect to the Administration Server while in shutdown or suspend modes.
CR097152 | In WebLogic Server SP03 and SP04, restarting the Administration Server resulted in the error: Admin restart causes java.rmi.ConnectException: This RJVM has already been shutdown. The issue was consistently reproduced using these steps: Configure a cluster such that the cluster instances on at least two machines. Deploy a sample EJB and target to cluster. Now restart the Admin server. Now go to console and untarget the EJB from cluster, apply and then retarget the EJB to cluster and Apply the changes. The problem occurred because weblogic.management.internal.MBeanProxy was using a stale stub of AdminMBeanHome, because the Administration Server was restarted and the AdminMBeanHome object instance (Dynamic Proxy Stub) was no longer valid. The problem was solved with a code change.
CR099973 | In WebLogic Server 6.1 Service Pack 3, using the UpdateLicense utility with the license_update_file failed to properly update the license file. This lead to the following exception when booting the server: $$$$$$$$$$$$$$$$ License Exception $$$$$$$$$$$$$$$$ Unable to start WebLogic Server !! WebLogic: license signature validation error! The problem was solved with a code fix.
CR102593 | In WebLogic Server 6.1 SP04, a ClassCastException occurred when retrieving ServletSessionRuntimeMBean. The problem was exhibited in a two-node cluster, on which an application retrieves the array of ServletSessionRuntimeMBeans from the WebAppComponentRuntime of each cluster node, for use in determining whether a a particular user has already logged on to one of the two nodes. The call sequence is as follows: call:node1 ---> test.jsp (HTTP Session is created) call:node2 ---> submit data from test.jsp (via GET) to /ctrl/* Servlet Repeating this call sequence several times in the same HTTP session leads to a ClassCastException in the WebAppComponentRuntime.getServletSessions() method: ClassCastException: java.lang.ClassCastException: $Proxy79 at weblogic.servlet.internal.session.SessionData.getServletSessionRuntimeMBean(SessionData.java:271) at weblogic.servlet.internal.session.SessionContext.getServletSessionRuntimeMBean(SessionContext.java:199) at weblogic.servlet.internal.session.SessionContext.getServletSessionRuntimeMBeans(SessionContext.java:216) at weblogic.servlet.internal.WebAppServletContext.getServletSessionRuntimeMBeans(WebAppServletContext.java:2442) at weblogic.servlet.internal.WebAppRuntimeMBeanImpl.getServletSessions(WebAppRuntimeMBeanImpl.java:126) at java.lang.reflect.Method.invoke(Native Method) at... The problem occurred because ServletSessionRuntimeMBean was cast incorrectly to the implementation—ServletSessionRuntimeMBeanImpl in SessionData.java. The problem was solved with a code change.
CR102860 | This release solves a JMX memory leak. The leak was detected running load tests on WebLogic Server 6.1 SP02. When running JMX for several days, the heap consumption after garbage collection grew from 17 to 40 MB.
CR103735 | In WebLogic Server SP03, if the domain and a cluster in the domain have the same name, duplicate entries appear for the Targets attribute in the domain's config.xml file. The following was observed: When an application was first targeted to the cluster through the console, there were no problems, and the target was correctly reflected in config.xml. After restarting the Administration Server, the Administration Console did not show that the application was targeted to the cluster, and a Managed Server in the cluster did not show the application as bound in its JNDI tree. The target was still correctly reflected in config.xml. After the user re-targeted the application to the cluster using the Administration Console, config.xml showed the cluster name twice in its Targets attribute. <Application Deployed="true" Name="seb" Path=".\config\rom\applications"> <WebAppComponent Name="seb" Targets="rom,rom" URI="seb.war"/> </Application> The problem occurred because, in any version of WebLogic Server, all targets domains, clusters, servers, virtual hosts) must have unique names. The problem was solved with a code change to modify tweblogic.managment.internal.UnresolvedMBean.java to ignore the DomainMBean when resolving in the case where the attribute is a target.
CR105338 | In WebLogic Server SP03, WebLogic Server stops logging, on both Administration Server and Managed Servers, when the maximum number of files is reached. After the following error messages are printed out to the domain log file, the server logging service is shutdown. ####<Apr 21, 2003 3:17:39 PM GMT+09:00> <Alert> <Log Management> <KESATO01> <myserver> <ExecuteThread: '10' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <BEA-170017> <The log file .\myserver\myserver.log will be rotated. Reopen the log file if tailing has stopped. This can happen on some platforms like Windows.> ####<Apr 21, 2003 3:17:40 PM GMT+09:00> <Critical> <Logging> <KESATO01> <myserver> <ExecuteThread: '10' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <000000> <Handler: 'C:\bea81ga\mydomain\myserver\myserver.log' raised several exceptions. Shutting it down> ####<Apr 21, 2003 3:17:40 PM GMT+09:00> <Error> <Logging> <KESATO01> <myserver> <ExecuteThread: '10' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <000000> <Handler: 'C:\bea81ga\mydomain\myserver\myserver.log' raised exception when opening. Exception weblogic.logging.LogRotationException null> ####<Apr 21, 2003 3:17:40 PM GMT+09:00> <Error> <Logging> <KESATO01> <myserver> <ExecuteThread: '10' for queue: 'weblogic.kernel.Default'> <<anonymous>> <> <000000> <Handler: 'C:\bea81ga\mydomain\myserver\myserver.log' raised exception when opening. Exception weblogic.logging.LogRotationException null> If the problem occurs, all log messages are not printed out to the server log file. This problem occurs on the admin server and the managed server Analysis revealed that WebLogic Server closed log files during rotation and, if log rotation failed, the log files would remain closed. Log Rotation failed when WebLogic Server generated the wrong index for the new log file. Since it assumed that the file that had the latest time stamp is the latest index. It never checked to see if a file with the index already existed. WebLogic Server did not attempt to delete the log file if the log file already existed and did not check to see if the rename() was successful. In addition, for time based log rotation, on multi-CPU machines, multiple rotations happened within the same millisecond. The problems were changed with code fixes.
CR108448 | In WebLogic Server 6.1 SP05 restart of a Managed Server resulted in a warning. The Administration Server and Managed Server were running, and the Managed Server was shutdown. The Administration Server showed that the Managed Server was not running. Upon restarting the Managed Server, this warning was issued: <Warning> <Management> <c4wlg001> <node001> <ExecuteThread: '1' for queue: '__weblogic_admin_rmi_queue'> <system> <> <141029> <Unable to reconnect to Admin Server running at http://c4wlg001:7001 from Managed Server - node001.> weblogic.management.configuration.ConfigurationException: Server: node001 is already running. at weblogic.management.Admin.registerManagedHome2AdminHome(Admin.java:1679) at weblogic.management.Admin.reconnectToAdminServer(Admin.java:1637) at weblogic.t3.srvr.ServerRuntime.reconnectToAdminServer(ServerRuntime.java:413) at java.lang.reflect.Method.invoke(Native Method) at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:636) at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:621) at... The Managed Server starts successfully. Analysis revealed that a error check was performed at an inappropriate point, preventing the JNDI tree to be appropriately updated. The problem was corrected by a code fix.
CR108727 | In WebLogic Server SP04, running with CR071109_610sp2.jar, an Administration Server started with the command-line options: weblogic.management.discover.interval = 60 weblogic.management.discover.retries = 6 weblogic.management.internal.debug = true after a failure, (java.rmi.ConnectException is thrown) managed servers were discovered and re-connected successfully, but an OutOfMemoryError occurred. Subsequently, MBean invocations on managed servers failed with this exception: java.rmi.NoSuchObjectException: RemoteInvokable - id: '267' Analysis revealed that ManagedServerReDiscoveryChecker thread had stopped running, causing Managed Servers not to be discovered. The problem was solved with a change to retry logic to ensure that the discovery thread always runs when needed.
CR127860 | In WebLogic Server 6.1 SP05, shutdown classes were not called on Managed Servers when the Administration Server was not running. The following exception was thrown: <29.10.2003 10:48:16 CET> <Notice> <WebLogicServer> <Started WebLogic Managed Server "managed1" for domain "mydomain" running in Production Mode> <29.10.2003 10:49:54 CET> <Alert> <WebLogicServer> <The disabling of server logins has been requested by system> <29.10.2003 10:49:54 CET> <Alert> <WebLogicServer> <Server logins have been disabled.> <29.10.2003 10:49:54 CET> <Alert> <WebLogicServer> <Server shutdown has been requested by system> <29.10.2003 10:49:54 CET> <Alert> <WebLogicServer> <The shutdown sequence has been initiated.> <29.10.2003 10:49:56 CET> <Emergency> <Server> <Unable to initialize the server: 'Fatal initialization exception Throwable: weblogic.rmi.extensions.RemoteRuntimeException - with nested exception: [java.rmi.ConnectException: Could not establish a connection with 4622510611903127260S:172.23.64.209:[7001,7001,7002,7002,7001,7002,-1]:mydomain:myserver, java.rmi.ConnectException: Destination unreachable; nested exception is: java.net.ConnectException: Connection refused: connect; No available router to destination] java.rmi.ConnectException: Could not establish a connection with 4622510611903127260S:172.23.64.209:[7001,7001,7002,7002,7001,7002,-1]:mydomain:myserver, java.rmi.ConnectException: Destination unreachable; nested exception is: java.net.ConnectException: Connection refused: connect; No available router to destination at weblogic.rjvm.RJVMImpl.getOutputStream(RJVMImpl.java:276) at weblogic.rjvm.RJVMImpl.getRequestStream(RJVMImpl.java:428).. The problem was corrected with a code change to run shutdown classes before shutting down the management layer.
CR122538 | If a JMX client application used getAllMBeans() on a WebLogic Server, exceptions similar to the following were thrown: Exception in thread "main" java.lang.ClassNotFoundException: weblogic.management.descriptors.ejb11.MailServiceMBean at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:183) at java.lang.ClassLoader.loadClass(ClassLoader.java:294) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:281) at java.lang.ClassLoader.loadClass(ClassLoader.java:250) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:310) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at weblogic.management.internal.Helper.findClass(Helper.java:831) [...] --------------- nested within: ------------------ weblogic.management.configuration.ConfigurationError - with nested exception: [java.lang.ClassNotFoundException: weblogic.management.descriptors.ejb11.MailServiceMBean] at weblogic.management.internal.Helper.getAdminOrConfigMBeanInfo(Helper.java:118) [...] This problem was solved with a code fix.

Plug-ins

Change Request Number | Description
--- | ---
CR087204 | [Apache] In WebLogic Server 6.1 SP03, PathTrim and PathPrepend added unexpected "/" at the end of URL. After PathTrim was applied to the original URL and it results to '/', an extra '/' was appended to the PathPrepend variable. This problem was solved with a code fix.
CR091910 | [Apache] In WebLogic Server 6.1 SP03, the Apache plugin did not read PathPrepend when using <IfModule mod_weblogic.c>. The problem occurred with plugins for Apache 1.3.x and Apache 2.0.43. The problem was solved with a code fix.
CR092970 | [Apache] In WebLogic Server 6.1 SP04, the Apache plugin caused sockets to remain in the CLOSE_WAIT state. Analysis revealed that WebLogic Server did not close the socket when returning a sendRedirect. The problem was solved with a code fix.
CR092327 | [Apache] In WebLogic Server 6.1 SP04, setting the WLLogFile did not work when VirtualHosts were used. The log file defaulted to /tmp/wlproxy.log
CR100070, CR107200 | [Apache] When two virtual hosts are used in Apache server, each virtual host has defined its own WLLogFile. The value of this parameter keeps changing among two WLLogFile values defined for two virtual hosts. There were two problems: one, WebLogic Server was only setting WLLogFile once upon server startup; two, WebLogic Server set it before getting it from VirtualHost. Setting WLLogFile for each virtual host in the Apache plugin fixed the problems.
CR100601, CR105658, CR108747 | (NSAPI) The plug-in that shipped with WebLogic Server 6.1 Service Pack 3 used the WL-Proxy-Client-IP header to send client IP addresses. This caused problems in heterogeneous environments, because earlier servers expected the plug-in to use the X-Forwarded-For and Proxy-Client-IP headers to transmit client IP addresses. The code was fixed to include both the X-Forwarded-For and Proxy-Client-IP headers, as well as WL-Proxy-Client-IP, so that heterogeneous environments can retrieve client addresses without modification.
CR101937 | (NSAPI) If an HTTP request contained an expect-continue header, the plug-in would send a 100 (Continue) response even if the plug-in's client used HTTP/1.0. The code was fixed to comply with the HTTP/1.1 specification—the plug-in does not respond with a 100 (Continue) status if the client uses HTTP/1.0 or earlier (or if there was no expect-continue header in the request).
CR102616 | (NSAPI, Apache) The plug-in now supports dynamic DNS lookups on a DNS name when the name returns a list of IP addresses from the DNS server and the plug-in is configured with WebLogicHost = 'DNS name'.
CR105123 | (ISAPI) In all versions of WebLogic Server, DefaultFileName does not work if iisforward.dll is not used. The problem is exhibited when: Virtual Directory is configured. Mime type is configured to * (proxy everything). DefaultFileName is added to iisproxy.ini On a request for a directory that has no filename, the DefaultFileName is not used. The problem was corrected with a code fix.
CR105173 | (WLS-NSAPI) In WebLogic Server 6.1 SP04, 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] is logged in the webserver logs. This is unacceptable to our client who uses a webserver health monitoring tool to determine his server's health and this issue typically comes up when a request - > response takes a fair amount of time. The webserver health monitoring tools use a 500 error to indicate that something is wrong with the server's health and that since this is not a server health issue but the client terminating the response, the error if any should not be 500. Request response path is as follows: client -> proxyWebserver->plugin->wls and the expected response path is client <- proxyWebserver<-plugin<-wls However, after the Weblogic server has successfully sent the response, but the webserver has not completely sent it to the client, the client aborts the communication and a 500 error is logged in the webserver's access.log which normally indicates that something is wrong with the server. The Customer is of the opinion that a different error or none at all should be logged for such a situation A code change was implemented so that 500 errors are not generated if the client breaks the connection.
CR106764 | (NSAPI) A thread in the plug-in could obtain a critical lock for a long duration (5 minutes by default, or configured using WLIOTimeoutSecs), blocking all other threads and making WebLogic Server appear to hang. This problem was fixed with a code change to the plug-in.
CR107254 | (Apache) Because Hewlett-Packard ceased to support the HP Apache-based Web Server version 1.3.x, WebLogic Server removed the Apache 1.3 plug-in for HP.
CR108092 | (ISAPI) In WebLogic Server 6.1 Service Pack 4, the ISAPI plugin logged an unhandled exception error in the Windows event log when it encountered a modified cookie. The event text began with the line: The HTTP Server encountered an unhandled exception while processing the ISAPI Application. This problem was solved with a code fix to the ISAPI plugin.
CR109755 | [Apache] The plug-in ignored configuration parameters that contained regular expressions other than wildcard characters (*/?). This could cause 404 errors to occur when using parameters such as: LocationMatch "/weblogic/(abc|def)/ghi" This problem was solved with a code fix.
CR110664 | (NSAPI) The plug-in code failed to catch an exception, which in turn caused iPlanet server to crash during the sendResponse phase. The plug-in code was changed to catch the exception.
CR111167 | (ISAPI) In WebLogic Server 6.1 Service Pack 2, using the ISAPI plugin resulted in HTTP responses having two Date headers: one inserted by WebLogic Server and one inserted by IIS. This duplication of Date headers caused problems with certain caching services that expected a single Date header. The problem was solved by updating the ISAPI plugin to filter out the Date header inserted by WebLogic Server.
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.
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.
CR121341 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA03_39.00.jsp.
CR121688 | (Apache) The plug-in failed to parse a cookie if the exclamation character, "!", was replaced by "%21" in a URL This replacement is commonly done by WAP gateways when using URL rewriting. The code was fixed to correctly parse the characters in the URL.
CR121943 | [Apache] The plug-in did not parse cookies when "%1" is replaced with "%21" in the URL. This replacement occurred when using a WAP gateway and URL rewriting. The problem was solved with a code fix.
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.
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.
CR122755 | (ISAPI) In WebLogic Server Service Pack 4, 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.
CR123120, CR123775 | (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.
1. > CR123925 | (ISAPI) The plug-in would sometimes respond to the browser with a 500 error message. This problem had three additional symptoms: The IIS access log would show the message:
   >     Out-of-process+ISAPI+extension+request+failed. 500 1726
   >     99122 2003 84078
2. > The Windows Event Log would record Event ID 37:
   >     Event Type: Warning
   >     Event Source: W3SVC
   >     Event Category: None
   >     Event ID: 37
   >     Date:  8/26/2003
   >     Time:  6:45:03 PM
   >     User:  N/A
   >     Computer: name
   >     Description:
   >     Out of process application '/LM/W3SVC/2/Root/caf'
   >     terminated unexpectedly.
   >     For additional information specific to this message please
   >     visit the Microsoft Online Support site located at:
   >     http://www.microsoft.com/contentredirect.asp.
3. > The wlproxy.log entry showed:
   >     Fri Nov 21 19:06:31 2003 Write to the browser failed:
   >     calling URL::close at line 1270 of .\iisproxy.cpp
   >     Fri Nov 21 19:06:31 2003 *******Exception type
   >     [WRITE_ERROR_TO_CLIENT] raised at line 1271 of
   >     .\iisproxy.cpp
This problem was solved with a code fix.
CR124433 | (ISAPI) If IIS was configured with WlForwardPath=/, the plug-in would try 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.
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.
CR125545 | (NSAPI) When a client stopped a response from being sent to it (for example, by closing the browser before the response had completed), the plug-in wrote a 500 [WRITE TO CLIENT ERROR] to the Web server log file. This could cause problems with health monitoring tools that interpret the 500 error as a problem in the Web server. This problem was solved with a code fix.
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 Diagnosis revealed that the Reader::fill() method was not allocating enough memory while growing the initial buffer. 4 bytes to mark the end of buffer were getting lost and which resulted in the core dump. The problem was solved with a code fix.
CR126103 | (NSAPI) During load testing, when NSAPI running on HP11.00 proxying to a 6 node cluster on 2 Solaris boxes (3 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. Analysis revealed that codes in proxy.cpp used strdup(), a native system call. strdup() allocates system memory to the program's heap space. WebLogic Server uses Iplanet's FREE macro to free previous allotted space when it is no longer needed. Because FREE does 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.
CR126568 | (NSAPI) Plugin does not handle %0A in the post request gracefully A POST request %0A at the end sent to WebLogic Server through the NSAPI plug-in was not handled gracefully. The request 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 it works fine. Customer needs a plugin which can handle %0A at the end gracefully. The problem was corrected by code change to the plug-in to detect and handle HTTP/0.9 responses correctly.
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 to not 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.

RMI

Change Request Number | Description
--- | ---
CR106281 | In WebLogic Server 6.1 SP04, replicated session beans under heavy load resulted in increasing heap usage and OutOfmemoryErrors. Analysis revealed that examples.ejb20.basic.statefulSession.TraderBean_5ysgq2_EOImpl objects were not being garbage-collected even when garbage collection was forced. For clustered stateful session beans, strong references were maintained to the EOImpl object primary in the weblogic.rmi.cluster.PrimarySecondaryRemoteObject. As a remove is never called on the bean, the reference to the EOImpl was never removed from the eoMap. A code fix was implemented to unexport the EO when the passivated bean has been deleted, after session-timeout-seconds.

RMI/IIOP

Change Request Number | Description
--- | ---
CR112991 | IIOP calls from a WebLogic Server 6.1 SP04 instance to an EJB running on a WebLogic Server 7.0 SP02 instance resulted in an exception when the IIOP connection idle timed out. The exception occurred on the WebLogic Server 7.0 side, when it tried to send back the response—the connection was closed. The exception is not sent to the 6.1 server, and the client thread hangs. The WebLogic Server 7.0 SP02 exception was: <Jul 29, 2003 5:21:55 PM PDT> <Error> <IIOP> <002013> <Complete failure to send exception class java.rmi.MarshalException: java.rmi.MarshalException: IOException while sending; nested exception is: java.io.IOException: Attempt to send message on closed socket. java.rmi.MarshalException: IOException while sending; nested exception is: java.io.IOException: Attempt to send message on closed socket java.io.IOException: Attempt to send message on closed socket at weblogic.iiop.MuxableSocketIIOP.send(MuxableSocketIIOP.java:362) at weblogic.iiop.EndPointImpl.send(EndPointImpl.java:1078) at weblogic.iiop.OutboundResponseImpl.sendThrowable(OutboundResponseImpl.java:194) at weblogic.rmi.internal.BasicServerRef.handleThrowable(BasicServerRef.java:473) at weblogic.rmi.internal.BasicServerRef.postInvoke(BasicServerRef.java:440) at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:328) at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189) > Analysis revealed that close connection messages were not being handled properly. The error was solved with a code change.
CR124377 | WebLogic Server sometimes threw a java.rmi.UnmarshalException when a client application using the thin-client .jar (wlclient.jar) accessed an EJB. On the server, partial exception was: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.io.IOException: Serializable readObject method failed internally. java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.io.IOException: Serializable readObject method failed internally at com.ejb_cvps36_EOImpl_WLSkel.invoke(Unknown Source) [...] On the client, the partial exception was: java.rmi.MarshalException: CORBA MARSHAL 0 No; nested exception is: org.omg.CORBA.MARSHAL: vmcid: 0x0 minor code: 0 completed: No at com.sun.corba.se.internal.iiop.ShutdownUtilDelegate.mapSystemException(ShutdownUtilDelegate.java:97) at javax.rmi.CORBA.Util.mapSystemException(Util.java:65) [...] This problem did not occur when using weblogic.jar on the client. The code was modified to address this problem.
CR128594 | Prior to this Service Pack, WebLogic Server could not handle typecode aliases when reading Java objects on AIX. The code was modified to discard the alias wrapper.
CR128660 | WebLogic Server used reflection on inbound contexts that it did not understand. This caused IIOP clients on AIX to fail, because the IBM ORB makes assumptions about the stream format based on the service contexts. The code was fixed to correctly handle service contexts so that IIOP clients can be used on AIX.

Security

Change Request Number | Description
--- | ---
CR067670 | If you configured WebLogic Server to use a custom security realm, and the realm was unavailable, WebLogic Server would not boot. This Service Pack introduces a new startup command, -Dweblogic.security.RealmFailureOk=true, that allows the server to start if the realm is unavailable. The command forces the server to start using the file realm, rather than the configured custom realm. This command is available only for WebLogic Server 6.x, and is not implemented in other server versions. Warning: Administrators must be cautious when using this command. If you have a custom realm that is configured only for authorization (not authentication) and the user store is the file realm, booting the server with -Dweblogic.security.RealmFailureOk=true may result in having no security. Use this option only to access the Administration Console and reconfigure the custom realm so that the server can boot normally. Do not allow applications to access the server you have booted with -Dweblogic.security.RealmFailureOk=true.
CR093292 | When the CR093292 patch was applied to WebLogic Server Service Pack 5, the server began logging messages such as: java.io.IOException: Length is Zero at weblogic.security.SSL.GenericCipher.input(GenericCipher.java:196) at weblogic.security.SSL.SSLCiphertext.input(SSLCiphertext.java:68) at weblogic.security.SSL.SSLSocket.getRecord(SSLSocket.java:1147) [...] These messages were intended only for debugging purposes. The code was fixed so that the messages are no longer logged.
CR093813 | The password used to access the encrypted private key in the Node Manager key file, weblogic.nodemanager.keyPassword, was in plain text and accessible. The problem was resolved by the creation of the Node Manager properties file, nodemanager.properties.
> CR100703 | Authenticated users could become unable to access WebLogic Server 6.1 SP04 after another user had been locked out. This problem could occur with Novell eDirectory. After a user had entered an incorrect password enough times to become locked out, other, authenticated users would become unable to access the server, receiving a 500 error similar to:
>     <[WebAppServletContext(7814505,security,/security)]
>     Servlet failed with Exception
>     netscape.ldap.LDAPException: error result (53); NDS error:
>     login lockout
>     (-197);
>     DSA is unwilling to perform
>     [...]
The problem was fixed in WebLogic Server by catching the LDAPException thrown in this case, and destroying the connection to the LDAP server.
CR102452 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/SA_BEA03_36.00.jsp.
CR102712 | Java clients that used HTTPS tunneling to access EJBs experienced poor performance and increased socket usage, as compared to clients that used HTTP tunneling. WebLogic Server created a new socket, rather than reusing sockets, for each request. This problem was solved with a code fix.
CR105443 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/SA_BEA03_36.00.jsp.
CR105513 | This Service Pack includes a new property, weblogic.security.SSL.trustManager, that you can use to specify the custom trust manager if you are using HttpsURLConnection to connect to another server. Using this property enables you to obtain the CA root in the SSL handshake for business logic purposes. Warning: This feature is implemented only in WebLogic Server 6.1, and it will not be made available in WebLogic Server 7.x or later releases.
CR108265 | In WebLogic Server 6.1 SP04, HTTP requests occasionally failed when CachingRealm.refresh() was called. This servlet synchronizes the cache and the database. The cluster used the RDBMS Realm as the Basic Realm. A simple health check HTTP request calling index.html of an Web application occasionally failed with this exception. <Error> <HTTP> <hanptl02> <managedServer2> <ExecuteThread: '9' for queue: '__weblogic_admin_rmi_queue'> <> <> <101020> <[WebAppServletContext(1014083,healthcheck02,/healthcheck02)] T_[ubgÍ Exception Éæè_¸"sµÜµ½_B> java.lang.NullPointerException: Start server side stack trace: java.lang.NullPointerException at weblogic.security.acl.GroupImpl.addMember(GroupImpl.java:46) at weblogic.security.acl.OwnerImpl.<init>(OwnerImpl.java:32) at weblogic.security.acl.AclImpl.<init>(AclImpl.java:164) at weblogic.servlet.security.internal.SecurityModule.auditPerm(SecurityModule.java:358) Analysis revealed that two threads were accessing the CachingRealm simultaneously; for example, the refresh servlet has cleared the cache, but the request to the index.jsp is attempting to find a user that has been cleared from the cache. The problem was solved with a code fix.
CR111041 | When a Web Application attempted to make an HTTPS connection and the handshake with the remote server stalled, WebLogic Server never timed out the associated SSL socket. This resulted in execute threads becoming "stuck" indefinitely, eventually locking the server. The code was fixed to ensure that timeout values are enforced with HTTPS connections.
CR112563 | WebLogic Server did not encrypt the private key password when storing the password to a file. The code was fixed to automatically encrypt the password when writing the password back to a file. Upon the first booting, WebLogic Server checks to verify that the password is encrypted, and encrypts it in the file if necessary. WebLogic Server uses the encryption service associated with the domain. This means that you can use the password file only with the domain in which it was created. Note: Secure a plain text copy of the private key password before you allow WebLogic Server to write the password to a file. You will not be able to retrieve the plain text password from the file after booting the server at this Service Pack level.
CR113459 | In WebLogic Server 6.1 SP05, with CR093813_61sp5.jar, removing the Node Manager properties file caused problems. The Node Manager properties file is always created in the <saved logs dir>/NodeManagerInternal directory. This customer periodically archives and deletes the contents of NodeManagerInternal. This removes the Node Manager properties file, so that the certificate password stored in the Node Manager properties file cannot be decrypted, and Node Manager will not work correctly. The problem was solved by a code change to create the Node Manager properties file in the directory specified by user.dir, if the file is not found in NodeManagerInternal, or in the user.dir directory.
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.
CR121206 | In WebLogic Server 6.1 SP05, the number of open LDAP connections kept increasing when using an external LDAP server. The problem was solved with a code fix.
CR121920 | In WebLogic Server 6.1 Service Pack 3, calling Socket.getSendBufferSize() when using WebLogic Server JSSE caused the following error: java.net.SocketException: Socket closed at java.net.PlainSocketImpl.socketGetOption(Native Method) at java.net.PlainSocketImpl.getOption(PlainSocketImpl.java:190) at java.net.Socket.getSendBufferSize(Socket.java:527) [...] The code was fixed to properly override and delegate getSendBufferSize().
CR121921 | The LDAPDelegate.groupContainsInternal() method performed a recursive search of the list of groups without first checking if the list contained the desired group. This performance problem was fixed by updating groupContainsInternal() to first iterate through the group list to determine if it contains the desired group.

Servlets

Change Request Number | Description
--- | ---
CR080998 | Versions of WebLogic Server 6.1 earlier that SP06 did not support the Range header field definition as described in section 14.35 of the HTTP/1.1 specification. This problem was solved with a code fix.
CR084455 | When WebLogic Server 6.1 SP03 was configured to log all HTTP requests in extended format, at the rotation time, the following error is thrown at approximately one minute intervals after the rotation is scheduled (which is the log flush time interval setting): ####<Aug 20, 2002 9:00:00 PM PDT> <Error> <HTTP myapp> <host2> <myserver> <ExecuteThread: '6' for queue: 'default'> <system> <> <000000> <Exception flushing HTTP log file> java.io.IOException: Failed to rename log file on attempt to rotate logs at weblogic.servlet.logging.LogManagerHttp.rotateLog(LogManagerHttp.java:168) at weblogic.servlet.logging.LogManagerHttp.access$2(LogManagerHttp.java:148) at weblogic.servlet.logging.LogManagerHttp$RotateLogTrigger.trigger(LogManagerHttp.java:432) at weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:238) at weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:229) at weblogic.time.server.ScheduledTrigger.execute(ScheduledTrigger.java:69) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) ####<Aug 20, 2002 9:00:05 PM PDT> <Error> <HTTP myapp> <host2> <myserver> <ExecuteThread: '7' for queue: 'default'> <system> <> <000000> <Exception flushing HTTP log file>... Analysis revealed that the log had been flushed inappropriately. The problem was solved with a code change to ensure that the log is not flushed on rotation, and to check for a null value for the log file name.
CR086234 | The indexDirectories feature of FileServlet was not internationalized, and therefore could not list or use multi-byte file names. This problem was solved with a code fix.
CR088785 | In HTTP access logs, WebLogic Server recorded only the stem portion of the URI, rather than both the stem and query portions, when the cs-uri field was specified. This problem was solved with a code fix.
CR092625 | WebLogic Server threw a NullPointerException when you enabled HTTP logging on a Managed Server that was booted with HTTP logging disabled and had no existing log file. On each HTTP access to the Managed Server, the following exception was thrown: java.lang.NullPointerException at weblogic.servlet.logging.LogManagerHttp.log(LogManagerHttp.java:292) at weblogic.servlet.internal.HttpServer.log(HttpServer.java:865) at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1044) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2265) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) The problem was solved with a code fix.
CR095945 | In WebLogic Server 6.1 SP05 running under Unix, CGIServlet, which extracts the cgiscripts in a WAR so that it can execute them, was calling the scripts without setting the current working directory. A fix was implemented to ensure that the current working directory is set so that cgi scripts can call subscripts, even in WAR webapps.
CR095981 | In WebLogic Server 6.1 SP01, SP02, SP03, and SP04, <charset-mapping> in weblogic.xml is ignored when compiling JSP file with precompile=true. As a result, some of double bytes characters are garbled because of the mismatch between the character's encoding specified in <charset-mapping> and in the compiled classes. Analysis revealed an error in the precompiler. The problem was solved with a code fix.
CR096459 | When invoking a flush in a Servlet or JSP in HTTP 1.0, WebLogic Server sometimes failed to close the socket, causing the client to wait for a period of time until the socket timed out. The problem was solved with a code fix.
CR100590 | An update to the HttpClusterServlet implementation changed the default SSL port number in the WebLogicCluster parameter to 443. The updated implementation also failed to report an error when the WebLogicCluster parameter was not specified correctly. A code fix was made to ensure that the HttpClusterServlet implementation matched the earlier behavior: WebLogicCluster again uses the format host:port:sslport for specifying the SSL port number. WebLogic Server logs an error if the SSL port is not specified, and uses the default SSL port of 7002.
CR100645 | Objects that implement the HttpSessionAttributeListener interface did not receive the correct value when calling HttpSessionBindingEvent.getValue() on events received via attributeReplaced(). Instead of returning the old attribute value, as stated in the Servlet 2.3 specification, getValue() returned the newer value. The problem was solved with a code fix.
CR101061 | Prior to this Service Pack, a call to weblogic.version did not show the correct version information if a patch had been applied to the WebLogic Server instance. The code was modified so that weblogic.version now shows the correct version and patch information in the format: WebLogic Server version date build with patch [, patch] [...] For example: WebLogic Server 8.1 03/20/2003 246620 with CRXXXX, CRXXXX, CRXXXXX
CR101838 | In WebLogic Server SP04, there was a change in the behavior of the CGIServlet that could affect the execution of CGI scripts having no filename extension. For example, if a web.xml file defined the CGI directory and Servlet mapping in the following way: <param-name>cgiDir</param-name> <param-value>/home/user/cgi-bin</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>CGIServlet</servlet-name> <url-pattern>/cgi-bin/*</url-pattern> </servlet-mapping> and stored a script named myscript in the /home/user/cgi-bin directory, a URL such as http://localhost/mywebapp/cgi-bin/myscript would map to /home/user/cgi-bin without specifying the script name. (This problem did not occur with scripts having an extension, such as myscript.ksh). The code was fixed to make the behavior match earlier releases of CGIServlet. Using the above example, the code fix ensures that the URL http://localhost/mywebapp/cgi-bin/myscript maps to /home/user/cgi-bin/myscript.
CR102262 | After parsing an HTTP request containing a null HTTP-Version field, WebLogic Server would throw the following exception: java.lang.NullPointerException at weblogic.servlet.internal.ServletRequestImpl.initInputEncoding(ServletRequestImpl.java:727) at weblogic.servlet.internal.ServletRequestImpl.mergePostParams(ServletRequestImpl.java:565) at weblogic.servlet.internal.ServletRequestImpl.parseQueryParams(ServletRequestImpl.java:489) at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java:686) at weblogic.servlet.internal.ServletRequestImpl.initSessionInfo(ServletRequestImpl.java:1481) at weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:1345) at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:1010) at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:910) at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:279) at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:403) at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:285) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:130) The code was fixed to use HTTP/0.9 as the default version when none is specified in the request.
CR102574 | Forcibly shutting down a client to a servlet caused increased memory usage in WebLogic Server, potentially leading to an OutOfMemoryError. The problem was solved with a code fix.
CR102689 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/SA_BEA03_36.00.jsp.
CR102769 | When logging HTTP transactions using extended log format, WebLogic Server did not record query parameters (cs-uri-query) for requests made from one Servlet or JSP to another. Also, WebLogic Server recorded the URI (cs-uri-stem) of the forwarded request, rather than the original request URI from the client. The code was fixed to ensure that the URI and query string of the original request are recorded in access.log when logging forwarded HTTP transactions.
CR103059 | A <url-pattern> value with a single character in a <servlet-mapping> element was not honored in a web.xml deployment descriptor. For example, <url-pattern>*.f</url-pattern> produced a 404 File Not Found error when attempting to access welcome.f, but <url-pattern>*.oop</url-pattern> worked properly when attempting to access welcome.oop. This problem has been resolved so that single character <url-patterns> now work as expected.
CR103256 | A code change resulted in performance improvement in JDBC regarding bubble caches in JDBCSessionContext and JDBCSessionData.
CR103289 | The HttpClusterServlet was not correctly parsing the session id from post data. If you sent a request through HttpClusterServlet to a cluster, establishing a session, and then sent a second request without a cookie but with the session id in the post parameters, the servlet did not recognize the session. The servlet is now able to extract the session id from the post data.
CR103339 | Servlet output capitalized the Transfer-Encode value, Chunked, instead of using lowercase chunked as required by the HTTP/1.1 specification. The code was fixed to ensure that Servlets use the Transfer-Encode type of "chunked" in lowercase.
CR103925 | The setAttribute method only checked for hashCode equality. It now also checks the result of the equals method for the old and new objects.
CR104975 | If a log rotation failed, WebLogic Server failed to reopen the log file. When this occurred, the trigger to flush the log file could throw a java.io.IOException: Bad file descriptor. The problem was solved with a code fix.
CR105016 | HttpClusterServlet failed to increase its failure count if a WebLogic Server in the cluster was hung. This caused HttpClusterServlet to go into an infinite loop if each server in a cluster slept for a time longer than HungServerRecoverSeconds, or if 2 out of 3 servers in a cluster slept longer than HungServerRecoverSeconds. The code was fixed to ensure that the failure count is properly incremented.
CR105339 | In Service Pack 5, WebLogic Server did not create variable definitions for tag calls that used the TagExtraInfo class. The code was fixed to ensure that the variable definitions are again created (as they were in Service Pack 4 and earlier).
CR106186 | If you set the buffer size to zero in a servlet, it would fail to respond and would initiate an infinite loop in the server. WebLogic Server would ultimately display a warning similar to: "Suspend Checker Thread" prio=10 tid=0x23eb90 nid=0xfec runnable <May 14, 2003 10:53:34 AM PDT> <Warning> <WebLogicServer> <000337> <ExecuteThread: '10' for queue: 'default' has been busy for "1,181" seconds working on the request "Http Request: servlet_uri", which is more than the configured time (StuckThreadMaxTime) of "600" seconds.> This problem was solved with a code fix.
CR107419 | JSP code that intended to set double byte characters as a parameter's value—for example: <jsp:include page="included.jsp"> <jsp:param name="title" value="<%= java.net.URLEncoder.encode(\"[double byte characters]\") %>"/> </jsp:include> —resulted in specified double byte characters being changed to their URL-encoded code. This problem has been resolved.
CR108607 | WebLogic Server produced errors when applications used XSL with the FOP output method to get an image from an archive file. This problem did not occur for applications deployed in exploded format. This problem was solved with a code fix.
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.
CR109958 | When processing requests through a proxy servlet, WebLogic Server only honored the SecureProxy setting for incoming requests that used HTTPS. If the incoming request used HTTP, WebLogic Server did not use an HTTPS connection even when SecureProxy was enabled in the proxy servlet. This problem was solved with a code fix.
CR110798 | Calling weblogic.servlet.security.ServletAuthentication.killCookie(req) in 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.
CR110914 | If TrackingEnabled was set to false, WebLogic Server created a new session for each request, but the sessions were not getting invalidated. The code was modified to invalidate a session immediately if TrackingEnabled is set to false. This is the correct behavior.
CR111752 | Under certain conditions, WebLogic Server threw a NullPointerException when using CGIServlet with the useByteStream parameter set to true. The problem occurred when using framesets where one frame contained static URL links and another frame used CGIServlet. If a user selected the frame containing static links before the other frame completed downloading a page, an IO exception was caught and presented to the user as: java.lang.NullPointerException at weblogic.utils.Executable$Drainer.run(Executable.java:366) This problem was solved with a code fix.
CR112799 | WebLogic Server attempted to write to an output stream even after an IOException occurred. This led to 100% CPU utilization if an unexpected socket disconnection occurred with a Web Application that did not handle IOException. org.apache.xml.serialize.XMLSerializer ignores IOException until the end of its process. This caused the problem to occur if an IOException was thrown in the middle of returning XML documents as part of an HTTP response. The code was modified to ensure that writes to an output stream stop after an IOException occurs.
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).
CR122177 | The fix for CR060023 in Service Pack 3 caused the FileServlet to return a response code of 200 instead of 404 when a file is not found. The code was fixed to return 404 for when a file is not found.
CR121846 | In WebLogic Server Service Pack 3, 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.
CR125718 | WebLogic Server Service Pack 5 could throw a NullPointerException when used with Apache and Netegrity's SiteMinder. An initial request forwarded through Apache to SiteMinder, and authenticated by SiteMinder, would also be successfully authenticated by WebLogic Server. However, if the user used the browser's Back button to return to the login page and authenticated again using a different username and password, WebLogic Server threw a NullPointerException: java.lang.NullPointerException at weblogic.servlet.security.internal.SecurityModule.logoutSession(SecurityModule.java:386) at weblogic.servlet.security.internal.SecurityModule.checkAuthenticate(SecurityModule.java:292) at weblogic.servlet.security.ServletAuthentication.weak(ServletAuthentication.java:353) at com.uprr.security.weblogic.SiteMinderAuthFilter.doPreAuth(Unknown Source) at weblogic.servlet.security.AuthFilter.service(AuthFilter.java:51) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:262) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:198) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:530) at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:350) at weblogic.servlet.security.internal.ServletSecurityManager.checkAccess (ServletSecurityManager.java:144) [...] This problem was solved with a code fix.

SNMP

Change Request Number | Description
--- | ---
CR088000 | When WebLogic Server 6.1 SP04, a SNMP shutdown trap was not received. 8-Oct-02 15:57:24 FAILURE mytest!0[41]!oam/systest/snmp/oam_snmp!2[69]!if!3[86]!weblogic.qa.tests.oam.systest.snmp.trap.SNMPTrapTest.testServerShutdownTrap() wlsServerShutdownTrap wasn't received. PARAMETERS: managedServerName = oamserver1 adminServerName = adminServer Analysis revealed that SNMP traps were not generated for Managed Server if the listen address or listen port are overridden with command line option. The problem was resolved with a logic change to use the listen port value from ServerMBean, rather than the one in the URL.

Web Services

Change Request Number | Description
--- | ---
CR099255 | When using two-way SSL to invoke a Web Service, and the client code uses the WSDL of the Web Service in its invocation, the client API now correctly sends the certificates both when making the WSDL lookup and when invoking the operation. Previously, certificates were sent only for the WSDL lookup and not for the actual invocation of the operation. This problem was solved with a code fix.
CR099534 | The wsgen Ant task has been optimized to use a new classloader for every Web Service it assembles from a single build.xml file. Previously, wsgen would use a single classloader for its entire execution, even if there were multiple Web Services listed in the build.xml file, and all auxiliary classes for each subsequent Web Service would be obtained from the single classloader and then copied, which was a sub-optimal way of generating all the needed class files. Depending on the number of Web Services in the build.xml file that had to be assembled, a full execution of wsgen could take over 30 minutes. This problem was solved with a code fix.
CR101383 | WebLogic Web Services now correctly represent a null xsd:dateTime value in the SOAP response as xsi:nil='true'. Previously, if a WebLogic Web Service returned an xsd:dateTime value that was null, it incorrectly represented it in the SOAP response as xsi:null='1', which is how the 1999 version of XML Schema defined null values. WebLogic Web Services support the 2001 version of XML Schema, which defines null values as xsi:nil='true'. This problem was solved with a code fix.
CR102677 | When using the XML Registry for external entity resolution, WebLogic Server no longer returns an error when resolving DTDs using the Public ID. This problem was solved with a code fix.
CR106892 | The generated WebLogic Web Services client stubs, when sending an XML document to a Web service as an org.w3c.dom.Element object, now correctly preserve any new-lines characters inside the body of an element in the XML file. Previously the client stubs would incorrectly convert these new-line characters to spaces. This problem was solved with a code fix.
CR111151 | WebLogic Web Services now correctly send the utf-8 encoding header in SOAP Fault responses that are generated as a result of an exception in the invocation of the Web Service. The complete correct header is: <?xml version="1.0" encoding="utf-8"?> Previously, WebLogic Web Services did not include this header in SOAP Fault responses. This problem was solved with a code fix.

WTC-ATMI

Change Request Number | Description
--- | ---
CR107323 | In WebLogic Server 6.1 SP03 configured to use Tuxedo 8.0, when WebLogic Server shut down abnormally (CTRL-C) while there were uncommitted Tuxedo transactions, upon restart, the WebLogic Server instance hung. The problem was exhibited in this scenario: WebLogic was killed while there are still uncommitted transactions with Tuxedo WTC is configure to be started "ON_DEMAND" Start WebLogic WebLogic hangs with the reported problem The problem was not exhibited when: WebLogic was killed while there are still uncommitted transactions with Tuxedo WTC is configure to be started "ON_DEMAND" Remove WebLogic tlog files "*.tlog" Start WebLogic WebLogic starts without any problem or when: WebLogic was killed while there are still uncommitted transactions with Tuxedo WTC is configure to be started "ON_STARTUP" Start WebLogic WebLogic starts without any problem When the hang occurs after a restart, all the threads in the default Group hang with the following stack trace: at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:415) at weblogic.wtc.jatmi.TuxXidRply.get_specific_reply (TuxXidRply.java:203)at weblogic.wtc.gwt.TuxedoXA.internalCommit(TuxedoXA.java:259) at weblogic.wtc.gwt.TuxedoXA.commit(TuxedoXA.java:328) at weblogic.wtc.gwt.OatmialCommitter.execute(WTCStartup.java:2767)at... The problem was solved by modifying the weblogic.wtc.gwt.WTCStartup method to sleep for one second after each Kernel.execute(myCommitter).
CR120681 | In WebLogic Server 6.1 SP02, WebLogic Tuxedo Connector did not properly translate local resource name to remote service name. A correction to the translation code solved the problem.

XML

Change Request Number | Description
--- | ---
CR102397 | The Xerces parser always attempted a call to System.getProperty(). This would throw an exception in an Applet, which does not have permission to retrieve properties. The following partial exception could be observed in an Applet making a JMS call: ----------- Linked Exception ----------- java.rmi.MarshalException: failed to marshal connectionCreate(Lweblogic.jms.dispatcher.DispatcherWrapper;); nested exception is: java.rmi.UnexpectedException: Failed to parse descriptor file; nested exception is: java.security.AccessControlException: access denied (java.util.PropertyPermission weblogic.apache.xerces.maxentityrefs read) [...] The code was modified so that the parser does not attempt to read system properties with Applet clients.

WebLogic Server 6.1 Service Pack 5 Solutions

The following sections describe problems resolved in WebLogic Server 6.1 Service Pack 5.

- Core

- Connector

- Console

- Core

- Deployment

- EJB

- Installer

- JDBC

- jDriver

- JMS

- JNDI

- JSP

- JTA

- Miscellaneous

- Plug-ins

- RMI

- RMI-IIOP

- Security

- Servlets

- WLS-Tour/Examples

- Web Services

- WebLogic Tuxedo

- XML

Cluster

Change Request Number | Description
CR082443 | In an environment with multiple clusters using the same multicast address, large log files resulted, causing overly frequent file rollover. The debug messages are similar to: ####<Jul 23, 2002 4:06:26 PM EDT> <Debug> <Cluster> <ustrntda01> <wts-cluster_test> <ExecuteThread: '9' for queue: 'default'> <> <> <000000> <dropped fragment from foreign domain/cluster domainhash=95475927 clusterhash=-1674453961> The problem occurred because, in weblogic.cluster.ClusterDebug.java, the flag controlling whether or not debug messages are logged was set to true. The problem was solved with a code fix.
CR087240 | HTTP session failover resulted in a ClassCastException, when the Managed Server hosting the session was shut down. Failover was successful when error message was ignored. This problem was reliably reproduced in this configuration: 1) Two clustered server instances, running 6.1 SP02. 2) Cluster hosted a WLP 4.0 sSP002 portal application. 3) One IPlanet web server with WebLogic Server plug-in pointing to the two-node cluster. The problem was not consistently reproducible in other configurations. This problem was associated with a problem in the WebLogic Server shutdown sequence. This problem was resolved by a new service to shutdown RMIServerService.
CR092146 | Failover did not work for a stateful session bean in a cluster. The request URL contained the local server name instead of the cluster DNS name. The following exception occurs: java.rmi.NoSuchObjectException: Unable to locate EJBHome: 'statefullCluster' on server: 't3://172.23.135.83:7600 at weblogic.ejb20.internal.HomeHandleImpl.getEJBHome(HomeHandleImpl.java:80) at weblogic.ejb20.internal.HandleImpl.getEJBObject(HandleImpl.java:204) at com.bea.cluster.testClusterEJBServlet.doGet(testClusterEJBServlet.java:137) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:262) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:198) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2637) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2359) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) Problem was solved by modifying the getURL() method in weblogic.ejb20.internal.BaseEJBHome.java to provide the cluster address as the host portion for the URL.
CR093809 | A stack trace resulted from a error looking up a session. A secondary server instance was being shutdown. While making a log entry for a request it served, the HTTP server tried to get the user information from the session. As a result it tried to look up the secondary server even though it was down, resulting in this stack trace. <Dec 26, 2002 7:17:55 PM EST> <Error> <HTTP Session> <Error looking up session for id:2LcR6Ool2IC5qNtFZhThJClYVYEXt9KWG2ciXmAXZ4XiBAHPiHx4!-1379505194!stcasfi01b.usa-ed.net!8001!7002!-1127797657!stcasfi02b.usa-ed.net!8001!7002 java.rmi.ConnectIOException: Server is being shut down Start server side stack trace: java.rmi.ConnectIOException: Server is being shut down at weblogic.rjvm.RJVMImpl.dispatchRequest(RJVMImpl.java:692) at weblogic.rjvm.RJVMImpl.dispatch(RJVMImpl.java:666) at... The primary server correctly selected a new secondary from the available server list, and no session data was lost. This problem was resolved with a code fix. Now, the server obtains user information from ThreadLocal, instead of the session.
CR094561 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA03-26.01.jsp.
CR101609 | In WebLogic Server 6.1 SP04, session replication stopped working after a failure to replicate a non-serialized object. Invocation of a JSP that tried to set non-serialized data into the session object, resulted in the expected exception: <Mar 19, 2003 2:58:23 PM PST> <Error> <Cluster> <All session objects should be serializable to replicate. Please check the objects in your session. Failed to replicate non serializable object> Then, for all subsequent requests, sessions were not replicated, and this exception occurred: <Mar 19, 2003 2:58:48 PM PST> <Debug> <Cluster> <Unable to create secondary for -8956818414963087828> The problem was solved with a code change. Now, when a non-serializable object is encountered, the method returns, instead of trying other secondaries.
CR102655 | Duplicate of CR101609. See above.

Connector

Change Request Number | Description
CR086251 | In WebLogic Server 6.1 SP03 the Messaging Bridge Adapter threw a NullPointerException in unregisterResource during shutdown. This occurred if messages have been sent but not consumed before the shutdown of the server has been initiated. The problem did not occur if Messaging Bridge is not deployed and the Adapter is. The configuration was: jms-xa-adp.rar Messaging Bridge Adapter and a Messaging Bridge between MQSeries 5.2 and JMS The problem was corrected with a code fix to check wrappedXARes beforing attempting to unregister.
CR090002 | In WebLogic Server 6.1 SP03, JCA-Connection.close throws java.lang.reflect.UndeclaredThrowableException instead of ResourceException A code fix was implemented to ensure that the resource adaptor's original exception is passed.
CR090792 | In WebLogic Server 6.1 SP03 and SP04, RAR deployment failed after any of its descriptor parameters were changed in console. Analysis revealed that any descriptor change in console caused reset of pool parameters if they had not been changed from default values. Pool parameters were inappropriately defined: <pool-params> <initial-capacity>0</initial-capacity> <max-capacity>0</max-capacity> <capacity-increment>0</capacity-increment> <shrinking-enabled>false</shrinking-enabled> <shrink-period-minutes>0</shrink-period-minutes> </pool-params> This caused deployment failure due to max capacity value 0 which is prohibited. No activities could be performed on RA after that. In 6.1, ResourceAdapterComponentMBean was used when getting descriptor values. However, ResourceAdapterComponentMBean constructor did not automatically have defaults set (the way ConnectorComponentMBean does) and also did not set defaults manually. The fix was to set them manually.

Console

Change Request Number | Description
CR062102 | A customer with large application (40 MB) migrating from 6.1 SP01 experienced network overload and slow WebLogic Server startup, as a result of WebLogic Server copying the application to Managed Servers at startup. A code change was made to address this problem. Now, unchanged applications are not copying to Managed Servers at startup. Use the forceApplicationCopy parameter to cause applications to be copied to Managed Servers at startup, whether changed or unchanged. See New Parameter for Forced Application Update.
CR069284 | When the "Auto Deployment Enabled" attribute on the Domain -> Configuration -> Applications page was turned off, application components were still deployed automatically when application file was copied to the applications directory. Investigation revealed that the "Auto Deployment Enabled" attribute is not used in WebLogic Server. Instead, auto deployment is controlled by the DomainMBean.setProductionModeEnabled property, which is set at startup on the command line. The AutoDeployedEnabled attribute has been removed from the Administration Console.
CR084607 | In WebLogic Server 6.1 SP03, an InstanceNotFoundException occurred when creating a JMS Topic at runtime in a cluster. The Topic was created with JMSHelper.createPermanentTopicAsync in a startup class targeted to a Managed Server in a cluster. After the Topic was created, when the user clicked Destination Link for the JMS Server in the Administration Console, this message was displayed : java.lang.reflect.UndeclaredThrowableException: javax.management.InstanceNotFoundException: mydomain:Name=testTopic12,Type=JMSTopic at com.sun.management.jmx.MBeanServerImpl.getMBean(MBeanServerImpl.java:1680) at com.sun.management.jmx.MBeanServerImpl.getAttribute(MBeanServerImpl.java:1152) at weblogic.management.internal.MBeanProxy.getAttribute(MBeanProxy.java:254) at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:187)
CR088842 | In WebLogic Server 6.1 SP02, in a configuration with an Administration Server and three Managed Servers, a deadlock when one of the Managed Servers was restarted. Analysis revealed that lookupServerRuntime() on a Managed Server resulted in unnecessary getMBean() calls to the Administration Server. The problem was resolved with a code fix.
CR089747 | In WebLogic Server 6.1 SP03, on Solaris Sparc 2.8, the domain log file did not rotate by time. Under Windows 2000, 3 log files were created, then rotation stopped. When old log files were deleted, rotation started again. For Windows 2000, log rotation worked after an upgrade from SP01 to SP03, but not with the fresh installation of SP03. The configuration for the domain log is: <Log FileName="config/mydomain/logs/wl-domain.log" FileTimeSpan="1" Name="mydomain" RotationType="byTime" RotationTime=10:00/> The problem was solved with a code fix.
CR091359 | In WebLogic Server 6.1 SP03 and SP04, the Administration Console option: Web Application->webapp1->Monitoring->Monitor all Active Web Applications... did not work for a web application inside an .ear file. The problem was resolved with a code fix.
CR093409 | A configuration with one Administration Server and five Managed Servers, running under WebLogic Server 6.1 SP02, Solaris 2.8, and JDK1.3.1_04, an attempt to deploy an EAR with 3 EJB components using weblogic.deploy utility from a different machine caused the Administration Server to hang. The thread dump reported a deadlock. The stack trace contained: Execute thread 4(admin_rmi queue) holds lock of the com.sun.management.jmx.MBeanServerImpl and waiting to acquire lock on weblogic.logging.LogManager. Execute thread 8(default queue) holds lock of the weblogic.logging.LogManager and waiting to acquire lock on com.sun.management.jmx.MBeanServerImpl. Analysis revealed a deadlock in the LogManager and FileStreamLogger. A code fix resolved the error.
CR096726 | In WebLogic Server 6.1 SP02, invocation of MBeanHome.deleteMBean() resulted in a null point exception. The configuration was four managed servers, each on a different physical machine, with a JMX client running against each (on one-to-one basis). The JMX clients encounter NullPointerException when doing a MBeanHome.deleteMBean. Analysis revealed that the problem was related to the asynchronous deletion of multiple Managed Servers. One Managed Servers deleted its references in other mbeans before deleting itself, while another Managed Servers does the same thing, resulting in null pointer exception. The problem was resolved by implementing try/except blocks around the code that obtains the metadata for an MBean (i.e., mbean.getMBeanInfo()). When deleting an MBean, a list of current MBeans in the MBeanServer is first obtained, then references to the bean being deleted are removed. The problem is, is that other delete threads are doing the same thing and thus may delete a bean in our (static) list, so when we go to get the meta-data on the bean to update it, we NPE. This patch ignores that NPE and we go to the next one in our list.
CR096950 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA03-28.jsp.
CR098623 | When a portal application, such as <beahome>\wlportal4.0\applications\portal was deployed as an EAR file, it was not possible to modify parameters in application-config.xml with the Administration Console. A code fix resolved the problem.
CR098739 | In WebLogic Server 6.1 SP02, a Java deadlock was detected in an Administration Server. The thread dump indicated a java level deadlock as follows, where Thread 8 holds the lock on RemoteMBeanServerImpl and tries to obtain one on LogManager, which is held by Thread 6 who is in turn waiting on RemoteMBeanServerImpl. Java Stack for "ExecuteThread: '8' for queue: '__weblogic_admin_rmi_queue'": at weblogic.logging.LogManager.addSubsystem(LogManager.java: 58) - waiting to lock <f55b6358> (a weblogic.logging.Log Manager) at weblogic.logging.LogOutputStream.getLogManager (LogOutputStream.java:32) at weblogic.logging.LogOutput Stream.error(LogOutputStream.java:63) at weblogic.management. internal.Helper.error(Helper.java:1391) at weblogic. management.internal.Helper.error(Helper.java:1404) at weblogic.management.internal.ConfigurationMBeanImpl. postDeregister(ConfigurationMBeanImpl.java:900) at com.sun. management.jmx.MBeanServerImpl.postDeregisterInvoker (MBeanServerImpl.java:2314) at com.sun.management.jmx.MBean ServerImpl.unregisterMBean(MBeanServerImpl.java:967) - locked <f550eec8> (a weblogic.management.internal.RemoteMBean ServerImpl) at weblogic.management.internal.RemoteMBeanServer Impl.unregisterMBean(RemoteMBeanServerImpl.java:213) at .. Java Stack for "ExecuteThread: '6' for queue: 'default'": at com.sun.management.jmx.MBeanServerImpl.getMBean(MBean ServerImpl.java:1672) at com.sun.management.jmx.MBeanServer Impl.getAttribute(MBeanServerImpl.java:1150) at weblogic. management.internal.MBeanProxy.getAttribute(MBeanProxy.java:254) at weblogic.management.internal.MBeanProxy.invoke (MBeanProxy.java:187) at $Proxy7.isStdoutEnabled(Unknown Source) at weblogic.logging.ConsoleLogger.isLog(Console Logger.java:81) at weblogic.logging.ConsoleLogger.log (ConsoleLogger.java:70) at weblogic.logging.LogManager.log(Log Manager.java:260) - locked <f55b6358> (a weblogic.logging.LogManager) at weblogic.logging.MessageLogger.log(MessageLogger.java:17) at weblogic.t3.srvr.T3SrvrLogger.logRemovingClientContextSoftDisconnect(T3SrvrLogger.java:1204) at weblogic.t3.srvr.ClientContext.dieIfTimedOut(ClientContext.java:512) at ... The problem was solved by a code change to remove unnecessary locks in LogManager.

Core

Change Request Number | Description
CR036602 | The ClusterMBean.setClusterAddress()method accepted an illegal value and did not throw an IllegalArgumentException. The problem was resolved by checking that the cluster address is during server startup.
CR036603 | The ClusterMBean.setMultiCustAddress() method accepted an illegal value and did not throw an IllegalArgument Exception. The problem was resolved by a code change.
CR077170 | In WebLogic Server 6.1 SP03, stopping a Managed Server after its Administration Server was shutdown caused an exception. The problem occurred with this sequence of actions: Start an Administration Server and a Managed Server. Shutdown the Administration Server. Invoke the 'stop' method on the ServerConfigMBean of the Managed Server. This exception resulted: Unexpected Exception Start server side stack trace: java.rmi.ConnectException: Unable to get direct or routed connection to: '-19546889165621794S:dwarkamai:[7001,7001,-1,-1,7001,-1,-1]:OAMdomain:adminServer' at weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:109) at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:127) at... The shutdown command from weblogic.Admin was successful. The problem was solved by catching the exception that occurs when shutting down Managed Server when Administration Server is down.
CR079354 | In WebLogic Server 6.1 SP02 a Java client accessing a DataSource via the Apache plug-in received a TunnelDeadResponse . WebLogic Server was running under running under Windows2000, and had patch CR061847. The plug-in was running under Solaris. The exception was: <May 31, 2002 4:16:35 PM PDT> <Error> <HTTPClientJVMConnection> <java.net.ProtocolException: Tunneling result not OK, result: 'DEAD', id: '2' at weblogic.rjvm.http.HTTPClientJVMConnection.receiveAndDispatch (HTTPClientJVMConnection.java:413) at weblogic.rjvm.http.HTTPClientJVMConnection.execute (HTTPClientJVMConnection.java:296) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)> When the plug-in was removed, the exception did not occur. Analysis revealed that WebLogic Server could not find an RJVM for the host/port combination, although one existed, because the rjvm manager's synonym cache did not maintain the port information. When WebLogic Server failed to find a match in the cache when bootstrapping, it created a new RJVM. After bootstrapping, WebLogic Server identified the new RJVM as a duplicate, and attempted to close it. In some cases, the message was not delivered to the server if queued. This caused the server to timeout on the RJVM and send a DEAD response. This problem was resolved by a code change to make the synonym cache maintain port information.
CR089470 | In WebLogic Server 6.1 SP03, Node Manager threw NumberFormatException when a client socket connects and then closes: <Oct 28, 2002 3:38:18 PM CST> <Info> <NodeManager@localhost:5555> <SecureSocketListener: listening on localhost:5555> java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Integer.java:382) at java.lang.Integer.parseInt(Integer.java:463) at weblogic.nodemanager.SocketInputHandler.run(SocketInputHandler.java:109) There were no discernible side effects. Node Manager could still start and stop Managed Servers after the error. A code fix was implemented to handle exceptions on sockets that are opened and closed with out any transfer of data.
CR070887 | In WebLogic Server 6.1 with or without SP02, setInstanceFollowRedirects() does not work. JDK1.3.1 introduced the following methods in java.net.HttpURLConnection: getInstanceFollowRedirects() and setInstanceFollowRedirects(). These methods can be used to disable URL redirects for a specific HttpURLConnection. HttpURLConnection was ignoring the flag set by setInstanceFollowRedirects(). The problem was solved by a code fix to HttpURLConnection's redirect logic to ensure process redirects in accordance with the setting of InstanceFollow Redirects.
CR077108 | During load testing of a 35-plus node cluster, a null pointer exception was encountered at weblogic.utils.collections.NumericValueHashtable. containsKey(NumericValueHashtable.java:138) <May 9, 2002 5:08:22 PM BST> <Error> <Management> <InvocationTargetException getting attribute SecondaryDistributionNames on MBean bluemartini:Location =WebConnectaw01,Name=WebConnectaw01,ServerRuntime=WebConnectaw01,Type=ClusterRuntime. Method: public java.lang.String[] weblogic.cluster.ClusterRuntime.getSecondaryDistributionNames() java.lang.NullPointerException at weblogic.utils. collections.NumericValueHashtable.containsKey(NumericValueHashtable.java:138) at weblogic.cluster.replication. ReplicationManager.getSecondaryDistributionNames(ReplicationManager.java:1245) at weblogic.cluster.ClusterRuntime. getSecondaryDistributionNames(ClusterRuntime.java:100) at java.lang.reflect.Method.invoke(Native Method) at weblogic.management.internal.DynamicMBeanImpl.getAttribute(DynamicMBeanImpl.java:511) at weblogic.management.internal. DynamicMBeanImpl.getAttribute(DynamicMBeanImpl.java:477) at com.sun.management.jmx.MBeanServerImpl.getAttribute(MBeanServerImpl.java:1181) at com.sun.management.jmx.MBeanServer Impl.getAttribute(MBeanServerImpl.java:1151) at weblogic.management.internal.RemoteMBeanServerImpl_WLSkel.invoke(Unknown Source) at weblogic.rmi.internal.BasicServer Ref.invoke(BasicServerRef.java:298) at weblogic.rmi. internal.BasicServerRef.handleRequest(BasicServerRef.java:267) at weblogic.rmi.internal.BasicExecuteRequest.execute (BasicExecuteRequest.java:22) at weblogic.kernel.Execute Thread.execute(ExecuteThread.java:139) at weblogic.kernel. ExecuteThread.run(ExecuteThread.java:120) Analysis determined that the getSecondaryDistributedNames() method should allow for null value from getOtherHost(). Problem resolved.
CR079354 | In WebLogic Server 6.1 SP02 and patch CR061847, a Java swing client obtaining context and accessing a JDBC data source received a TunnelDeadResponse. The client gets an initial context, gets a connection via a datasource, closes the initial context, closes the connection, and then repeats this sequence of processing. This error results: On the server, this exception was thrown: ####<Nov 21, 2002 12:24:20 PM CST> <Debug> <HTTPServerJVMConnection> <hpwlinc03> <admin> <ExecuteThread: '14' for queue: 'default'> <> <> <000000> <Closing JVM socket: 'weblogic.rjvm.http.HTTPServerJVMConnection@4cfbd8 - id: '0', closed: 'true', lastRecv: '1037903025816''> java.lang. Throwable: Stack trace at weblogic.rjvm.http.HTTPServer JVMConnection.close(HTTPServerJVMConnection.java:383) at weblogic.rjvm.ConnectionManager.removeConnection(ConnectionManager.java:879) at weblogic.rjvm.ConnectionManager. shutdown(ConnectionManager.java:508) at weblogic.rjvm. ConnectionManagerServer.shutdown(ConnectionManagerServer.java:443) at weblogic.rjvm.RJVMImpl.peerGone(RJVMImpl.java:804) at weblogic.rjvm.RJVMImpl.gotExceptionReceiving (RJVMImpl.java:533) at weblogic.rjvm.ConnectionManager.got ExceptionReceiving(ConnectionManager.java:736) at weblogic.rjvm.http.HTTPServerJVMConnection.checkIsDead(HTTPServerJVMConnection.java:238) at weblogic.rjvm.http.HTTPServer JVMConnection$TunnelScavenger.trigger(HTTPServerJVMConnection.java:405) at weblogic.time.common.internal. ScheduledTrigger.executeLocally(ScheduledTrigger.java:238) at weblogic.time.common.internal.ScheduledTrigger. execute(ScheduledTrigger.java:229) at weblogic.kernel.Execute Thread.execute(ExecuteThread.java:139) at weblogic.kernel. ExecuteThread.run(ExecuteThread.java:120) The client threw this exception: <Nov 21, 2002 12:24:18 PM CST> <Error> <HTTPClientJVM Connection> < java.net.Protocol Exception: Tunneling result not OK, result: 'DEAD', id: '0' at weblogic.rjvm. http.HTTPClientJVMConnection.receiveAndDispatch(HTTPCli entJVMConnection.java:413) at weblogic.rjvm.http.HTTPClient JVMConnection.execute(HTTPClientJVMConne ction.java:296) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread. java:120) Diagnosis revealed that a timeout occurred after WebLogic Server failed to find an RJVM for host/port combination, although it existed. The RJVM's synonym cache did not maintain port information. The problem was solved with a code fix to maintain port information in the RJVM's synonym cache.
CR080822 | In the Solaris distribution with Performance Pack, log messages showed an incorrect value for the file descriptor soft limit. The value of file descriptor hard limit was shown for both the soft limit and hard limit. This is the error in weblogic.log: ####<Mar 5, 2002 5:07:27 PM PST> <Info> <Posix Performance Pack> <bolinas> <myserver> <ListenThread> <system> <> <000000> <System has file descriptor limits of- soft: '1024', hard: '1024'> ####<Mar 5, 2002 5:07:27 PM PST> <Info> <Posix Performance Pack> <bolinas> <myserver> <ListenThread> <system> <> <000000> <Using effective file descriptor limit of: '1024' open sockets/files.> This error was exhibited under Solaris 2.6 and Solaris 2.8. The error was corrected by a syntax correction to associated script template. The incorrect syntax: [ !$? -a "$maxfiles" != 1024 ]; was replaced by: [ ! $? -a "$maxfiles" != 1024 ];
CR085259 | Session data was replicated across two separate WebLogic Clusters, hosted in a common domain, when each cluster used the same name for the session cookie. Problem was solved by implementing a check to verify that the secondary host/port is in the same cluster as the primary host for the session.
CR086425 | Duplicate of CR085259. See above.
CR086758 | In a multi-tier implementation, after ten hours of stress testing, the web tier hung. This occurred while the web tier (consisting of servlets, jsps, and custom classes that implement a custom cache) was communicating with the EJB tier (all stateless session beans), after the EJB tier closed the Connection Manager, due to missed RJVM heartbeats. Before the web tier hangs the following are the exceptions are thrown in the ejb tier. <Sep 24, 2002 8:43:58 AM PDT> <Info> <RJVM> <Failure in heartbeat trigger for RJVM: '7831636024374910916S:10.10.10.187:[8001,8001,8002,8002,8001,8002,-1]:webserver:sourcingWebserver' java.rmi.ConnectException: The connection manager to ConnectionManager for: 'weblogic.rjvm.RJVMImpl@3bedf2 - id: '7831636024374910916S:10.10.10.187:[8001,8001,8002,8002,8001,8002,-1]:webserver:sourcingWebserver' connect time: 'Tue Sep 24 06:15:16 PDT 2002'' has already been shut down at weblogic.rjvm.ConnectionManager.getOutputStream(ConnectionManager.java:1348) at weblogic.rjvm.ConnectionManager.createHeartbeatMsg(ConnectionManager.java:1306) at weblogic.rjvm.ConnectionManager.sendHeartbeatMsg(ConnectionManager.java:497) at weblogic.rjvm.RJVMImpl$HeartbeatChecker.trigger(RJVMImpl.java:1032) at weblogic.time.common.internal.ScheduledTrigger.executeLocally(ScheduledTrigger.java:238) at weblogic.time.common.internal.ScheduledTrigger.execute(ScheduledTrigger.java:229) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) Problem was solved by adding logic to assure that pending responses are notified of peer gone events.
CR087808 | In WebLogic Server 6.1 SP03 on a Sunblade 100 single-CUP Solaris machine, two independent server instances could not look up InitialContext on each other. After one server instance looked up InitialContext, when a second server instance on the the same machine tried to look up InitialContext on the same machine this exception resulted: <2002/10/09 4:23:56:JST> <Debug> <ConnectionManager> <Attempt to sendMsg using a closed connection> javax.naming.CommunicationException. Root exception is java.rmi.ConnectException: Attempt to sendMsg using a closed connection at weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:85) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:262) at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:229) at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35) at $Proxy45.lookup(Unknown Source) at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:341) at javax.naming.InitialContext.lookup(InitialContext.java:345) at com.bea.samples.servlet.TestServlet.service(TestServlet.java:40) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2546) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2260) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) The problem was not replicated on Sun Enterprise. The problem did not occur on Sun Blade, if the lookup was done using an IP address instead of localhost. Analysis indicated that client RJVM tried to close duplicate T3JVMConnections. It issued a CMD_REQUEST_CLOSE to the server and closed the RJVM. However, if the server queued this message, then the RJVM was marked as closed. The problem was solved by a code change to prevent RJVM shutdown when detecting duplicate connections and CMD_REQUEST_CLOSE does not get delivered to server.
CR087944 | Running under Windows XP resulted in a java.lang.UnsatisfiedLinkError: no muxer in java.library.path error. This is because WebLogic Server does not correctly report Windows XP as the host operating system. With JDK 1.3.1_03, os.name is returned "Windows 2000". Modification of a method in the SocketMuxer resolved the problem..
CR088022 | After starting Managed Servers with Node Manager, information about communications between the Administration Server and Managed Servers, such as the network channel used and the JVM ID, could not be viewed by right-clicking the server name in the left pane of the Administration console and selecting "View connections". Analysis revealed that the getConnections() method of ServerRuntimeMBean was returning zero connection object instances, due to an underlying bug in ConnectionManagerServer. The problem was resolved by a a code fix to ensure that connection manager reports on connections for which the RJVM is null.
CR088056 | WebLogic Server muxer libraries did not have build dates, making it difficult to determine which version of a library was in use. Although NTSocketMuxer had the build date/time embedded, PosixSocketMuxer did not. Problem solved by adding build date/time to PosixSocketMuxer. Now, the following message will be displayed when the muxer initializes: <Oct 15, 2002 3:44:04 PM PDT> <Info> <socket> <000406> <PosixSocketMuxer was built on Oct 15 2002 15:05:11>
CR089060 | Under OS/390 Linux (SuSE Linux Kernel 2.2), libmuxer.so threw this error: java.lang.UnsatisfiedLinkError: /opt/weblogic6/lib/linux/s390/libmuxer.so: /opt/weblogic6/lib/linux/s390/libmuxer.so: ELF file machine architecture not s390 at java.lang.ClassLoader$NativeLibrary. load(Native Method) at java.lang.ClassLoader.loadLibrary0 (ClassLoader.java:1799) The problem was resolved by providing binaries for the Linux Kernel 2.2.
CR089144 | Deployment of an EJB with a custom call router in the jar failed with IllegalArgumentException. The class failed to load because the classForName() method of the ReplicaAwareInfo class looked for classes in the system classloader instead of the ContextClassLoader on the current thread. Stacktrace: java.lang.reflect.InvocationTargetException: java.lang. IllegalArgumentException: Class weblogic.qa.tests.cluster. ejb.callrouter.BaseCallRouterImpl not found at weblogic.rmi. cluster.ReplicaAwareInfo.classForName(ReplicaAwareInfo.java:172) at weblogic.rmi.cluster.ReplicaAwareInfo.getCallRouter (ReplicaAwareInfo.java:132) at weblogic.rmi.cluster.Basic ReplicaHandler.newReplicaList(BasicReplicaHandler.java:78) at weblogic.rmi.cluster.BasicReplicaHandler.<init>(Basic ReplicaHandler.java:72) at java.lang.reflect.Constructor. newInstance(Native Method) at weblogic.rmi.cluster.Replica AwareInfo.instantiate(ReplicaAwareInfo.java:186) at weblogic.rmi.cluster.ReplicaAwareInfo.getReplicaHandler(ReplicaAwareInfo.java:117) at weblogic.rmi.cluster.ReplicaAware RemoteRef.initialize(ReplicaAwareRemoteRef.java:79) at weblogic.rmi.cluster.ClusterableRemoteRef.initialize(ClusterableRemoteRef.java:28) at weblogic.rmi.cluster.Clusterable RemoteObject.initializeRef(ClusterableRemoteObject.java:275) at weblogic.rmi.cluster.ClusterableRemoteObject.onBind (ClusterableRemoteObject.java:150) at weblogic.jndi. internal.BasicNamingNode.bindHere(BasicNamingNode.java:346) at weblogic.jndi.internal.ServerNamingNode.bindHere(Server NamingNode.java:105) at weblogic.jndi.internal.BasicNaming Node.bind(BasicNamingNode.java:281) at ... Problem was resolved by setting the context classloader to the application classloader while calling deploy() on ClientDrivenBeanInfoImpl and checking in the context classloader to load the call router class.
CR089454 | A new ability to throttle incoming request traffic by configuring the maximum length of an execute queue has been provided. The maximum length of an execute queue can be set with the new -D flag, weblogic.kernel.allowQueueThrottling. This capability is provided to help customers throttle "slow moving resource intensive" requests on a custom queue. Queue throttling is supported for custom application queues, not for default or WebLogic Server internal queues. When the configured queue length is exceeded calls to Kernel.execute() will result in client receiving a recoverable remote exception, and a 503 response.
CR090071 | A high volume of assertion failed errors occurred in PosixSocketMuxer.cleanup(), accompanied by a steady growth in the number of sockets in the CLOSE_WAIT state. ulimit was reached, and server instance restart was required. Problem was solved by implementing logic that checks if fdr.sock is null before throwing an assertion error in cleanup.
CR090341 | Erroneous failure duration was reported in t3.srvr.ListenThread calling logListenFailed(). This was a numeric error in a message generated when the server failed to listen due to an underlying IOException. Example of the message: <Jun 11, 2002 2:37:33 PM PDT> <Critical> <WebLogicServer> <Failed to listen on port 7772, failure count: 3, failing for 1,023,831,450 seconds, java.net.SocketException: File table overflow> The problem was fixed by correcting a typographical error in t3.srvr.ListenThread.
CR090823 | JSPs were recompiled unnecessarily for the e2e sample. The JSPs in e2edomain always got recompiled when running b2c and b2b examples. The time stamps of those JSPs were properly backdated, however. This problem resulted from a bug in the JspStub.getClassLoader method. Problem resolved by fixing the bug.
CR091420 | WebLogic Server 6.1 SP04 failed to start if the "Enable Post-Bind UID" option for a Unix Machine was checked. (This attribute can be configured in the Machines node of the Administration Console; its purpose is to return the Unix UID a server instance running a UNIX machine will run under after it has carried out all privileged startup actions). The problem was corrected with a code fix.
CR092704 | In WebLogic Server 6.1 SP02, hangs occurred frequently because socket reader threads were blocked. The thread that owned the POLL lock was attempting to close an SSL socket, but could not progress because it could not obtain the lock on the output stream required in the sendRecord() method. Stack trace: "ExecuteThread: '23' for queue: 'default'" daemon prio=5 tid=0x6d6c40 nid=0x24 waiting for monitor entry [0xe4e81000..0xe4e81a28] at weblogic.security.SSL.SSLSocket.sendRecord(SSLSocket.java:1049) at weblogic.security.SSL.SSLSocket.sendAlert(SSLSocket.java:1007) at weblogic.security.SSL.SSLSocket.close(SSLSocket.java:1153) at weblogic.security.SSL.SSLSocket.close(SSLSocket.java:1141) at weblogic.socket.SocketMuxer.closeSocket(SocketMuxer.java:236 A code fix was implemented to ensure that SSL sockets do not write data to sockets on close for abortive shutdowns.
CR092933 | Thread dump error occurred with this configuration: VM: java.version='1.3.1_02' os.name='windows 2000' java.vendor.url='http://java.sun.com/' Thread dumps failed because the JVM_DumpAllStacks symbol had not been globally declared for Hotspot client and Version 1.3.1_x virtual machines. Thread dumps using weblogic.Admin are now possible with 1.3.1_X hotspot client/server JVMs.
CR093416 | An EmptyStackException was thrown by a Managed Server when the Controller servlet was being deployed. The following error is thrown by a managed server when the Controller servlet is being deployed: [WebAppServletContext(35527,btn,/btn)] Servlet failed with Exception> java.util.EmptyStackException at weblogic.utils. collections.Stack.pop()Ljava.lang.Object;(Unknown Source) at weblogic.kernel.ResettableThreadLocalStack.pop()Ljava.lang.Object;(Unknown Source) at weblogic.jndi.internal. ThreadEnvironment.pop()Lweblogic.jndi.Environment;(Unknown Source) at weblogic.jndi.internal.WLContextImpl.close()V (Unknown Source) at weblogic.jndi.factories.java.ReadOnly ContextWrapper.close()V(Unknown Source) at be.btn.util. JndiUtil.getEnv(Ljava.lang.String;)Ljava.lang.Object;(Unknown Source) at be.btn.web.HttpControllerServlet.init()V(Unknown Source) at javax.servlet.GenericServlet.init(Ljavax.servlet. ServletConfig;)V(Unknown Source) at weblogic.servlet. internal.ServletStubImpl.createServlet()Ljavax.servlet.Serv let;(Unknown Source) at weblogic.servlet.internal. ServletStubImpl.createInstances()V(Unknown Source) at... The problem was related to the btn.utils.JndiUtils.getEnv() method—it closed the context that it got on lookup—java:com/env—so javaURLContextFactory was not pushing the environment. Problem resolved.
CR094101 | There was an interoperability issue between WebLogic Server 6.1 SP02 and WebLogic Server 7.0 SP01. An MDB in WebLogic Server 6.1 called an EJB in WebLogic Server7.0. The EJB is timed out and threw a weblogic.transaction.TimedOut Exception, which is new in WebLogic Server 7.0 and not available in WebLogic Server 6.1. The WebLogic Server 6.1 MDB onMessage() method caught the exception, and threw a ClassNotFoundException when the code Exception. printStackTrace() was executed. The problem was solved by adding a weblogic.transaction.Timed OutException class to prevent ClassNotFoundException when interoperating with WebLogic Server 7.0 servers.
CR094724 | In WebLogic Server 6.1 SP03 and later, WebLogic Server native libraries on HPUX were not being compiled using cfront, instead of aCC. aCC is the ANSI C compiler which replaced cfront in 1998. As a result incompatible runtime libraries were loaded(libC.2 from cfront compilation, and libCsup.2 from SUN's Java, compiled with aCC). Incompatible runtime libraries can cause crashes. The problem was solved by changing WebLogic Server builds to use aCC for hpux11
CR095267 | Duplicate of "CR094561".
CR095487 | Duplicate of "CR087808".
CR095949 | In WebLogic Server 6.1 SP04,when FailureIsFatal option for a startup class is true and and the startup class fails, WebLogic Server was not shutdown as expected. The StartupClassRunner is invoked before and after applications are deployed . Analysis revealed that if a startup class failed before application deployment, and was marked failureIsFatal, the fatalException was lost. The problem was solved by a code fix to ensure that the fatalException is not lost, and the the server instance is shutdown appropriately.
CR096114 | The change associated with "CR092933" which enables thread dump redirection in 1.3.1_x versions of Sun JDK, did not work in NT Services because the stdio handles were invalid. The problem was resolved by a code change, to create stdio handles in beasvc.
CR101322 | A customer used a custom realm that makes an outbound RMI call. This happens from BootServicesImpl.invoke() from within the RJVM layer on a reader thread. when many such calls are made, reader threads were blocked making outbound calls leaving no threads for reading the response. The problem was solved by moving BootServices into the RMI layer so that it can dispatch to the default execute queue.
CR102021 | In WebLogic Server 6.1 SP04, under load test, PosixMuxer threw the following exceptions <Nov 21, 2002 9:38:29 AM EST> <Error> <socket> <000421> <Uncaught Throwable in processSockets java.io.IOException: unexpected exception in poll: (4) Interrupted system call java.io.IOException: unexpected exception in poll: (4) Interrupted system call at weblogic.socket.PosixSocketMuxer.poll(Native Method) at... The problem was solved with a code change to restart poll if interrupted.
CR102058 | Use of URLClassLoader on the client on a remote method call resulted in a NoClassDefFoundError. c:\java\java131_07\bin\java -classpath ".;client.jar;C:\home\ravia\weblogic\dev\src700\3rdparty\weblogicaux.jar" URLTest qa146 9901 ejb20-statefulSession- TraderHome installadministrator installadministrator java.lang.NoClassDefFoundError: weblogic/rmi/extensions/server/Stub at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:488) at... Analysis revealed that when creating AugmentableSystemClassLoader, it was always set to SystemClassLoader. This caused the client to use its system classloader, resulting in the NoClassDefFoundError. The problem was solved by setting ThreadContextClassLoader as parent for AugmentableSystemClassLoader.

Deployment

Change Request Number | Description
CR089031 | After an upgrade from 6.1 SP02 with cr058358_61sp2.jar to SP03, a degradation in deployment performance occurred on a Managed Server. Degradation was not exhibited on the Administration Server. The problem was related to the weblogic.j2ee.Component.getModuleMBean() method , which was implemented for CR058358. Because ApplicationDescriptorMBean is only registered in the Administration Server, any requests to that mbean from a Managed Server resulted in RMI calls to the Administration Server. Problem was solved by building a local cache mbean (ApplicaitonDescriptorMBeanImpl_Cached) on the Managed Server. Now, the first method request goes to the Administration Server to retrieve the information and save locally. Subsequent requests are served locally, and the cache is invalidated when the application is undeployed.
CR089765 | Executing weblogic.refresh on Windows 2000 to update files (JSP or HTML) to WebLogic Server Administration Server and Managed Server running on Linux caused a java.util.zip.ZipException. The ZIP exception happens when WebLogic Server is configured as an Administration Server or Managed Server and the Web Application for which the weblogic.refresh is done is targeted to the Managed Server. When the Managed Server tries to get the refreshed files from the Administration Server, exceptions are thrown by both server instances. Exhibited in this configuration: WebLogic Server 61SP03 on Linux (Redhat, JDK1.3.1) (1 admin, 1 managed) Win2K, calling weblogic.refresh (WebLogic Server61SP3, JDK1.3.1) Problem diagnosis revealed an error in the file location path for the refreshed file from Managed Server to Administration Server, The problem was corrected by a correction to FileDistributionServlet.doGetMultipleJspRefreshRequest.
CR091897 | In WebLogic Server 6.1 SP04, deployment failed for a web application with a short name, such as like ab.war or i.war. This error occurred: java.lang.IllegalArgumentException: Prefix string too short at java.io.File.createTempFile(File.java:1232 at weblogic.j2ee.Component.retrieveComponent(Component.java:296 at weblogic.j2ee.Component.<init>(Component.java:188)at weblogic.j2ee.WebAppComponent.<init>(WebAppComponent.java:45at weblogic.j2ee.Application.addComponent(Application. java:149)at weblogic.j2ee.J2EEService.addDeployment (J2EEService.java:117)... The bug was corrected.
CR097560 | In WebLogic Server 6.1 SP04, when custom InitialContextFactory was set to weblogic.jndi.Environment, getInitialContext() instead used DEFAULT_INITIAL_CONTEXT_FACTORY . The problem was corrected by a code fix to ensure that the weblogic.jndi.Environment object considers InitialContextFactory, if specified.

EJB

Change Request Number | Description
CR063275 | WebLogic Server EJB did not provide the ability to write a finder method on a byte [] field. This was non-compliant with the J2EE EJB-QL definition: "The allowable types in EJB QL are the abstract schema types of entity beans and dependent objects, the defined types of cmp-fields, and the entity object types of remote entity beans." This problem was identified in WebLogic Server 6.1 SP01. This error occurred at build time: ejbc: [java] [java] ERROR: Error from ejbc: Error while reading 'META-INF/weblogic-cmp-rdbms-jar.xml'. The error was: [java] [java] invalid query: In EJB containerManaged, for a query defined in the ejb-jar.xml file with a method signature, findFk(byte[]), we failed to find a corresponding method in the remote home interface, local home interface, or bean class that matches this signature. Note that class parameters such as java.lang.String must be fully qualified, thus 'String' would not match 'java.lang.String'.[java] This problem has been fixed. WebLogic Server EJB now supports finder methods on a byte [] field.
CR063837 | In WebLogic Server 6.1 SP02, the following error was thrown when the EJB Container tried to verify the existence of database tables and columns that did not exist: weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Table: Cmp_Birthday Full Table Check failed, but table all columns were found! ] at weblogic.ejb20.utils.TableVerifier.verifyTableAndColumnsExist(TableVe rifier.java:371) at weblogic.ejb20.utils.TableVerifier.verifyTableExistsAndCreateMaybe(Ta bleVerifier.java:391) The problem was solved with a code fix.
CR076272 | When hot deploying an EJB, compilation errors were not helpful. For instance: <30 avr. 02 11:03:14 BST> <Error> <Management> <Error deploying application.\config\mydomain\applications\ldapprofile.jar:java.lang.reflect.UndeclaredThrowableException> Error reporting is now improved for hot-deployed EJBs. Now, run-time exceptions and errors are reported similarly to the method used in standalone ejbc. The server log and stdout will provide information to help the user understand the failure. For instance: <Oct 1, 2002 4:37:18 PM PDT> <Error> <J2EE> <Error deploying application ldapprofile: Unable to deploy EJB: ldapprofile.jar from ldapprofile.jar: java.lang.NoClassDefFoundError: com/bea/p13n/property/EntityPropertyManager at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:486) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111) at weblogic.utils.classloaders.GenericClass Loader.findLocalClass(GenericClassLoader.java:394) at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:157) at java.lang.ClassLoader.loadClass(ClassLoader.java:297) at java.lang.ClassLoader.loadClass(ClassLoader.java:253) at............
CR076386 | In 6.1 SP03, using a cmp-ejb with cmr-fields only generated incorrect SQL insert statements. This problem was exhibited with MS-SQL Server 2000 with Automatic-Primary-Key-Generation-TPYE : SQL_SERVER. The Container Generated SQL-Statement: Insert into tblLicence(, 5 , 7) values (,licCompID,licOrgID) where compID and orgID are foreign keys in the table which corresponds to this entity bean. After adding an cmp-field, the unmodified (empty) ejbCreate-Method generates the correct SQL: Insert into tblLicence(licArchivNR,licCompID,licOrgID)values (null , 5 , 7) The problem has been resolved, the container no longer generates an incorrect SQL Insert statement when the bean has only (pk) field and cmr fields.
CR080331 | In 6.1 SP03, deploying a version 5.1 EJB jar using the Administration Console resulted in a ProcessorFactoryException: Unable to deploy EJB: TxRolledbackExceptionBean.jar from TxRolledbackExceptionBean.jar: The XML parser encountered an error in your deployment descriptor. Please ensure that your DOCTYPE is correct. You may wish to compare your deployment descriptors with the WebLogic Server examples to ensure the format is correct. The error was: weblogic.xml.process.ProcessorFactoryException: The public id, "-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN ", specified in the XML document is invalid. Use one of the following valid public ids: "-//BEA Systems, Inc.//DTD WebLogic 5.1.0 EJB//EN" "-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN" This problem occurred because WebLogic Server 5.1 supported white space in the DTD declaration for deployment descriptors. The problem was solved by a code change to trim the extra spaces in the key string before searching for the parser in the hash table with this key.
CR083239 | The EJB QL NOT MEMBER clause no longer causes infinite looping.
CR083240 | The EJB QL NOT MEMBER clause in conjunction with WHERE no longer creates a bad query.
CR084978 | Added the Extra EJBC Options field to the Administration Console, so that heap size and other options can now be passed to ejbc via the Console.
CR087151 | For a stateless session bean, when the weblogic-ejb-jar.xml contains: <stateless-bean-is-clusterable>False</stateless-bean-is-clusterable> and the bean was deployed on a cluster, this error was generated: <Mar 14, 2003 3:35:00 PM PST> <Error> <Cluster> <Conflict start: You tried to bind an object under the name ejb20-statelessSession-TraderHome_EO in the JNDI tree. The object you have bound from 172.17.24.112 is non clusterable and you have tried to bind more than once from two or more servers. Such objects can only deployed from one server.> This problem was resolved by a code fix to ensure that JNDI bindings for non-clustered stubs are note replicated.
CR088526 | In WebLogic Server 6.1 SP03, the EJB container breaks the EJB2.0 contract: "Tx not set to rollback when using BMT and exception is thrown". Problem was exhibited with an MDB with BMT where the onMessage method throws an exception. The container did not handle the exception in accordance with the EJB2.0 specifications (Section 18.3.2 Table 18.) The container should log the exception (done) delete the bean instance (done), and mark the transaction for rollback (NOT done). As a result a transaction remained associated with the thread. A code fix was implemented to resolve this problem.
CR089759 | WebLogic Server 6.1:SP03: [EJB] : When calling context.getCallerPrincipal() from ejbStore() using UserTransaction context, the following exception is thrown: <Oct 24, 2002 5:52:24 AM PDT> <Info> <EJB> <Exception from ejbStore:javax.ejb.EJBException: ejbStore: nulljavax.ejb. EJBException: ejbStore: null at AccountBean.ejbStore(Account Bean.java:99)atAccountBean_t4qrab_Impl.ejbStore (AccountBean_t4qrab_Impl.java:131)at weblogic.ejb20.manager. DBManager.storeBean(DBManager.java:266) at weblogic.ejb20. manager.DBManager.beforeCompletion(DBManager.java:397) at weblogic.ejb20.internal.TxManager$TxListener.beforeCompletion(TxManager.java:494) at weblogic.transaction.internal. ServerSCInfo.callBeforeCompletions(ServerSCInfo.java:551) at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(ServerSCInfo.java:88)at weblogic.transaction. internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:979)at weblogic.transaction. internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:1503) at weblogic.transaction.internal. ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:215) at weblogic.transaction.internal.Server TransactionImpl.commit(ServerTransactionImpl.java:189)at weblogic.transaction.internal.CoordinatorImpl.commit(CoordinatorImpl.java:68) at weblogic.transaction.internal. CoordinatorImpl_WLSkel.invoke(Unknown Source)at weblogic.rmi. internal.BasicServerRef.invoke(BasicServerRef.java:305)at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:274) at weblogic.rmi.internal.BasicExecute Request.execute(BasicExecuteRequest.java:22) atweblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(Execute Thread.java:120)><Oct 24, 2002 5:54:53 AM PDT> <Info> <Management> <Configuration changes for domain saved to the repository.> This problem was a result of changes introduced in SP03 to comply with section 21.2.5.1 of the EJB specification. The problem was corrected.
CR089953 | In SP03, BEA tests of ejb20.locks.ExclusiveLockManager indicated a memory leak. The memory leak appears as a result of deploying and undeploying.Analysis revealed that the timer/trigger in DiskSwap was not cancelled when an EJB was undeployed, leaving a reference in TimeGenerator, and that ExclusiveLockManager buckets were not being garbage collected. Problem was solved by code fix to cancel the time/trigger appropriately and ensure proper garbage collection.
CR090143 | The default pool-size for MDBs was larger than the thread pool size default, resulting in MDB instances consuming the entire default thread pool and blocking waiting for non-MDB work to complete—leaving no threads left to do the unblocking work. Problem was resolved by, when an MDB is assigned to the main thread pool, limiting MDB pool size to a percentage of ((thread pool size) - (socket reader threads)).
CR090515 | The Administration Console reported incorrect value for the number of waiters for Entity beans. After clients had timed out, the console reported that there were waiters. The problem was resolved by by a correction to ExclusiveLockManager to decrement the waiterTotalCount when it is done waiting.
CR091436 | In SP03, JMSConnectionPoller did not close its initial contexts. When an MDB used external InitialContextFactory for lookups and the JMS provider was not accessible, the connections and other resources accumulated rapidly. The problem was corrected with a code fix to close the context when it is done for active memory clean up.
CR091722 | In SP03, under heavy loads, an MDB threw an IllegalStateException when resuming a transaction after invoking a business method; the JVM crashes when the transaction is being resumed. This behavior was exhibited with these application characteristics: a client sends messages to a Queue and an MDB listens on it. The tx.attribute for this MDB is "Required". The create method of the MDB is doing a home.create for creating some BMT SLSBs and the onMessage method is invoking the business method for this SLSB. The business method of this SLSB is sends messages to two different queues. The following error was observed: <EJB Exception during invocation from home: com.gfs.corp.batch.cost.costupdate.ejb.NextOrderCostUpdateProcessorEJB_xtvwzj_LocalHomeImpl@54b120 threw exception: java.lang.StackOverflowError> java.lang.StackOverflowError <<no stack trace available>> The local interface was not handing exceptions properly. The problem was solved by a code fix to correct the error handling so that the container properly rolls back the transaction when exception occurs.
CR093850 | In SP04, runtime monitoring of the entity beans in reported an incorrect value for the use the cached beans current count—the value exceeded the max beans in cache specified in the deployment descriptor and also the cached beans current count. The value reported was incorrect, and new beans were being created inappropriately. A code correction was made to release beans to the pool after removal from cache.
CR095173 | The idle-timeout-seconds element in weblogic-ejb-jar.xml determines how long the EJB container waits before passivating stateful session beans, that is, removing them from cache and writing them to disk. The EJB container also used to use this element to determine how long to wait before removing passivated EJBs from the disk. Some users wanted stateful session beans to remain on disk longer than idle-timeout-seconds. In other words, they want to specify how long stateful session beans stay idle in the cache and how long they stay idle on disk using two different elements. A new element has been added, session-timeout-seconds, which specifies how long the EJB container waits before removing an idle stateful session bean from disk.
CR094524 | In WebLogic Server 6.1 SP03 and SP04, read-only EJBs with a many:one container-managed relationship CMR caused a LockTimedOutException. avant getCustomerVO.getCountryVO() [ExclusiveLockManager$Lock Bucket] : ** LOCK ACQUIRE --> WAITING -- ejb-name: Country primary key: 002 lockClient: Name=[EJB charu.ejbrelations final.CountryBean.getCountryVO()],Xid=11:1d0d46b2(3053175),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=0,seconds left=30,activeThread=Thread [ExecuteThread: '2' for queue: 'default',5,Thread Group for Queue: 'default'],SCInfo[mydomain+myserver]=(state= active),properties=({weblogic.transaction.name=[EJB charu.ejbrelationsfinal.CountryBean.getCountryVO()], LOCAL_ENTITY_TX=true}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=myserver+172.23.135.56:7011+mydomain+, Resources={})]) wait (MS): 30000 [ExclusiveLockManager$LockBucket] : ** LOCK TIME OUT AFTER WAITING -- ejb-name: Country primary key: 002 lockClient: Name=[EJB charu.ejbrelationsfinal.CountryBean.get CountryVO()],Xid=11:1d0d46b2(3053175),Status=Marked rollback. [Reason=weblogic.transaction.internal.TimedOut Exception: Transaction timed out after 29 seconds Name=[EJB charu.ejbrelationsfinal.CountryBean.getCountryVO()],Xid=11:1d0d46b2(3053175),Status=Active,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=29,seconds left=30,active Thread=Thread[ExecuteThread: '2' for queue:'default',5,Thread Group for Queue: 'default'],SCInfo[mydomain+myserver]= (state=active),properties=({weblogic.transaction.name=[EJB charu.ejbrelationsfinal.CountryBean.getCountryVO()], LOCAL_ENTITY_TX=true}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=myserver+172.23.135.56:7011+mydomain+, Resources={})])],numRepliesOwedMe=0, numRepliesOwedOthers=0,seconds since begin=30,seconds left=10,activeThread=Thread[ExecuteThread: '2' for queue: 'default',5,Thread Group for Queue:'default'],SCInfo [mydomain+ myserver]=(state=active),properties=({weblogic. transaction.name=[EJB charu.ejbrelationsfinal.CountryBean. getCountryVO()], LOCAL_ENTITY_TX=true}),OwnerTransaction Manager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=myserver+172.23.135.56:7011+mydomain+, Resources={})]) wait (MS): 30000 The problem was resolved by modifying the if condition check from rbd.isReadOnly() to READONLY_EXCLUSIVE_CONCURRENCY check.
CR095545 | When attempting to deploy two message-driven beans with the same ejb-name but different JNDI mappings on the same Weblogic Server instance, the first bean was deployed successfully, but the deployment of the second bean failed with this exception: weblogic.management.ManagementException: - with nested exception: [javax.management.InstanceAlreadyExistsException: jpdomain:Location=jpserver,Name=MessageQueueHandlerBean,ServerRuntime=jpserver,Type=EJBMessageDrivenRuntime] at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:96) at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:83) at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:53) at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:63) at weblogic.ejb20.deployer.MessageDrivenRuntimeMBean.<init>(MessageDrivenRuntimeMBean.java:18) at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.deploy(MessageDrivenBeanInfoImpl.java:450) at weblogic.ejb20.deployer.Deployer.deployDescriptor(Deployer.java:1299) at weblogic.ejb20.deployer.Deployer.deploy(Deployer.java:1005) The problem was due to non-unique MessageDrivenRuntimeMBean names. The problem was solved by code change to ensure creation of unique names. .
CR096848 | In 6.1 SP04, <is-modified-method-name> was not called on CMP 2.0 beans. ejbStore was called at every bean method invocation and WebLogic Server determined afterwards if the store is to avoid. This caused performance issues in applications that frequently used <is-modified-method-name>. The problem was solved by implementing the <is-modified-method-name> function for CMP EJB 2.0.
CR099420 | The ejbc compiler failed with the following error when a two-dimensional array was specified as an argument: Unable to set the method permission for method "isAuthorized(java.lang.String,[[java.lang.String)". No matching method could be found. Please verify the method signature specified in the ejb-jar.xml file matches that of your EJB. ERROR:ejbc found errors. The problem was solved by modifying the makeMethodParameter() method of the eblogic.ejb20.deployer.mbimpl.MethodDescriptorImpl class to generate the appropriate method parameter signature depending on the dimension of the array passed.
CR101384 | When a UserTransaction.commit failed in MDListener, subsequent invocations of the MDB from JMS failed in UserTransaction.begin because there was already a transaction on the thread. This series of events occurred: an MDB was consuming from a JMS queue on another server JMS server died Inside weblogic.ejb20.internal.MDListener, UserTransaction.commit threw an exception MDListener goes on with its life Subsequent invocations of the MDB from JMS failed in UserTransaction.begin This problem was solved with a code change to make MDListener suspend the current transaction before starting a new one in the event that an unexpected exception prevented the prior transaction from completing.
CR101315 | It was reported that jsp:setProperty parameter conversions failed. When the jsp:setProperty action sets the values of properties in a bean, the parameters are converted per JSP.2.13.2.1 using the target property to determine the target type. The jsp file with the jsp:setProperty action fails to compile with the error messages below: ... setCount(int) in weblogic.qa.xmlbasedtests.webapp_jsp_tests.FooBean cannot be applied to (java.lang.String) ... setBool(boolean) in weblogic.qa.xmlbasedtests.webapp_jsp_tests.FooBean cannot be applied to (java.lang.String) ... setmyDouble(double) in weblogic.qa.xmlbasedtests.webapp_jsp_tests.FooBean cannot be applied to (java.lang.String) ... setFloat(float) in weblogic.qa.xmlbasedtests.webapp_jsp_tests.FooBean cannot be applied to (java.lang.String) ... setmyLong(long) in weblogic.qa.xmlbasedtests.webapp_jsp_tests.FooBean cannot be applied to (java.lang.String) This behavior was the result of the changes associated with "CR098402". (Fixed a problem with jsp:setProperty, request-time expression in the property value was converted to String. When assigning from a value given as a request-time attribute, no type conversions are applied.) Investigation revealed that the specification says: "When assigning from a value given as a request-time attribute, no type conversions are applied, as indicated in Section JSP.2.13.2.3." The code was determined to be functioning in accordance with the specification, and no changes were required to close this CR.

Installer

Change Request Number | Description
CR092156 | The WebLogic Server 6.1 SP04 upgrade installer build did not include latest beasvc.exe. For related CRs, see See CR091420, and 091420. The SP05 upgrade installer does not exhibit this problem.

JDBC

Change Request Number | Description
CR085559 | When a user transaction failed to rollback because Oracle database was down, the JDBC connections used in the transaction were not released, resulting in connection pool depletion. This problem was exhibited under WebLogic Server 6.1 SP02, Oracle8.1.6, 8.1.7 jDriver for Oracle, and Oracle thin driver. Analysis revealed that the internalrollback method in the JTS connection was not calling the internalclose() method, so if the rollback failed the connection leaked. A code fix solved the problem.
CR089713 | In WebLogic Server 6.1 SP03, weblogic.Admin RESET_POOL did not re-initialize connections to not-reserved. After using weblogic.Admin RESET_POOL, the log indicated that all connections were refreshed, but if they were reserved before the reset, they are still reserved after the reset. The problem was solved with a code change to put reserved resource back on resourcesFree list and clear the associated flag.
CR090379 | In previous releases of WebLogic Server, if application code created JDBC objects that were abandoned without being closed, the objects would be lost but would still hold memory or open cursors, even after being garbage collected. If too many such objects were created, the server would eventually run out of memory and the database may run out of cursors. In WebLogic Server 6.1SP5, the code was changed so that abandoned JDBC objects are closed before being garbage collected. Note: If you immediately create a JDBC object that is identical to an abandoned object, WebLogic Server creates a clone of the original JDBC object. However, when the original leaked object is closed, the clone will also be affected. You can avoid abandoning JDBC objects by following the best practices described in "Closing JDBC Objects" in Programming WebLogic JDBC.
CR090761 | A StringIndexOutOfBoundsException occurred in the OCI driver. The problem occurred occasionally in multiple queries when running a CMP entity bean, always when dealing with an integral at or near (depending on the precision of the number in the database) weblogic.jdbc.pool.ResultSet.getLong(ResultSet. java:107) The full exception is:java.sql.SQLException: java.lang.StringIndex OutOfBoundsException - String index out of range: 0 Analysis revealed that in weblogic.db.oci.OciCurser.getValue (OciColumn,int,int,boolean,boolean), the methods new Long(string) and new BigInteger(string)' were being called without appropriate checks, resulting in the StringIndexOutOfBoundsException. A code fix solved the problem.
CR091577 | In WebLogic Server 6.1 SP03, connection pool reset methods were unnecessarily synchronized. The ResourceAllocator method resetThisOne()was synchronized. As a result, when all execute threads performed a testConnOnReserve, and replaced a dead connection, they queued up, instead of establishing connections in parallel. A code fix solved the problem.
CR092453 | In WebLogic Server 6.1 SP04, with Oracle Thin XA with the CLASSES12.zip from Oracle 9.2, a stateless session bean calling EJB caused XAER_PROTO after "Configuration Changes saved to the repository" message appeared. START SLEEP 2: After updating thevalue to 1... DONE SLEEP 2: After updating thevalue to 1... START SLEEP 2: After updating thevalue to 2... DONE SLEEP 2: After updating thevalue to 2... START SLEEP 2: After updating thevalue to 3... DONE SLEEP 2: After updating thevalue to 3... START SLEEP 2: After updating thevalue to 4... DONE SLEEP 2: After updating thevalue to 4... START SLEEP 2: After updating thevalue to 5... DONE SLEEP 2: After updating thevalue to 5... Current value is 5 < Dec 6, 2002 10:26:59 PM MST> <Info> <Management> <Configuration changes for domain saved to the repository.> SQLException -- XA error: XAER_PROTO : Routine was invoked in an improper context start() failed on resource 'OracleXA' null Current value is 0 The problem caused by a known problem in Oracle client 9.2.0.[01], that is solved in 9.2.0.2. A code change to in WebLogic Server was implemented to work-around the 9.2.0.[01] issue.
CR092791 | In WebLogic Server 6.1 (any SP), it was not possible to use specific Oracle objects (Array, Struct, ...) through a connection pool based on the Oracle Thin Driver. The objects returned by the Oracle thin driver were not serializable nor remote and therefore could not be passed over RMI. A new package has been introduced : weblogic.jdbc.vendor.oracle that contains "proxies" for these objects and allow them to be passed through the connection pool.
CR093245 | After calling JDBCConnectionPoolRuntimeMBean.resetStatement Profile, it was not possible to display SQL traces. Calling resetStatement Profile()cleared the trace file, but it was not possible to do traces, even after tracing was enabled with the JdbcSqlTraceAdmin tool. It was necessary to restart the server instance to re-enable tracing. A code fix solved the problem.
CR093563 | A deadlock occurred between "Finalizer" and weblogic/jdbc/jta/Statement. java. The problem was exhibited under Solaris 5.8 - WebLogic Server 6.1SP3 - java v1.3.1_03 (build 1.3.1_03-b03), Java HotSpot(TM) Client VM (build 1.3.1_03-b03, mixed mode). This error occurred: "ExecuteThread: '5' for queue: 'default'": waiting to lock monitor 0xe1ba8 (object 0xf1327fb0, a java.util.HashSet), which is locked by "Finalizer" "Finalizer": waiting to lock monitor 0xe1b70 (object 0xf1327fe8, a weblogic.jdbc.jta. ResultSet), which is locked by "ExecuteThread: '5' for queue: 'default'" The problem occurred on a server instance that runs a web application that queries and updates an Oracle database. The code where the deadlock was encountered was part of a common user management interface that gathers user information when the user is logging in. It uses the oracle.jdbc.xa.client.OracleXADataSource from a connection pool configured in WebLogic Server. Analysis revealed that connection tests were synchronized, causing waits to obtain a lock, even when none was available. A code fix solved the problem.
CR093734 | Under WebLogic Server 6.1, an error code was not returned correctly when a client tried to get a connection to an unavailable database using Oracle Thin Driver. When using Driver.connect() to get the connection directly, SQLExcetpion.getErrorCode() returned 17002. When using a data source to get a connection from a connection pool, configured with Oracle Thin Driver, whose TestConnectionsOnReserve setting was true, SQLExcetpion.getErrorCode() returned 0. Analysis revealed that weblogic.jdbc.common.internal.ConnectionEnv Factory swallowed the error code. A code fix solved the problem.
CR094645 | When a non-zero starting index was passed to the getStatementProfiles() method, the traces returned start from the top of the .tsf file, instead at the specified starting index. A code fix solved the problem.
CR095059 | In WebLogic Server 6.1 SP04, the the value returned by the JDBCStatement Profile.getTimeTaken() method in the JDBCStatementProfile interface was always zero. A code fix to weblogic/jdbc/common/internal/ProfileStorage.java solved the problem.
CR095994 | weblogic.jdbc.rmi.internal.ConnectionImpl lacked connection leak profiling and connection leak detection logic. Three events can trigger the release of a connection back to the pool. peerGone from the client. un-referenced call from the BasicServerRef during DGC. Remote client code properly closes the connection. The first two events should trigger a warning to the user to that there is a potential connection leak. This logic was added to SerialConnection.java and ConnectionImpl.java.
CR096710 | Weblogic Server 6.1 SP04 did not throw an ORA-00020 message to the log when a connection pool failed to create with the given initial capacity due to not having sufficient number of processes (max_processes) for the database. The problem was solved by a code change to log the message.
CR096922 | Under load conditions, when WebLogic Server was calling ResourceAllocator.markBorrowed() and JMX was calling ConnectionPoolRuntimeMBeanImpl.getConnectionDelayTime(), a deadlock condition resulted. A code fix to ResourceAllocator.java solved the problem.
CR097832 | Weblogic Server 6.1 SP04 thin driver, Solaris 8, JDK 1.3.1_04, and Oracle 8.1.7.4., deadlocks occurred when connection refresh is turned on. Customer stack trace: "ExecuteThread: '35' for queue: 'default'" daemon prio=5 tid=0x45ac68 nid=0x30 waiting for monitor entry [0xce901000..0xce9019d8] at weblogic.jdbc.common.internal.ConnectionEnv.destroy(ConnectionEnv.java:571) at weblogic.common.internal.ResourceAllocator Both the weblogic.jdbc.common.internal.ConnectionEnv.destroy and weblogic.common.internal.ResourceAllocator.release are synchronized methods (). The problem was solved with a code fix to weblogic/jdbc/common/internal/ConnectionEnv.java.
CR099363 | In WebLogic Server 6.1 SP04, under load testing, a connection pool with the refresh minutes set to 15, and TestConnsOnReserve and TestConnsOnRelease set to false threw the following exception: weblogic.common.ResourceException: No available connections in pool ODSConnectionPool This problem occurred because when only a few of the connections in the pool are used, all the other connections in the pool are reserved for testing at the expiration of the refresh test minutes. At that point, if client asked for a connection the exception was thrown. The problem was resolved with a code fix that implements two things: When used as-is without any other change, refresh will only reserve and test one connection at a time, and will release it immediately. This addresses the locking-all-connections issue. If the customer adds a driver property to the pool definition, secondsToTrustAnIdlePoolConnection, with a positive integer value, such as 1, 2, 30 etc., then the pool will avoid testing pool connections that are known to have successfully connected to the DBMS within that period. This will speed up refresh and testConnsOnReserve.
CR101093 | In WebLogic Server 6.1 SP04, when the incorrect password is set in the connection pool properties, the following exception is thrown: <Mar 13, 2003 10:35:45 AM IST> <Info> <JDBC> <Sleeping in createResource()> <Mar 13, 2003 10:35:46 AM IST> <Info> <JDBC Pool DemPool> <Pool DemPool is created with initial capacity 0> In the earlier versions of WLS. The exception was more descriptive. The following exception is thrown when the incorrect password is specified in sp 3. <Mar 12, 2003 9:41:38 AM IST> <Error> <JDBC> <Cannot startup connection pool "Dpool" weblogic.common.ResourceException: Could not create pool connection. The DBMS driver exception was: java.sql.SQLException: ORA-01017: invalid username/password; logon denied The problem was resolved with a modification to weblogic/common/internal/ResourceAllocator.java.

jDriver

Change Request Number | Description
CR083694 | Calling getTimeStamp(), getTime(), getDate() or getJavaDate() on weblogic.db.oci.OciCursor with a null Calendar object, resulted in creation of a new calendar. To improve performance, now a single calendar is created and stored in the cursor the first time one of these methods is called.
CR088387 | Using a XADataSource on top of jDriver resulted in shrinking heap size until OutOfMemoryError was encountered. In the weblogic.jdbc.oci.Connection class, LOB fields of result sets in a transaction are registered under a connection through the Connection.addLob() method. The registered LOBs are freed (along with the corresponding object in native jDriver library) when one of these conditions occurs: Connection.commit()/Connection.rollback()/Connection.close () is called at the connection level (this Connection is weblogic.jdbc. oci.Connection). A SQL statement is executed and the connection is set to autoCommit mode (i.e., non-TX Data Source or a direct connection from the pool). The return code from an OCI SQL call indicates that a commit/rollback at database level has occurred. When an XADataSource is being used, none of the above conditions apply. As a result, LOB fields of jDriver in result sets were never released in the JVM heap. This problem was corrected by a code change in weblogic.jdbc.oci.xa.DataSrcThreadInfo.java to call closelob ().
CR090025 | In WebLogic Server 6.1 SP04 jDriver for Oracle 9.2 does not support the AL32UTF8 character set (unicode version 3.1). When NLS_LANG is set to AMERICAN_AMERICA.AL32UTF8, the following error is generated by weblogic.jdbc.oci.Connection.<init>(Connection.java:246): java.sql.SQLException: Unsupported Oracle codeset: al32utf8. Set weblogic.codeset in your connection Properties to a valid JDK codeset which is compatible with the Oracle codeset defined in your NLS_LANG setting. When NLS_LANG=AMERICAN_AMERICA.UTF8, this error occurs: ORA-01461: can bind a LONG value only for insert into a LONG column, indicating a mismatch between the character set on the client and database. This problem was corrected by a code fix to weblogic/db/oci/OciConnection.
CR091151 | In WebLogic Server 6.1 SP03 and SP04, jDriver for Oracle ResultSet#getBigDecimal() method did not return correct value. For example, value of 9999999999.999999 was rounded to 9999999999.999998. This problem was solved with a code fix.
CR093795 | The "Euro" currency symbol was retrieved as "?" using statement.getString() with WebLogic jDriver for MSSQL Server 2000. The problem was solved by a code fix to use new String constructor to handle character set correctly
CR098071 | The version of the Oracle Thin driver 9.2.0 bundled with previous releases of WebLogic Server contained errors that occasionally resulted in data errors. The driver was replaced with a new version from Oracle.
CR101517 | Oracle's SQL DATE type supports date values between 4712 B.C. and 4712 A.D., but jDriver for Oracle can not handle dates '1899-12-31' and before. Such dates that are stored by jDriver cannot be queried by other tools, like Oracle Thin Driver or SQL*Plus. This issue happens only if you use a prepared statement, and bind such date to DATE column using setDate() method. The problem was solved by a code fix to weblogic/db/oci/OciColumn.java.
CR102060 | In WebLogic Server 6.1 SP02, with jDriver for Oracle, and Oracle 8.1.7, the PreparedStatement for sql UPDATE did not work after using CallableStatement on the same connection. This was a regression of "CR080931". getUpdateCount() returned zero, and nothing was changed in the database. This occurred when setting the weblogic.oci.min_bind_size property for the jdbc connection. props.put("weblogic.oci.min_bind_size", "660") Analysis revealed that jDriver was using min_bind_size=33000 for the statement. weblogic.jdbc.oci.Connection#prepareCall internally set min_bind_size to 33000. The problem was solved with a code fix to db\oci\OciConnection.java.

JMS

Change Request Number | Description
CR080296 | In WebLogic Server 6.1 SP02, the messaging bridge did not work properly with null UserPassword. When a bridge is configured with a non-null UserName and null UserPassword, the bridge failed to start with no clear error messages. This problem was resolved with a code fix.
CR083933 | In WebLogic Server 6.1 SP03., a JMS Server threw a NullPointerException under heavy loads: <Aug 2, 2002 65438 PM EDT> <Warning> <JTA> <XA resource [JMS_JMSServer1JDBCStore] has not responded in the last 120 second(s).> <Aug 2, 2002 65438 PM EDT> <Warning> <JTA> <Resource JMS_JMSServer1JDBCStore was not assigned to any of these servers JMSServer1 > <Aug 2, 2002 65438 PM EDT> <Warning> <JTA> <Resource JMS_JMSServer1JDBCStore was not assigned to any of these servers JMSServer1 > <Aug 2, 2002 65438 PM EDT> <Warning> <JTA> <Resource JMS_JMSServer1JDBCStore was not assigned to any of these servers JMSServer1 > <Aug 2, 2002 65438 PM EDT> <Warning> <JTA> <Resource JMS_JMSServer1JDBCStore was not assigned to any of these servers JMSServer1 > <Aug 2, 2002 65438 PM EDT> <Warning> <JTA> <Resource JMS_JMSServer1JDBCStore was not assigned to any of these servers JMSServer1 > <Aug 2, 2002 65438 PM EDT> <Alert> <JMS> <JMSServer "JMSServer1",unhandled exception during rollback, java.lang.NullPointerException.java.lang.NullPointerException at weblogic.jms.backend.BEDurableTopicMessageInfo.rollbackReceiveTran(BEDurableTopicMessageInfo.java352) atweblogic.jms.backend.BEXATranEntrySubscribe.startRollback(BEXATranEntrySubscribe.java145)at weblogic.jms.backend.BEXATranEntry.execute(BEXATranEntry.java127) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java120) The problem was exhibited in this configuration: 400 execute threads, 200 JMS threads, and 100 connections for the connection pool. Exception occurred under a load test while publishing approximately 10 messages (around 2K) to a durable subscriber every second to the JMS Server. There were no distributed transactions. Sybase driver was used for the connection pool for the JDBCStore. The problem was solved by a code fix to check prepareStoreRequest before calling rollbackReceiveTran().
CR086976 | In WebLogic Server 6.1 SP02, JMS JDBS store creation on an AS400 machine with DB2 failed. This problem was solved with a code fix.
CR089114 | A JMS selector performance enhancement has been implemented. The customer use case is publishing a message to a small subset of 20,000 subscribers, where each subscriber has a unique identifier. This was CPU-intensive, as it was necessary to evaluate the selector of every subscriber to determine which subset matches. To improve performance under such circumstances, a limited subscriber index capability was added to JMS. With this enhancement, each subscriber informs JMS of its "uniqueness" in a way that JMS knows it can index the subscriber. The uniqueness is specified by using a JMS selector of the form: xxxxx IS NOT NULL Where xxxxx is an arbitrary identifier that is not a known JMS message attribute, and where multiple subscribers may specify the same value for "xxxxx". This is standard JMS syntax. WebLogic JMS sees this selector as an indication that it can optimize by indexing the subscriber. When a message is published to a topic which has indexed subscribers, JMS now iterates over each of the message's user properties and passes the message to those indexed subscribers that match the user property name. JMS will also continue old behavior when a message is published, as it will continue to also iterate over unindexed subscribers (those with selectors that don't match the special pattern above).
CR089583 | In WebLogic Server SP02, a JMSException occurred when unsubscribing the Durable subscriber: weblogic.jms.common.JMSException: Subscription clientID.vIJAY in use, uncommitted/unacknowledged messages at weblogic.jms.backend.BEConsumer.delete(BEConsumer.java:1784) at weblogic.jms.backend.BEManager.removeSubscription(BEManager.java:204) at weblogic.jms.backend.BEManager.invoke(BEManager.java:216) at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:510) at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsync (DispatcherImpl.java:149) at weblogic.jms.dispatcher.Request.dispatchAsync(Request.java:734) at weblogic.jms.frontend.FEManager.removeSubscription(FEManager.java:288) at weblogic.jms.frontend.FEManager.invoke(FEManager.java:320) at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:510) at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsync (DispatcherImpl.java:149) at weblogic.jms.dispatcher.DispatcherImpl.dispatchSyncFuture (DispatcherImpl.java:300) at weblogic.jms.dispatcher.DispatcherImpl_WLSkel.invoke(Unknown Source) at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:298) at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:267) at weblogic.rmi.internal.BasicExecuteRequest.execute (BasicExecuteRequest.java:22) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) Analysis revealed that WebLogic Server was incrementing the unack'ed message count twice for every message and decrementing it only once. This always left the unack'ed messagecount > 0 and thus the exception when we try to unsubscribe the durable subscriber. This problem was solved with a code fix.
CR089682 | In WebLogic Server SP03, retry values (min, max and increment) do not work correctly for MessagingBridge. The problem occurred with a MessagingBridge configured to send messages from one WebLogic Server JMS server to another. All run on the same WebLogic Server instance. Untargeting one of the JMS resulted in this error: <30-Oct-02 15:13:34 GMT> <Error> <Connector> <Error granting connection request.> Retry attempts should occur at intervals controlled by the Connection Retry parameters. However, with the following startup default values: min=15, max=60, inc=5. The observed behavior was: A connection is attempted which fails - OK A second connection is attempted 15 seconds later - OK The subsequent connection attempts are at an interval of 5 seconds - NOT OK <30-Oct-02 15:13:09 GMT> <Error> <Connector> <Error granting connection request.> <30-Oct-02 15:13:14 GMT> <Error> <Connector> <Error granting connection request.> <30-Oct-02 15:13:19 GMT> <Error> <Connector> <Error granting connection request.> <30-Oct-02 15:13:24 GMT> <Error> <Connector> <Error granting connection request.> <30-Oct-02 15:13:29 GMT> <Error> <Connector> <Error granting connection request.> After one of the default parameters was changed, increments are correct. However, the max value is never reached. With the default values, the maximum reached is 55. This problem was solved with a code fix to correct the logic for the retry values.
CR091195 | In WebLogic Server SP04, persistent queue messages received by MDB were not acknowledged properly, causing the Administration Console monitoring function to show "BYTES PENDING". Messages that had been received by the MDB were redelivered when WebLogic Server was shutdown and restarted. This problem was solved with a code fix MDB acks when the EJB transaction descriptor is NotSupported.
CR091827 | In WebLogic Server SP02, JDBC logging threw a java.sql.SQLException: Connection has already been closed with OracleThinDriver for XA, Windows-NT, JDK 1.3.1,and Oracle 9011. After this error message, nothing got logged in JDBC log file. This problem was solved with a code fix to prevent JDBC logging errors.
CR092464 | In WebLogic Server SP02 and SP04, when a durable topic subscriber was connected to a JMS server and there is a message sent to the topic, WebLogic Server increased the value of "Bytes Current Count" by message size even though the message had been received and committed by the receiver. The corresponding value of "Messages Current Count" is not affected. When the durable topic subscriber was not connected to a JMS server and there was a message sent to the topic, WebLogic Server increases both "Messages Current Count" and "Bytes Current Count". If the durable topic subscriber is connected back to the JMS server, WebLogic Server decreased both "Messages Current Count" and "Bytes Current Count" correspondingly. As a result of this inconsistency, the value "Bytes Current Count" cannot be zero even though there is no outstanding message for the durable topic subscriber. Analysis revealed that in backend/BEConsumer.java addMessages(), bytesCurrentCount was updated inappropriately, resulting in display of incorrect statistics in the Administration Console. The problem was solved with a code fix.
CR093712 | In WebLogic Server SP04, after the maximum idle time out for the messaging bridge, the messages shown below are written to the server log file. If many messaging bridges are configured, the log file grows quickly to a large size. ####<Dec 19, 2002 12:44:42 PM EST> <Info> <MessagingBridge> <dws-stage> <DwsStageServer> <ExecuteThread: '3' for queue: 'MessagingBridge'> <> <> <200027> <Bridge "DWSBackend Inbound Bridge" works in asynchronous mode and has not received messages for the predefined maximum idle time. The connections to the adapters will be interrupted and re-established.> ####<Dec 19, 2002 12:44:42 PM EST> <Info> <MessaginBgridge> <dws-stage> <DwsStageServer> <ExecuteThread: '3' for queue: 'MessagingBridge'> <> <> <200020> <Bridge "DWSBackend Inbound Bridge" is stopped.> ####<Dec 19, 2002 12:44:42 PM EST> <Info> <MessagingBridge> <dws-stage> <DwsStageServer> <ExecuteThread: '3' for queue: 'MessagingBridge'> <> <> <200033> <Bridge "DWSBackend Inbound Bridge" is getting the connections to the two adapters.> ####<Dec 19, 2002 12:44:42 PM EST> <Info> <MessagingBridge> <dws-stage> <DwsStageServer> <ExecuteThread: '3' for queue: 'MessagingBridge'> <> <> <200032> <Bridge "DWSBackend Inbound Bridge" is configured not to allow degradation of its quality of service in cases where the configured quality of service is not reachable.> ####<Dec 19, 2002 12:44:42 PM EST> <Info> <MessagingBridge> <dws-stage> <DwsStageServer> <ExecuteThread: '3' for queue: 'MessagingBridge'> <> <> <200030> <Bridge "DWSBackend Inbound Bridge" is configured to work in "Exactly-once" mode and it is actually working in "Exactly-once" mode.> ####<Dec 19, 2002 12:44:42 PM EST> <Info> <MessagingBridge> <dws-stage> <DwsStageServer> <ExecuteThread: '3' for queue: 'MessagingBridge'> <> <> <200028> <Bridge "DWSBackend Inbound Bridge" starts transferring messages.> This problem was resolved by providing the ability to hide the log messages with DebugMessagingBridgeRuntime debug flag.
CR099455 | JMS messages were getting lost due to race conditions. This problem was corrected with a code fix.
CR101374 | JMS messages were lost. A JMS Server had an inbound and an outbound queue. An MDB located on another server consumed messages from the inbound queue and produced messages to the outbound queue in a one-for-one relationship. This was done within a transaction initiated by the MDB. The end of the transaction is when the MDB enqueued a message on the outbound queue. If the JMS Server was killed and restarted, messages were lost. Over a load of 10,000 messages, a small number of messages were lost. The problem was solved by a code change to force transacted XAConnection to CLIENT_ACK.
CR101670 | During tests, a JMS client session that never committed or acknowledged leaked memory. The test used startup classes that act as Asynchronous receivers for both queues and topics. The receiver was created using a transacted session and AUTO-ACKNOWLEDGE mode. On receipt of messages, the receiver did a Rollback on the session. Diagnostics revealed a memory leak in weblogic.jms.client.JMSSession$UnackedMessage. The problem was solved with a code fix to weblogic/jms/client/JMSSession.java.

JNDI

Change Request Number | Description
CR087237 | In WebLogic Server 6.1 SP03, in a two node cluster running under Solaris, failover of a stateless session bean was delayed by about five minutes. The server froze and the client hung. The time to failover was reduced to 45 seconds with multiple code and configuration changes: RJVMFinder was made as PeerGoneListener to remember the unavailable server and not try the server until the replica list is empty. Fix to BasicReplicaHandler to avoid refreshReplicalist calls during failover, when it finds the replica list has more servers. T3JVMConnection has new functionality, to create the socket on a worker thread. In addition, the same timeout is used for the so_timeout, so on solaris8 clients, read will not block for one minute. The new flag is -Dweblogic.client.SocketConnectTimeoutInSecs=15 flag. Control heartbeat period on server and client using the existing -D values. Increase the default execute queue on server to take care of extra heartbeat load. Client heartbeat time is controlled by -Dweblogic.PeriodLength=10000 flag. Server heartbeat is controlled by PeriodLength="10000" flag in the ServerMBean in the config.xml.
CR093700 | When (re)binding and unbinding clusterable RMI objects from JNDI tree, the unbind operation was sometimes making the object null, setting it up for garbage collection, but still holding a reference to the null object when the object was hosted locally on the server. A code fix was implemented to ensure that the object it is set for garbage collection only when no other replica of this object is available in the cluster.
CR093799 | When performing a Context.lookup on a composite name, a NameNotFoundException occurs if the name was not resolved, either fully or partially. Name remainingName = nnfe.getRemainingName(); should obtain the components that were not resolved from the name. These are the subcontexts that need to be created in the JNDI tree. So when enumeration e = remainingName.getAll() is called, the enumeration obtained should contain the unresolved components as string elements. e.g ("Unresolved1","Unresolved2","Unresolved3"). However, the Enumeration contains only one string, "Unresolved1.Unresolved2.Unresolved3" The problem was solved by a change to BasicNamingNode.java to ensure that CompositeName is constructed with the '/' separator.
CR096838 | In WebLogic Server 6.1 SP03 and SP04 weblogic.jndi.Environment objects were not released on a timely basis, causing an OutOfMemoryError error during lookups for ejb-ref-name on the InitialContext. A code fix was implemented to correctly close the context.

JSP

Change Request Number | Description
CR092039 | WebLogic Server 6.1 SP03,the JspParser threw an UnsupportedEncodingException for the extra quoted value in charset with JSP tag: <%@ page contentType="text/html; charset=\"Shift_JIS\"" %> resulted in this error: java.lang.RuntimeException: Unknown/unsupported charset: "Shift_JIS" - java.io.UnsupportedEncodingException: Charset: '"Shift_JIS"' not recognized, and there is no alias for it in the WebServerMBean WebLogic Server did not correctly support the HTTP specification. The problem was resolved by adding support for quoted strings and comments to Content-Type header charset attribute value.
CR088019 | In WebLogic Server 6.1 SP03, a generated java file failed to compile on HP-UX 11with virtual host.The .ear file deployed correctly when not targeted to a virtual host. When accessed, login.jsp generated the java file and compiled it. A virtual host was configured, and the webapp part of the .ear was targeted to the virtual host. After restart of the server, when accessed, login.jsp generated the java file but failed to compile it into a class file. The problem was solved with a code fix. The temporary directory now contains an element identifying the WebServer component so as to distinguish between virtual hosts and/or the default web-server. This prevents deployment file clashes when WebApps are deployed and the temporary directory is cleaned out.
CR092089 | A JSP file with multibyte name did not compile, and the directory returned its contents. Analysis revealed that the JSP file path was not correctly detected when the file name contained multibyte characters. WebLogic Server decoded the path by VM default, then the path was decoded again using 'input-charset'. Browser decoding implementation was a related issue. Internet Explorer performs URLencode based on UTF-8. Netscape does it based on platform default. The problem was resolved by a code fix to decode ContextPath, ServletPath, and PathInfo based on UTF-8. Decoding method can be configured with weblogic.http.URIDecodeEncoding.
CR092366 | The javax.servlet.jsp.PageContext.out attribute was notcleaned up correctly for body content tags. The problem was solved with a code fix.
CR093014 | Java comments that start in one scriptlet and end in the next one cause an error: <22.07.2002 14:12:24 CEST> <Error> <HTTP> <[WebAppServletContext(7422744,DefaultWebApp,/DefaultWebApp)] Servlet failed with Exception weblogic.servlet.jsp.JspException: (line 12): scriptlet close brace '}' unbalanced at line 12 which breaks scope '_base_service_scope_' at .... The problem was solved by back-porting grammar from WebLogic Server 7.0 that caused the ScriptletScopeLexer to skip an entire Java comment.
CR093291 | JSP compile by the server did not include the system classpath. On server startup, JSPs that referenced a jar in CLASSPATH did not compile. This message occurred: package com.bea.p13n.util.debug does not exist probably occurred due to an error in /devtools/debug.jsp line 1:<%@ page import="com.bea.p13n.util.debug.Debug" %> Analysis revealed that the problem occurred when the jar in system classpath began with "../..". The problem was solved with a codefix to support consider ./ and ../ cases when cleaning the classpath.
CR093625 | In WebLogic Server 6.1 SP03 and SP04, server misdirected output for JSP includes in JSP pages. The problem was solved with changes to the servlet engine to unify handling of includes, forwards, wrapped-responses, and JSP BodyTags.
CR094190 | According to the JVM specification, the size limit for a method size is 64K. In WebLogic Server 6.1 SP03, a customer has JSPs with many body tags for which the generated java code exceeded the 64K limit for the __jspService method. The problem was solved by a code change. Now, when an empty BodyTag of the form <my:tag ... /> is encountered, the generated code that would normally set up scope for the body is replaced by a single call to a static method in StandardTagLib.java that tricks the BodyTag into thinking it is being invoked as usual from the JSP source.
CR098402 | In WebLogic Server 6.1 SP04, jsp:setProperty converted a request-time expression in the property value to String. The problem was solved with a code fix. When assigning from a value given as a request-time attribute, no type conversions are applied.

JTA

Change Request Number | Description
CR088171 | In WebLogic Server 6.1SP02 when a transaction is in unknown state the transaction is lost Given the following cluster configuration: MS-1 Queue1 - MDB1 TX Required Queue2 - MDB2 TX Required SLSB MS-2 Queue3 - MDB3 TX required SLSB - send() - TX required sendImmediate() - TX RequiresNew The queues are persisted to a DB, MDBs transactionally de-queueing messages. The following occurs: MDB3 -> SLSB.send() and then SLSB.sendImmediate() the SLSB.send does: SLSB.send() ...>MDB2-> MDB1 -> SLSB.sendImmediate() called twice Send 100 messages to Queue3, allow processing to commence. Kill MS-1 after all messages have been enqueued but prior to all the messages being consumed from Queue3. Restart MS-1. When MS-2 is killed, the MS-1 receives a peergone exception and the transaction which is ready to commit its status goes from prepared to unknown. When the second server is brought back up the transaction is lost because it does not know what to do is commit or rollback because of the UNKNOWN state. The problem was solved with a code fix to rollback a transaction when an unknown exception is received during commit.
CR088844 | In WebLogic Server 6.1 SP02, a deadlock between LogManager and JTA occurred on server startup. Thread dump analysis revealed: Execute thread 7: This thread is trying to enlist a resource. It calls ResourceDescriptor.startResourceUse. Inside the synchronized block of this method is a trace statement. Execute Thread 6: The Audit Bean is trying to make a call to LogBroadcaster. This makes an RMI call that causes the transaction to be suspended and delist the resources. Delist makes also a call on ResourceDescriptor.startResourceUse. The trace statement inside the startResourceUse in thread 7 is blocking waiting on the LogBroadcast in thread 6 and the enlist of thread 7 is waiting for the delist in thread 6. The problem was solved by moving the trace statement in startResourceUse outside the synchronized block.
CR091628 | The javax.transaction.xa.XAResource interface defines a method, setTransactionTimeout(), that allows the transaction manager to set the transaction timeout in the resource manager for operations associated with the XAResource instance. The WebLogic Server transaction manager did not invoke this method when a resource manager is accessed by an application in a global transaction. This problem was solved by adding a XATransactionTimeout property to be used when XASetTransactionTimeout is "true". This is because, if the JTA Transaction Timeout value is used and that value is high, if WebLogic Server crashes in mid- transaction, Oracle locks the rows and no one can access them unless Oracle is cycled.
CR091882 | In WebLogic Server 6.1SP03 a transaction timeout occurred when calling a stateless EJB in a remote 6. 1SP03 Cluster. The problem was solved by a code fix to transaction/internal/TransactionImpl.java.
CR092301 | In WebLogic Server 6.1 SP04, a null point exception was thrown by weblogic.transaction.internal.ServerResourceInfo.isAccessibleAtAndAssignableTo. The problem occurred intermittently even when the server is idle, and could not be reliably reproduced. The problem was resolved with a code fix to weblogic/transaction/internal/ServerResourceInfo.java .
CR093045 | In WebLogic Server 6.1 SP02 and later, the Oracle 8.1.7.4 thin driver XA connection pool became unusable after the database stopped and started under WebLogic Server load. The test application used XA connection pool to update columns in Oracle 8.1.7.4 via MDBs. When WebLogic Server is processing the MDB messages and the Oracle database is stopped/restarted the XA connections are not refreshed and distributed locks in Oracle are not recovered (ORA-01591). WebLogic Server goes into a cyclic "hang" situation and tries to refresh the XA connections. WebLogic Server log file shows following when "cycling" to refresh/use XA connections: ... ####<13.12.2002 12:09:54 CET> <Info> <JDBC Pool FoundationThinXAPool> <A4PMA9ALX> <myserver> <ExecuteThread: '9' for queue: 'default'> <guest> <484:6c709abb7f28edb9> <000000> <javax.transaction.SystemException: start() failed on resource 'weblogic.jdbc.jta.VendorXAResource' null at weblogic.transaction.internal.ServerResourceInfo.xaStart(ServerResourceInfo.java:1010) at ... WebLogic Server never recovered from this situation (cycles). All threads of the server seemed blocked and server had to be killed (weblogic.Admin SHUTDOWN not working). Only restarting the WebLogic Server resolved the distributed locks in Oracle as soon as JTA recovery takes place. Before the recovery is done many ORA-01591 exceptions were thrown as the MDBs try to re-deliver their outstanding messages. After JTA recovered the in-doubt distributed transactions, processing of outstanding JMS messages completes successfully. The problem was solved with code fixes to weblogic\jdbc\oci\xa\XADataSource.java.
CR100357 | When servers participating in a transaction were killed and restarted, recovery was slow, or deadlock occurred. The configuration included four JMSServers with pinned connection factories and distributed inbound and outbound queues, four MDB Servers (each with four MDBs deployed, five beans in pool listening to each distributed member in the inbound queue), 40,000 messages of size 2K in the inbound queue. When JMS and MDB servers were restarted, the JMS servers used up all default queue threads and the Execute Queue continued to grow. ServerTransactionImpl.java was modified to fix the problem.
CR100898 | If a transaction was rolled back, and there was a server participant that had no resource participants, it was possible that the transaction would never be completed. The transaction would continue to exist on the coordinating server and continually retry notifying the server with no resources to roll back. Eventually, the transaction would be abandoned. Although all resource participants were informed of the rollback, it was possible that after completion callbacks would not be processed on the coordinating server. This problem was resolved by logic changes in rollback async reply processing to accommodate servers with no resources and to immediately set state to rolled back when all servers/resources are accounted for.

Miscellaneous

Change Request Number | Description
CR094764 | In WebLogic Server 6.1 SP04, beasvc.exe did not shut down gracefully when Windows-NT was restarted. The problem occurred when the user: Configured WebLogic Server to run as NT service. Started WebLogic Server from the Windows Control Panel. Restarted Windows-NT from the Windows Start menu. The server log was empty, and the event viewer contained this message: The myserver service terminated unexpectedly. It has done this 1 time(s). The following corrective action will be taken in 0 milliseconds: No action. Analysis revealed that the Windows Service Control Manager (SCM) should be notified of SERVICE_ACCEPT_SHUTDOWN so that it will inform beasvc.exe of SERVICE_CONTROL_SHUTDOWN during system shutdown. A code change to implement the required processing solved the problem.
CR099590 | In WebLogic Server 6.1 SP02, using a JMX client to delete a managed server resulted in a null pointer exception at weblogic.management.internal.MBeanHomeImpl.getInterface(MBeanHomeImpl.java:431) The problem was solved with a correction to the mbean delete.

Plug-ins

The plug-in(s) in which the problem was resolved is shown in parentheses in the Description column.

Change Request Number | Description
091740 | (HttpClusterServlet) During benchmark tests, 503 and 500 HTTP error were being returned by the proxy server running the HttpClusterServlet. The errors were random and occasional. The configuration was JRockit 7.0 SP2 Load 2 and the Sun JDK 1.3.1_06. AcceptBacklog and the thread count were increased to 1000 and 50 respectively. The benchmark was run with 100-200 client threads. This problem occurred when the servlet's dynamic server list contained no entries. The problem was solved with a code fix to check the size of the dynamic server list of servers before creating an array out of that list.
CR084625 | (NSAPI) All version of the iPlanet plugin had /_wl_proxy/_post hardcoded: #else /* UNIX */ sprintf(name,"/tmp/_wl_proxy/_post__%d_%d", pid, postCounter); fsep = '/'; #endif This poses problems for customers that have multiple servers using different user IDs and groups. For example, uploaded files from clients are saved temporarily in /tmp/_wl_proxy of web servers that proxy to WebLogic Server. The _wl_proxy directory is removed each time the web server is rebooted. If the environment is shared (multiple instances on the same physical servers) the user process that creates this directory blocks other users from writing to it, because it uses its default umask to create the permissions (i.e., application A [running as User ID A] creates /tmp/_wl_proxy/<some temp file> and then application B tries to upload a file and gets the following error in the error file: [27/Aug/2002082140] failure (14367) for host 172.18.5.122 trying to POST /filetransfer/TransferUtility.do, wl-proxy reports exception occurred 'READ_ERROR [os error=13, line 501 of proxy.cpp] Cannot open TEMP file '/tmp/_wl_proxy/_post__14367_5' in $TMP/_wl_proxy for POST of 2867 bytes This problem was solved by adding a configurable WLTempDir argument. This argument applies to both wlproxy.log and _wl_proxy. For backward compatibility, WLLogFile overrides WLTempDir during log file creation.
CR085192 | (NSAPI and ISAPI) Performance degradation occurred when connection pooling was turned off. Resource requirements for URL creation were high. WebLogic closed the connection before the plug-in did, resulting in "half-open" connections, and PROTOCOL_EXCEPTIONS in the plug-in. The problems were addressed by multiple code changes: Keep-Alive is enabled by default for ISAPI and NSAPI. WebLogic Server now sends the keepAliveSecs value to the plug-in a special header.
CR085285 | (NSAPI) The web application container returned 404 messages for InitJVMID requests from the plugins, resulting in log files filling up with messages: ####<Sep 6, 2002 4:56:43 PM EDT> <Debug> <HTTP> <petunia> <ms1petunia> <ExecuteThread: '13' for queue: 'default'> <kernel identity> <> <101147> <HttpServer(887891,null default ctx,ms1petunia) found no context for "/WLDummyInitJVMIDs". The problem was solved by sending InitJVMID requests to the internal web application which is always deployed on WebLogic Server.
CR085541 | (all plug-ins) __WebLogicBridgeConfig returned internal representation of Debug—a confusing 10 character code. A code fix was made to return the value represented by the code.
CR085695 | (ISAPI) When KeepAlive was enabled, the time to close the connection is about 30 seconds with a HEAD HTTP request. This problem was exhibited under 6.1 SP01, Windows 2000, IIS 5.0. This problem was corrected with a code fix to close the connection immediately for HEAD request.
CR085921 | (ISAPI) For all plug-ins, it was not possible to differentiate between WRITE_ERRORS that occurred while writing to the request/post-data to WebLogic Server and WRITE_ERRORS that occurred while writing response headers/data to the browser in the __WebLogicBridgeConfig statistics. This deficiency made it more difficult to use the statistics displayed by __WebLogicBridgeConfig for plug-in/cluster health monitoring. This deficiency was corrected by implementing two new error types WRITE_ERROR_TO_CLIENT and WRITE_ERROR_TO_SERVER.
CR085923 | (ISAPI) For all plug-ins, setting Debug=ERR caused INF messages to also be logged. This problem was corrected by a code fix. Now, only ERR messages are logged when Debug=ERR.
CR086224 | (NSAPI) Plug-in did not read the SESSIONID from post data. Analysis revealed a problem in getPreferredServersFromCookie(). When session.getId() was kept as post data. getId() included an extra string: |time. The problem was solved by a code fix:,
CR086490 | (ISAPI) For all plug-ins and HttpClusterServlet, the MaxSkips feature was disabled, because its default value of 10 proved to make the feature less useful than desired. The lack of this feature posed potential performance degradation when one or more servers in the cluster are unresponsive. This problem was resolved by providing a new parameter, MaxSkipTime. MaxSkipTime can be used to specify the time in seconds to wait after marking a server bad until forcing a new server list.
CR086518 | (NSAPI) If performing a redirect using a URL that contains both a query string and an anchor, the anchor was incorrectly considered part of the value portion of the last query string member. This problem only occurred when using Internet Explorer in a three-tier environment, using iPlanet 6.0 for the HTTP server). Using Netscape or Mozilla, or if running the server in a two-tier environment, the problem did not occur. To replicate, invoke foo.jsp. foo.jsp: <% String redirectURL = "http://hostname/T/foo2.jsp?a=b#foo";; response.sendRedirect(redirectURL); %> foo2.jsp: <%= request.getParameter("a") %> The Administration Console displayed the value for "a" as "b#foo"., instead of "b". The problem was solved by a code fix to trim the anchor from the query string, because Internet Explorer does not do so for sendRedirected URL
CR088914 | (NSAPI) See CR088915
CR088915 CR088914 | (ISAPI, NSAPI) A changed was made to reduce vulnerability to SSL certificate chain attacks. Code to check BasicConstraints for CA certificates was added. Constraint checking is controlled with the plug-in parameter EnforceBasicConstraints. The parameter settings are now: OFF—disables the enforcement entirely is not recommended as a solution unless you really have no other choice. For example, a customer has bought certificates from a commercial CA and the chain doesn't pass the new check. Note that most current commercial CA certificates should work under the default STRONG setting. STRONG—BasicConstraints for V3 CA certificates are checked and the certificates are verified to be CA certificates. This is the default. STRICT—This level does the same checking as the STRONG level, but in addition it also strictly enforces IETF RFC 2459 which specifies the BasicConstraints for CA certificates also must be marked as "critical". Set this if you want to strict conformance to RFC 2459. This change may result in security exceptions that did not occur in WebLogic Server 6.1 SP04. For example, an attempt to make an outbound SSL call, resulted in this error when the certificate presented by the remote server instance did not have a basic constraint: <May 8, 2003 4:36:18 PM MDT> <Notice> <WebLogicServer> <SSLListenThread listening on port 7002> <May 8, 2003 4:36:19 PM MDT> <Notice> <Management> <Starting discovery of Managed Server... This feature is on by default, you may turn this off by passing -Dweblogic. <May 8, 2003 4:36:19 PM MDT> <Notice> <WebLogicServer> <Started WebLogic Admin Server "myserver" for domain "412253" running in Production Mode> EXCEPTION: Socket Closed java.io.IOException: Socket Closed at weblogic.security.SSL.SSLSocket.sendAlert(SSLSocket.java:1086) at... Such errors may be prevented by setting the plug-in parameter EnforceBasicConstraints to false. You can set disable checking of basic constraints at the command line with this command: -Dweblogic.security.SSL.enforceConstraints=false
CR089746 | (NSAPI) WebLogic Server supported the following scenarios: plug-in via T3s to application server. (No SSL Session caching and NO Keep-Alive) plug-in via HTTPS to application server. (No SSL Session caching and NO Keep-Alive)Customer is asking for SSL session resumption between plug-in and Weblogic Server. A customer requested support for SSL session caching and keep-alives between the plug-in and and WebLogic Server, for T3s and HTTPS. The request was satisfied by adding the KeepAliveEnabled flag , and adding SSL session cache.
CR091635 | (NSAPI) The SP03 version of the plug-in failed to parse the the JVMIDs for the following request: 2002 Found Encoded Session=[JSESSIONID=9dq5Z081!805492834!174332983!7001!7002?_JASPER=1000/r/1037920979629&PAGE=HOME_TEMPLATE&INTEGRATION=YES] Thu Nov 21 15:16:09 2002 Parsing cookie JSESSIONID=9dq5Z081!805492834!174332983!7001!7002?_JASPER=1000/r/1037920979629&PAGE=HOME_TEMPLATE&INTEGRATION=YES Thu Nov 21 15:16:09 2002 getpreferredServersFromCookie: 805492834!174332983!7001!7002?_JASPER=1000/r/1037920979629&PAGE=HOME_TEMPLATE&INTEGRATION=YES Thu Nov 21 15:16:15 2002 parseJVMID: could not resolve hostname 'r', treating it as invalid The problem was solved with a code fix to check JVMID portion of session cookie contains '/' instead of the whole sessionid.
CR092756 | (ISAPI) ISAPI plug-in was not failing over on receipt of a HTTP 503 response from the backend. A code fix was implemented to solve this problem.
CR093196 | (NSAPI) JSP sendRedirect() failed when web application is deployed on a cluster and the JSP is accessed through the iPlanet proxy plug-in. An IE browser returns the message The page cannot be displayed... and Netscape returns The document contained no data... The problem was solved with a code fix to check for null value of secondary session.
CR093530 | (ISAPI) The PathTrim value was case-sensitive, causing problems for environments that prefer to allow clients to access an application with a case-insensitive URL. This problem was resolved by changing the PathTrim value to be case-insensitive.
CR093662 | (NSAPI) A call to encodeRedirectURL() failed when: (a) A webapp is deployed as a .war file on a cluster; (b) A JSP in the webapp is accessed through the iPlanet proxy plug-in; and (c) The JSP invokes encodeRedirectURL() in a FORM using the HTTP GET method A core dump occurs on the iPlanet Web Server. An Internet Explorer browser returns The page cannot be displayed...Cannot find server or DNS Error and Netscape returns The document contained no data... 1. Analysis revealed that the problem was caused by storing primary or secondary jvmid in a fixed length buffer without trimming the query string. The problem was solved by a code change to should trim the query string before parsing the session cookie
CR094109 | (Apache) Failover from primary server did not occur when response time exceeded the time limit set by HungServerRecoverSecs, and the Indempotent primitive is on. Analysis revealed that the problem was related to an error in the exception handling source code in ap_proxy.cpp. The problem was solved by rewriting the failover code.
CR094282 | (NSAPI) If the server listed in WebLogicHost and WebLogicPort or in WebLogicCluster was not up and running, or for example, Solaris started in single user mode, the plug-in hung until the operating system timed out the connection. By default, this timeout is lengthy. A new introduce plug-in parameter, WLSocketTimeoutSecs, was added. Use of this parameter prevents long delays when a machine is down. This default value is 2 seconds. The value must be greater than 0.
CR094663 | Same problem and resolution as CR095166.
CR094768 | (ISAPI) Parsing post data for cookies not implemented correctly in plugins. This error resulted "Bad request in the post data [NameField=aaaaa&ValueField=111111111111&AddValue=+Add+]" The UrlUnescape() method was returning incorrect return type, and parsing post data for content-types other than application/x-www-form-urlencoded. The bug was corrected with a code fix.
CR095009 | (ISAPI) The plug-in could not successfully resolve to the appropriate server instance. The error in the log files was: Primary JVMID not found in the server list, ignore preferred servers. Analysis revealed an error in getPreferredServersFromCookie(). The problem was solved with a code fix.
CR095558 | (ISAPI) The plug-in did not differentiate properly between read failures from the browser and write failures to the server. A code change was made to process connection aborted messages (10053/10054) only when failure is between the client and the plug-in.
CR095559 | (Apache) After failover of primary server, the plug-in continued to search for the primary server instance, instead of search for the secondary server instance and sending the it the request upon which the primary server failed. The problem was solved by a rewrite of the failover code.
CR095166 | (ISAPI) The IIS plug-in parsed cookies incorrectly when the client sent multiple cookies, resulting in the plug-in not sticking to the primary server instance. Analysis revealed an error in the string checking logic, strstr() did not correctly parse the session cookie name.
CR096625 | (Apache) The X_WEBLOGIC_FORCE_JVMID header was sent to to a server instance in a cluster. X_WEBLOGIC_FORCE_JVMID should only be sent when the server list is non-clustered and the current server does not have a jvmid yet. This problem was solved by a code fix.
CR097202 | (All plug-ins) A customer need to determine a browser's cipher strength on the WebLogic side, in a configuration that included a plug-in with 128 bit step up certs between WebLogic Server and the browser. The browser had 40 bit or 128 bit strength. The customer used this code to obtain the browsers cipher strength: (Integer)httpRequest.getAttribute("javax.servlet.request.key-size") to get the browser's strength. The value returned was always 128, although the browser was set to use a cipher size less than 128 bit. The https_keysize determines the strength of the connection that is made. Because 128 bit certs were used on plug-in, 128 was returned, regardless of the strength used by the browser. When the request was directed to WLS, 40 or 128 was returned, depending on the browser strength. The plug-in does not modify the HTTPS_KeySIZE or HTTPS_SECRETKEYSIZE headers. To meet this need, to new headers were implemented: WL-Proxy-Client-Keysize and WL-Proxy-Client-Secretkeysize. Both headers values can be obtained with request.getHeader().
CR096850 | (NSAPI) The iPlanet server, running under Windows2000, crashed when a load testing application is trying to make multiple connections to the server. The iPlanet server crashes after multiple attempts are made to connect to the server. Analysis revealed the iPlanet server crashed because of access violation and it points to MSVCRT!CxxThrowException. The problem was solved by a code fix to sendResponse, to return and handle the exception, instead of throwing the exception.
CR100361 | The following new exception types were added: READ_ERROR_FROM_CLIENT—error when reading data from client READ_ERROR_FROM_SERVER—error when reading data from backend server READ_ERROR_FROM_FILE—error when reading from temporary file which stores post data WRITE_ERROR_TO_FILE—error when writing post data to the temporary file
CR101222 | (NSAPI and Apache) Failover to a secondary server instance when the primary server instance hung did not occur reliably. After establishing a primary and a secondary session, the client sent a recovery request that slept for longer then the value of HungServerRecoverySecs if the request.getParameter("primary") was equal to the server name. The web server did not detect that the primary server was hung and fail over the request to the secondary. Analysis revealed that the secondary server was marked bad, which caused the plug-in to skip it, and use the general server list. The problem was solved by a code change to reset the server to good after MaxSkipTime.
CR101428 | (ISAPI) When requests contained multiple cookies, if cookies not named JSESSIONID were after the JSESSIONID cookie, they were stripped off and not delivered to WebLogic Server. The problem was solved be a code change.
CR101596 | (NSAPI) In WebLogic Server 6.1 SP04, ssl_certchain_verify_callback() incorrectly returned SSLNoErr for certain error conditions. The problem was solved be a code change to return X509CertChainInvalidErr when the error conditions are encountered.
CR103126 | (Apache) When starting Apache using the plugin on Linux for ssl128, this error occurred: Cannot load /usr/local/apache/libexec/mod_wl_ssl128.so into server: /usr/local/apache/libexec/mod_wl_ssl128.so: undefined symbol: pthread_mutexattr_init Analysis revealed a build problem, which was solved by rebuilding the plug-in.
CR103161 | Duplicate of "CR097202".

RMI-IIOP

Change Request Number | Description
CR090010 | Under WebLogic Server 6.1 SP03, BoxedRMI IDL file seq2_seq1_octet.idl for multi dimensional arrays, generated with weblogic.ejbc contained module/path declaration org.omg.boxedRMI twice. The problem was solved with a code fix to correct the IDL declaration for multidimensional boxedRMI sequences.
CR093988 | Under WebLogic Server 6.1 SP04, accessing an EJB over IIOP from an ActiveX component caused WebLogic Server to hangs. The thread dump indicated a dead lock in the java layer. The problem occurred with SUN JDK 1.3.1, under Red Hat Linux 7.2 and Windows2000. Analysis revealed that IIOP socket timeout trigger closing sockets could cause deadlocks. A code fix was implemented to prevent this scenario.
CR100334 | In previous releases of WebLogic Server 6.1 dispatching methods with no arguments or invoking methods with a void return type would cause WebLogic Server to try and read data that potentially was not there. The data is not there when delivered from 7.0sp2, for other releases we try and accommodate 6.1 by delivering the extra (unnecessary) data.
CR100430 | WebLogic Server 6.1 SP04 and earlier does not interoperate with WebLogic Server 8.1. Transactions between 6.1 and 8.1 server instances timeout with an ArrayIndexOutOfBoundsException on the 6.1 server instance. This problem is solved in WebLogic Server 6.1 SP05.
CR100334 | This release solves an interoperability problem between WebLogic Server 6.1 SP04 and WebLogic Server 7.0 SP02. WebLogic Server 6.1 SP04 erroneously tried to read void parameters that were returned to it, resulting in an UnmarshalException. This occurred when: WebLogic Server 6.1 SP04 received a void return value as a result of a call to a WebLogic Server 7.0 SP02 server instance A method with no arguments was invoked on a 6.1 server instance by a WebLogic Server 7.0 SP02 server instance This problem prevented interoperability with other ORBs.

RMI

Change Request Number | Description
CR096511 | Under WebLogic Server 6.1 SP03 and SP04, out of memory messages occurred on repeated creation and close of InitialContext. This problem was diagnosed as a memory leak on the DGCServerHelper class. This problem was resolved with a code change to register LocalServerRef only if the dgcpolicy on descriptor is not "Managed".
CR089481 | Under WebLogic Server 6.1 SP03, a client JDBC connection that was not closed properly by the client, was not closed by WebLogic Server and garbage collected. This problem was solved by a code fix to ensure that connections are be closed properly even when the remote client does not close the connection properly. Notes: Client-side code should properly close connections. Although WebLogic Server will close unclosed connections, the process may be protracted, depending on the use and the distributed garbage collection behavior.
CR100430 | In WebLogic Server 6.1 SP04, with a WebLogic Server 8.1 server instance as client of a WebLogic Server 6.1 SP04 server instance, a transaction timed out with this exception: java.rmi.RemoteException: Exception while committing Tx: Name=[EJB weblogic.qa.tests.interop.ejb11.txcrossdomain.TravelPlannerBean.planItinerary_Required(java.lang.String,java.util.Properties)],Xid=BEA1-000147799CCFA039D1D7(2653792),Status=Committing,numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=120,seconds This interoperability issues was solved with a code fix.

Security

Change Request Number | Description
CR090101 | WebLogic Server did not ensure each certificate in a certificate chain was issued by a certificate authority. This problem meant anyone could get a personal certificate from a trusted certificate authority, use that certificate to issue other certificates, and WebLogic Server would not detect the invalid certificates. Now all X509 V3 CA certificates used with WebLogic Server must have the Basic Constraint extension defined as CA thus ensuring all certificates in a certificate chain were issued by a certificate authority. By default, any certificates for certificate authorities not meeting this criteria are rejected. If WebLogic Server is booted with a certificate chain that will not pass the certificate validation, an information message is logged noting that clients could reject it. For more information, see SSL Certifi .
CR051018 | In previous releases of WebLogic Server, the system password was stored in clear text. The password is now encrypted and stored in password.ini. Note: password.ini cannot be upgraded to the boot.properties file used in WebLogic Server version 7.0.
CR100592 | WebLogic Server 6.1 SP04 became unusable after IPlanet LDAP realm disabled a user. The problem appeared with this sequence of events: Bring up an LDAP realm with the server. Deploy a webapp that uses form authentication. For any user in the LDAP realm, use the wrong password until you reach the user lockout threshold. Client receives a 500 error, and the server will show: <Mar 9, 2003 7:17:22 PM PST> <Error> <HTTP> <[WebAppServletContext(3017390,security,/security)] Servlet failed with Exception netscape.ldap.LDAPException: error result (19); Exceed password retry limit. Please try later.; Constraint violation After this error, the server becomes unusable with respect to authentication; for example, no other user can log into the web application, and the console is inaccessible. The problem was solved with a code fix to check for LDAP exceptions when user enters an invalid password.

Servlets

Change Request Number | Description
CR077922 | During testing, the session binding listener's (HttpSessionBindingListener) valueBound() and valueUnBound() methods were called multiple times for a single invocation. A code fix was implemented to prevent duplicate method calls.
CR083624 | A new configuration parameter, UseHighestCompatibleHTTPVersion, was added to the WebServer element in config.xml.This parameter causes WebLogic Server to send responses in the highest version of the HTTP protocol that is compatible with the version used in the request. For instance, setting this parameter to be true causes WebLogic Server to respond to an HTTP/1.0 request with an HTTP/1.1 response. This affects only the version-string portion of the response. The default setting for the parameter is false in WebLogic Server 6.1 The parameter value can be changed by editing config.xml. The Administration Console does not provide an interface for setting the parameter value.
CR086579 | Using the NSAPI proxy plug-in with form-based authentication through iPlanet listening on port 80, j_security_check was not redirecting correctly, and authentication failed. Analysis revealed that the form based authentication module did not call processRedirectedURL in the case of default port.
CR086587 | In WebLogic Server 6.1 SP03, the web server log (access.log), and the JDBC sub-system log (jdbc.log) were created relative to the product installation directory, instead to the RootDirectory. This problem was corrected with a code fix.
CR087573 | In WebLogic Server 6.1 SP01, when using JDBC persistence for a session and storing a complex object that contained nested hashMaps and TreeMaps, a subsequent request came before the session was persisted, resulting in loss of session data. The problem was solved with a code fix to move removeSession(id) to the end of method sync() in FileSessionContext.java.
CR087647 | The fix associated with "CR055987" introduced a timeout to solve the connection not being released problem. The fix introduced an InterruptedIOException that was not handled. When the exception was encountered, unwanted retries occurred. The problem was resolved with a code fix to catch InterruptedIOException and re-throw the exception to prevent retries.
CR087984 | In WebLogic Server 6.1SP02, ServletContextListener was invoked before HttpSessionListener. According to the 2.3 servlet specifications, session listeners must be notified of session invalidations prior to context listeners being notified of application shutdown. A code fix was made to ensure compliance with the specification.
CR088166 | In WebLogic Server 6.1SP03, a web application generated a java.lang.ClassNotFoundException without indicated the name if the missing file: <[WebAppServletContext(4730538,olam,/olam)] Error loading servlet: ""> java.lang.ClassNotFoundException: Analysis revealed that WebLogic Server did not correctly handle a null or empty string value for the auth-filter tag. The problem was resolved with a code fix.
CR088350 | Using HttpProxyServlet to proxy to a 3rd party event server from KnowNow caused Internet Explorer 6 to wait indefinitely with no response. Analysis revealed that the KnowNow server : only responds to HTTP 1.0 requests does not send the ContentLength If there is no content length, and the data is not chunk transferred, WebLogic Server reads until the end of stream. If the KnowNow server keeps sending data, HttpProxyServlet keeps reading data. The problem was resolved with a new configuration parameter, UseKnowNow, that causes HttpProxyServlet to: read and write byte by byte, and use HTTP/1.0 to send requests to KnowNow To use this parameter, add this syntax to the web.xml for the HttpClusterServlet webapp. <init-param> <param-name>UseKnowNow</param-name> <param-value>true</param-value> </init-param>
CR088384 | In WebLogic Server 6.1SP02, getContextPath from HttpServletRequest returned incorrect value. For instance, for the request http://localhost//webapp/foo getContextPath returned /webap This error was corrected with a code fix.
CR088478 | The MaxSkips parameter for HttpClusterServlet and all plug-ins has been deprecated, and replaced with the MaxSkipTime parameter. With this parameter, when the plug-in marks a server "bad", it notes the time the bad server is skipped in load balancing cycles until MaxSkipTime is reached then, a new server list is forced
CR088747 | Session was lost when trying to re-establish a WebLogic Server session after a request to a web application that did not explicitly set CookiePath in weblogic.xml. Analysis revealed the browser (IE6) sent back two session cookies with different paths: JSESSIONID with /webapp as the path JSESSIONID with / as the path According to J2EE, multiple cookies in the header are ordered such that those with more specific Path attributes precede those with less specific. WebLogic Server searched the cookie vector backwards for the JSESSIONID, for performance reasons, and hence encountered the less specific path . A code change was implemented to ensure that WebLogic Server uses the first cookie in the header.
CR088759 | In WebLogic Server 6.1 SP03, redirect-with-absolute-url = false did not work for j_security_check. This is because j_security_check stores a absolute path and passes it to the sendRedirect() method. j_security_check also should be aware of redirect-with-absolute-url. A code change was implemented to make FormSecurityModule redirect requests in accordance with the setting of redirect-with-absolute-url.
CR089582 | In WebLogic Server 6.1 SP03 under Solaris 8, when receiving a HTTP/1.1 request that did not have a Host header field, the value of Date header field that WebLogic Server returned was "Date: Thu, 01 Jan 1970 00:00:00 GMT". This made it impossible to determine when the erroneous request was generated. The problem was solved by a code change to set the request invoke time before sending the bad request error.
CR089868 | A performance fix introduced in WebLogic Server 6.1 Service Pack 3 (083654) caused multi-byte headers to become garbled. A work-around is available, but in SP03 and SP04, a patch was required to employ the work-around. (See 089868 for details.) In SP05, the CR089868 patch is no longer necessary.
CR090033 | WebLogic Server 6.1 SP03 threw a null pointer exception while parsing request when the WL-Proxy-SSL header precedes the Host header. This occurred with client running over HTTPS, and SSL accelerator, IPlanet, and WebLogic Server running over HTTP. The problem was only replicated when configuration included the SSL accelerator. java.lang.NullPointerException at weblogic.servlet.internal.ServletRequestImpl.setField(ServletRequestImpl.java:1903) at weblogic.servlet.internal.RequestParser.parse(RequestParser.java:254) at weblogic.servlet.internal.MuxableSocketHTTP.dispatch(MuxableSocketHTTP.java:390) at weblogic.socket.MuxableSocketDiscriminator.dispatch(MuxableSocketDiscriminator.java:275) at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:633) at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:23) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133) The error occurred because the context is null, as the request was still being parsed, and context was not yet known. The WL-Proxy-SSL went before the HOST header. Problem was resolved with a code fix.
CR090188 | For chunked data transfer WebLogic Server 6.1 SP03 prepended the chunk size to the data to bet transferred, hence adding extra characters to the data transferred. The problem was resolved with a code change, to move setChunking out of mergePostParams of ServletRequestImpl to MuxableSocketHttp after request.setInputStream. With this change, servlets and JSPs no long needs to decode chunk data. The WebLogic Server servlet engine will merge chunk data automatically.
CR090225 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA03-14.jsp.
CR090465 | When hosting a web application with user-defined error pages, WebLogic Server returned the following response for 400 error and closed the connection immediately, with no Connection: close header: HTTP/1.1 400 Bad Request Date: Thu, 01 Jan 1970 00:00:00 GMT Content-Length: 463 Content-Type: text/html Last-Modified: Thu, 07 Nov 2002 21:56:52 GMT <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> The problem was solved with a code fix.
CR090555 | WebLogic Server threw a null pointer exception to HttpClusterServlet when checking for X_WEBLOGIC_CLUSTER_HASH. Stack trace: <Tue Nov 05 15:58:00 PST 2002>: Start connection timeout scheduler <Tue Nov 05 15:58:00 PST 2002>: GenericProxyServelt: init() <Tue Nov 05 15:58:00 PST 2002>: HttpClusterServlet:init() <Tue Nov 05 15:58:00 PST 2002>: ===New Request===GET /base;JSESSIONID=9G8ZGUTNwnNTXm8B5V5z41e hG0T3oChTPvhnXe7EHCZ1IQI5lgF4!822557425 HTTP/1.1 <Tue Nov 05 15:58:00 PST 2002>: Found cookie: 822557425 <Tue Nov 05 15:58:00 PST 2002>: Trying to get JVMID id from server: coolant!7003!443 <Tue Nov 05 15:58:00 PST 2002>: Update dynmaic hash: WakHYk8LlxQ7XrnhkSXEohfZMAw <Tue Nov 05 15:58:00 PST 2002>: java.lang.NullPointerException at weblogic.servlet.proxy.HttpClusterServlet.initDynamicServerList(HttpClusterServlet .java:761) at weblogic.servlet.proxy.HttpClusterServlet.getPreferred(HttpClusterServlet.ja va:622 ) at weblogic.servlet.proxy.HttpClusterServlet.service(HttpClusterServlet.java:21 Analysis revealed that response headers are stored in the HashMap in random order. A code fix was implemented to set the server list before setting hash.
CR090665 | WebLogic Server 6.1 SP03, servlet filters had to explicitly call flushBuffer() on the response wrappers after having called chain.doFilter() to send the response to the client. This caused customers to have to write separate versions of the filter for different application servers. Not doing so causes the response to contain no data. This happens because of bytes being buffered in the printWriter's OutputStreamWriter object. A code change was implemented to ensure that user code does not need to explicitly call flushBuffer().
CR091410 | When "extended format" is selected for the HTTP logging option and the server is restarted, the following Null Pointer Exception was thrown: <Oct 9, 2002 6:45:48 PM PDT> <Error> <kernel> <000802> <ExecuteRequest failed java.lang.NullPointerException java.lang.NullPointerException The problem was solved with a code fix to open access.log file if filename is null
CR091759 | RequestDispatcher.forward dropped the version number at the end of the URL header. The request should have been forwarded as: Request URI: /RequestDispatcher/SnoopServlet/myTest.txt;37 Instead, it was forwarded as: Request URI: /RequestDispatcher/ProxySnoopServlet/myTest.txt The problem was resolved to a code fix to set processPathParameters to false in setRequestURI() when doing forward().
CR091878 | When HttpClusterServlet was undeployed during a load test, an .IndexOutOfBoundsException resulted: <Nov 27, 2002 4:05:11 PM PST> <Error> <HTTP> <101268> <ServletContext(id=5220998,name=proxywebapp,context-path=): Failed while destroying servlet: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2 IndexOutOfBoundsException while destroying HttpClusterServlet Analysis revealed an error occurred when removing the last element in the connection pool with pool.remove(i). The problem was resolved with a code fix.
CR092255 | WebLogic Server 6.1 SP04 ignored the quote character (") if cookie valued includes a quote character. For example, this syntax:
    Cookie cookieWithQuotedValue = new Cookie("TestQuotedCookie",
    "\"TestValue\"");
assigned TestValue is added as cookie value, not "TestValue". A code change was made to preserve quote characters in cookie values.
CR092428 | In WebLogic Server 6.1 SP04, comma character (,) in a Netscape cookie resulted in a Got bad cookie header error message. A code fix resolved the problem.
CR092778 | In WebLogic Server 6.1 SP04, JISAutoDetect encoding for HttpRequest resulted in this UnsupportedEncodingException: java.io.UnsupportedEncodingException: JISAutoDetect at sun.io.Converters.getConverterClass(Converters.java:102) at sun.io.Converters.newConverter(Converters.java:133) at sun.io.CharToByteConverter.getConverter(CharToByteConverter.java:62) at weblogic.servlet.internal.ServletRequestImpl.setCharacterEncoding(ServletRequestImpl.java:344) ... This problem did not occur with WebLogic Server 6.1 SP03. The problem occurred because ServletRequestImpl.java used the CharToByteConverter class instead of sun.io.ByteToCharConverter. CharToByteConverter is the one for input converter. CharToByte is for output converter. JISAutoDetect is only available for input stream. The problem was corrected with a code fix.
CR093167 | In WebLogic Server 6.1 SP03, when using the HTTPClusterServlet to access a secure webapp on a backend cluster, Internet Explorer 5.5 hung for 30 seconds after the username and password were entered. The problem was not replicated in other browsers, and did not occur under Internet Explorer when accessing a back end server directly, rather than through the plug-in. The problem occurred because Internet Explorer does not close the connection when it gets a Connection: Close header from the server. When accessing WebLogic Server directly, WebLogic Server closes the connection when it throws a 401 error. However through the HttpProxyServlet, the browser-to-ProxyServlet connection was kept alive even though the backend server had closed the connection. The problem was solved by a code fix to GenericProxyServlet which causes the front end connection to disable KeepAlives when a Connection: Close header is returned from the back end server. This causes Internet Explorer to send the authentication details back straight away instead of hanging while waiting for WebLogic Server to timeout the connection.
CR093209 | A new installation of WebLogic Server 6.1 SP04 threw a null pointer exception when a successfully deployed web app that has a property set to java protocol is accessed. The browser returned Error 500--Internal Server Error. The problem did not occur with an upgrade installation. <Dec 16, 2002 11:59:05 AM PST> <Error> <HTTP> <[WebAppServletContext(2092664,sampleApp,/sampleApp)] Servlet failed with Exception java.lang.NullPointerException at weblogic.servlet.JSPServlet.service(JSPServlet.java:132) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:262) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:198) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2637) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2359) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) > Analysis revealed an error in ZipSource.getURL(). The problem was resolved by adding logic to check for null value of source.getURL().
CR093634 | In WebLogic Server 6.1 SP03 the HttpRequest.getRemoteAddr() method returned the IP address of HttpClusterServlet instead of the client browser's IP address. Analysis revealed that HttpClusterServlet does not set the proprietary header, "WL-Proxy-Client-IP", and instead returns the IP address of the socket upon which it is listening. The problem was solved by a code fix to HttpClusterServlet to set the "WL-Proxy-Client-IP" header when WebLogic Plugin Enabled parameter is enabled.
CR093755 | The error message: <Warning> <HTTP> <WebAppServletContext(5294080,blue,/blue) One of the getParameter family of methods called after reading from the ServletInputStream, not merging post parameters> was erroneously generated. A code fix was implemented to ensure that the message is not generated erroneously.
CR094488 | A new capability was added to allow a user to securely access HTTPS resources in a session that was initiated using HTTP, without loss of session data. To enable this new feature, add AuthCookieEnabled="true" to the WebServer element in config.xml: <WebServer Name="myserver" AuthCookieEnabled="true"/> This will cause an new secure cookie to be sent to the browser when authenticating via an HTTPS connection. Once set, the session can access other security-constrained HTTPS resources only if the cookie is sent from the browser. Note: If authenticating via plain HTTP, the secure cookie will not be set or required for any HTTPS resources. When accessing a non-protected HTTPS resource, the cookie will not be verified (since it will not have been sent from the browser). This allows the browser to access non-protected HTTPs resources without the user logging in.
CR094773 | Duplicate of "CR094561". Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA03-26.01.jsp.
CR094997 | In WebLogic Server SP02, when two interacting web applications use different session cookie names, the session ID was lost. Analysis revealed that session attributes were not updated correctly when a web application specifies cookieName, a resource from another web application is included, and a RemoteUser exists in the request prior to the inclusion of the external resource. The problem was solved by a code fix.
CR095548 | During testing, session data was lost intermittently, when the persistence type was JDBC. The following exception occurred: weblogic.qa.tests.cluster.webapp.plugins.RequestSessionBeforeInvalidateTest.testRequestSessionBeforeInvalidationTest() Session Was Invalidated Sent: http://qa47-1:7771/pluginsjdbc/SessionBeforeInvalidate.jsp?count=1 Received: <html><body>PROBLEM: session is not the same as the first request!FirstRequest sid: 2tjgF02nPIGgHGyojFubyOIjqt0ZAVK4no1Ny0afTxGKMrOj25z5!2356550501043194848402Sid The problem was resolved with a code fix to the isRequestedSessionIdValid() method.
CR095570 | WebLogic Server 6.1 SP04 threw a NullPointerException when a null value was set in a servlet HTTP header: <Jan 22, 2003 11:11:53 AM KST> <Error> <Kernel> <Execute Request failed java.lang.NullPointerException: Start server side stack trace: java.lang.NullPointerException at weblogic.servlet.internal.ResponseHeaders.writeHeaders(ResponseHeaders.java:360) at weblogic.servlet.internal. ServletResponseImpl.writeHeaders(ServletResponseImpl.java:902) at weblogic.servlet.internal.ServletOutputStreamImpl. sendHeaders(ServletOutputStreamImpl.java:239) at weblogic. servlet.internal.ServletOutputStreamImpl.flush(ServletOutputStreamImpl.java:121) at weblogic.servlet.internal. ServletOutputStreamImpl.commit(ServletOutputStreamImpl.java:484) at weblogic.servlet.internal.ServletOutputStream Impl.finish(ServletOutputStreamImpl.java:531) at weblogic. servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1091) at weblogic.servlet.internal.Servlet RequestImpl.execute(ServletRequestImpl.java:2364) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread. java:120) End server side stack trace at weblogic.servlet. internal.ResponseHeaders.writeHeaders(ResponseHeaders.java:360) at weblogic.servlet.internal.ServletResponseImpl. writeHeaders(ServletResponseImpl.java:902) at weblogic. servlet.internal.ServletOutputStreamImpl.sendHeaders(ServletOutputStreamImpl.java:239) at weblogic.servlet.internal. ServletOutputStreamImpl.flush(ServletOutputStreamImpl.java:121) at weblogic.servlet.internal.ServletOutputStream Impl.commit(ServletOutputStreamImpl.java:484) at weblogic.servlet.internal.ServletOutputStreamImpl.finish(ServletOutputStreamImpl.java:531) at weblogic.servlet.internal. ServletResponseImpl.send(ServletResponseImpl.java:1091) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2364) at weblogic.kernel.ExecuteThread. execute(ExecuteThread.java:139) at weblogic.kernel.Execute Thread.run(ExecuteThread.java:120) The problem was resolved by added logic to check for null values in ResponseHeaders.java.
CR096459 | Response time for a web application deployed to WebLogic Server 6.1 SP02, when accessed from a browser set to HTTP Version 1.0 with flushRes=true. The problem did not occur with flushRes=false. Analysis revealed that useKeepAlive was reinitialized inappropriately. The socket connection was not closed when it should have been, and the client waited for the socket to time out. A code fix was implemented to initialize useKeepAlive when setting request and response.
CR097719 | In WebLogic Server SP02, SP03, and SP04, when getting certain POST requests from WAP devices, a web application encountered a java.util.ConcurrentModificationException <29.jan.03 13:03:05 WET> <Error> <HTTP> <[WebAppServletContext(2810713,TnMFF,/TnMFF)] Servlet failed with Exception java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.next(HashMap.java:736) at weblogic.utils.enumerations.IteratorEnumerator.nextElement(IteratorEnumerator.java:25) at com.colibria.core.xmlswitch.XMLSwitch.getQueryStringXML(XMLSwitch.java:347) at ... Analysis revealed that when a charset is associated with the request's content-type, the code read the data again using the encoding, and reset the query parameters, in the application. The application already has the enumeration object and iterates it (request.getParameterNames), and then tries to get the value of the parameter (request.getParameterValues(k)). At that point, the query parameters are wiped out and getParameterValues method tries to set it, resulting in the exception. The problem was resolved by a code change to set query parameters after they are wiped, so that the data can be read again when a charset is associated with the request's content-type
CR098955 | The scheduled log rotation time for a WebLogic Server HTTP server log was calculated incorrectly when weblogic.httpd.logRotationBeginTime was a date in the past. The error was corrected by changing the data type of operands used in the calculation from INT to LONG.
CR099984 | The input stream was consumed by the servlet engine before the servlet code could access it. This problem was resolved by a code change to ensure that internal reads do not consume the input stream.
CR100265 | If the request received has no cookie but does have valid credentials WebLogic Server should allow access to the protected resource. Instead, this exception occurred: java.lang.NullPointerException at weblogic.servlet.security.internal.SecurityModule.checkAuthCookie(SecurityModule.java:579) at weblogic.servlet.security.internal.BasicSecurityModule.checkUserPerm(BasicSecurityModule.java:157) at ... The problem was solved with a code fix.
CR100572 | When a request with an incorrect URI was received from a from plug-in, WebLogic Server threw this stack trace <Mar 8, 2003 3:27:20 PM PST> <Error> <Socket> <BEA-000421> <Uncaught Throwable i n processSockets java.lang.NullPointer Exception. java.lang.NullPointerException at weblogic. servlet.internal.ServletResponseImpl.writeHeaders(ServletResponseImpl.java:968) at weblogic.servlet.internal.Servlet OutputStreamImpl.sendHeaders(ServletOutputStreamImpl.java:244) at weblogic.servlet.internal.ServletOutputStreamImpl. flush(ServletOutputStreamImpl.java:121) at weblogic.servlet. internal.ServletOutputStreamImpl.commit(ServletOutputStreamImpl.java:486) at weblogic.servlet.internal.ChunkOutput. commit(ChunkOutput.java:269) at weblogic.servlet.internal. ChunkOutputWrapper.write(ChunkOutputWrapper.java:91) at weblogic.servlet.internal.ChunkWriter.write(ChunkWriter.java:37) at java.io.Writer.write(Writer.java:150) at java.io.PrintWriter.write(PrintWriter.java:230) at java.io.PrintWriter.write(PrintWriter.java:247) at java.io.PrintWriter.print(PrintWriter.java:378) at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:420) at weblogic.servlet.internal. ServletResponseImpl.sendError(ServletResponseImpl.java:373) at weblogic.servlet.internal.MuxableSocketHTTP.dispatch (MuxableSocketHTTP.java:512) at weblogic.socket.MuxableSocket Discriminator.dispatch(MuxableSocketDiscriminator.java:281) at weblogic.socket.NTSocketMuxer.processSockets(NTSocket Muxer.java:102) at weblogic.socket.SocketReaderRequest. execute(SocketReaderRequest.java:32) at weblogic.kernel. ExecuteThread.execute(ExecuteThread.java:178) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:151) This problem was solved with a code fix.
CR100172 | When multiple chunked requests are posted to a servlet a number of the requests fail with a NumberFormationException. Mostly of the time alternate requests are fulfilled and the next request fails. It seems to be occurring as the requests are being made on the same connection. The exception stack trace is: <ExecuteThread: '11' for queue: 'default'> <kernel identity> <> <101017> <[ServletContext(id=4864139,name=387551,context-path=)] Root cause of ServletException> java.lang.NumberFormatException: at java.lang.Integer.parseInt(Integer.java:430) at weblogic.utils.http.HttpChunkInputStream.readChunkSize(HttpChunkInputStream.java:118) at weblogic.utils.http.HttpChunkInputStream.initChunk(HttpChunkInputStream.java:72) Analysis revealed two problems in PostInputStream: did not reset control variable readAllChunks when recycling PostInputStream, isChunkComplete did not detect the end of chunk correctly The problem was solved by a code fix to read until end of stream in PostInputStream and correctly detect end of chunk in HttpChunkInputStream.
CR100837 | WebLogic Server 6.1 SP04 misdirected output for JSP includes in JSP pages. The problem was corrected with a code fix.

WLS-Tour/Examples

Change Request Number | Description
CR087117 | In WebLogic Server 6.1 SP04, a password error occurred when starting the Administration Server, the Petstore server and the Example server, before the user entered a password: Starting WebLogic Server .... <Oct 1, 2002 9:22:10 AM EDT> <Notice> <Management> <Loading configuration file .\config\petstore\config.xml ...> <Oct 1, 2002 9:22:13 AM EDT> <Emergency> <Security> <Authentication failure - reenter password to boot weblogic server:> A code fix solved this problem.
CR087366 | In WebLogic Server 6.1 SP04, the "WebLogic Server Code Examples Index" link in the samples server index page (index.jsp) did not work. When a the user clicked the link, the following message was displayed: "Netscape is unable to find the file or directory named /D:/bea61. Check filename and try again. Analysis revealed that WebLogic Server had been installed with a BEAHOME that contained a blank space. The problem was resolved by adding double quotes to the relevant href in index.jsp to allow for space characters in BEAHOME.
CR090776 | An error occurred when deploying Petstore applications during an upgrade from WebLogic Server 6.1 SP04 to WebLogic Server 8.1. Analysis revealed that deployment descriptors lacked EJB references. The missing references were caught by the WebLogic Server 8.1, but not by WebLogic Server 6.1 This problem was resolved by corrections to the Petstore deployment descriptors.
CR092881 | In WebLogic Server 6.1 SP04 on Unix AIX, When a user tried to start petstore with StartPetStore.sh this error resulted: java.lang.SecurityException: Unable to locate a login configuration. The problem was solved with a correction to StartPetStore.sh.
CR096147 | dmloadcf failed for dom1config for WebLogic Server Samples simpFML32 Analysis revealed that *DM_LOCAL_SERVICES contained: *DM_LOCAL_SERVICES REVERSE_STRING RDOM="TDOM1" instead of: *DM_LOCAL_SERVICES REVERSE_STRING LDOM="TDOM1" An error in the Tuxedo dom1config configuration file was corrected to allow Tuxedo to export the local service, REVERSE_STRING, provided by local domain TDOM1.
CR102138 | The documentation for the SSL Client example were incorrect. The instructions directed the user to copy the WL_HOME\lib\cacerts to JAVA_HOME\jre\lib\security\jssecacerts. This problem was solved by correcting the instructions, adding the jssecacerts file to the sslclient sample directory, and adding sample output to the instructions for the JSSE sample.

Web Services

Change Request Number | Description
CR087529 | In WebLogic Server 6.1SP03, the client for the sample web service at samples\examples\webservices\rpc\weatherEJB was built by wsgen and deployed using only the client.jar (no weblogic.jar). When the non-SSL web service was invoked by the Java client, the following exception was thrown: << Missing class files in servicegen client.jar. Getting Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/net/http/HttpsURLConnection at weblogic.soap.http.SoapContext.lookup(SoapContext.java:87) at javax.naming.InitialContext.lookup(InitialContext.java:350) at com.verizon.client.client.main(client.java:72) >> Analysis revealed that the weblogic.net.http.HttpsURLConnection class is necessary for minimal out-of-the-box functionality and should be included in the client.jar. The problem was solved by adding weblogic.net.http.HttpsURLConnection to client.txt
CR091862 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA02-23.jsp.
CR095044 | In WebLogic 6.1 SP03, when org.apache.soap.Fault was used (to represent the contents and semantics of a <SOAP-ENV:Fault> element), the Fault.getDetailEntries() method call should result in a Vector of exceptions, when the web service operation throws an exception. Instead, in WebLogic 6.1 SP03, this call returns a null and the client does not get to see the exception stack trace. This problem does not exist in SP02. The client runs with the same CLASSPATH while hitting either the WebLogic 6.1 SP02 or WebLogic 6.1 SP03 server instances. The problem was reproduced with the client CLASSPATH: CLASSPATH=.;.\soap.jar;.\xerces.jar;.\j2ee.jar The difference in behavior is that in SP03, the content of the fault detail is wrapped in <![CDATA[ ]]>. This is done to prevent the parser from failing if the stack trace contains something like <<no stacktrace available>> The problem was resolved by the addition of a new servlet initialization parameter, cdata-fault-detail, which if set to false, causes fault detail to not be wrapped in <![CDATA[ ]]> <servlet> ... <servlet-class>weblogic.soap.server.servlet.StatelessBeanAdapter</servlet-class> <init-param> <param-name>cdata-fault-detail</param-name> <param-value>true</param-value> </init-param> ... If cdata-fault-detail to false, if the stack trace contains something like <<no stacktrace available>> a parser error will result.
CR096906 | WebLogic 6.1 SP04, did not return dateTime entries correctly when a web service generated by WebLogic Server was called. The "+" char was omitted from the time zone offset part of the dateTime entry, when the time zone offset is positive (i.e., GMT+1 = CET [time zone for Denmark]). Example: February 3rd, 2003 09:12:04 CET should be dateTime: <date xsi:type="xsd:dateTime">2003-02-03T09:12:04.000+01:00 </date> Weblogic sent it as: <date xsi:type="xsd:dateTime">2003-02-03T09:12:04.00001:00 </date> The problem was resolved with a code fix.
CR098364 | In WebLogic 6.1 SP03, when Ant was used to generate a .war file with Web Services using this WebLogic task: <taskdef name="wsgen" classname="weblogic.ant.taskdefs.ejb.WSGen"/> and the Transactions.jar file had more than 155 EJBs, the wsgen failed. The problem was resolved by a code fix to CompilerInvoker.
CR099255 | In WebLogic 6.1 SP04, in the weblogic.soap.WebServiceProxy class, the invoke() method did not check if certs had been set in the class. This caused two-way authentication to fail, or alternatively if the certs are passed to the InitialContext the http protocol did not work. The problem was solved with a code fix.

WebLogic Tuxedo

Change Request Number | Description
CR084435 | In WebLogic 6.1 SP02 WTC connection policies did not work properly in failover and failback situations when the connection policy was set to ON_DEMAND and ON_STARTUP. When the connection policy was set to ON_STARTUP, failover doesn't work. Attempts to reproduce the problem revealed related errors: The WTC service request failed over to the secondary domain listed in the services section for the bdmconfig file. The WTC service request did not check the primary domain listed in the services section of the bdmconfig file; the request went to the secondary domain. When the primary node became unavailable as configured in bdmconfig.xml, the service request failed over to the secondary server in the imported services section: <T_DM_IMPORT ResourceName="TOUPPER" LocalAccessPoint="WLSDOM" RemoteAccessPointList="SIMPDOM,TESTDOM"> <TranTime>600</TranTime> < /T_DM_IMPORT> When SIMPDOM became unavailable, the service request was fulfilled by TESTDOM—this should not happen when the connection policy is ON_DEMAND. Analysis indicated that the connection policy wasn't being checked. The problem was resolved with a code fix to weblogic/wtc/gwt/TuxedoConnection.java.
CR095588 | In the simpconv example, the Tuxedo client failed to contact WebLogic Server. The client hit the local Tuxedo server instead of WebLogic Server. Code changes were made to the Tuxedo client so that it does not look for padding. In addition, a remote services section was added to dubb, and an export section was added to bmdconfig.xml file.
CR092860 | Using WTC to access Tuxedo 8 Corba objects resulted ia n JavaIDL Reader thread leak. Running a simple example application resulted in a build-up of JavaIDL Reader threads in the JVM running WebLogic Server. The threads were not destroyed until the server was shut down. Analysis revealed the finalize() was not called at the correct time. A code fix to add a call to ORB.destroy() was implemented to resolve the problem.
CR090137 | In WebLogic Server 6.1 SP02, the Xalan engine in WebLogic Server produced an invalid XML file, containing an unmatched <META> tag. A code fix to apache/xalan code solved the problem.
CR074963 | When creating large FML tables (on the order of 4K entries), mkfldclass[32] generated a method to instantiate each entry into a hash table. For large FML tables, this single method exceeds the size limitation in the JVM. This problem was resolved by implementing a dynamic load field table mechanism.

XML

Change Request Number | Description
CR091862 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA02-23.jsp.

WebLogic Server 6.1 Service Pack 4 Solutions

The following sections describe problems that have been resolved with WebLogic Server 6.1 Service Pack 4.

- Classloader

- Cluster

- Console

- EJB

- Examples

- JDBC and jDriver

- JMS

- Miscellaneous

- Plug-ins

- Servlets, JSPs, and Web Applications

- Security

- System Administration

Classloader

Change Request Number | Description
077067 | Setting the property PreferWebInfClasses in the config.xml now works correctly for resource files; if set, the files will now be taken from the users Web Application.
077344 | When a class file was in a JAR file in the WEB-INF\lib folder, the java.lang.ClassNotFoundException: org.apache.commons.logging.impl.LogFactoryImpl was being thrown. This problem has been fixed.
079738 | Fixed potential memory leaks when a web application with static references to a large memory structure is deployed or undeployed.
081377 | Fixed a problem that resulted when classes were loaded via the context class loader at deployment time.
083752 | If a class tried to create an InitialContext and the java command line specified weblogic.jar using the -Xbootclasspath argument, a NullPointerException was being thrown from weblogic.i18ntools.L10nLookup.loadProps. This has been fixed.
084236 | The example samples.examples.iiop.wls2wls.package-summary.html now contains correct URL information.

Cluster

Change Request Number | Description
CR043366 | Comma delimited ip addresses can now be specified for the cluster address when the server is started in development mode.
CR078455, CR081750 | In WebLogic Server 6.1 SP02 and SP03, a WebLogic Server cluster hung in session replication. The configuration included the F5 load balancer, Internet Information Server, and WebLogic Server ISAPI plug-in. Thread dumps referred to a never-before-reported path in the RJVM subsystem. ExecuteThread: '33' for queue: 'default'" daemon prio=5 tid=0x49edf0 nid=0x2b waiting for monitor entry [0xd527f000..0xd527fc68]^M at weblogic.rjvm.RJVMManager. findOrCreateRemoteInternal(RJVMManager.java:213)^M at weblogic.rjvm.RJVMManager.findOrCreate(RJVMManager.java:188)^M at weblogic.rjvm.RJVMFinder.findOrCreateRemoteServer (RJVMFinder.java:178)^M at weblogic.rjvm.RJVMFinder. findOrCreate(RJVMFinder.java:149)^M at weblogic.rjvm. ServerURL.findOrCreateRJVM(ServerURL.java:207)^M at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:311)^M at weblogic.jndi.Environment.getContext(Environment.java:156)^M at weblogic.jndi.Environment.getInitialContext( Environment.java:139)^M at weblogic.servlet.internal. HttpServer.lookupROIDS(HttpServer.java:751)^M at... Analysis revealed that the ISAPI plugin directed requests to a server other than that primary or secondary. THen calls were made on the remote ROIDImpl. This problem was resolved with a code fix in WebLogic Server 6.1 SP04.
CR078677 | HttpClusterServlet now performs failover during the graceful shutdown of the managed server.
CR081908 | Fixed a problem with HTTP session replication when the secondary server is unavailable at the TCP level. This solves a long delay when the server tries to connect to a secondary server that can obviously not receive a TCP request and has already been removed from the cluster view.
CR083532 | Fixed a Null Pointer Exception at weblogic.rmi.cluster.ReplicaAwareRemoteRef.getCurrentReplica that was causing the server's shutdown sequence to be aborted prematurely.
CR087870 | When using high-availability multi-pools, Weblogic now correctly fails over upon hardware failure when the pools have been created with an initial capacity equal to zero. The ResourceException that was being thrown was not the type that the multipool interpreted as reason to fail over--that was the problem.

Console

Change Request Number | Description
057307 | There is no longer an NullPointerException thrown when an attempt to change user password in the RDBMS realm is made.
061975 | Fixed a problem in createColumnsSql when auto key gen is used.
073536 | It is now possible to choose optional two-way SSL in the console by checking the check box.
074998 | Fixed a problem receiving authentication errors when using form-based authentication and multiple locales. Credentials in languages other than English could be successfully added to the fileRealm.prorperties file but could not be used to authenticate via the servlet form-based authentication. The credentials can now be used to authenticate via the servlet form-based authentication.
079130 | It is now possible to browse the JNDI tree for EJBs that are Deployed on the Managed Server.
079805 | Now Web Applications that are targeted to the source server show up as targeted to the cloned server.
082578 | Added a WAP-Enabled flag on the server config->http tab.
083107 | The console now supports Mozilla 1.0 browsers.
083330 | It is now possible to target a Multipool to a cluster via the console.
083377 | If you specify each cluster node with a DNS name at WebLogicCluster, HttpClusterServlet is now able to maintain the stickiness of HTTP requests with references to the static server list.
083578 | Increased the text field size for max message size on the server protocols tab.
084114 | When trying to monitor the web applications in the console via the mydomain --> Servers --> myserver --> Deployments tab --> WebApplications tab --> monitor all active Web Applications link, an exception was being thrown. This has been fixed.
086652 | Now if you create a new domain within the console, the file realm tab will work in the left hand pane of the console.

EJB

Change Request Number | Description
069899 | Many-to-many CMR no longer throws an SQL exception if both tables have the same column as the foreign key.
076112 | When a stateless session bean is deployed with the <max-beans-in-free-pool> parameter in the weblogic-ejb-jar.xml file, this value is not respected when concurrent calls are made to stateless session bean. WebLogic Server was creating further new instances of stateless session beans than the value specified in the parameter. This has been fixed.
076597 | The ejbRemove() method was never being called when undeploying a stateless EJB with <max-beans-in-free-pool> to 0. This has been fixed.
077049 | If an application uses dynamic proxies as parameters in EJB methods, a remote client can now use the interface even when the parameter interfaces are put on the server classpath.
078456 | The client and server output that is documented in some of the EJB examples was difficult to read because the text was not wrapping. Now, the text does not wrap and is easier to read.
079745 | EJBC no longer fails to deploy when another XML file is included in the weblogic-ejb-jar.xml file.
080569 | After running ECperf, the EJBCacheRuntime statistics appeared with the CachedBeansCurrentCount on one stateful session bean (CartSes) printing out an incorrect (and negative) number. This has been fixed.
081355 | EJBC no longer throws a NullPointerException when traversing relationships in an EJB 2.0 JAR file.
081807 | EJB Deployer hard wired the replicateBindings to 'true' on context object before binding home to the JNDI tree so that even if the user set the home-is-clusterable to 'False' in the weblogic-ejb-jar.xml file, announcements to the rest of the nodes in the cluster are still being attempted a NameAlreadyBoundException is being thrown. This has been fixed.
081817 | Provided an option to set dispatchPolicy at bean level in the weblogic-ejb-jar.xml file.
081991 | A Message Driven Bean no longer fails to reconnect to MQSeries after "inhibited" and then "allowed" is selected for getting messages from the queue.
082029 | Fixed a problem using EJB's and connecting to a database with an XA driver when using an openString property for the connection pool.
082451 | There is no longer a ClassNotFoundException thrown for third party JAR files for a Message Driven Bean that has a JMS provider that is not WebLogic Server.
083050 | When calling context.getCallerPrincipal() from ejbRemove(), an exception is no longer thrown.
083098 | The number of connections to MQSeries increases when the Queue is closed.
083689 | CMP Entity beans with automatic key generation using SQLServer no longer results in a javax.ejb.NoSuchEntityException.
083896 | When setting the max-beans-in-cache to 10 and then running the client to access the bean with the same primary key 200 times get 200 beans in the cache, if concurrency-strategy was set to exclusive, the database cache was ignored. This has been fixed.
083896 | Fixed problems where the property max-beans-in-cache was being ignored.
084224 | The invalidate() method was not being called by the container when a Read-mostly pattern was being used.
084978 | You can now add and change EJBC parameters from the Administration Console. This allows you, for example, to change the amount of memory allocated to stub compilation.
085320 | Fixed a problem with stateless session beans and the server; the 'idle beans count' displayed in the Administration Console was incorrectly continually increasing.
085659 | Fixed some problems and delays with EJB failover when a machine is disconnected from the network.

Examples

Change Request Number | Description
053356 | The example samples/examples/wtc/corba/simpappcns did not have a run.sh UNIX script and did not work on UNIX machines. This problem was solved by providing ubbdomain, dom1config, and run.sh files, and instruction in the javadoc on how to build the tuxedo side. This solution provides multi-platform/machine support. The old build script assumed a single machine environment.
079543 | The example server did not start when BEAHOME had a space in the name. This has been fixed.
084236 | The example samples.examples.iiop.wls2wls.package-summary.html now contains incorrect URL information.
084903 | The WTC simpappcns example has been fixed to work over the network and not just on a single machine.

JDBC and jDriver

Change Request Number | Description
077974 | Added OS authentication for Solaris because the OCI bug is fixed in Oracle 8.1.7 OCI.
080487 | The JTS driver no longer leaks a pool connection if the DBMS rollback fails.
CR080931 | Fixed an Oracle jDriver problem in which, when the weblogic.oci.min_bind_size property was set for the JDBC connection, a SQL UPDATE prepared statement issued after using CallableStatement on the same connection resulted in failure.
082438 | Whereas statically defined pools absorb a property to define the prepared statement cache size, a pool created dynamically, via the console, weblogic.Admin, or an API was unable to do so. This has been fixed.
082484 | The JDriver for Oracle no longer raises an ArrayIndexOutOfBoundsException if more than 511 parameters in a PreparedStatement are set.
086557 | We have included the windows, HP, and Solaris jDrivers for Oracle 9.2 and updated the 8.1.7 and 9.0.1 drivers as well.
087005 | A thin driver for Oracle 9.2.0 has been added/
087803 | Fixed problems creating a JDBC store configured for a JMSServer using Oracle 9.0.1; the updated thin driver for 9.0.1 has been provided and solves this issue.
088156 | Fixed a potential JDBC deadlock condition caused by the EJB persistence manager.

JMS

Change Request Number | Description
063743 | Fixed a problem that was resulting in Message Driven Beans not acknowledging object messages
079547 | Fixed a deadlock that created problems while creating Durable Subscribers to JMS servers deployed in a clustered environment.
081525 | Calling TopicSubscriber.close() in a cluster no longer throws a weblogic.management.NoAccessRuntimeException.
080668 | In a clustered environment that sets listeners for the JMS Server, a NoSuchObjectException was being thrown if one of the nodes of the server was started after some time, rather than immediately. This has been fixed.
082298 | The number of durable JMS subscribers was incorrect. An extra increment was occurring each time a consumer attached to a durable subscription. The number is now incremented when the subscribers are created and decremented when they are deleted.
082438 | Prior to Service Pack 4, for JDBC connection pools that were created dynamically, the STATEMENT_CACHE_SIZE parameter was not implemented. This is corrected in SP04, so that dynamic connection pools can use the Statement Cache to cache and reuse prepared and callable statements.
083290 | Fixed problems with JMS recovery in managed servers when the primary server goes down and then is restarted.
083503 | Fixed a problem with JMS and Message-Driven-Bean recovery when starting and stopping managed servers.
084175 | Messages were being lost when sent through MessagingBridge and interrupted by a server re-start. If while messages were being processed by the MessagingBridge (messages being processed from MQ Queue to WebLogic JMS Queue), and the WebLogic server was stopped and then re-started, then in some cases, some messages were lost. The number of messages lost corresponded to the BatchSize of the MessagingBridge. This problem has been fixed.
084182 | The setExceptionListener method no longer throws a NullPointerException when exceptionListener is set to null.
CR084374 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA03-24.jsp.
CR086487 | see CR83503
CR093060 | Duplicate of "CR084374" above.

Miscellaneous

Change Request Number | Description
049340 | The DeploymentOrder on the ComponentMBeans can now be initially set based on the ordering in the application.xml file making re-deployment consistent with initial deployment.
053054 | Fixed a problem where the server was not copying the transaction context. There were rjvm errors when a client that spawned a new JVM after binding an implementation class into the JNDI tree; the new JVM was not able to make RMI calls on the method.
053957, 071626, 075394, 076265, 078527, 079652, 079655, 082693, 082830 | This Service Pack improves WebLogic's handling of RJVMs in multiple ways. Fixes include: WebLogic Server now ensures that a valid connection has been fully established between servers running on local and remote Java virtual machines before it attempts to send a message to an RJVM. Possible deadlocks resulting from establishing a valid connection between servers running on local and remote Java virtual machines have now been fixed. Previously, it was possible for RJVMs to get into an infinite-wait state while waiting for the connection to be established because the notification of a successful connection was issued before the RJVMs went into a wait state. The fix makes it possible for a success notification to be detected, even if it happens before a wait. Multiple threads trying to establish a connection to an RJVM at the same time now rely on the success or failure of the first thread that actually manages to establish the connection. Previously, each thread would always attempt to establish a connection in turn, rather than using the connection established by the first thread that succeeded. Peer WebLogic Servers running on different computers now correctly detect when a peer server with which it has previously established a connection has gone, and correctly cleans up the broken connection. The Remote Method Invocation (RMI) layer now receives proper exceptions to failover when an attempt to get an OutputStream fails. Previously, when two peer servers where trying to establish a connection but failed to, an exception was not thrown to the RMI layer, causing improper failovers or delays to a proper failover. Possible deadlocks have been fixed between 2-way calls from T3JVMConnection to ConnectionManager to RJVM.
056403, 063910, 076409, 076903, 078288, 078918, 079599, 080292, 080744, 081010, 081116, 081856, 082700,083623, 086362. | We fixed multiple muxer problems and added improvements including: Collections in all muxers (Java and native-code) that map to sockets now have unique keys. This has solved a variety of problems, including data corruption, bad pointer references, WebLogic Server hangings and crashes. Data structures and state machines in muxers now have proper synchronization. This fixed certain classic deadlocks caused by conflicting order of locking. The call stacks between the muxer and the protocol layers above the muxer are now 2-way, which means a close of a socket or connection can be initiated from any point in the stack. Safeguards have been added to prevent deadlocks. State machine transitions in the muxer have been fixed, resulting in sockets no longer remaining in a CLOSE_WAIT state.
064301 | If the application server is killed abruptly, there is a high probability of creating a distributed in-doubt transaction. In WebLogic Server 6.1 SP01, the distributed in-doubt transaction still continued to exist and needed to be resolved by manual DBA intervention. In WebLogic Server 6.1 service pack 4, the transaction log file is re-scanned and a recovery process is initiated after re-starting the application server.
071510 | It was not possible to start the server using JMX through the NodeManagerMBean. In WebLogic Server 6.1 service pack 4, new methods were added in the ServerMBean to start and kill ManagedServers via the JMX client.
072188 | The admin server was not closing the network connection that it established with NodeManager after completing the task. This has been fixed.
073023 | Node manager no longer randomly throws the OutputHandler error when trying to start a remote server.
074844 | Fixed a problem that was causing an assertion error when using dynamic proxies.
075406, 076002 | Fixed problems occurring under heavy load where NullPointer and ClassCast exceptions were occurring; also made some improvements to the NT muxer.
076605 | Fixed a problem that was causing the message: <ExecuteThread: '12' for queue: 'default'> <> <> <000000> <No IORecord present for fd> to appear.
076705 | Message Driven Bean deployment no longer fails and results in a NoAccessRuntimeException for guest if the destination is remote.
076997 | Now, when deploying an EAR component to a cluster through MBeans, the JNDI bindings appear in all managed servers without the need to re-start the servers.
077248 | Fixed problems connecting to EJB's over IIOP when native IO is turned off.
077831 | When the AppletArchiver utility was used to generate a client JAR file and if the applet in question used the javax.swing.JApplet class in its code, then the AppletViewer was producing an error. This has been fixed.
077919 | Using patch CR064447_61sp2.jar was causing an error in the log file after calling ObjectOutputStream.writeObject() on EJBHandle. The output of the EJBObject in the log was changing from LocalServerRef to LeasedRemoteRef. This has been fixed.
078431 | Fixed a problem that was causing a deadlock between MuxableSocketHTTP and PosixSocketMuxer.
078952 | An org.omg.CORBA.MARSHAL exception is no longer thrown while a null value in a serializable object from an EJB's remote method is being returned.
079220 | When running JMS, the client was getting the exception: Could not find RJVM for $Proxy68.. (IllegalArgumentException) in a cluster environment. The client was contacting one of the managed servers to drive. This has been fixed
079672 | A VM crash is possible when WarClassFinder.getSource is invoked. Sun's fix for this problem are in JDK's 1.4.1_02 and 1.3.1_07. The Sun bug is: http://developer.java.sun.com/developer/bugParade/bugs/4369396.html.
080177 | Using weblogic.deploy no longer causes memory leaks if you continually deploy and delete the same EJBs.
080740 | If a web application that creates a file that got deleted when the server was shutdown, when running as a Windows Service, this file got deleted as expected when the server was shutdown from the command line (using the java weblogic.Admin SHUTDOWN command) or from the administration console. However, this file did not get deleted when the server was shut down by going to: Start Menu --> Settings --> Control Panel --> Services --> Press Stop button for the service. This capability is now implemented.
080895 | When a stand-alone java client was calling a stateless session EJB, after about 500000 iterations, the following exception was being thrown on the client side: Exception in thread "main" java.lang.ClassCastException: Assigning instance of class java.io.ObjectStreamClass to field weblogic.rmi.internal.ClientMethodDescriptor#signature at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2271) This has been fixed.
080901 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA02-19.jsp.
080929 | Now, if using wildcards, weblogic.refresh can refresh files.
081311 | A SAXParseException on the DTD now has a severity of <Warn> instead of <Info>.
081404 | The JMS Bridge Resource Connectors (jms-xa-adp.rar, jms-notran-adp.rar, jms-notan-adp51.jar) for Messaging Bridge are packaged with WebLogic Server 6.1 Service Pack 4.
081568 | SNMP Agent can now monitor the ServletRuntime of Servlets.
081732 | Using WebLogic Server 6.1 SP03, an exception was being thrown when using the Sybase database while trying to start the server. This has been fixed.
081765 | There were problems with SSL closing sockets prematurely and causing muxer errors.
081853 | Fixed some complicated problems with RMI-IIOP and the marshalling of complex objects, notably in environments using a mixture of JDKs.
081868 | In WebLogic Server 6.1 service pack 2, when the admin server was shutdown using java weblogic.Admin SHUTDOWN, the SNMP agent was not generating the serverShutDown trap. It was able to generate serverStart trap when the server started up. Now, when the admin server is shutdown, the SNMP Agent will issue a self shutdown trap.
CR081870 | In the WebLogic Server distribution of Xalan, when the XSLT output method was set to HTML (required): <xsl:output method="html"/> the spaces in HREF attributes in anchor tags are encoded to "%20". For example: <a href="javascript: var win = openWindow()">Link</a> erroneously outputs as: <ahref="javascript:%20var%20win%20=%20openWindow()">Link</a> Netscape fails to interpret the "%20" as a space, breaking the link. If the output type is changed to "XML" (not an applicable workaround in this case), the attribute outputs correctly. The vanilla Xalan distribution (i.e. not the BEA-enhanced version) performs the transformation correctly with identical input. WebLogic Server distribution of Xalan performed inappropriate URL encoding on the HREF attribute. This works fine for normal URLs (i.e., http://somehost/...) where spaces are not allowed, however javascript URLs (i.e. javascript: doSomething()) are also valid and should not be encoded. The XSLT transformer should not be doing anything to the URL as there are already ways to explicitly encode URL's in stylesheets. Problem occurred in WebLogic Server 6.1 SP2, SP3, and SP4. Problem was solved by modifying the XSLT transformer to not encode the URL. .
082004 | The CR073910_61sp2.jar patch on WebLogic Server 6.1 service pack 2 was resulting in a memory leak. when getting a new InitialContext().
082263 | The weblogic.deploy tool is now able to update the web application .war file from Win2k to a server running on Solaris.
082533 | Debug messages were being written to std.out when using the Xerces Parser. These messages have been removed.
082693 | In WebLogic Server 6.1 service pack 1 and 2, if the server received a call from the old generation stubs, the server correctly sent peerGone to the client and logged an error. In WebLogic Server 6.1 service pack 3, the server printed a NullPointeException and the client waited until timeout. Now we have restored the earlier, correct, behavior.
083102 | When deploying a couple of EJBs (that conform to the EJB 2.0 specification) with J2EE12OnlyModeEnabled="true", the server was throwing a couple of warning messages for a few beans and then crashing with a DistributedManagementException. This has been fixed.
083485 | When invoking a t3 client, the client no longer hangs in JavaSocketMuxer with t3 as the default protocol.
083652 | In WebLogic Server 6.1 service pack 3, applications were undeployed at startup and then redeployed twice. This has been fixed.
083654 | Improved the performance of WebLogic Server 6.1 service pack 3, when continuous requests are issued from the Microsoft WAS tool. International users, see 089868 for related information.
083721 | The FailureIsFatal option of the startup class no longer suppresses the runtime exception on a Solaris Environment.
083920 | Suppressed any startup traps when the admin server is re-started and it discovers that managed servers are up to avoid redundant traps being sent when the admin server is re-started.
084127 | In production mode, even with auto-deployment turned off, WebLogic Server was still validating some application files that were not configured in the config.xml file. This has been fixed.
084622 | Using ZAC no longer results in an assertion error when getInitialContext() is called.
085463 | JNDI lookup failover now no longer takes such a long time when the network plug is pulled.
085914 | SNMP request was timing out after a managed server was dropped. The SNMP agent no longer becomes unresponsive for a while on getnext requests when a managed server is down.
085979 | Fixed a problem with MBeanHome.getAllMBeans() unnecessarily throwing an exception when a custom Mbean is defined.
086108 | We improved performance; the ListenThread now consumes less memory than in Service Pack three.
086248 | The component type for boxed RMI sequences was being forwardly declared twice-once correctly and once as an interface; the wrong type for sequences of valuetypes.
086350 | Fixed a problem where if an exception's classname ended in a capital 'I' the IDL generated from it is mangled and corrupt.
CR086362 | Under heavy loads SocketException: Connection timed out errors occurred. Stack trace: ####<Sep 18, 2002 9:37:07 AM EDT> <Error> <Posix Performance Pack> <lpsapp01> <LPSAPP01_C> <ExecuteThread: '34' for queue: 'default'> <> <> <000000> <IOException on socket: 'weblogic.rjvm.t3.T3JVMConnection@67cf01', fd: '1046'> java.net.SocketException: Connection timed out: Connection timed out Start server side stack trace: java.net.SocketException: Connection timed out: Connection timed out at java.net.SocketInputStream.socketRead(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:86) at weblogic.socket.PosixSocketMuxer.readBytesProblem(PosixSocketMuxer.java:824) at weblogic.socket.PosixSocketMuxer. deliverGoodNews(PosixSocketMuxer.java:712) at weblogic. socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:637) at weblogic.socket.SocketReaderRequest.execute(Socket ReaderRequest.java:24) at weblogic.kernel.ExecuteThread. execute(ExecuteThread.java:139) at weblogic.kernel. ExecuteThread.run(ExecuteThread.java:120) End server side stack trace and the server instance hung with sockets in the CLOSE_WAIT state. Thread dump: "ExecuteThread: '3' for queue: 'default'" daemon prio=5 tid=0x7f79a8 nid=0x10 waiting for monitor entry [0xa6101000..0xa6101a40] at weblogic.socket.PosixSocketMuxer. read(PosixSocketMuxer.java:542) at weblogic.socket. JVMSocketManager.accept(JVMSocketManager.java:185) at weblogic.t3.srvr.ListenThread$RJVMListenRequest.execute(ListenThread.java:594) at weblogic.kernel.ExecuteThread. execute(ExecuteThread.java:139) at weblogic.kernel. ExecuteThread.run(ExecuteThread.java:120) Thread dump analysis indicated that the thread in native AddFdToPollSet did not finish writing to PollSet Loopback FD, and release POLLSET_LOCK properly. Problem was resolved by tracking the number of bytes written to pipe, and waiting to write more to pipe (using an array instead) until thread reader notification that it is OK to write to the pipe.
086761 | The Weblogic.admin tool now correctly creates an execute queue so that it will be functional on server start-up.
087265 | Fixed several incompatible serialVersionUID's so as to keep interoperability between WebLogic versions.
088372 | Now, under load, we have fixed the problem that was generating multiple exceptions like: ArrayIndexOutOfBoundsException in weblogic.security.acl.TTLCache.cleanup.
089044 | Loading the Administration Console no longer causes a browser/OS compatibility check.

Plug-ins

Change Request Number | Description
074128 | In a cluster, after Internet Explorer 10053 displayed a socket error message, the proxy plug-in inappropriately failed over—the primary server was healthy. The problem was exhibited in this configuration: WebLogic Server 6.1.0 with SP02 IIS plugin Windows 2000 SP2 IIS 5.0 Error 10053 is a winsock error and is defined in winsock.h as WSAECONNABORTED. The error occurs when a page is reloaded before the ISAPI extension is done sending data back. When the page is reloaded, the browser closes the existing connection and then creates a new connection to resubmit the request. Same condition can be caused by using the "Stop" button in the browser before the extension is done sending data. This is a normal event that means that the browser isn't listening any more. After the error, plug-in should simply clean up and return from HttpExtensionProc. The inappropriate failover case has been solved by changes to the IIS plugin. Failover not longer occurs when processing fails during the sendRequst phase if timeout occurs reading POST data.
076936 | When specifying a multiple-level path at PathTrim under the ISAPI environment using WlForwardPath together such as: WlForwardPath=/ PathTrim=/path/to/weblogic ISAPI plug-in was not able to trim the specified path. This has been fixed.
078713 | Added a new parameter set FilterPriorityLevel in the iisforward.ini file. The value for this parameter is 0, 1, and 2, which means low, medium and high for the filter priority. The default value is 2. If it is not possible to use a virtual host to set this property, use the iisforward.ini file.
079186 | In accordance with the HTTP 1.1 specification, all plug-ins will now parse folded headers properly.
079683 | Chunked Transfer Encoding HEX numbers were displayed to the browser when using mod_wl_ssl.so. This only happened when using jsp:include on Weblogic. The mod_wl.so worked correctly, but there was a long delay before the browser rendered the page completely. This has been fixed.
079973 | In WebLogic Server 6.1 service pack 4, if Idempotent is off, failover is prevented and if ConnectTimeoutSecs=0, core dump is prevented. Retries are no longer attempted after ConnecyTimeoutSecs is set to 0 in the iPlanet config. The retries were attempted either with the default setting, which is 10, or with 0. Furthermore, when Idempotent was set to ON, the retries occurred five times, instead of two when it was set to OFF.
080219 | There is no longer an iPlanet core dump when shutting down all WebLogic Server instances.
080382 | An unexpected error message is no longer logged in the WebLogic Server error log when using the NSAPI plug-in.
080746 | A 64-bit platform on native webserver plug-in is now supported.
081185 | The CPU load no longer increases when cancelling the uploading of files.
081493 | Fixed a problem that was resulting in HPUX-11 iPLanet crashing.
082093 | When WebLogic Server is being hit via an iPlanet proxy with an NSAPI plug-in and a QALoad is used to generate a number of concurrent client connections, extra calls are no longer being made by the proxy plug-in to the app server under a heavy load.
082096 & 083386 | With Idempotent=OFF, the IIS proxy plug-in no longer still attempts one re-try (two requests = one original + one re-try) for all POST requests after HungServerRecoverSecs.
082113 | If the plug-in receives an error while reading data from the client, it no longer tries to send the incomplete data (request) to the back-end WebLogic Server.
082206 | You can now exclude certain pages from being forwarded to WebLogic and have them be served by an IPlanet front-end. Add WLExcludePathOrMimeType to your obj.conf to exclude certain requests that match with the expressions you define (i.e: WLExcludePathOrMimeType="/test,/*.html")
083174 | Using the latest IIS plugin, failover was not working when new values were being added to the session.
083643 | Fixed a performance problem in NSAPI. The netbuf_getc function was very slow and not able to distinguish between '\0' and 0 in the postdata.
083558 | Certified the newest Apache-Apache 2.0.42.

Servlets, JSPs, and Web Applications

Change Request Number | Description
042655 | When using the access.log in the extended log format, the times at which the http requests are made are no longer given as the local time, instead of the GMT time.
053974 | Besides being able to configure the name of the access.log, users can now select the convention for the rotated log for manageability.
058389 | When getInputStream() is called against javax.servlet.http.HttpServletRequestWrapper, it no longer returns null.
063630 | If a Web Application failed to deploy, then no other applications were getting deployed to a cluster. This problem has been fixed.
065967 | Taglibs no longer fail when <type> is specified and the type is an array. Weblogic Server no longer sees it as a string when it is actually an array.
068577 | In the generated code, the method _releaseTags() was not being called upon a <jsp:forward> although according to the JSP specification 1.2, all tag handlers need to be released upon DO_END_TAG. This has been fixed.
069731 | When using JSPs in a webapp, the .java files that get created from the JSPs live under _tmp_war (under the webapp root). If it does not exist already, the _tmp_war directory is created at the time of WebApp deployment (during the initialization period after you start the server). If the server is run as root, the _tmp_war directory gets created by, and is owned by, root. At the end of initialization, nonPrivUser was being used to switch to a nonpriviledged user and the _tmp_war directory was inaccessible by the JSP servlet and WebLogic. This has been fixed.
071513 | WebLogic Server is now validating the weblogic.xml file in the webapp.
073780 | Improved the performance of JSP tags when using WebLogic Server 6.1 service pack 2 and the following three patches: CR065452A_610sp2.jar, CR063457A_610sp2.jar, and CR063829_610sp2.jar
073791 | Fixed problems were customers were getting a NullPoinerException in the ChunkUtils.getEnd method after calling ServletOutputStreamImpl.write from their servlet code.
074265 | The ServerMBean has a new attribute called MaxBackoffBetweenFailures. The default is 10 seconds. Set this to change the time period in which the server listen thread will send a "Failed to listen on port" if it is still trying to accept the socket connection.
074940 | A NullPointerException is no longer thrown when using the size Cache Tag Attribute of the Cache Tag of the weblogic-tags.jar.
075471 | JRun tag libraries are working on WebLogic Server service pack 4.
075721 | The jsp:useBean tag with the beanName of TimeExpression is no longer interpreted incorrectly.
076375 | weblogic.log and access.log (HTTP Logs) will now be renamed based on the configuration of the log filename. Usage of % symbols in the logfile name will invoke the logic which renames log files based on the date/time when it gets rotated. The file being currently logged into will be the log filename stripped off its % symbols if they exist. Examples of valid formats: weblogic_%yyyyMMdd%_%HH%_%mm%.log foobar_%yyyy%-%MM%-%dd%_%HH%_%mm%.log Note: Y (capital) does not represents anything in the SimpleDateFormat. Use lower case y (small) to represent the year. Invalid formats will fall back to WebLogic Server default log file names. A string enclosed between percentage signs (%) will be decoded based on SimpleDateFormat. This format applies to the filename, not the directories.
077018 | Prevented a ClassCastException in ServletAuthentication when using request/response wrappers.
077306 | Temporary patches no longer cause recompilation of included (precompiled) JSP classes.
077422 | The CookieParser.cookieToString creates the expires cookie with a SimpleDateFormat that contains a comma, ','. The comma in the expires date is causing the cookie to be parsed incorrectly when it is returned in the request. The comma is interpreted as a cookie separator and breaks the parse of the expires date. This has been fixed.
077888 | setCharacterEncoding will now throw UnsupportedEncodingException.
078090 | According to the JSP specification, if you use jsp_precompile in the request parameter, the container should compile the JSP (if not compiled), but must not display the JSP. Since WebLogic Server parses the query string and finds the jsp_precompile, it was not displaying the page on the browser.
078262 | Added getResourcePaths(String) to the ServletContext.
078325 | Fixed a problem that was resulting in an UnsupportedEncodingException if there were extra quotes around the charset value.
078698 | The access.log file is now rotating by size when the log size exceeds 2MB.
079582 | WebLogic Server 6.1 service pack 3 threw a SocketException during data sync. This has been fixed.
079767 | When redeploying EAR, WAR, or JAR files to WebLogic Server, with every redeployment of an application or component, the .wlnotdelete directory of the managed server no longer increases in size.
079892 | The CPU usage no longer pegs to 100% while executing a CGI script and hitting the stop button in the middle.
080090 | When re-directing, the location header will always use the following parameters, if they are specified: FrontendHTTPPort FrontEndHTTPSPort FrontEndHost
080384 | The HttpClusterServlet was marking a server as bad, even if just one response had been scrambled in the status code header. This has been fixed.
080751 | Custom exceptions extending servlet exceptions will now be redirected to error page if configured.
080791 | Folded headers in the cluster/proxy servlets are now considered.
080837 | Added a new element in the weblogic.xml file: <!-- The wl-dispatch-policy can be used to assign the webapp to a configured execute queue by identifying the execute queue name. This webapp level param can be overridden at the individual servlet/jsp level. eg: <servlet> ... <init-param> <param-name>wl-dispatch-policy</param-name> <param-value>CriticalAppQueue</param-value> </init-param> </servlet> --> <!ELEMENT wl-dispatch-policy (#PCDATA)>
081071 | There is no longer a NullPointerException thrown at weblogic.servlet.internal.ServletContextManager.trimAbsUrl.
081484 | Session attributes are no longer lost when using the HttpSessionListener with PersistentStoreType as replicated but able to retrieve the session attributes when non-replicated.
081521 | It is now possible to call a CGI script from a JSP.
082156 | isRequestedSessionIdValid() always returned the value, true, which means that the request session ID is valid, even if you changed the session ID in the URL. Invalid sessions are now correctly detected and reported as invalid.
082238 | CreateSessionServlet was checking for the existence of the Cache-Control header, setting it to a valid value if it exists, or adding it to the header list if it does not exist. In both cases, it added another bogus header. This problem was fixed by setting CacheSessionCookie to true in weblogic.xml.
082310 | JSPs with a page contentType directive can now be deleted or overwritten in an exploded WAR file.
082580 | HTTP POST parameters were not preserved if a form-based authentication is invoked and authentication is successful when accessing a URL in WebLogic Server 6.1 service pack 3.
082671 | Made HttpSession.getServletContext() public in the internal implementation.
083191 | The console is no longer displaying incorrect values for Servlet Average Execution Time.
083200 | WebLogic Server is now filtering correctly with nonProxyHosts.
083487 | CGIServlet now works with exact match <url-pattern>.
083517 | HttpClusterServlet was not proxying a request to SSL even when SecureProxy was ON. This has been fixed.
083597 | In WebLogic Server 6.1 service pack 3, if the content type using the page directive is set as: <%@ page contentType="text/html;charset=UTF-8" %> the content type was not set properly and the desired output was not obtained. This has been fixed.
083912 | An ORA-01461 error no longer occurs while the server is trying to write the session data in the JDBC managed persistence when using the Oracle thin Driver.
084002 | When WebLogic Server returned an HTTP code 204, it set the Content-length to 886 with an HTML error page. Therefore, the load runner client was failing and generating an error stating that "204 responses codes should not have a body but the Content-length was set to 886 (with an HTML error page)". This has been fixed.
084030 | When an exploded web-app was shared by two servers, the generated tmp lib directory got deleted at the second server's start. The directory is no longer deleted.
084058 | The request.getUserPrincipal() method was returning guest after ServletAuthentication.logout(). Now, the getRemoteuser() returns null.
084536 | Fixed a problem where the patch for CR083377 was causing problems with security and the SSL connection.
084649 | There are certain environment variables that a CGI server is expected to provide to scripts that run within it. SERVER_URL, HTTP_COOKIE, and QUERY_STRING, which are present in Netscape's CGI server, were unavailable when running the same CGI program inside of WebLogic's CGI servlet. When a request was made for one of these variables, NULL was returned instead of a value. This has been fixed.
084785 | The GenericProxyServlet can now handle wrapped responses.
084847 | For chunked transfer, WebLogic Server was including a hexadecimal number which other servlet engines used to ignore. This has been fixed.
085754 | If newlines/comments were put in the intermediate JSP BEATestCase2.jsp, when used with a request dispatcher, the client got a blank page. There was no exception thrown on the server side. This has been fixed.
086026 | The parameter, CacheSessionCookie, used to default to false. Now, it defaults to true.
086052 | HTTPS connections outbound from WebLogic Server did not work without a trailing slash '/' on the URL. This has been fixed.
086280 | There is no longer a NullPointerException thrown when accessing a servlet over a Keep alive connection.
086481 | Fixed some problems when a web application downloads a larger file and the buffer overflows while reading the multi-part form data.
088301 | Fixed problem where an included resource was not sent to the servlet output stream when dispatched from another resource that was Forward dispatched inside a JSP BodyTag. NOTE: The nested BodyTag tag output stream was not being flushed since the forward dispatched request caused the tag to exit - but WebLogic still presumed the output should go to the Tag's nested output stream. This was resolved by clearing out reference to the BodyTag nested output stream when the Forward request was dispatched.
CR089803 | Duplicate of "CR090225". Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA03-14.jsp.

Security

Change Request Number | Description
058355 | When a user called login() on the LoginContext, this call was directly mapped to the LoginModule's login(), but the logout() method was not implemented. Therefore, a call to this method could not be mapped to the LoginModule's logout(). In WebLogic Server 6.1 service pack 4, LoginModule.logout() is implemented.
057950 | For security reasons, the Random String field was removed from the Certificate Request Generator servlet.
068729 | The weblogic.security.SSL.SSLCertificate class is now documented.
075109 | LDAPRealV2 now caches memberships.
075451 | When trying to obtain an InitialContext to a remote WebLogic Server from within a WebLogic Server, after making an SSL connection with weblogic.net.http.HttpsURLConnection, an exception is no longer thrown.
076783 | Using the RDBMS realm, extra calls were being made. The caching realm is now fixed to avoid having these extra calls made.
077233 | The absolute path of SSL certificates is now given.
077288 | In WebLogic Server 6.1 SP02, "=" is included in username when parsing CN for a user in a group. This problem was resolved by a correction to the lexing code in the LDAPRealmv2.
077425 | When a custom realm was used with a caching realm and the case insensitive cache was set to a default of true, the caching realm was throwing an error message, "Server cannot check in a case-insensitive way". This has been fixed.
078893 | If weblogic.management.password is not blank, the custom login module never got called. For j_security_check to use the JAAS loginmodule, it is necessary to use programatic authentication (servletauthentication.weak()) in combination with JAAS loginmodule.
079183 | After calling weblogic.security.acl.ManageableRealm.setName, weblogic.security.acl.ManageableRealm.getAcl no longer returns null.
079364 | deleteAcl was only working with the getACLOwner principal. This has been fixed.
079637 | Added the pkpassfiile property to specify the name of the file containing the private key password.
082003, 087419 | Using an LDAP realm configured for Microsoft Active Directory Server, basic authentication was failing while form-based authentication worked fine. This has been fixed.
082098 | Credentials are now used / verified against the remote server realm.
083478 | Even though the email is not required in the certificate form, EMAIL= was appearing in the certificate. This has been fixed.
084166 | Fixed the caching of delegate groups so that with a nested group there is improved server performance.
087485 | With WebLogic Server 6.1 SP03, LDAP was calling Group.isMember() for every member of group. In this Service Pack we restored the original behavior of an LDAP realm: now if the groupmembershipcache value is set to 0 then WebLogic checks the LDAP realm for group membership, thus preventing loading all members() if the group contains many members.

System Administration

Change Request Number | Description
059779 | Data sources can now be bound to the same JNDI name on different servers.
062102 | Applications are no longer copied to the managed servers upon startup if they do not need to be copied which results in increased disc space.
063630 | It is now possible deploy remaining applications to the managed servers upon a failed deployment.
072833 | When a managed server was configured from the admin console with the listenAddress field blank, WebLogic Server was allowing the multiple instances of this managed server with the same name to be run from different machines. This is no longer possible.
074370 | When using WebLogic Server 6.1 service pack 2, a javax.management.AttributeNotFoundException was being thrown when using the EJB descriptor editor in the admin console. This has been fixed.
074653 | The Admin console Deployment Descriptor Editor now replaces "&" with "&amp;" when writing to memory/disk because "&" is a special character which must be escaped as "&amp;" in XML files.
075949 | Fixed a problem that was causing weblogic.deploy to undeploy the JAR file immediately after deployment.
076539 | Web apps with load-on-startup are now loaded in the correct order according to DeploymentOrder.
078257 | The admin server JNDI was not showing the managed servers' MBeanHome causing a NameNotFoundExceptions to be thrown. This has been fixed.
079270 | The application redeployment (delete & deploy) operation was not always successful when some of the targeted managed servers were down. For example, the JNDI entries for EJB were not registered in running servers, or "Targets" attributes in the config.xml file were lost because of a warning message. This has been fixed.
079455 | A ConfigurationError is no longer thrown upon deployment failures.
079819 | The time it takes managed servers to start up with a large number of deployed applications has been shortened.
080016 | There is no longer an error deploying an application while starting the admin server if the application targeted to the virtual host (which has been targeted to managed server) and the admin server.
080324 | Exposed the setParent method to a public API.
080690 | If the admin server was bounced and re-started, it re-established a connection to the managed server, but the JNDI tree did not show the managed servers. As a result, the application was getting a NameNotFoundExceptions. It would only show up in the admin JNDI tree once the managed servers were re-started. This has been fixed.
080778 | Turning on session monitoring no longer causes traffic to the admin server every time a new session is created.
081736 | After weblogic.Admin -help prompts for a guest password, it no longer ignores the password.
082765 | When calling shutdown to shutdown a managed server, removeManagedHome is also called to remove the managed server from the cache. Otherwise, needless RMI calls would be made when any other managed server boots causing startup delays.
082910 | It is now possible to remove a JDBC Connection Pool using MBeans when a customer MBean is registered from within an EAR file.
083400 | There is no longer a StackOverflow during managed server startup using T3s as the default protocol.
084484 | When starting a server from a directory other than the domain directory, the option -Dweblogic.RootDirectory=<root directory> can be specified. If the start script is changed to go to the root directory, it would find the application, but the config.xml path got modified to be an absolute path with the RootDirectory appended. The config.xml path no longer gets changed to an absolute path.
084740 | When deploying an application on a cluster using weblogic.deploy, the deployment was not effective until the server was restarted.
086235 | When trying to get the server version out of the ServerRuntimeMBean.getWeblogicVersion method, only the version info for the patch that was the first in the classpath was returned. In WebLogic Server 6.1 service pack 4, the whole version information is returned by the weblogic.Admin command.

Web Services

Change Request Number | Description
076510 | When there was a webservice that had a method that received a String as a parameter that is actually an XML document with CDATA sections, after invoking the method, the following response was sent: weblogic.soap.SoapFault: Connector - Bad request to the server. This has been fixed.
082661 | Now, wsgen handles an extra classpath.
084960 | Fixed a problem using the URLConnection method to make an HTTP connection to a Web Service. Weblogic overrides java.net.HttpURLConnection with its own version which will throw an exception from the getInputStream method if a status code is greater than 400. When the exception is thrown there is no way for the WebService client to retrieve the input stream, and thus the HTTP SOAP Binding is broken. If you have this problem, set the new command line option -Dweblogic.net.http.ignore500status to true.
085214 | Fixed a problem that occurred with webservices when he passing dates as parameters. A java.lang.IllegalArgumentException is no longer being thrown.

WebLogic Tuxedo

Change Request Number | Description
077553 | Integer array object passed by value from Tuxedo to WebLogic Server threw a weblogic.utils.AssertionError. The problem was resolved with a code fix.

XML

Change Request Number | Description
080756 | When converting Japanese characters by using the built-in XSLT processor, the characters got changed into the unexpected code. This has been fixed.
080961 | Fixed a Xerces 1.3.1 bug in org.xml.sax.helpers.AttributesImpl.removeAttribute().
081372 | DocumentBuilder.parse() is no longer multi-thread unsafe when input encoding is 'Unicode'.
081870 | When the XSLT output method was set to HTML (required): <xsl:output method="html"/> the spaces in HREF attributes in anchor tags were encoded to "%20". Netscape failed to interpret the "%20" as a space, breaking the link. This has been fixed.

WebLogic Server 6.1 Service Pack 3 Solutions

The following sections describe problems that were resolved for the release of WebLogic Server 6.1 Service Pack 3.

- Classloader

- Cluster

- Console

- EJB

- Examples

- JDBC

- jDriver

- JMS

- JTA

- Miscellaneous

- Plug-Ins

- RMI over IIOP

- Security

- Servlets, JSPs and Web Applications

- System Administration

- Web Services

- WebLogic Tuxedo Connector

- XML

Classloader

Change Request Number | Description
063742 | There was a java.lang.VerifyError thrown during skeleton generation for the Remote interface of Entity bean. This has been fixed.
064273 | In the Classloader, weblogic.utils.classloaders.GenericClassLoader, the definePackage() method now sets the package information according to the manifest.
069506 | ClassLoader.getResources is now working when trying to access an XML file which is in the Class-Path: entry of the EJB's manifest file.
075553 | Fixed a memory leak that was occurring because the core classloader was being stored unnecessarily.

Cluster

Change Request Number | Description
072281 | HttpClusterServlet now works properly when WAPEnabled=true.
072464 | A NullPointerException no longer occurs during failover using SFSB handles created within the server.
073917 | NoSuchObjectException was being thrown on failover from SFSB's handles in a cluster. This has been fixed.
073920 | The Execute Queue length doesn't appear in the console and this functionality is not implemented with WebLogic Server 6.1.
074058 | When using the IP name instead of the DNS name for the WebLogicCluster parameter, the secondary was marked NONE if the primary went down. This has been fixed.
074236 | Added the attribute, MemberWarmupTimeoutSeconds, to ClusterMBean.The default value is 0 which results in no cluster warm-up. By default, the cluster start-up sequence remains unchanged. If a value > 0 is set, the cluster members wait for that period of time to synchronize with other members during start-up. All MessageDriven Beans are deployed after the warm-up time. Only then do we start accepting client requests. There is no separate property for delayed MessageDriven Bean deployment.

Console

Change Request Number | Description
051136 | Broken monitoring link removed from the console.
055821 | Forced the Public ID to be non-null for editing.
056161 | Using the console EJB runtime monitoring customization, it is now possible to view the machine on which the EJB is deployed.
058271 | Using the console to modify the deployment descriptor no longer changes the bean's manifest file.
059784 | wls_management_internal{1,2} is no longer selectable as a DefaultWebApp.
059963 | Added Max Open Sock Count to server->config screen in the console.
060116 | The admin console no longer displays the Automatic Deployment checkbox when you startup WebLogic Server in production mode.
061664 | The server shutdown message is now correctly displayed using a Netscape browser.
061686 | Fixed broken deployment descriptor help links.
061838 | It is now possible to start the managed server without restarting the admin server.
062020 | The console XML editor is now aware of <validate-db-schema-with>.
062788 | Fixed the Netscape default value for the refresh button so that a page in the security console was not re-appearing every time you clicked the OK button.
062991 | Added information to the console help files to explain how to set up the five fields for using Node Manager to remotely start the managed server.
063543 | The ConsoleMainAttribute for servlet monitoring in the console is now enabled.
064849 | Modified the weblogic.xml descriptor editor to handle the PersistentStoreTable parameter.
067101 & 073625 | Remote context viewing the local JNDI tree via the console is now possible.
067362 | The console no longer references the wrong login timeout attribute.
070018 | Start Default Console no longer fails when default browser is Netscape 6.2.
072909 | The correct JMS pool name is now displayed in the runtime table.
073536 | The console now has a check box that allows for optional mutual authentication.
074693 | The link used to save realm implementation changes is now more explicit.
075338 | The console now displays the correct information during monitoring of a Web Application.

Core

Change Request Number | Description
CR073529 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA02-20.jsp.

EJB

Change Request Number | Description
047305 | Fixed an error in the TxCommits value in Console.
054789 | The message-driven bean no longer throws a NoSuchElementException and the message listener is no longer being removed from the list before the listener was finished processing it.
056081 | Deployment of EAR stops short of setting component target.
057608 | Now able to save more than 4K of data with CMP beans.
059045 | run-as works in ejbCreate().
059250 | A NullPointerException no longer occurs in ejbc when the persistence element is missing in WLDD.
060720 | In 6.1 service pack 2, if you are using Blob/Clob, you have to set <isolation-level> to TRANSACTION_READ_COMMITTED_FOR_UPDATE. Otherwise, you will get the following exception: java.io.IOException: ORA-22920: row containing the LOB value is not locked If this happens, when using Blob/Clob, the container will lock all the tables within the transaction. In 6.1 service pack 3, you don't need to set <isolation-level> to TRANSACTION_READ_COMMITTED_FOR_UPDATE anymore. The container will only lock the table that contains the Blob/Clob, and the other table within the transaction will not be locked. This make Blob/Clob much easier to use.
060738 | Multiple phantom message-driven bean connections are no longer created without new corresponding sessions being added to the list after a JMS client reconnects to a restarted JMS server.
060867 | EJB2.0 deployer no longer throws AssertionError when RemoteMethod name starts with 'find'.
061700 | Some identifiers in generated SQL Query were missing quoted identifier escape which may have caused the generated EJB CMP SQL to fail to escape the Quoted Identifiers. This has been fixed.
062256 | The -c flag in DDConverter now converts the input JAR files into ejb20 and combines the JAR files. DDConverter would not work with the destination JAR file specified as follows: java weblogic.ejb20.utils.DDConverter *****-c new.jar***** -d . convert.jar.
062481 | Added an attribute in weblogic-ejb-jar.xml to indicate if EJB is collocated with web tier.
062518 | DDConverter no longer throws an exception when it encounters a findAll finder query.
062626 | An empty ejb-ql tag is now allowed.
062676 | Load-balancing of Stateless EJBs in a cluster no longer fails for random load algorithm. The deployment element home-is-clusterable can be defined for stateless session beans in weblogic-ejb-jar.xml.
062916 | In 6.1 service pack 2, a caller's transaction was not being resumed after a transaction started on the server completed. When this happened, the caller's transaction would never complete. This problem would only occur when a remove method that had a transaction attribute that would cause the client's transaction to be suspended was called on an EntityBean in a transaction and a new transaction was started on the server to service the call. Transaction attributes that cause this behavior are NotSupported and RequiresNew. In 6.1 service pack 3, a caller's transaction is being resumed after a transaction started on the server completes.
062974 | When a single-digit finder was defined on a 1.1 CMP bean, it did not throw a FinderException when more than one result was returned from the query. This has been fixed.
063077 | The transaction time out attribute in weblogic-ejb-jar.xml now works.
063146 | When a BMP EJB's concurrency strategy was set to Exclusive and the transaction attribute was set to NonSupported, a different instance was assigned when the transaction timeout threshold was met. This has been fixed. In addition, a remote exception is no longer being thrown when the local transaction is rolled back.
063387 | WebLogic Server no longer fails to clear a lock on an entity bean after a deadlock situation. The waiters in the LockManager are now being cleared.
063469 | A NullPointerException is no longer thrown while creating CMP EJB relations.
064293 | ExclusiveLockManager is now removing waiters from the list even if the waiter happens to be TimedOut.
064425 | Each ejbHomeMethod call was creating a new bean instance instead of utilizing pooled bean instances. This has been fixed.
064447 | When decoding an EJB object handle from a cookie, an InvalidClassException is no longer being thrown.
064561 | When <finders-load-bean>=false, new bean instances were being created disregarding pooled instances. This has been fixed.
064625 | No longer getting 'local interface must not include java.rmi.RemoteException in its throws clause' from the JDBC when this should not be gotten.
064967 | The ejbc no longer fails due to empty strings environment variables.
064969 | The DDConverter now generates correct assembly descriptors.
065092 | For EJB1.1 beans in 6.1 service pack 2, in a single transaction if the persistent field of a bean is changed and then a finder is invoked which returns the same bean, the new value of persistence field is overwritten by the value retrieved from the database. In 6.1 service pack 3, changes made to the EntityBean are no longer lost in the middle of a transaction.
065290 | EJBC/RMIC generates XML descriptors with clusterable=true even for beans for which clusterable is false.
065321 | Fixed a locking issue with an entity bean.
065571 | When the entity bean didn't have a create method, DDinit was not generating the Descriptor files. This has been fixed.
066245 | The ctx.getCallerPrincipal no longer returns run-as principal.
066644 | A JMS message-driven bean and Queue with persistent file store was carrying over the transaction context in onMessage. This has been fixed.
067018 | Calling EntityContext.getEJBLocalHome from the home method was throwing an IllegalStateException. This has been fixed.
067515 | When invoking a JSP during 5.1/6.1 interoperability testing, the first time succeeded and the second time produced an error. This has been fixed.
068262 | For EJB1.1 beans we were using setBytes to insert a value into a LONG column. This failed when the data was larger then 4K. We are using setBinaryStream now, which avoids causing the following exception: ejbCreate(): java.sql.SQLException: ORA-01461.
068569 | A tmp_ejb directory was being created even if not using server-side ejbc. This has been fixed.
068971 | The ejbc no longer generates JDBC code for CMP EJBs with deprecated methods.
069280 | An Illegal Reentrant Error is no longer incorrectly thrown by WebLogic Server during concurrent client calls to an entity bean.
069391 | Fixed the CMP Manager cascadeDeleteRemove which was broken for CMP Partners.
070099 | DDConverter fixed to generate the method-permission tags.
070565 | Added a property to weblogic-ejb-jar.xml, called "clients-on-same-server", to indicate that the EJB is collocated with the web tier. This is a performance fix, designed to reduce multicast traffic. The default is false.
070754 | In 6.1 service pack 2, afterCompletion was being invoked on a StatefulSession bean while the bean method was still busy processing. This behavior is counter to the EJB 2.0 specification. In 6.1 service pack 3, serializing Business methods and EJB Callbacks are being invoked which means that afterCompletion will not be invoked on a StatefulSession bean until the bean method has completed processing.
071027 | Previously, the container checked for the CMP table by firing an SQL query (select * from tableName where 1=0). This way of checking is not efficient in the case of DB2 where the query generates a full table scan and is very slow if table has a lot of data. The container now provides an option to check the table using DatabaseMetadata. Although usually slower than checking using an SQL query, this way works well for DB2. See the <validate-db-schema-with> tag in the weblogic-rdbms-jar.xml file for more information.
071296 | When doing an ejbCreate() on an entity bean ( EJB 2.0 ), a java.lang.IllegalStateException was being thrown. This has been fixed.
071377 | Now WebLogic Server supports the ability to generate the EJB QL extension ? IS [NOT] NULL.
074710 | An error no longer occurs while running a stateful session bean in a cluster. When a stateful session bean was passivated, the remote entry was removed and when the bean was activated, the remote entry was not returned, resulting in a NullPointerException.
075867 | Message-driven beans deployed on WebLogic Sever had a problem re-establishing a connection to an MQSeries JMS server. Extra connections were created because of the number of triggers scheduled. This has been fixed.
076167 | In 6.1 service pack 2, if an SQLException was thrown in ejbLoad of a read-only bean, the caller's (global) transaction was not being resumed. In 6.1service pack 3, it is being resumed.
078147 | Fixed a problem that was causing the following exception when using an EJB11/ CMP11 bean: Exception in ejbCreate(): java.sql.SQLException: ORA-01461: can bind a LONG value only for insert into a LONG column

Examples

Change Request Number | Description
048185 | The ACL example is now documented with the client example.
053467 | The second compilation of the i18n.logging.message directory no longer gives errors.
056884 | Fixed an error in the instructions for an example.
057904 | Changing the connection pool is now mentioned in petstore.html.
062545 | A WebLogic Server domain running Solaris simpappcns could not call a Tuxedo Corba Server domain running on NT. simpappcns now works for multi-platform environments, for instance, Tuxedo running on Solaris, and WebLogic Server running on Windows NT.
062962 | The username/password authentication in the JAAS example now works on a UNIX environment using the CertLoginModule .
062999 | Fixed a problem that was occurring when establishing a WLEC connection between WebLogic Server and Tuxedo. The WLEC simpapp example now connects to Tuxedo service.
063229 | Made improvements on examples/iiop/ejb/stateless/server/tux.
071478 | JMS Draw demo example is no longer broken with unique windows.
077055 | Fixed a problem that was causing the Petstore server to begin with an error making it impossible to deploy Petstore.

JDBC

Change Request Number | Description
052393 | Updated the thin driver so that it does not have an error in JDBC session persistence while putting StringBuffer object.
054864 | In 6.1 service pack 2 the server was hanging when using MultiPool with more than one database under heavy load. The MultiPool request would hang because the database was not responding which resulted in the whole server locking up at weblogic.jdbc.common.internal.MultiPool.searchHighAvail(MultiPool.java:200).The cause was over-synchronization in the code which has been fixed in 6.1 service pack 3.
057340 | When a connection pool is empty, the message now says "No available connections in pool."
057977 | Connection pool does not rollback anymore on cleaning up JTS connections
059020 | Deadlock no longer occurs if weblogic.jdbc.common.pool.shutdownSoft() is called when the connection pool is used by another user.
061786 | CREATE_POOL now fires the connection pool just after DESTROY_POOL.
064198 | Several classes were directly referencing optional Oracle classes in the server side code. This no longer occurs.
066001 | Added a property to the JDBCConnectionPool XAPassword to encrypt the database's password.
066964 | When using the WebLogic jDriver for Oracle/XA for a JDBC connection pool, refreshing the connection pool after a DBMS failure and restoration occasionally resulted in a core dump. This has been fixed.
066966 | The ResourceAllocator monitor is no longer held while making a JDBC call to test table.
068490 | Synchronized the call to xa_open at the java level.
068952 | Provided automated build scripts for jDrivers.
070209 | It is now possible to use the Oracle 9.0.1 Thin Driver to connect to an Oracle database. To use the driver, include the path to the driver class files (classes12.zip) to your CLASSPATH before the entry for weblogic.jar.
071974 | PreparedStatement cache size set to 0 by default.
073640 | Added a new attribute for a JDBC connection pool: Open String Password (or XAPassword in the config.xml file). This new attribute allows for encryption of the database password in the open string for connection pools that use an XA JDBC driver that requires an open string. For more information, see Database Passwords in Connection Pool Configuration in the Administration Guide.
076090 | Improved the behavior of database passwords included in the Properties attribute of a JDBC connection pool. If you specify a database password as part of the connection properties or open string, WebLogic Server parses the values and moves them to the Password and Open String Password attributes, respectively, which are encrypted when stored in the config.xml file. For more information, see Database Passwords in Connection Pool Configuration in the Administration Guide.

jDriver

Change Request Number | Description
056531 | There is no longer a performance regression in jDriver.
061643 | weblogic.Admin RESET_POOL no longer fails after the database recovers.
063872 | When a string value is returned from the out parameter of a stored procedure, trailing spaces are no longer stripped.
063874 | The time component of an SQL DATE was not removed when the JDBC getDate() methods were used. This behavior was non-compliant with the JDBC 2.0 specification for java.sql.Date: "To conform with the definition of SQL DATE, the millisecond values wrapped by a java.sql.Date instance must be 'normalized' by setting the hours, minutes, seconds, and milliseconds to zero in the particular time zone with which the instance is associated." A correction was made to the WebLogic jDriver for Oracle. Hours, minutes, seconds, and milliseconds are now removed from the returned value of the JDBC getDate() methods.
069109 | Modified JDBC test scripts to make Oracle 8.1.7 the default.
069676 | The WebLogic jDriver for Oracle now supports the we8iso8859p15 character set.
070878 | If PreparedStatement.setString was used with an incorrect positional index of '0' with a DBMS connection created using the WebLogic jDriver for Oracle, the JVM would crash. Now, the jDriver gracefully handles the coding error and throws an exception.
078936 | In WebLogic Server 6.1 Service Pack 2, application of the HP-UX UNIX patch (PHSS_24627) caused an HP Server Bus error when WebLogic Server 6 accessed Oracle upon start-up. With the newer aCC libraries version A.03.33, using the -AA CXXFlag, the user gets a java.lang.UnsatisfiedLinkError while accessing Oracle upon WebLogic Server start-up. This problem was solved.

JMS

Change Request Number | Description
044976 | Made sure that returned values and exceptions from any get method in MapMessage conform to the JMS specification.
058876 | Disabling or enabling the JMS server through the Administration Console was causing WebLogic Server to throw an exception for any registered durable subscribers. This has been fixed.
061094 | In a clustered environment, a NoSuchObjectException is no longer thrown for JMS clients listening on a JMS server if one of the WebLogic Server nodes in the cluster is not immediately restarted after shutting down.
061552 | JDBC connection is no longer reset after the server is idle for three hours.
062669 | JMS now supports selectors with unicode strings. Specifically, the expression parser now uses a StringReader and the charVocabulary range was increased.
062744 | A NULL value is now accepted for a JMS MapMessage property to conform with the JMS specification.
064727 | Fixed a problem with creating ObjectMessage for JMS in an applet.
067134 | Added weblogic/management/configuration/JMSConstants.STORE_ENABLED_XXX.
067286 | JMS paging no longer fails to page during a server restart.
068667 | Upon booting, JMS non-persistent-message-paging file stores was failing to make available all disk-blocks for re-use. This has been fixed.
069757 | JMS with SSL no longer throws the weblogic.jms.common.LostServerException.
070454 | Message recovery no longer fails nor is delayed upon server crash when using message- driven beans with durable subscription.
072556 | No more JMS Queue deadlock in addReader( ).
073403 | Fixed a problem that was due to a JNDI object having the same JNDI name of a different type.

JTA

Change Request Number | Description
062681 | WebLogic Server no longer fails on JDBC connection request to the pool whenever the connection object is left unclosed in the JDBC code.
063053 | The XA connection can now specify the openString property.
064232 | The javax.transaction.HeuristicMixedException is no longer being thrown sporadically at commit.
064403 | After a Transaction timeout using the XA driver and a Stateless Session Bean, the XAConnection became unusable until WebLogic Server was restarted. This has been fixed.
064825 | Method descriptors for SubCoordinatorImpl are now getting parsed at runtime.
065495 | Added a system property to allow users to set the amount of time they are willing to wait to obtain the Coordinator reference. To specify the wait time, specify -Dweblogic.JTA.ContactCoordinatorWaitSeconds=<seconds> when starting the client or server.
066420 | JTA server-resource cache was not being updated correctly on a member server peerGone event. This has been fixed.
068447 | XA transactions with TestConnectionsOnReserve="true" no longer fails.
070855 | JTA server-resource cache updates delayed under load no longer causes aborted transactions.
076439 | Fixed a problem that was causing random XA transactions to be rolled back with an Illegal State (Expected: preparing) message.

Miscellaneous

Change Request Number | Description
042372 | The API URL() provided in WebLogic now functions properly. For some URLs, it was causing an exception error.
050388 | Statistical information for the Jolt connection pool is now being displayed in the console.
052478 | A timing related JVM bug on Solaris is encountered that causes the VM to exit during object de-serialization of management objects at server startup. If you run into this JVM bug: Re-start the server. Upgrade the Virtual Machine to JDK version 1.3.1_04.
053029 | The RA component is now removed during delete.
054080 | In 6.1 service pack 2 on a Solaris machine, when WebLogic Server was using SSL to communicate (both as a client and a server) and was using NativeIOEnabled="true", the JVM instance consumed more and more memory and eventually hit the heap size limit. This bug was encountered at a WebLogic Integration installation which relied on SSL communication between trading partners. In 6.1 service pack 3, this problem no longer exists.
055007 | Created a configurable parameter, weblogic.system.openSockCount, that would determine the number of allowable connections.
056622 | Added a new system property: weblogic.net.http.URLStreamHandlerFactory
056698 | Fixed a problem with installing customer protocol handlers.
057313 | Fixed ConcurrentModificationException while iterating through AbbrevMap.
057357 | Fixed a problem that occurred when defining an error page 401.
057743 & 060981 | The WebLogic Server verboseToZip and logToZip utilities have corrected problems with versioning information. Manifest entries, on which WebLogic classes depend for versioning information, are now pulled from weblogic.jar. The verboseToZip output file no longer includes entries for dynamic proxy classes. If a message log contains any instance of i18n messages, then logToZip now pulls all of the i18n related files from weblogic.jar to the client jar.
058327 | Getting ClassCastException when trying to make a look-up to DataSource from an Applet
058358 | The <alt-dd> tag in the application.xml file is now being recognized.
059054 | Added the following symbol as a cookie separator: ","
059104 | A property called javaHome which specifies the JVM that is used to start up a managed server was added for node manager.
060062 | The Connections High column in the connection pool monitoring screen no longer includes connections refreshed by WebLogic Server.
060079 | When using JMS over t3s, a MaxMessageSizeExceededException was being randomly thrown even though the message size never exceeded 50k.
060211 | Fixed the placement and quotation of startup arguments passed to node manager from the Remote Start tab in the Console.
060739 | UserTransaction now works properly under load. Now, transaction-managed EJBs control the isolation level automatically if the EJB starts the transaction as well as if the user starts the transaction.
061059 | It is no longer possible to find a record after it has been removed from a database.
061458 | WebLogic Server now supports starting NodeManager on Solaris and HP-UX without using Native libraries.
061512 | Fixed problems starting WebLogic Server as a service on Windows NT and Windows 2000.
061847 | There are no more error messages when using HTTP with examples.io.FileBrowser.
062086 | Using DDConverter to convert from CMP 1.1 to CMP 2.0 no longer throws exceptions for JAR files that contain more than one EJB.
062177 | There are no longer any peer to peer connections in clustered nodes.
062375 | PeerInfoable.getPeerInfo no longer returns null when marshalling a transaction's propagation context in a clustered environment.
062439 | Added error handling code in the native layer of Windows.
062565 | The 1.2 JVM client no longer causes a socket connection leak.
062752 | jDriver was giving an ORA-24347 error on an outer join operation which selected more than 100 rows. This has been fixed.
062926 | JSP page tags can now handle MS932 specific characters on Solaris or HP.
062989 | A JMS client running on a slow modem connection and trying to establish a JMS topicConnection with a cluster of two WebLogic Servers no longer gets a ClassCastException.
062997 | The servlet engine now removes the servlet stub of the generated JSP file if the source file has been deleted.
063103 | Context lookup was failing within a spawned thread. This has been fixed.
063147 | Applets no longer fail during downloading of Home interface Stub with the JDK 1.3.1_01 plug-in.
063310 | CGIServlet no longer fails under load due to File Descriptor leak.
063354 | No longer receiving a ClassCastException from rjvm.MsgAbbrevInputStream.readClassDescriptor() when looking up a session bean from a servlet.
063671 | Client side using HTTPS tunneling was producing the get java.net.ProtocolException: Tunneling result not OK, result: 'DEAD'
063830 | No longer throwing a javax.transaction.TransactionRolledbackException when the cache is full.
064117 | Fixed a problem that was causing the server to abort the connection and result in a java.net.SocketException.
064125 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA02-15.jsp.
064130 | ReplicaLists are now serializable in order to allow more than one lookup under IIOP.
064391 | When deploying applications that contain malformed MANIFEST.MF entries, exceptions are no longer being thrown.
064404 | When the same instance of IE is used to configure a webApp using the console and then to access the same webApp (containing French characters for instance), sometimes accented characters were not being displayed correctly. This has been fixed.
064434 | If a servlet used RequestDispatcher.include() to include the output of a JSP, the post-processing filter was not able to add a header to the response. This has been fixed.
064860 | WebLogic Server no longer fails to execute CGI scripts with JSPs that use page buffering.
065697 | When SetUID was enabled, the server wouldn't start. This has been fixed.
066130 | Corrected an error message that was being thrown by the ejbc during compliance checking.
066158 | When a Log Filter is defined and targeted to the managed server, the trap is now invoked when using the NonCatalogLogger.
066252 | Using a specific Factory/Trader pattern, a ReplicaAwareRemoteRef warning log was being displayed on the client side. This log is no longer displayed.
066504 | Updated the SP installer with JDK 131_02 for Solaris and Windows.
067508 | A generic classloading exception was being thrown when generating a thin client with AppletArchiver. This has been fixed.
067516 | The appletArchiver now spools the i18n and manifest files to the thin client jar.
067517 | AppletArchiver no longer generates L10n type exceptions when building the client jar.
067648 | Fixed a problem that was causing WebLogic Server to hang due to the PosixSocketMuxer code.
068570 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA02-16.jsp.
069043 | When using HttpProxyServlet in conjunction with a filter, a SocketResetException no longer occurs in NTSocketMuxer.
069675 | Reading from a file with @file option on the BEASVC command line no longer has a limitation of 4K.
069991 | No longer receiving a ClassCastException from rjvm.MsgAbbrevInputStream.readClassDescriptor() when looking up a session bean from a servlet.
070575 | After the server had been running about two days, a client running on a separate JVM was not able to look up a bean due to the JNDI tree and JNDI objects eventually becoming out of sync. This had been fixed.
071580 | WebLogic Time service thread is now setting Context Class Loader.
071822 | In order for jCOM to successfully find the WebLogic license file, the beahomelist file must be located in C:\bea.
072010 | Configuring WLEC connection pool was interfering with command line properties. This has been fixed.
072061 | The node manager -Dweblogic.nodemanager.sslHostNameVerificationEnabled=true option now performs host name verification.
072211 | Improved the Solaris native implementation of node manager for handling error conditions.
072228 | WebLogic Server was not firing a trap for the JDBCConnectionPoolRuntime on the admin server. This has been fixed.
072278 | Improved the HPUX native implementation of node manager for handling error conditions.
072327 | Attributes with type LONG can now be monitored with SNMP.
072495 | Fixed a memory leak caused by Timer Services.
072904 | When CallRouter was used, ReplicaList was being corrupted. This has been fixed.
073116 | Fixed the weblogic.Admin SERVERLOG command-line utility.
073201 | When running multiple HTTP tunneling clients over a modem connection, the server was eventually hanging. This has been fixed.
073400 | Modified verboseToZip to exclude javax classes from the output file to reduce the size of the client jar.
073529 | Fixed a problem that was causing clustered servers to lock under heavy stress testing.
073569 | Eliminated <DGCserver> info messages in the weblogic.log file in order to save space in the file.
073578 | Installing Windows NT service by specifying JRE directory as its JAVA_HOME failed with an error when trying to start the service. This has been fixed.
073788 | The HP Installer was failing to build. This has been fixed.
074991 | Fixed a problem that was resulting in WebLogic Server crashing in the performance pack under heavy load.
075271 | A NullPointerException is no longer thrown at weblogic.utils.BubblingAbbrever.getValue (BubblingAbbrever.jaava:163). The Abbrev tree is no longer getting corrupted.
075700 | For WebLogic Server instances that run as a Windows service, you no longer need Windows Administrator privileges to start the service.
076395 | For WebLogic Server instances that run as a Windows service, using the Administration Console or the weblogic.Admin utility to shut down the server no longer causes the Windows service to report an error condition.
076705 | Deploying a MessageDriven Bean no longer fails with a NoAccessRuntimeException for guest if the destination is remote.
077238 | Startup scripts now specify the correct value for the Oracle jDriver path. Before this service pack, startup scripts specified LD_LIBRARY_PATH=oci816_8, which is no longer supported. Now the scripts specify oci817_8.
077278 | Removed the Oracle 816/806 driver from the WebLogic Server 6.1 service pack 3 installation.
077919 | Fixed a problem with an earlier bug fix that was causing calls to ObjectOutputStream.writeObject() on EJBHandle to throw the following error: Closing:'weblogic.rjvm.t3.T3JVMConnection@49c89f' because of: 'Server received a message over an uninitialized connection.
078523 | The java version bundled with the WebLogic Server 6.1 service pack 3 installer is: Win 2k & Solaris installer bundled with java version 1.3.1-03 HP installer bundled with java version 1.3.1.05.

Plug-Ins

Change Request Number | Description
054344 | WebLogic Server can now proxy all requests except a certain MIME type.
057448 & 059142 | Fixed a memory problem that occurred when using SSL under heavy loads.
058886 | Fixed an IIS Proxy memory leak with SSL.
060325 | Concurrent GET and POST requests led to a hang in the Apache plug-in
060863 | Fixed a problem with the NSAPI and ISAPI plug-ins; a POST timed-out error was being written to the browser even after a second retry worked and this HTML content was printed in the browser.
061229 | A request is now declined if handler is not set to weblogic_handler explicitly.
061379 | RequireSSLHostMatch=true now works with NSAPI.
061386 | A new configuration attribute, WeblogicPluginEnabled, has been added. This attribute can be configured at the server or cluster level. When this attribute is true for a server (or cluster) that receives requests from a proxy plug-in (or HttpClusterServlet,) a call to getRemoteAddr will return the address of the browser client from the proprietary WL-Proxy-Client-IP header, instead of the web server. For non-clustered servers that will receive proxied requests, this attribute may be set at the server level, on the Server -->Configuration-->General tab. WeblogicPluginEnabled is duplicated in ClusterMBean and ServerMBean. ClusterMBean overrides ServerMBean. The default value is false.
061561 | The request is not timed-out in case of failover from a hung server.
061881, 065980 & 076503 | The NSAPI Proxy plug-in no longer fails to handle large (greater than 2k) POST Requests.
062607 | When the KeepAlive is enabled on the plug-in IIS, the connection is now closed immediately with a HEAD http request.
062641 | With the IPlanet plug-in, from a Java client using JSSE, the servlet access now works.
062778 | Plug-in is now able to proxy requests to the primary/secondary servers without checking if those are in the current server list.
062808 | Added support for the latest beta version of Apache 2.0.
063004 | The Apache proxy plug-in no longer generates an incorrect URL under a heavy load.
064268 | In the response header the status, HTTP/1.1 200 OK, the string "OK" is no longer being stripped off by the iisproxy.dll.
064472 | Apache 1.3.12 EAPI, Solaris 2.8, with mod_wl_ssl.so was generating "Segmentation Fault - core dumped" while using port based virtual host. This has been fixed.
064890 | Cookie Path no longer gets mangled when PathTrim is used in Apache.
065188 | Fixed the iPlanet plug-in so that it no longer gives a WRITE_ERROR with a 404 error for a static page.
065443 | Now able to proxy to both 5.1 and 6.1 back-ends with the NSAPI plug-in.
065660 | The HTTP header is malformed with the last ISAPI plug-in.
067100 | The build information of a plug-in now includes the version number.
068243 | ISAPI plug-in PathPrepend path is no longer prepended twice when using FORM authentication for a web application.
068517 | The proxy plug-ins no longer load the ECC crypto module.
068562 | When setting up IIS to proxy to multiple sites, the plug-in was not working when putting a firewall or a load balancer in front of the IIS server. This has been fixed.
068634 | A 413 error is now returned if Content Length exceeded the plug-in parameter MaxPostSize.
068790 | Now supporting Apache2.0.32.
068985 | Added the ability to exclude certain requests from being proxied in WebLogic Server.
070358 | Apache-plug-in no longer gives response code 500 when the server is not available.
072895 | When secondary is killed, request was not going to the same server (primary). Now it is.
073838 | When using iPlanet, WebLogic Server no longer loses the HTTP session ID if CookiesEnabled is set to false.
073936 | Apache Plug-ins have been ported to OpenVMS 7.3 platform.
074137 | The NSAPI plug-in was returning "unknown" if x-forwarded-for and client-proxy-ip headers were not sent or set. This has been fixed.
074286 | Now able to proxy to both 5.1 and 6.1 back-ends with the Apache plug-in.
074393 | Added URL parameters to the correct requesturi variable because the latest iPlanet plug-in was dropping URL parameters.
074656 | If the password to start WebLogic Server was provided on the command line, the property, weblogic.security.jaas.Configuration, was not initialized at all. This has been fixed.
076457 | Fixed the problem with READ_TIMEOUT(os error=22) on NSAPI for Solaris. The NSAPI plug-in is now stable under a heavy load (800 or more users).
076578 | The NSAPI plug-in no longer keeps trying to connect to a dead server.
076701 | The Apache server no longer crashes when Content-Length is zero in a POST request by requiring that the server not read post data if Content-Length is 0.
076722 | The Apache server no longer crashes when Content-Length is zero in a POST request.
076731 | The NSAPI plug-in can now fail over to the active server when the primary and secondary servers are locked if it is specifically requested to do so.
076996 | Fixed an SSL memory leak problem.
077440 | The IP address of the proxy is now in the HTTP request headers.
077794 | The keep-alive feature for Apache 2.0 is disabled for this release.
078265 | MaxSkips is used if DynamicServerList=OFF.
078883 | The NSAPI plug-in no longer dumps core when URL rewriting is used with a long URL.

RMI over IIOP

Change Request Number | Description
047057 | Support for complex objects is fixed in IIOP implementation.
062082 | Improved parsing of IIOP URLs.
067013 | Now, only if debugging is turned on, are onMessages printed whenever there is failure to renew lease.
072179 | Resolved the difference in behavior for JDBC connections taken from pool driver or DataSource when not closed.
073028 | Now, chunk continuations before encapsulation body are allowed.
073889 | If MuxableSocketIIOP received more than one message in a chunk and if the overshoot was less than the length of the message header, then subsequent attempts to read the message length were wrong. This has been fixed.
074100 | Muxer boundary condition no longer causes garbled message.

Security

Change Request Number | Description
061659 | WebLogic Server now starts with NTrealms configured
061694 | When running the SSLClient example, a NullPointerException was being thrown at weblogic.security.provider.MD2.<init>(MD2.java:24). This has been fixed.
062172 | Now, if cookies are disabled in a browser, form-based authentication redirects to the secure JSP/Servlet.
062261 | Fixed a security issue with EJB SessionContext.getCallerPrincipal().
062988 | Fixed a problem with the NT realms and multiple PDCs.
063349 | When implementing an AuthFilter class, the methods doFailAuth() and doSuccessAuth() are now being called.
063763 | Two-way SSL java client connection now works with encrypted private keys.
064250 | The web server is no longer vulnerable to session ID forcing. This applies to web applications protected with form-based authentication.
064263 | Lockout Duration above 322122 will now lock out the user.
064285 | When running the SSLClient with ssl.proxyHost/ssl.proxyPort, the SSLHostnameVerifier now works as expected.
064342 | It is now possible to redirect the echo $password command output to the Java interpreter to start WebLogic Server other than by using password.ini or by specifying the -Dweblogic.management.password=$password property.
065046 | ManageableRealm.newAcl() no longer returns NULL when the System password is changed.
065314 | LDAP version 2 no longer causes issues with user names containing natural language.
066232 | The 2-way SSL with RMI/IIOP PingClient example is now working.
066264 | Fixed a problem with the lockout mechanism using Japanese Windows 2000. A 500 error was occurring.
066491 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA02-17.jsp.
067726 | Fixed a problem with form-based authentication.
068524 | Two-way SSL with RMI/IIOP and EJB access and authentication is now working for the SimpleCertAuthenticator example.
069083 | Fixed a problem with perimeter authentication.
069160 | There is now a way to set ClientCertProxyEnabled for unclustered servers.
070870 | LDAPRealmv2 is now fully implemented.
071167 | There is no longer a ProtocolException when tunneling HTTPS through iPlanet proxy server.
072096 | Now able to start a managed server using SSL and DebugRC4="true".
072916 | Changed class weblogic.security.X500Name to implement Serializable.
075109 | LDAPRealmv2 now caches memberships.

Servlets, JSPs and Web Applications

Change Request Number | Description
044528 | Under certain situations, isUserInRole was returning false when it should have been returning true. This has been fixed.
051065 | XML fragments on the XML view of a JSP page were not being passed to out. Non-standard fragments, which are neither standard nor custom tags (tag libraries), are now being sent to the current value of out as is.
054694 | RequestDispatcher will now invoke filters upon include/forward properly.
055333 | When detecting contentType directive at the middle of the JSP, the JSP compiler was failing.
056153 | The File Servlet now supports initialization parameters as well as context parameters.
058352 | It is now possible to access a web application that has a one-character name like "i.war" or "j.war".
059026 | In a web application that contains a servlet, when the mapping defined for this servlet is in the form of *.aBc, accessing the servlet no longer fails.
059102 | The compression filter now works correctly with RequestDispatcher. The forward was causing an invocation of the filter, but the servlet engine was sending the empty response back to the client. This has been fixed.
059219 | WebLogic Server no longer returns the default port number if Host Header is missing.
060023 | The FileServlet now includes the SERVLET_PATH when calculating the source filename which means that it is possible to only explicitly serve files from specific directories by mapping the FileServlet to "/dir/*" etc.
060184 | PathInfo is now decoded and preserves characters in the original URI.
060351 | The method PageContext.include(String relativeUrlPath) was not throwing any exception when the URL to be included was not found. Added a log message that appears in the context log file and indicates the parent resource and which resource could not be included. The log message appears in the mycontext.log file - where mycontext is the context-path of the webapp.
060825 | BodyTagSupport method, getBodyContent(), incorrectly returned null when body tag was empty.
061377 | jspc no longer generates EVAL_BODY_TAG instead of EVAL_BODY_AGAIN.
061782 | ServletResponseImpl.setContentType() can now handle multipart type properly.
061784 | While getting the log from a managed server, the admin server java process was pegged at 90%. This has been fixed.
061864 | WebLogic Server now prevents the display of secure cookies.
061948 | Added a new semantic-predicate to distinguish between tags with body-content set to "tagdependent" or "jsp". Added a new rule before the existing opening-tag rule in the lexer. When the tagdependent rule is invoked, it does the same as the ordinary open-tag rule, but also looks ahead and matches the content of the JSP until it finds a matching closing tag. Everything it finds is escaped for \n, \r, and \ and printed to "out". It then returns to the parent lexer rule which should immediately find the closing tag.
061968 | HEAD method no longer returns request body with use of jsp:include.
062109 | Fixed a problem with JSP scripting variable synchronization
062160 | The parameters <compileFlags>, <encoding>, and <compilerSupportsEncoding> are no longer ignored during precompilation.
062289 | WebLogic Server now decodes the spaces in a URL.
062395 | load-on-startup in web.xml is now be optional
062536 | The JSP response that contains Japanese characters is no longer garbled when filtered with HttpServletResponseWrapper.
062538 | Pages will now be properly parsed regardless of the location of the contentType.
062542 | Now, requesting aux.jsp / AUX.jsp / PRN.jsp / prn.jsp on a WebLogic Server that is running on a Windows box either succeeds or fails instead of staying in an undetermined state.
062579 | CGI scripts will now be resolved properly even if CGIServlet is registered as a default servlet.
062896 & 063009 | When the JSP parameter, precompile, was set to true in the web app (WAR) weblogic.xml, only the document root level JSPs were being recompiled each time the server restarted. The subdirectory JSPs were not being recompiled. JSPs are now recompiled, even during pre-compilations, only if they have changed.
062920 | When specifying an <exception-type> in web.xml in a webapp (the exception class is located under WEB-INF/classes) when the webapp is deployed, WebLogic Server was not finding the exception class and throwing a ClassNotFoundException. This has been fixed.
063007 | Session table name for JDBC persistence is now configurable.
063127 | ServletInputStream now returns data if the session is new.
063169 | Having accented characters and a Charset=UTF-8 no longer yields the weblogic.utils.ParsingException and the nested TokenStreamException.
063288 | WebLogic Server now only looks for SessionCookie in the cookies if CookiesEnabled is true.
063414 | When trying to migrate applications from WebLogic Server 5.1 to 6.1 SP1, there is no longer high CPU utilization.
063524 | A NullPointerException is no longer thrown using FileServlet with nativeIO turned on.
063563 | weblogic.jspc was not passing -encoding JAVAENCODING value to javac from the page tag. This has been fixed.
063904 | The inclusion of each page directive in a JSP was leading to the insertion of an extra line feed character in the generated HTML output. If the HTML consisted of an image, the image lost its formatting. This has been fixed.
063925 | If a language-specific character encoding is specified for a web application, binary data written to the response output stream is no longer garbled.
064294 | Fixed a problem with the WebLogic Server SessionID reuse using a virtual host.
064383 | HEAD request from an applet no longer issues a ClassCastException from ClasspathServlet.
064446 | When using two levels of proxying, a call to getRemoteUser was always returning NULL. This has been fixed.
064449 | Web application deployment was failing and resulting in a StringIndexOutOfBoundsException. This has been fixed.
064650 | WebLogic Server threw a NoClassDefFoundError and was unable to load a class from a JAR file with a period in its name. WebLogic Server is now able to load a class from a JAR file with a period in its name.
064880 | In form-based authentication, when the user directly went to the login page, WebLogic Server was forwarding the user to the welcome page. This has been fixed.
064988 | JSP precompilation no longer aborts after a compile error when the -k flag is set.
065104 | Fixed by 064650 and 065213.
065194 | A multi-part request in the SSL process was failing through a slow connection. This has been fixed.
065213 | A NoClassDefFoundError occurred if more than one jar file was defined in the manifest classpath entry. For example, when xalan.jar was in WEB-INF/lib of war file, this problem happened because it specified two jar files in the manifest classpath entry. WebLogic Server no longer throws a NoClassDefFoundError under these circumstances.
065924 | In a non-clustered environment, web applications with cluster-specific properties can now be deployed using the new option: replicated_if_clustered
066395 | response.addHeader was failing with null character being inserted erroneously. This has been fixed.
066500 | Forwarded JSP pages will now terminate the execution of the current page.
066569 | request.getParameter() is now returning the parameter for post request with Javaclient.
066708 | request.setCharacterEncoding was not working for JSP includes. This has been fixed.
067001 | When using the Http Proxy/Cluster servlet, a request was sent to some back-end server and the response body was not returned to the client if the request came back with a status of 100. This has been fixed.
067072 | When a JSP had pageEncoding without contentType charset specification, the generated .java file was in VM default encoding and the compile failed. This has been fixed.
067073 | Generated .java and -encoding for javac did not match when both contentType and pageEncoding existed. This has been fixed.
067077 | When there was an encoding setting in jsp-param of weblogic.xml at a JSP file with pageEncoding, pageEncoding was not used. This has been fixed.
067292 | Latin one characters in request parameters, when re-directing from one JSP to another, were getting lost. This has been fixed.
067505 | Fixed a problem with port in Location header for an HTTP re-direct.
067748 | It is now possible to compress the output stream of a servlet.
067948 | Page buffer directive is no longer ignored if it is in an included JSP page.
068024 | Removed the need to use sync blocks in HttpServer or HttpClusterServlet. A new enumeration is constructed each time it is required that references a Set that is guaranteed not to change.
068560 | Certain JSP pages' source code was being shown on the browser. This has been fixed.
068648 | Limiting maximum POST size now works properly.
068674 | There is no longer a ClassCastException thrown when using HttpProxyServlet in conjunction with a filter.
068809 | Now, the write signature is honored when using encoding that is different from the default.
068821 | getRequestURI from Request Object is now returning the full length of the URI.
069304 | HttpClusterServlet now re-reads the post data from the input stream up to the declared content-length.
069511 | Error page attributes are now being set on request for JSP error directives.
069630 | If the property of a custom tag in a JSP contained an escape sequence (\"), the JSP was not compiling. This has been fixed.
069652 | The response header (ContentType) and the JSPWriter now have the same character set while serving a page to client.
069809 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA02-03.jsp.
069956 | For replicated sessions, the open session count is incremented only once.
070090 | When sending session cookies in the response to the client, WebLogic Server did not specify the cache-control appropriately to prevent caching proxies from caching the cookie. This has been fixed.
070132 | It is now possible to request a filename with Chinese characters.
070151 | weblogic.jspc no longer silently exits when <load-on-startup> contains an empty value.
070470 | Subsequent reload/refresh was at times executed by the old code that was still deployed in the container. This is now prevented by reloading of the stale class in the case where the JSP fails to parse.
070755 | No longer sending wlsproxy specific headers if the requests are not coming via wlsproxies.
070823 | Eliminated inconsistent behavior of index directories parameter across WAR and EAR components.
071076 | Fixed classloading behavior problem that resulted in having both child1 and child2 using the same classloader, BUT additional classloaders being created and destroyed.
071082 | Fixed broken URLEncoding.
071634 | Fixed chunked transfer encoding issues that occurred when WebLogic Server 6.1 was communicating with WebLogic Server 5.1.
072557 | response.addCookie(name) now honors the order in which cookies are sent to the browser.
073203 | Now able to use the + character in a <url-pattern>.
073380 | Improved the error messages for CGIServlet.
073516 | Fixed a problem with the CGI NonParsedHeader.
073792 | Active sessions will no longer be invalidated.
073797 | JSP useBean tag is now parsed properly.
074015 | There was a NegativeArraySizeException if PROTOCOL is missing in the first line of the request. This has been fixed.
075201 | The security-constraint is now working when the url-pattern refers to a two-character directory.
075607 | Socket exceptions squashed by PrintWriter could have tied up execute threads in servlets and JSPs. This has been fixed.
075628 | When a program submitted data to a servlet using Content-Type that was set to include a charset, getParameterValues("..."), returned every submitted value twice. This has been fixed.
076056 | When a JAR file's MANIFEST.MF contained a JAR file that was in a different directory, WebLogic Server was throwing a StringIndexOutOfBoundsException and the web app was not being deployed. This has been fixed.
076476 | When using multiple frames, the last accesstime set by one frame was not being honored by the other frame. This has been fixed.
076742 | Added a check for the <env-entry-value> element.
077329 | HttpSessionListener failed to work correctly when the session is set to replicated. This has been fixed.
078930 | Requesting http://host:port/webApp/aux%20.jsp no longer hangs the thread servicing the request.

System Administration

Change Request Number | Description
050136 | You can now unset the property values for MBeans from the command line.
052774 | Applications in the config.xml file that do not actually exist are no longer being deployed.
054836 | When migrating a cluster of servers from WebLogic Server 4.5 or 5.1 to WebLogic Server 6.0 or 6.1, an InstanceNotFoundException was thrown. This has been fixed.
056158 | Undeploying an enterprise application that contains a default web app caused an exception at undeployment. This has been fixed.
056832 | The WLEC Connection Pool was not trying to start when in a cluster. This has been fixed.
058946 | Now, JSPs that are pre-compiled on the admin server do not compile again on the managed server.
061426 | Servlets load-on-startup after, not before, the Start Up classes have run
061676 | The converter utility now puts all log files in the SERVER/DOMAIN/logs directory.
061703 | weblogic.deploy was always using the default .wlstaging directory, even if the application was originally deployed using a path other than .wlstaging (i.e., the config.xml was hand-edited). This resulted in update not working for applications that were installed any other way than by using weblogic.deploy. This has been fixed.
062135 | Re-deploying an exploded webapp that has a subdirectory with the same name as the webapp results in an error. This has been fixed.
062151 | Now, managed servers on a remote machine retain webapp name/timestamps.
062749 | It is now possible to update the webapp if the webapp is deleted, deployed, updated, and then updated again.
064101 | The admin server JNDI now shows the managed servers' MBeanHome.
064280 | Fixed a performance regression that occurred when using the weblogic.refresh utility to update JSPs on the managed servers.
064575 | weblogic.refresh did not refresh JSPs and static files from Windows 2000 to a server running on Solaris. This has been fixed.
064722 | Is is now possible to deploy an EJB using weblogic.deploy if a deployed component does not exist at start-up time.
066480 | Registering a custom MBean with an object name of null, the server was throwing an exception. This has been fixed.
066704 | The FailuresFatal property was not getting automatically generated upon migration from WebLogic Server 5.x to WebLogic Server 6.x. This has been fixed.
067917 | The property, Console Context Path, on the <domain>->Configuration->General page of the console application now enables a domain to be accessible by a contextpath other than console.
068231 | Re-deploying an enterprise application to a managed server (using weblogic.deploy) after modifying the context-root now makes the new context-root effective until a server restart.
068579 | Redeployment to Virtual Host was returning javax.management.InstanceNotFoundException. This has been fixed.
068745 | Increased the console speed in a 100-node cluster.
069145 | For auto deploy in the applications directory, the admin server has been added to the targets if it's not empty.
069407 | Multiple senders can now be saved in the MBeanServerNotificationListener's list.
069686 | It is now possible, using MBeans, to change the weblogic.xml cookie name after the web application is deployed.
071633 | Fixed svuid for MBean interfaces.
072676 | Added LoadBeforeAppDeployments to console for startup class.
072964 | Fixed a problem that was causing a javax.management.AttributeNotFoundException when using the EJB Descriptor editor in the console.
073674 | After webapp deployment, the weblogic.xml session persistence type is now changed.
075139 | Fixed a problem that was preventing weblogic.deploy from deploying an application to a cluster.
075667 | Managed servers were not discovered by the admin server when the admin server was restarted. This has been fixed.
077750 | Fixed a problem with deploying an EJB when the JNDI name was already in use.

Web Services

Change Request Number | Description
- > 046215 | You can now correctly use the protocol attribute of the wsgen Ant task to specify that you want to use HTTPS (rather than the default HTTP) when invoking a WebLogic Web service. You must, however, perform the following additional steps if you want to use HTTPS: Add the following line of Java code to the client application right before creating a URL:
  >     System.setProperty( "java.protocol.handler.pkgs",
  >     "weblogic.net" );
- > If you are running the examples server with the SSL certificate shipped with WebLogic Server, you need to specify the following on the command line when running your client application:
  >     -Dweblogic.security.SSL.ignoreHostnameVerification=true
062976 | MSSoapClient.ConnectorProperty for AuthUser and AuthPassword is now passed to InitialContext of EJB.
065205 | Web Services FaultHandler was never being invoked. This has been fixed.
065669 | Now able to use security ACL on a WSDL URL.
066226 | WebLogic Web services now support two-way SSL authentication between client applications and RPC-style Web services. To use two-way SSL authentication, add the following Java code to your client application before you obtain the context you are using the look up your Web service: InputStream certs[] = new InputStream[3]; certs[0]=new PEMInputStream(new FileInputStream("sample_key.pem")); certs[1]=new PEMInputStream(new FileInputStream("sample_cert.pem")); certs[2]=new PEMInputStream(new FileInputStream("sample_ca.pem")); h.put(SoapContext.SSL_CLIENT_CERTIFICATE, certs);
066703 | There were excessive error messages being generated on SOAP client. This has been fixed.
072788 | Now, wsdl is generated with element instead of attribute for complex types.
073897 | SOAP Fault now uses CDATA.

WebLogic Tuxedo Connector

Change Request Number | Description
052022 | Codeset translation between WebLogic Tuxedo domains and Tuxedo domains is provided using the WebLogic Server weblogic.wtc.encoding property. For more information, see Configuring WebLogic Tuxedo Connector for Non-ASCII Codesets.
055170 | Fixed problem with Fchg method of the TypedFML(32) class in the WTC package.
056230 | tbridge no longer fails to initialize the wlsErrorDestination JMS queue
062843 | Fixed a problem with the Fdel method of the TypedFML(32) class in the WTC package.
063290 | When loading large code tables from Tuxedo to WebLogic Server, the duration of service calls (tpcall) is no longer dramatically longer with WTC compared to with Jolt.
066489 | Now able to call an EJB from a Tuxedo client when using FML32 buffer.

XML

Change Request Number | Description
061660 | Using JAXP API to parse XML document, there is no longer the error message "Failed to open XML document".
062297 | You can now set the cache memory size, cache disk size, and cache timeout interval for the external entity cache using the Administration Console. In previous WebLogic Server versions, these fields did not accept any values.
063433 | Fixed a regression with the XSLT processor embedded within WebLogic Server 6.0. When an MFL file contained a group containing a String and either a Literal or XSLT processor embedded within a WebLogic Server 6.0 Filler field, the transformation was hanging.
067966 | Due to a fix in the WebLogic Server classloader, you can now plug-in any version of the Xerces XML parser.
065345 | Fixed a problem that was causing CharReader.fillCurrentChunk to throw a java.lang.ArrayIndexOutOfBoundsException.
067022 | The transformer shipped with WebLogic Server 6.1 now transforms an XML document as expected (using a given XSL).
068656 | Fixed a problem that was causing a NullPointerException in weblogic.xml.jaxp.ChainingEntityResolver.pushEntityResolver.
073311 | Using the weblogic.apache.xalan.xslt to transform huge amount of data led to javax.xml.transform.TransformerException: String index out of range. This has been fixed.
075800 | The built-in XML parser now correctly parses XML files that use external entity references to include external chunks of XML within the original XML file.

Third-Party JAR Files in WebLogic Server 6.1 Service Pack 3

JAR File | Description
J2EE, javax and subdirectories | JTA 1.0.1
| JCA 1.0
| JMX 1.0
| EJB 2.0
| Servlet 2.3
| JSP 1.2
| JMS 1.0.2
XML | org.apache.xalan 2.0.1
| org.apache.xerces 1.3.1
| Xerces 1.2.0 - DOM and SAX parsers
| org.w3c.dom interfaces
| org.xml.sax interfaces
LIBRARIES | antlr 2.7.0 - runtime classes of antlr compiler construction toolkit
| bsh 1.2b3 - bean shell
| certicom - SSLPlus/Java 3.1.12B (used by Node Manager)
| netscape - Netscape Directory SDK 4.1 for Java
| Oracle 8.1.6
| Oracle 8.1.7
| Apache Jakart Ant - 1.3 Apache build system
| Apache Jakart Oro 2.0 - regular expression matching library

WebLogic Server 6.1 Service Pack 2 Solutions

The next sections describe problems that were resolved in WebLogic Server 6.1 Service Pack 2.

- EJB

- Examples

- JDBC

- jDriver

- JMS

- Miscellaneous

- Plug-Ins

- RMI over IIOP

- Security

- Servlets, JSP and Web Applications

- System Administration

- Web Services

- WebLogic Tuxedo Connector

- XML

EJB

Change Request Number | Description
044294 | Fixed a memory leak that could occur when creating multiple entity beans; the garbage collector was not reclaiming all of the used memory.
049590 | The ejbc compiler now will produce IDL files in the correct order, putting primitive value types before non-primitives.
049709, 055644, 059540 | Previously, due to timing problems, exceptions/errors were thrown when EJBs were deployed in a cluster and then a re-deploy or un-deploy was attempted. It was possible that an undeploy JNDI message would arrive after local undeploy had taken place. This would cause unmarshaling errors, as the classloader for an EJB is discarded once local undeployment of an EJB is done. This unmarshal problem would result in DistributedManagement exceptions popping up in log files, and the EJB could never be un-deployed from a cluster. Similarly it was possible that a JNDI binding announcement would arrive before local deployment was successful, resulting in same unmarshaling/ de-serialization errors (as EJB classes required to unmarshal are not there yet). Fixes in 6.1 Service Pack 2 take care of both these problems and remove any timing dependencies in local deploy/undeploy and JNDI Announcements. Now you can successfully deploy/undeploy/redeploy EJBs in a cluster without any exceptions and problems due to race conditions.
051454 | In the case where an EJB has been idle longer than the value of idle-timeout-secs, it is removed from the cache and ejbremove() is called.
055113 | The examples\ejb\basic\statelessSession\build.xml file had a typo where the name of the EJB jar file was misspelled. This has been fixed.
055163 | Fixed a problem with stateful session beans that are configured with in-memory replication across a cluster. The bean was failing over when an EJBException was thrown, but not when the bean was removed.
055502 | A message-driven bean now recovers messages after an application throws an exception.
055510, 056543 | Fixed problems with container-managed persistence 1.1 EJBs not re-reading deployment descriptors after being redeployed.
057119, 054806 | Fixed an out of memory problem that occurred when redeploying EJBs several times over; the <max-beans-in-free-pool> descriptor was being ignored and exceeded.
058210 | The ejbRemove() method is now invoked at undeployment for both stateful session beans and stateless session beans with both home and remote interfaces.
058857 | Fixed problem where entity beans weren't being recognized if the home didn't have a create() method.
059043 | ejbc no longer complains when the EJBLocalObject() method has a throws exception clause that does not throw a RemoteException.
059046 | Accessing a stateful session bean from a stateless session bean in a cluster no longer fails.
060018 | Accessing a ReadOnly EJB with container managed relationships no longer causes a LockTimedOut exception.
055842 | Fixed a problem where a message-driven bean could not access a remote queue on another physical machine because it the client could not be authenticated.
058074 | Storing a reference to an EJB local interface in an instance field in a stateful session bean no longer causes an assertion error during passivation.
053523 and 060032 | Fixed a problem where the guess method getURL() in weblogic.ejb20.internal.BaseEjbHome was using a non-secure port when the protocol was t3s and https.
054335 | Removing a ReadWrite entity bean now invalidates its corresponding ReadOnly entity. Previously, the ReadOnly entity would remain cached.
059674 | Using a read-only bean-managed persistence entity bean no longer calls ejbLoad() twice when the bean has been loaded via a finder.
060142 | Fixed a problem in the getEJBHandle() method such that failover is now working in a 2-node cluster.
060416 | Fixed a problem where performing an EJB lookup in a tiered environment caused a ClassCastException to be thrown when the EJB Home object was cast to its specific type.
061883 | Fixed a problem where reentrant calls to read-only beans failed because of a lock timeout.
062515 | The findByChar(char c) method no longer fails for a container-managed persistence EJB home.

Examples

Change Request Number | Description
055155 | A problem was fixed in the following sample file: ejb20\cascadeDelete\one2many\table.ddl The problem resulted in a "SQL not properly ended" error message (error number 933).
055370 | Broken links are now fixed in the following examples under wlserver6.1\samples\examples\jsp\: SimpleSession.jsp URLEncode.jsp For SimpleSession the link on Session Timeouts was missing. For URLEncode the link Writing Web Application Deployment Descriptors was missing.
056711 | Building the wtc/simpFML32 example no longer generates a warning about container transactions.
057237 and 056063 | The RMI-IIOP C++ examples have been fixed to work on UNIX platforms. They are located in the following subdirectories: /samples/examples/iiop/ejb/entity/tuxclient /samples/examples/iiop/ejb/stateless/server/tux /samples/examples/iiop/ejb/stateless/tuxclient /samples/examples/iiop/rmi/server/tux /samples/examples/iiop/rmi/tuxclient

JDBC

Change Request Number | Description
055044 | Dynamically created connection pools are no longer treated as persistent within the config.xml.
055435 | The JDriver for Oracle now retrieves the correct number of `null' values when it queries the database and the database has more than 500 rows.
056268 | When trying to execute SQL queries with the language set to Russian, the use of hyphens in the timestamp no longer contain error causing hyphens.

jDriver

Change Request Number | Description
046149 | Fixed a problem where when WebLogic Server wrote a multibyte string to a CLOB or NCLOB column, it wrote an incorrect string length.

JMS

Change Request Number | Description
055293 | JMS default connection factories are now properly bound as a function of the JMSDefaultConnectionFactoriesEnabled property in the config.xml file. Previously, if no other JMS objects (JMSConnectionFactory, JMSServer) were defined on a given WebLogic Server, then the default connection factories were not bound into JNDI.
056320 | Fixed problems in JMS with an error deserializing an object in the case of using a Topic to send a string as an ObjectMessage and then sending a RemoteObject stub as another ObjectMessage.
061783 | Fixed a problem that occurred when trying to simultaneously deploy instances of different message driven beans that subscribe to the same JMS topic Previously, one or both beans would stop working.

Miscellaneous

Change Request Number | Description
036679 | The Administration Console now functions correctly when resizing the Netscape browser frames on Solaris.
041873 | Fixed problems with the weblogic.policy file when users started up the server with -Djava.security.manager. Even when the user had correct permissions, a java.security.AccessControlException: access denied exception was being generated.
041991 | When attempting to get the MBeanHome from the RemoteMBeanServer, an application no longer receives "null".
043010 | If WebLogic is running as a Windows service it will no longer shut down when you log out of the Windows session that the server is running in.
050437 | When running under WebLogic Express, WebLogic no longer prints out: <Error> <JMS> <JMSServer "null", JMS license validation failed, com.bea.utils.misc.NoSuchProcessException: No such license: WebLogic Server 6.1, JMS.>. This message was misleading and harmless.
053732 and 054781 | Introduced a -delay option to the beasvc.exe utility which ensures that Managed Servers only start up provided that an Administration Server is already running. The new -delay option lets users delay the Managed Server's JVM thread execution for a specified number of milliseconds. Previously, a Managed Server failed to start up because it depended on a running Administration Server. Note: For information about related changes in WebLogic Server 6.1 SP04, see Change in Behavior of -delay Argument for beasvc.exe.
053990 | The Node Manager will now load up servers that have whitespace in their names.
055007 | WebLogic Server now implements a throttling mechanism to reject outstanding requests after a certain limit. Previously, the acceptBacklog value was not effective in limiting the number of new connections that could possibly overwhelm the server.
055442 | Fixed a problem involving sending XML over HTTP. The problem was that WebLogic Server was erroneously calling the getInputStream() method.
056332 | Fixed a problem causing an IllegalStateException when calling a RPC-style Webservice.
057091 | Fixed a problem with applets in Internet Explorer, where `didn't meet stated Content-Length' errors were being thrown because the content length check was being performed at the wrong time.
058832 | Fixed a problem where HttpSession failover service failed and a session was lost if a client accessed the session just when a primary server was shutting down. This occurred only in a two-server cluster.
059119 | Fixed a problem where a Java client talking to a Weblogic cluster performed more slowly on a 3-server cluster than on a 2-server cluster. Moreover, performance would keep degrading with addition of more servers until the client ensured that there were at least as many socket reader threads on client as the number of servers in the cluster. This involved configuring Execute Thread count and Percent Socket readers client-side properties. This fix removes the dependency of such a configuration, as the number of servers can grow or shrink dynamically. Now, WebLogic Server creates new threads for socket reading on fly making sure there is one thread per outgoing socket from client. This means customers don't have to tweak those properties for the client for optimal performance when a WebLogic client talks to a WebLogic cluster.
059219 | Fixed a problem encountered by wireless application where WebLogic was retrieving the port number from a location that could have incorrect information.
060557 | The FileT3 attribute now creates a file with the correct path when the path is targeted to a managed server.
061060 | The getTimeout() and setTimeout() methods are no longer missing from the class HttpURLConnection.
056911 | Previously, if an entry was added to the manifest Class-Path for a .war file, it would be loaded by the web applications's ClassLoader. With this fix, the application's ClassLoader now loads it. The net effect is that all web applications now share instances of classes loaded from the manifest Class-path, whereas before they all got their own copies.
051220 | Fixed a problem where multi-byte system messages in WebLogic Server log or console were corrupted and, therefore, unreadable.
054871 | The Administration Console now displays a JNDI tree correctly. Previously, deployments were appearing under the wrong context.
057466 | Fixed a problem where executing the weblogic.Admin PING command to a server running on Solaris with Japanese locale (LANG=ja_JP.PCK) resulted in a java.net.SocketException displaying on the server.
058786 | The Netscape Enterprise Server Plug-In (NSAPI plug-in) enables requests to be proxied from Netscape Enterprise Server (NES, also called iPlanet) to WebLogic Server. The plug-in enhances an NES installation by allowing WebLogic Server to handle those requests that require the dynamic functionality of WebLogic Server. Previously, reading the HTTP header in the NSAPI plug-in resulted in an unexpected EOF: "PROTOCOL_ERROR [line linenumber of filename]: unexpected EOF reading HTTP headers at line linenumber. The underlying problem proved to be with parsing large cookies. This problem is now fixed.
061460 | You can now configure Weblogic 6.1 to restrict the number of client connections. There are two methods: 1. Edit the config.xml file to set the weblogic.system.openSockCount parameter, which limits the number of permitted connections: <Server ListenPort="7001" Name="myserver" NativeIOEnabled="true" TransactionLogFilePrefix="config/mydomain/logs/" MaxOpenSockCount=1000> 2. Use weblogic.Admin to set the socket count or write a JMX Java client to do so and utilize the API in weblogic.management.configuration.ServerMBean, as in this code fragment: /** * Returns the maximum number of open sockets allowed * in server at a given point of time. When max threshold is reached, * server stops accepting any more new requests until no of sockets * drops below threshold. * * @default java.lang.Integer.MAX_VALUE * @legalMin 0 * @legalMax java.lang.Integer.MAX_VALUE * * @configurable * * @oldprop weblogic.system.openSockCount */ int getMaxOpenSockCount(); /** * Sets the maximum number of open sockets allowed * in server at a given point of time. When max threshold is reached, * server stops accepting any more new requests until no of sockets * drops below threshold. * * @default java.lang.Integer.MAX_VALUE * * @legalMin 0 * @legalMax java.lang.Integer.MAX_VALUE * * @configurable * * @oldprop weblogic.system.openSockCount * */ void setMaxOpenSockCount (int sockCount);
051882 | If web.xml is missing from your web application and you attempt to edit or enter a deployment descriptor through the console, a blank screen no longer appears.

Plug-Ins

Change Request Number | Description
053641 | Now the plug-ins correctly respond to the setting of the KeepAliveEnabled parameter. The Connection: Keep-Alive header was not being sent back to WebLogic when using HTTP 1.1.
055276 | There are no longer problems when disabling caching with the ISAPI plug-in.
055750 | Fixed problems using MatchExpression with Stronghold versions of Apache.
056628 | Fixed a problem that occurred when setting the Apache HTTP Server Plug-In PathTrim parameter. Setting the PathTrim parameter to "/" no longer causes the loss of session information.
060064 | Fixed a problem where installing the Apache HTTP Server Plug-In as a statically linked module on the Solaris platform generated fatal errors.

RMI over IIOP

Change Request Number | Description
056233 | ejb11.security.HomeMethodPermissionTest.testHandleRemoveWithoutPermission() no longer fails with an out of memory error.

Security

Change Request Number | Description
060491 | Fixed a problem where single sign-on (SSO) did not work when the initial resource in the web application was not a protected resource.
CR061313 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA02-13.jsp.

Servlets, JSP and Web Applications

Change Request Number | Description
046879, 057371 | A cgi executable now successfully serves an image to the browser (.gif, .jpg or .png format). Previously, attempting to do so resulted in an exception being thrown in the WebLogic Server log.
047698 | The IndexDirectoryEnabled property now works correctly for managed servers: both directories and files will be listed. Previously, if IndexDirectoryEnabled was set to "true" for a particular web application and that web application was requested on a managed server, directories were not listed, only files. Also, if files were added or removed from the web application, the changes were not reflected when browser page was updated.
050402 | Fixed a problem that occurred when redeploying a web application with a different name. Previously, when a web application was already deployed through the Administration Console and then mbeans were used to programmatically deploy the same .war application under a different name, WebLogic Server would go into an infinite loop.
053513 | Fixed a problem where, when using HttpClusterServlet to proxy requests, a page sometimes displayed improperly in the browser.
053706 | Fixed problems when AuthFilter is registered in a web application and ServletAuthentication.weak is called. Now, doSuccessAuth is correctly called in AuthFilter when this is the case.
053965 | If characters between ASCII 128 and 156 are a part of a URL parameter which is then subject to a response.sendRedirect, the second servlet no longer receives those characters as ASCII 63 and the characters are sent to the second servlet correctly.
054206 | weblogic.servlet.internal.ServletRequestImpl—the implementation class of HttpServletRequest—now properly handles "folded" HTTP header lines. Previously, code would be incorrectly parsed.
054211, 055987 | You can now configure the lifetime of HTTP persistent connections, through the new client-side properties http.keepAliveCache.lifeTime and http.keepAliveCache.proxyLifeTime. Previously, the lifetime was hardcoded on the client side. This value overrode the server-side keepAlive value and led to scalability problems.
054852 | A web application with a configured error handler now redirects to this error handler when JSP1 forwards to JSP2 where JSP2 throws an exception. Previously, the server returned a blank page and showed a status code of 200. The server logged the exception, but the client did not see it.
054898 | Fixed a problem with JSP pages using Authfilter and doSuccesAuth, where the first JSP page is in a series of JSP pages that are contained within different web applications.
055333 | Fixed a JSP compilation problem when using a contentType tag in the middle of the JSP rather than in the beginning.
055466 | Fixed a problem with servlet filters unable to call EJBs and causing ClassCastExceptions.
055535 | Fixed a problem where, when using the JSP refresh tool, the file distribution servlet was copying files to the wrong location.
055583 | When implementing TryCatchFinally in a JSP custom tag, the correct java code is now created upon compilation.
055595 | WebLogic Server now resolves tag library URIs in JSPs.
055636,56265 | When using a getParameter() method in a JSP, if the value entered is empty, null is no longer returned. Now an empty string is returned. This fixes certain problem with leaving out equal signs in a query string.
056092 | The JSP compiler no longer complains erroneously of duplicate variable declarations.
056189 | WebLogic Server now supports clients using "Transfer-Encoding: Chunk", i.e., the client no longer needs to send the "Content-Length" Header if "Transfer-Encoding: Chunk" is used in the post request.
056322 | Intermittent RMI errors are no longer thrown when two different servlets in separate web applications attempt to access the same EJB.
056668 | When a parameter is empty, the getParameter() method now returns "empty" instead of "null".
056955 | Fixed a problem where the post data from a request was lost after a forward() (one servlet forwards the request with post data to another) when a web application had <charset-params> defined in its weblogic.xml or <context-param> defined in its web.xml, the post data from a request is lost after a forward().
057101 | Fixed a problem where the getParameter() method was not returning the first of multiple values when including a JSP. Previously, the second value was being returned instead of the first.
057279 | Fixed a discrepancy in behavior between exploded directory and packaged web applications. In an exploded directory scenario, classes were being loaded in the incorrect order with WEB-INF/lib classes being loaded before those in WEB-INF/classes.
057620 | Special characters such as '+' and '&' are now decoded correctly when the codeset encoding is 'UTF8'.
057684, 057559 | A ClassCastException no longer occurs when calling PortableRemoteObject.narrow() when an applet is a client to an EJB.
058125 | The client.jar that is generated for web services is now compatible with JDK 1.2 java clients.
058187 | Fixed a problem with weblogic.deploy where a JSP refresh was failing; a new directory added to an exploded directory application was not being propagated to the managed servers and hence refresh was failing.
058220 | The servlet error java.lang.NullPointerException at servlet.internal.ChunkOutput.clearBuffer no longer occurs when trying to send a SOAP request.
058352 | You can now access web applications with one-character names, such as "i.war." Previously, although such an application would deploy, access would fail with a 404 error.
058714 | Fixed a problem where a .gif image was improperly displayed when streamed through a cgi-bin executable versus when the image was 'streamed' directly via the web container.
058738 | The HTTP version is now maintained correctly in a response header when the request is sent via HTTP 1.0.
058931 | Deleting a JSP now results in a 404 error instead of a 500 error.
059054 | Fixed a problem where WebLogic Server failed to parse "," separators in cookies, resulting in new sessions erroneously being created.
059180 | Fixed a problem where WebLogic Server was overwriting an existing cookie created by another entity, rather than simply adding its own cookie.
059412 | Fixed a servlet problem where if you called session.removeAttribute() twice, then called session.setAttribute() once, one removeAttribute remains rather than both removes being overridden.
060192 | Fixed a problem where requests were not pinned to a primary server and sessions were lost when using URL rewriting to track sessions. (Cookies were disabled on the browser.)
060536 | Fixed a problem where jspc was erroneously exiting with an exit code of SUCCESSFUL.
060595 | Fixed a problem where WebLogic Server threw a ClassCastException with nested JSPs when using a filter that wrapped the HTTPServletRequest.
060615 | Fixed a problem where session ids were not consistent across web applications. Now, each web application sees a single, consistent session id for a given user's session.
060963 | WebLogic Server no longer reuses a sessionid when the web application is not participating in single signon.
061277 | (JSP 1.1) javac compile error messages are no longer corrupted on a Japanese platform.
061387 | Fixed a problem where WebLogic Server created a new session every time the page was requested, when the JSESSIONID cookie was sandwiched between two user defined cookies.
061488 | Fixed a problem where request parameters were parsed incorrectly when a "=" was used in the value.
066184 | In 6.1 SP1, the default encoding used for servlets and JSPs was the JVM default. As of 6.1 SP2, the default encoding has been changed to ISO8859_1. This change is in accordance with the latest servlet specification. Servlet Specification 2.3 SRV 4.9 states that the default encoding should be ISO8859_1.

System Administration

Change Request Number | Description
045780 | Multiple server definitions with the same name are now disallowed. If you have started a server and then attempt to start up the second server with the same name, the server startup aborts, with this error message: "Server: <yourservername> already exists, make sure that you do not have duplicate copies of this Server name in your XML config file"
055190 | Fixed a problem where JSP refresh failed if the application was targeted to a cluster. Previously, you could not add new JSPs or change or delete existing JSPs from a running web application without having to undeploy and redeploy the application.
056091 | A new procedure is available to restart an Administration Server on a different machine while Managed Servers are still running. For more information, see the section "Failover Considerations for the Administration Server".
058946 | Fixed a problem where precompiled JSP's on a Managed Server would recompile even without if the pages hadn't been modified. As a result it took a long time to start up the Managed Server. With this fix, if classes are already compiled on an Administration Server, when the Managed Server starts up the classes are shipped and their timestamps are preserved, to the Managed Server will not try to recompile them.
054624 | weblogic.deploy now behaves as expected when its -component option is invoked. Previously, it did not behave as expected when using the -component option: the application was unintentionally deployed to a server that was not in the component list of servers.
054573 | Fixed a problem where any configuration error involving a JDBCConnectionPool, MultiPool, or (Tx)DataSource, did not get reported in an error dialog in the console. Rather, it appeared to be correctly configured.
058183 | Fixed a problem where WebLogic Server was deploying .war files before .jar files, At server startup, a web application would deploy before an EJB, resulting in a NameNoteFoundException.
059702 | Fixed a problem where web applications could not be deployed when network cards were disabled. Previously, WebLogic Server would try to validate with the DTD at http://www.bea.com/servers/wls610/dtd/weblogic-web-jar.dtd. When it cannot reach www.bea.com, it failed. Now, when there is no network access, the server find weblogic-web-jar.dtd in weblogic.jar and continues.
060244 | Fixed a problem where, when using the Administration Console to target a cluster for just one application, individual servers were also pulled into the target list. With this fix, the cluster is no longer expanded to a list of servers.
061642 | Fixed a problem with converting a 5.1 weblogic.properties file to a 6.1 config.xml file. The conversion utility was not converting the password for the JDBCConnectionPool correctly. As a result, attempts to start the server in the new domain failed.
055067 | Fixed a problem that caused web applications that had dependencies on classes in EJB .jar files not to deploy when precompile was turned on.
060411 | (EJB 1.1) Fixed a problem where a second call to a required EJB transaction method cause the transaction to roll back. The first call removed some entities and then created some. The second call removed the previously created entities and then created some new ones.
042052 | Fixed a problem occurring in migration from one release to another: the weblogic.properties file was not converting completely, such that the web.xml file of the web application did not contain all of the properties.
061300 | Fixed a problem where the WebLogic Server console was executing in the default queue (a lower priority queue) instead of "__weblogic_admin_html_queue" (a higher priority queue). This compromised the console's ability to respond when the server was experiencing heavy load.

Web Services

Change Request Number | Description
055415 | There is no longer an interoperability problem when using the SoapWare test specification and the UserLand client (reference implementation).
054749 | It is no longer true that when using the wsgen Ant task to assemble a stateless session EJB into an rpc-style Web Service, wsgen fails with a parsing error if the package level of the EJB contains only one level, such as: package mytest;
055645 | The Remote2WSDL class, used to assemble a WebLogic Web service manually, now correctly includes a protocol option for specifying a protocol other than http, such as https.
056332 | Previously, if an exception occurred while WebLogic Server was processing a SOAP request to invoke a WebLogic Web service, the WebLogic Server executed the ServletResponse.getWriter() method twice. This in turn created another exception. This does not happen anymore.
056382 | WebLogic Web services now support the xsd:decimal data type.
056631 | WebLogic Web services now support the xsd:hexBinary data type.
056639 | You no longer get an error when you use the WebLogic Web services client API to invoke an rpc-style WebLogic Web service whose stateless session EJB has security constraints defined for it in the ejb-jar.xml and weblogic-ejb-jar.xml files.
058230 | The WebLogic Web services client API now correctly constructs a complex Java object on the client side after receiving the object inside a SOAP request. This complex object consists of an array of JavaBeans, one of whose attributes is itself an array of a different type of JavaBean.
058431 | WebLogic Web services now correctly return nested array data type values.
059653 | When using Remote2Wsdl to manually assemble Web services, you can now specify the context and jndi_name part of the URL equivalent to the location attribute of the <soap:address> element of the WSDL. This means that you can now successfully invoke a method on the Web service proxy obtained from the WSDL.

WebLogic Tuxedo Connector

Change Request Number | Description
055889 | A TPReplyException thrown with TPESVCFAIL from WebLogic Tuxedo Connector will now be received by the Tuxedo Client.
057150 | WTCValidateCF utility no longer throws an error when validating a configuration file that has FldTblClass elements.

XML

Change Request Number | Description
044211 | The xmlx.jar file now correctly contains the HTMLEntities.res resource file.
046934 | The built-in SAX parser now correctly parses deployment descriptor files that are written using any character set. Warning: Prior to this fix, WebLogic Server would have failed to detect encoding problems in your .xml files for English-only applications. Consequently, English-only applications that ran without fail in the past may now fail with this Service Pack 2 fix; WebLogic Server will report an encoding-not-supported error. If WebLogic Server reports this error, check the specified .xml file for the correct encoding name and syntax.
055082 | The XSLTInfo.properties file in the weblogic.jar archive is now correctly called /weblogic/apache/xalan/res/XSLTInfo.properties rather than the incorrect /org/apache/xalan/res/XSLTInfo.properties, causing transformations to work correctly and not throw a SAXException.
056839 | The weblogic.apache.xalan.serializer.Encodings class now contains the correct mapping between MS932 and Shift_JIS.
062320 | The WebLogic FastParser now parses very large strings (> 1MB) in seconds rather than minutes.

WebLogic Server 6.1 Service Pack 1 Solutions

The next sections describe problems that were resolved in WebLogic Server 6.1 Service Pack 1.

- Deployment Descriptor Editor

- EJB

- Examples

- JDBC

- JMS

- JTA

- Miscellaneous

- Plug-ins

- RMI over IIOP

- Servlets and JSP

- System Administration

- Web Services

- XML

Deployment Descriptor Editor

Change Request Number | Description
041479 | Fixed a memory leak that was occurring during updates (redeployment of) J2EE applications.
048757 | Removed all yellow caution icons that were next to deployment descriptor editors on the console.
048804 | The Container Transaction Trans Attribute no longer has the '(none)' option for the EJB deployment descriptor editor in the console.
049465 | In the console EJB deployment descriptor editor, the display name for the Weblogic RDBMS Jar is derived from the filename where the descriptor was read.
051858 | All RDBMS descriptors referenced in the weblogic-ejb-jar.xml file are now available in the deployment descriptor editor.
051939 | Fixed the ejb-jar.xml parsing code to accept Auto-acknowledge and Dups-ok-acknowledge as legal acknowledge-mode elements for Message-Driven Beans.
052613 | The link to edit the deployment descriptor is now hidden during application configuration.
052665 | If the web.xml file has a valid element called <run-as>, it is no longer lost when using the deployment descriptor editor.
052804 | The <charset-params> entities and all child entities are now persisted to the weblogic.xml file by the deployment descriptor editor.
052963 | Access to the deployment descriptor editor for .war, .jar, or .rar files no longer exists in the component table of the console.
053089 | The deployment descriptor editor now indicates that the Primary Key that is used with the Automatic Key Generation feature must be of Java Type: java.lang.Integer.
053098 | Added a legal values list to the MessageDrivenDestinationMBean's SubscriptionDurability attribute. Removed the SubscriptionDurability attribute from the MessageDrivenMBean and removed the SubscriptionDurability property from MessageDriven.jsp.
053282 | Added the exclude-list tag to the EJB 2.0 deployment descriptor editor.
053375 | The deployment descriptor editor is no longer blank after a modified bean is redeployed using the check box in the console.
054682 | When persisting EJB deployment descriptor settings from the deployment descriptor editor, the contents of all description elements are now enclosed in CDATA sections to prevent possible parsing errors.

EJB

Change Request Number | Description
031350 | The EJB compiler now correctly validates that a primary key class for an entity bean has all public fields. Previously, the validation existed but was broken.
044294 | Fixed a memory leak that was occurring when repeatedly creating entity beans.
047050 | If a message-driven bean's onMessage throws an unchecked exception, rolling back the transaction is now called instead of setRollbackOnly.
048506 | Fixed a memory leak where multiple beans were created and not removed.
048716 | EJB compliance error messages now indicate which bean is faulty.
049180 | EntityPool did not call unsetEntityContext() when asked to release a bean. This has been fixed.
049658 | Fixed a problem with using arithmetic operators with input parameters in ejb-ql. Capability was added for these three symbols: + - /
050134 | The weblogic.ejbc debug flag is now working. To compile with debugging, use -g instead of -debug. For example: java weblogic.ejbc -g foo.jar bar.jar
050860 | The DDConverter now generates ejb-ql with updated syntax for the cmp20 bean.
051528 | Added an optional <description> tag element in the <weblogic-query> tag in weblogic-rdbms20-persistence-600.dtd, so you can describe your query.
051653 | Fixed a problem with SQL query generation in a many-to-one relationship where the primary key field is part of the foreign key.
051670 | When an EJB that referred to another EJB's handle was passivated, a ClassCastException was thrown. This has been fixed.
051735 | The EJB compiler was not recognizing the -j option when the compiler was specified as sj and hence was failing to execute the command. This has been fixed.
051803 | The compliance checker now disallows local or local home to be passed as a parameter type or return type for the remote interface. See section 10.3.10.1 in EJB spec for more detail.
051807 | The compliance checker no longer allows remote and local components to share the same CMR mapping.
051875 | The XML generator no longer ignores values that are explicitly set. Even if the values are equal to their default values, they are generated.
051941 | Fixed a problem with the EJB container that involved improper handling of a business method named remove.
052075 | SELECT DISTINCT is now working when an ejbSelect() returns a collection of fields.
052502 | Changes to EJB deployment descriptors are now picked up when EJBs are redeployed through the Deploy checkbox in the console.
053093 | When the auto create tables feature is turned on, sequence tables are now generated.
053096 | The ejbSelect method is now returning a set of local beans instead of returning a set of bean instances.
053101 | Compliance checker no longer gives the wrong value for <acknowledge-mode>.
053287 | The following entry in the ejb-jar.xml file no longer causes the entire file not to load: <message-driven-destination> <destination-type>javax.jms.Topic</destination-type> <subscription-durability>Durable</subscription-durability> </message-driven-destination>
053596 | The Number of Active StatelessSessionBeans is no longer allowed to exceed the max-beans-in-free-pool setting.
053599 | Improved the ability of the EJB DDInit tool to determine bean classes.
053643 | If an EJB without a local interface calls SessionContext.getEJBLocalObject(), an IllegalStateException is now being thrown.
053646 | When validating an ejb-jar.xml file, the compliance checker and XML validator now refer to "relationship-role-source" instead of "role-source" to comply with a change in the EJB specification.
053735 | A null pointer exception is no longer thrown in StatefulSessionManager when invoking local method.
053768 | Updated the deployer so that it does not look for the weblogic.EJB20Enabler class to enable EJB 2.0. Also, removed license error messages referencing a separate download because they are now irrelevant.
053801 | A Compliance Checker error is no longer thrown when a message-driven bean's class does not contain an ejbCreate() method but its superclass does.
053827 | The DDConverter utility can now be accessed using java weblogic.ejb20.utils.DDConverter as documented.
053884 | If an ejbPostCreate method was defined with a throws CreateException and if SQLServer AutoKey Generation was enabled, the generated code was incorrect. This has been fixed.
053905 | When you use EJB2.0 BLOB/CLOB mapping on an UPDATE, if the UPDATED field was shorter than the original field, the newly UPDATED result no longer contains the left-over data from the original field.
053944 | Fixed the exception handling code so that if a stateless session EJB's constructor was throwing a RuntimeException or RuntimeError, the caller's java:comp/env JNDI context was correct after accessing the EJB.
053970 | Default role and relation names are now generated, making it possible to set up EJB 2.0 relationships without setting the ejb-relation-name element in the relation declaration of the ejb-jar.xml descriptor.
053986 | The descriptor mbean is now consistent regarding XML case sensitivity.
054021 | An assertion error is no longer thrown when a clusterable entity bean is called from a non-clusterable EJB.
054225 | Fixed a problem with ear file deployment when it contains a circular reference in the Class-Path entry of the Manifest.mf file in jar files.
054449 | The code generated for EJB 2.0 entity beans that use container-managed persistence was changed to work around a limitation in Oracle. A cmp-field that is mapped to an Oracle LONGRAW column can now have a length greater than 4096 bytes.

Examples

Change Request Number | Description
045300 | Added new JTA example that uses both Oracle's thin driver and JDriver. This example involves two database instances. For each database, the user must set up a single table and create a new transactional connection pool and a new transaction datasource. This example uses J2EE 1.3 features which use non-final API specifications.
048031 | Clarified the instructions, syntax, and examples for specifying the cluster address and the listen port when invoking the example clients. Two files changed: ...\samples\examples\cluster\ejb\package.html ...\samples\examples\cluster\rmi\package.html
050429 | Standardized table creation sql script to be vendor independent.
051476 | A problem was fixed in examples/ejb20/bands. demoPool connection pool now points to oraclePool connection pool.
051491 | Corrected the reference and example code in the examples/jta/jmsjdbc/build.xml file.
051714 | A problem was fixed in examples/ejb/sequence/mssqlserver /package-summary.html. demoPool connection pool now points to an mssqlserver connection pool.
052595 | The second compilation of the i18n.logging.message directory is no longer producing errors.
052689 | Fixed a problem running more than one client using Petstore.
053008 | Corrected information in the SSLClient example document. Now, there is no reference to a production_apps directory as the applications directory and, the SnoopServet is located in the /WLS_HOME/samples/examples/jsp directory, not in the /WLS_HOME/config/examples/jsp directory.
053463 053466 | The logging internationalization examples no longer have broken links. WL_HOME/samples/examples/i18n/logging/package-summary.html now contains a link to WL_HOME/samples/examples/i18n/logging/message/UserSMessagesServlet.html. The "Setting up your environment", "examplesweb application", and "Start the WebLogic Server with the examples configuration" links in WL_HOME\samples\examples\i18n\logging\message\UserSMessagesServlet.html now correctly go to WL_HOME\samples\examples\examples.html.
053383 | Added a set-up step that was missing from the JSP Form validator example.
053396 | The wireless stockDemo example is now returning a live quote instead of an outdated quote.
053525 | Starting the default server in mydomain in development mode was causing the Defaultweb application and certificate.war file in the applications directory to be deployed twice.
053852 | Updated DOCTYPE to register latest version of DTDs.
053871 | Modified build script to compile JSPs consistently across all platforms.
054963 | The generated startscript for migrated domains is now consistent with other scripts.
056080 | Fixed a problem that was resulting in the examples\i18n\logging\message build script failing.
056114 | Added literal encoding to fix a problem with the message webservice sample.
056347 | Petstore Shopping cart EJB no longer uses clustering.
056495 | Removed the time example.

JDBC

Change Request Number | Description
034041 | Added the capability to rotate the JDBC log based on date. You can specify how often the log file should be rotated and when rotation should begin. The current jdbc.log file is has the most recent date timestamp at the end of the file name.
034046 | It is no longer possible to create data sources based on multipools containing mixed XA and non-XA-aware connection pools because it could result in incorrect transactional behavior.
035380 | It is now possible to dynamically create a JDBC DataSource using JMX APIs in addition to using the properties file.
042924 | Creating a TxDataSource that points to a multipool now works. Previously, doing so resulted in a ResourceException.
045991 | When you define a connection pool in the console by specifying a login and password as part of the URL instead of as properties, an exception is no longer thrown.
049963 | Added a description to the javadoc comments for JDBCConnectionLeakProfile and JDBCStatementProfile interfaces that serve the connection pool runtime MBean.
051058 | Changed checking of the "reserve" ACL to "admin" ACL in weblogic.jdbc.common.internal.ConnectionPool.startup(Deployment MBean).
051165 | Added reset methods to corresponding profile so that profile storage can be reset programatically to initial zero size.
051371 | The weblogic.Admin JDBC usage message now includes connection pool commands.
052540 | The size of the PStatement cache is now handled explicitly through the Administration Console and through the JDBCConnectionPoolMBean. Setting size of the PreparedStatement cache via database properties is deprecated.
052960 | The getter and setter methods for HighAvailability and LoadBalance in JDBCMultiPoolMBean.java are now deprecated. They are replaced by the AlgorithmType getter and setter methods.
053085 | Added synchronization to the close() and isClosed() methods in the JDBC pool driver's Connection class.
053721 | The getPoolList() method still exists in JDBCMultiPoolMBean in 6.1 and is documented in the javadoc.
054187 | Upon multiple invocations, the PreparedStatement query no longer returns an incomplete ResultSet.
055655 | JDBC driver DLL for Oracle 8.1.6 is no longer broken.

JMS

Change Request Number | Description
051938 & 053464 | If a destination becomes unavailable, producers can now properly detect them as unavailable (peerGone) and will send and receive exceptions while the destination remains unavailable. Once the destination becomes available, producers will recover and resume working properly.
053635 & 054655 | To get the proper transaction semantics, applications should always use an XA connection factory when inside an EJB. Furthermore, the default connection factory used by Message Driven Beans (MDBs) is now an XA connection factory. To configure user-defined connection factories used inside of an EJB as XA, use the Administration Console to select the XA Connection Factory check box (XAConnectionFactoryEnabled="true") under the Configuration-Transactions tab under the Connection Factories node.
053649 | WebLogic JMS was only acknowledging messages up to and including the message being acknowledged. It now acknowledges all messages (unless the Acknowledge Policy attribute is set to Previous).
054154 | When a message is serialized outside of JMS (pass by value to an EJB or an RMI call), the destination is no longer dropped.
054365 | The behavior of the pro-active assignment of messages performed by session pool connection consumers has been corrected. Regardless of the messagesMaximum setting on the connection factory, a connection consumer will consume at most the connectionConsumer.messagesMaximum setting to any given session.
055364 | When attempting to set properties on a message that is received in read-only mode, users can now call the clearProperties() method to make the properties writable. Previously, if a received message had no properties to clear, clearProperties() would not make the properties writable.
056556 | When multiple subscribers are created under the same session, asynchronous subscribers no longer hang after receiving the first message.

JTA

Change Request Number | Description
024199 | The JTA driver no longer requires read permission in the top level workspace.
048979 | Fixed the JTA race condition that caused the following error if multiple clients used the same resources simultaneously: Unable to create resource runtime mbean
050789 | The auto-update interval for picking up applications deployed in a domain appears under Domain options and no longer appears under JTA Subsystem.
050849 | Improved JTA resource health monitoring. There is now a distinction between an unhealthy/blocked transaction and an unhealthy resource. Once a resource is marked dead, a general mechanism informs the resource provider so that it can refresh itself. Hard-coded constants, such as the two-minute interval (after which an unresponsive resource is declared unhealthy), are now configurable.
051631 | Using prepared statements with testConnectionOnRelease results in an SQLException for the Weblogic OCI XA driver.
051673 | Heuristic exceptions are no longer being reported inconsistently in single versus multiple server configurations.
053638 | A work-around is provided for the Oracle XA driver limitation that results from accessing the same database instance from multiple servers.
054513 | Fixed checked transaction behavior check.

Miscellaneous

Change Request Number | Description
032447 & 054281 | WebLogic Server no longer prints to the server log "Emergency," "Critical," and "Alert" messages that directly pertain to shutdown when the server is intentionally shut down by an Admin user.
047596 | When the SHLIB environment variable is not defined, WebLogic Server no longer fails to find the performance pack when started.
048222 | The console monitoring graphs are now working in Netscape 4.75.
048524 | The LoginContext class always threw a LoginException with the message "Authentication Failed" regardless of the exception thrown by the underlying custom LoginModule implementation. The LoginContext class now propagates the exception thrown by the LoginModule implementation.
049668 | The Service Pack installer can now delete empty directories.
050345 | Now, there can be multiple versions of either the i18n_user.properties file or the weblogic/msgcat/i18n.properties file. This feature allows users to place their message information more flexibly and to update the system messages if necessary.
050385 | Added the reset connection pool option to the console for Jolt connection pool. This option is also available in WebLogic Server 6.0 SP1 and SP2.
050489 | It is now possible to pass an argument that contains a comment into the startup class without the parser splitting the value into two arguments.
050517 | OBJ_ADAPTER is no longer thrown when a valuetype is passed to a CORBA server on Solaris.
050888 | Fixed network classloading for classes stored in the server's classpath. Previously, a ClassNotFoundException was thrown in the client while the client unmarshalled objects of those classes.
051297 | Improved the ZipException message when the application path is misconfigured.
052146 | Fixed a problem with weight-based load balancing.
052349 | Fixed a password-related problem that arose when migrating to WebLogic Server 6.1 from WebLogic Server 5.1 SP7 or later. Previously, if you had LDAP configured in ldaprealm.properties, after running the weblogic.properties file conversion, you had to add the password for the LDAP server to the config.xml file manually. This is no longer required.
052567 | Added a detailed error message to be used if the performance pack is missing.
052666 | Corrected the error message that relates to the startNodeManager.cmd script which is started from the WL_HOME/config directory. The error message now points to the correct directory.
053308 | The Tuxedo server in the simpappcns example can now boot.
053320 | Deleted these two examples: time.ServerTimer time.ClientTimer WebLogic Time is deprecated. Use java.util.Timer instead.
053422 | Fixed a problem with the Deploy checkbox in the console. If you de-selected this checkbox, the application was not deployed, but the next time the serer was booted, the application was deployed anyway.
053426 | The conversion utility no longer creates and uses the production_apps directory.
053559 | The weblogic.ant.taskdefs.ejb[20].DDInit tool is now better able to determine bean classes.
053584 | Merged the Path field and the URI field used in the console when configuring a standalone component.
053617 | Client-side rollbacks now release transaction data structures immediately.
053693 | The weblogic.net API is now exposed in the javadoc.packages.
053725 | The SNMP Agent screen in the console now has a field called "TargettedTrapDestinations" which is of type SNMPTrapDestinationMBean.
053952 and 054777 | Fixed problems with starting Managed Servers from the command line. Also, the error log message did not indicate whether the error came before or from the current start-up instance. This has been fixed.
053955 | Added %JAVA_HOME\bin to the PATH environment variable in the startNodeManager.cmd script and in the startNodeManager.sh script. Because of these additions, starting a Managed Server via the NodeManager no longer fails if the NodeManager has been started up without "java" in its PATH variable.
054131 | In a cluster environment with a ProxyServer (HttpClusterServlet), when calls are made from a client through the ProxyServer, the nodes in the cluster now receive the true client details instead of the ProxyServer's details.
054281 | ListenThread no longer fails during WebLogic Server shutdown.
054517 | Fixed an HTTP tunneling problem with making RMI calls through user-launched threads on the server.
054608 | Added attributes to dialog and table pages of the console for the properties, SNMPAtributeChange and SNMPLogFilter. The attributes provide the option to enable a server for each property.
054673 | The snmpwalk command, a command line utility, is now working correctly.
054734 | Fixed problems that occurred with the connection pool after the resource adapter threw a CONNECTION_ERROR_OCCURRED exception.
054738 | Added support to allow an ear to contain a rar but have the rar's Java classes packaged in a jar that exists in the ear rather than in the rar itself. The classpath entry is now supported in the rar's Manifest.mf file.
054771 | When the connection leak detector was in effect, ManagedConnections were automatically destroyed in the time specified by connection-cleanup-frequency and connection-duration-time elements in the weblogic-ra.xml deployment descriptor file. However, if the resource adapter itself recognized that the ManagedConnection was currently active, it had no way to abort the ManagedConnection destruction. The resource adapter can now abort the automatic destruction of a recognized active ManagedConnection by throwing javax.resource.spi.IllegalStateException from a ManagedConnection.cleanup() method call.
054777 and 053952 | Fixed problems with starting Managed Servers with the command line. Also, the error log message did not indicate whether the error came before or from the current start-up instance. This has been fixed.
054795 | The installer now only permits a single 30-day trial period for a given product or release, service packs included. A license to extend the initial period can be obtained from the BEA Web site.
055090 | During various interactions with WebLogic Server, the resource adapter received NoAccessRuntimeExceptions exceptions, which prevented the resource adapter from performing various operations. These access problems have been fixed.
055121 | The start script that is generated by the converter tool now quotes %CLASSPATH%.
055681 | All nav.jsp files now send out the nav tree in UTF-8 encoding so that the JNDI tree on Solaris can be displayed properly.
056481 | Fixed bean deployment path in the connector config.xml file. The connector.ConnectorEJBTest.testOpenConnection no longer fails.

Plug-ins

Change Request Number | Description
047784 | The iisforward.dll file now supports multiple websites for the same IIS instance
050080 | The PathPrepend and PathTrim parameters for the Apache plug-in can now work simultaneously when they use HTTPS over an SSL.
050253 | The ISAPI plug-in now allows the content-length to be equal to 0 for POST and for PUT.
051912 | The NSAPI plug-in (proxy35.dll) for Netscape Enterprise Server 3.5.1 on Windows NT was giving the error message, ns-httpd36.dll could not be found in the specified path. Because there is no such DLL in NES Server 3.5.1, this error message has been deleted.
052444 | When you use the HttpClusterServlet plug-in and the primary server shuts down, a more informative error message is now displayed.
052480 | The ISAPI plug-in now flushes the buffer even when the request is not served completely.
053773 | Added a plug-in option to specify to which IP address the plug-in should bind when it connects to WebLogic Server.
054140 | Added a new parameter, WLProxySSL, for all of the plug-ins whose default value is OFF. This parameter indicates whether HTTPS is used by the users' browser on which the proxy is based. The proxy then determines to which URL to send users in the case of response.sendRedirect.
054526 | Fixed problems that resulted from using the same socket for the keep-alive connections.
054998 | Fixed a problem with downloading a file from WebLogic Server 6.1 through IIS Web Server 5.0 as proxy. The error saying that inetinfo.exe has crashed no longer occurs.
055093 | Fixed a problem that resulted from using SSL with the IIS plug-in.

RMI over IIOP

Change Request Number | Description
052086 | Fixed a problem that arose from calling outbound using IIOP after re-deploying an EJB.
052300 | Fixed a problem with ear classloaders that prevented call by reference from working.
054182 | In the 6.1 release, there was an IIOP/SSL outage. This has been fixed. A convenience class for accessing the SSL socket factory in the client was added.
054376 | Security credential propagation is now supported over IIOP.
055330 | Corrected the IIOP JVMID discriminators that are generated for remote JVMs.
055394 | Fixed the SVUID for weblogic.iiop.IIOPRemoteRef.
056505 | Fixed a problem with encoding value types in Anys with the IBM JDK on AIX.

Servlets and JSP

Change Request Number | Description
C043505 | Please review the security advisory information at http://dev2dev.bea.com/resourcelibrary/advisoriesnotifications/BEA00-09.jsp.
043659 | Shortened the session ID for WAP in a cluster.
049139 | The following JSP no longer fails to compile. <%@ taglib uri="accents.tld" prefix="accents" %> <%@ page contentType="text/html; charset=ISO-8859-1" %> <accents:test> fail </accents:test>
049147 | When you start the default server, a warning message referencing the servlet 2.2 DTD no longer occurs.
050343 | ResponseHeaders.writeHeaders() generates an HTTP header for single byte strings only.
050370 | Added the PrefetchTag class to the weblogic-tags.jar file.
050398 | Added the weblogicx.jsp.tags.PrefetchTag class to the weblogic-tags.jar.
051396 | Load-on-startup now produces a warning if an invalid value is entered.
052109 | A NullPointerException is no longer thrown every time ServletSessionRuntimemBeanImpl.getMainAttribute() is called.
052134 | Added support for two Web applications or two ejb-jars with the same name in different ear files. Previously, deploying two ear files that each contained a web application foo.war file caused an InstanceAlreadyExists error.
052665 | Added the capability to configure a <run-as> element for a servlet from the web application deployment descriptor editor.
052786 | Exception-type mapping implementation no longer looks at the exact match for the exception type. Multiple classes can now be registered in the hierarchy. Exception-type mapping picks up the closest match.
053314 | Added performance optimizations for in-memory replication and memory session persistence.
053333 | The JSP page is now used as an error page if an exception is thrown in the Web application.
053344 | Fixed a problem caused by using multiple slashes in a URL.
053377 | The exception weblogic.servlet.internal.session.MemorySessionDataMissing no-arg constructor for class is no longer thrown when: A servlet invoked an EJB method and passed it a reference to its HTTPSession object. The servlet and EJB had been deployed in the default Web application. Memory-based session persistence was used by the servlet.
053573 | When more than one call for Forward() of RequestDispatcher is made within a Servlet service method, the container now throws an exception instead of returning a blank response.
053634 | The query parameters added in a forward or an include now take precedence over the existing ones, in accordance with the servlet specification.
053722 | Introduced a switch in the weblogic.xml file that redirects the client using the absolute URL. For example: <container-descriptor> <redirect-with-absolute-url>true</redirect-with-absolute-url> </container-descriptor> If set to true, the absolute URL is used.
053743 | Now, in accordance with the servlet spec, an IllegalStateException is thrown if ServletA tries to forward the same request to the JSP after having forwarded it to ServletB.
053932 | The HttpClusterServlet no longer throws a Null Pointer Exception and weblogic.utils.AssertionError if secureProxy is on.
053959 | BodyTags can now return EVAL_BODY_INCLUDE from their doStartTag method.
054016 | Fixed the response header format corruption problem when the Content-Disposition header is present.
054194 | The content in the response buffer is now flushed as soon as the amount specified by the setContentlength is fulfilled.
054427 | Added a mapping for jnlp files to the weblogic/servlet/internal/web applicationServletContext.java file.
054694 | RequestDispatcher now invokes Servlet 2.3 filters.
055002 | A file can now be downloaded, instead of only appearing in the browser, after setting up mime-type in the web.xml file.
055106 | Parameters for the request are now returned after the HttpServletRequest.getParameter (param) method for a POST request is executed in the doPost() method in a servlet.
055241 | The request.getAttribute and request.setAttribute are no longer broken when Content-Type=text/xml and the method is POST.
055265 | New parameters no longer appear lost when getServletContext().getRequestDispatcher and request.getParameter are used in the arguments.
055591 | A null pointer exception is no longer thrown in request.getParameterMap() if the method is called with any of the getParameter() methods.
055630 & 055962 | Fixed a problem with internal ServletResponse implementation.
056188 | Fixed a parse error. The JSP container was failing to parse when pageEncoding was omitted.
056277 | There is no longer an ArrayIndexOutOfBoundsException thrown on POSTs when using the Netscape browser.
057022 | The JSP compiler no longer generates a classpath that is too long for the Win32 command line when Class-Path is used.

System Administration

Change Request Number | Description
045203 | The message produced due to an incorrect password when using weblogic.Admin is now consistent regardless of the command used.
049177 | Fixed an error related to Web application deployment in clusters.
049178 | Fixed an error that occurred when deploying the default Web application.
049919 | Redundant copies of ServerConfigMBeans are no longer created on the Administration Server and the Managed Server.
050374 | Converting the weblogic.properties file no longer fails when DeliveryMode=persistent.
050853 | Configuration and deployment can no longer take place with the wrong path and URI.
050874 | A cloned server can now be started as a Managed Server.
051618 | weblogic.Admin now fetches the information from MBeanHome of the server running at the address specified in the -URL option. If the -URL option is not specified, weblogic.Admin fetches information using the AdminHome of Domain.
052046 | When a password is not specified using the -password option in the command line for weblogic.Admin, the user is prompted to enter the password.
052095 | When launching the Admin startup script, the Administration Server was started but did not detect running Managed Servers. Now, when the Administration Server starts up, it always loads the root directory from the properties directory (-Dweblogic.RootDirectory) or uses the default directory (current directory).
052198 | A cloned server no longer fails during start-up.
052261 | Fixed a problem with using the weblogic.deploy utility to deploy multiple EJB targets.
052326 | If an erroneous root directory is specified in the config.xml file, WebLogic Server gives a warning message and the configuration is persisted to the directory where the Server is booted.
052349 | When the deployment descriptor converter is run to generate a config.xml file from the weblogic.properties file that has the property weblogic.security.realmClass=weblogic.security.LDAPRealm set, a Password attribute now gets created in addition to the ConfigurationData for the CustomRealm. Values for both ConfigurationData and Password are based on the information contained in the ldaprealm.properties file. When the config.xml gets saved, the Password gets encrypted.
052656 | Applications in the auto-deploy directory are no longer deployed twice.
052753 | Starting the Administration Server and then starting two Managed Servers simultaneously no longer causes a server failure.
052804 | If the <charset-params> entry exists in the weblogic.xml, then the deployment descriptor editor displays it. Previously, it failed to display and gave a ClassCastException.
053053 | Fixed a problem with redeploying a message-driven bean after undeployment.
053485 | This is a known issue with the conversion utility for customers migrating from earlier releases of WebLogic Server as well as those users following the migration tutorial. The JDK automatically specified by the conversion process under the compileCommand tag in the weblogic.xml is set to JAVA_HOME\javac. This setting is no longer missing the bin subdirectory, which is set to JAVA_HOME\bin\javac. A corrected version of the conversion utility has been posted at http://developer.bea.com/tools/techguides.jsp.
053926 | When the Administration Console was used to convert weblogic.properties on src510sp10_117sj to the config.xml file on src_ag_131sj, the root directory was not converted. This has been fixed.
053980 | Fixed a problem that involved deploying a Web application in a cluster that was using an MBean API.
053991 | MBean name patterns specified by JMX can now query the MBean server and find MBeans.
054173 | Fixed a problem with starting Managed Servers simultaneously in a clustered environment.
054485 | Improved the accuracy of Managed Server startup URL error messages.
055150 | Fixed serialVersionUID for outer and inner classes following Sun's recommendation.
055945 | A ClassCastException was caused by deleting MBean references. This has been fixed.

Web Services

Change Request Number | Description
048800 | Fixed a problem with array elements. Array elements are no longer in the SOAP-ENV namespace. The .NET array always ends up as a non-null array of zero elements.
51222 | You can now use the WebLogic Web Service client API to invoke a Microsoft-hosted Web service, as long as you add the following lines to your Java client program: CodecFactory factory = CodecFactory.newInstance(); SoapEncodingCodec codec = new SoapEncodingCodec(); codec.writeQualifiedName( false ); factory.register( codec );
053249, 053254 | When a static Java client invokes a message-style Web service by sending or receiving an XML document, the client no longer receives an error due to the WSDL of the Web service not supporting the literal encoding style.
058431, 054687 | Null exceptions are no longer thrown when you try to invoke a remote procedure call Web service from a static Java client by using an array on primitive integers.

XML

Change Request Number | Description
046955 | Loading an XML document with xsl:inlcude in it from a Web application was causing an SAX exception. This has been fixed. The path for the xsl:include must be page-relative.
048165 | It is now possible to circumvent caching, in general and on specific entities.
049063 | After you create parser and entity XML registry entries in the Administration Console, the public ID, system ID, and root tag fields become read-only and you cannot modify their values. This is the correct behavior.
049066 | Changes in the console are now propagated to the entity cache.
049082 | Debugging is now supported through an attribute in the ServerDebugMBean.
049855 | The xsl:inlcude was leading to the wrong path for the include stylesheet when used in stylesheets that were loaded by JSPs that used the XSLT tag library. This has been fixed. The path for the xsl:include must be page-relative.
050469 | The Administration Server now correctly converts XMLRegistryEntryMBeans to the new MBean formats, even if an XML registry is not assigned to the Administration Server.
050620 | When an entity was resolved, the registry entry was called once to resolve and once to get the timeout interval for entering into the cache. These functions are now performed by a single call.
052258 | There are now default JAXP factories for standalone java applications. If the system properties are not set on the command-line, the weblogic factories are instantiated instead of the Apache factories.
054332 | Fixed a problem that was causing an error to occur when parsing a well-formed XML document with the default parser.
054670 | The error message that the parser produced when parsing an XML file if the user specified an undeclared tag is now easier to understand.
055499 | When the cloneNode(true) method of weblogic.apache.xerces.dom.Node is called on a root element that contains a namespace attribute (i.e. xmlns="http://www.abc.com/xml";) an erroneous DOMException is no longer thrown.

WebLogic Server 6.1 Release Solutions

The following sections describe problems that were resolved for WebLogic Server 6.1.

- Deployment Descriptor Editor

- EJB

- Examples

- Internationalization

- JCA

- JDBC

- JMS

- Miscellaneous

- Plug-ins

- Servlets and JSP

- Web Services

- XML

Deployment Descriptor Editor

Change Request Number | Description
048382 & 049320 | Fixed some problems with displaying the Connector Deployment Descriptor Editor in the Administration Console when clicking on the menu item "descriptor."
048965 | Fixed some problems with displaying the EJB, web application, and WebServices nodes in the Deployment Descriptor Editor of the Administration Console. An error message was displaying when these nodes were clicked.
048966 | Fixed problems with displaying Security Role Assignments in the web application node of the Deployment Descriptor Editor. Clicking Security Role Assignment caused an IllegalArgument exception to display and an error message for the web application.
048971 | Fixed some problems in the EJB 2.0 Deployment Descriptor Editor when clicking on existing Resource Reference instances.
048973 | Fixed some problems in the EJB Deployment Descriptor with persisting EJB entities. Clicking on the Persistence tab sometimes caused an exception.
049458 | Fixed problems cloning the following: WebLogic RDBMS bean, WebLogic RDBMS Jar, transaction isolation, session beans and entity beans.
049460 | The EJB Deployment Descriptor Editor had problems creating description folders for new WebLogic EJBs. Also, it was not possible to configure a new entity descriptor, stateless session descriptor or stateful session descriptor for a newly configured/cloned WebLogic EJB. These problems have been fixed.
049413 | Fixed problems with persistence in each of the Deployment Descriptor Editors.

EJB

Change Request Number | Description
042794 | Deploying Message-Driven Beans into a full cluster through the Console's "Clusters" panel was broken. This is now fixed.
046960 | Fixed a known problem with two servers hanging when a distributed transaction involving message-driven beans (MDBs) spans both servers.

Examples

Change Request Number | Description
041463 | Using UNIX, the config/petstore/StartPetStore.sh script has been modified to use the Hotspot VM on HP. This modification is a workaround for a bug in the HP client VM.
047509 | When running the RMI examples, it was necessary to reboot the server after deploying. Before rebooting, the server was throwing a javax.naming.NameNotFoundException. This has been fixed.
049011 | Fixed some problems with the build.xml file in WEBLOGIC_HOME/samples/examples/xml/sax.
049264, 048678 | The PetStore demo now logs you out correctly when you do "sign out".

Internationalization

Change Request Number | Description
035036 | When WebLogic Server boots and prompts for the boot account's password, the prompt used is now internationalized.
041021 | Fixed a problem failing to generate properties files for some message catalogs after executing l10ngen.
041078 | Fixed some duplicated keys in the english.xml file.
041264 | Fixed some internationalization problems with certain tags not being in english.xml.
041266 | The time stamp is now internationalized.

JCA

Change Request Number | Description
049346 | WebLogic Server now supports "javax.resource.spi.security.GenericCredential" credential-interface or the "Kerbv5" authentication-mechanism-type. Previously, specifying either value for the <authentication-mechanism> in the ra.xml file for the resource adapter being deployed resulted in a failed deployment.

JDBC

Change Request Number | Description
033423 | There were dbKona problems with QueryDataSet and the OCI805_8 driver. This has been fixed on Windows NT, but is still a problem on HPUX and Solaris.
033920 | There was a problem in JDBC when running tests which access the connection pool. This has been fixed.
035530 | There were problems enabling OS authentication and using Oracle 8.1.6/oci8 with the jDriver. This has been fixed on NT and HP-UX, but still is an issue on Solaris. We have added an error message that reports this problem: OS level authentication is not currently supported due to a defect in OCI 8 libraries.
037589 | Added Oracle thin driver support and fixed some outdated command line help.
037591 | Added support for ORACLE_THIN database type. Removed obsolete database types and command line options.
037596 | Fixed PreparedStatement.setBlob and PreparedStatement.setClob.
037693 | There are no longer problems with the Oracle driver and ROWID selects when running examples.dbkona.rowid.
037893 | Fixed getBytes() to return null instead of a zero-length byte array with Oracle LONG RAW columns.
038143 | JDBConnectionPoolRuntimeMBean's were not working. Added a RuntimeMBean implementation to ConnectionPools.
038229 | The jDriver for Oracle 8.1.6 no longer causes Managed Servers to run out of memory.
038275 | We no longer refer to the weblogic.classpath in JDBC error messages. The weblogic.classpath does not exist in WebLogic 6.1.
040379 | The following error occurred when the server and serverName properties in a JDBC connection pool were specified with the same value: <Cannot startup connection pool "jtaXAPool" server and serverName properties must have the same value> This problem occurred when the XA driver required the server or serverName property to be set. It was occurring with the WebLogic jDriver for Oracle, but not the Oracle thin driver, or the Cloudscape driver. It has been fixed.
040509 | Fixed a small problem with Solaris 2.6 and the jdriver.
041286 | Better error message for misconfigured connection pools.
041302 | The MS SQLServer driver has been updated.
041514 | Added support for JDBC and connection pool monitoring in the Console.
048764 | Killing connection pools through the console is fixed.

JMS

Change Request Number | Description
039726 | If a pre-6.0 WebLogic Server was shut down when it had active database operations, after upgrading to 6.1 some durable consumers may have received messages that were sent to the topic after the durable subscriptions were created. There was a race condition between the scavenger (which updates the database periodically) and Ctrl+c killing the pre-6.0 server. This has been fixed.
039809 | The JMS messages types, TextMessage, ObjectMesssage, MapMessage and XMLMessage now implement in read-only mode so that the receiver cannot modify the message before calling clearBody().
041031 | The JMS flow control no longer stalls asynchronous messages from a consumer.
041165 | If a user receives a JMS ObjectMessage and calls the toString method before calling getObject, the message is now automatically deserialized.
041821 | The JMS connection is now cleaned up properly when the client terminates without closing.
042096 | Calling a setRollbackOnly in an MDB no longer yields a verbose log message.
042458 | JMS can now handle sending messages that are received from a foreign provider.
042792 | JMS can now process multiple messages concurrently with the JMSServerSessionPool.
042997 | Server session pools no longer deadlock on multi-CPU boxes.
043077 | The message listener no longer fails to auto acknowledge messages in server session pools.
043155 | JMS topic messages now expire since they are checked at the time the message is given to the consumer.
043223 | JMS can now send a TextMessage with more than 32K characters.
043225 | When performing a setObject, the JMS ObjectMessage is longer unnecessarily unserialized.
043445 | Sending a WebLogic Server JMS message using Fiorano 5.0 no longer generates an exception.
043447 | When a JMS server session pool is shut down, its server sessions are now cleaned up and closed.
043519 | A session rollback and recover no longer prevents asynchronous consumers from receiving messages.
043752 | Recovering expired messages no longer causes a NullPointerException.
043884 | JMS provides better performance by not synchronizing writes to the file stores. Synchronous writes are configurable via the command line using properties and are enabled by default. Dweblogic.JMSFileStore.SynchronousWritesEnabled=(false|true) Dweblogic.JMSFileStore.<store name>.SynchronousWritesEnabled=(false|true) The first property applies to all JMS file stores running on the server. The second more specific property takes precedence over the first. The order where the properties are specified makes no difference.
043973 | TopicSesssion.unsubscribe() is now rejected if a message has been received as part of a transaction or has not been acknowledged in the session.
044200 | The JMSConnection Mbean destroy() function now destroys the Connection when run on the server side. After destroying the Connection, the consumer is able to retrieve messages and the producer is able to send messages.
044285 | JMS persistence mechanism no longer locks up when there are not enough server threads.
044450 | The JDBC Store code no longer prepares "COMMIT WORK" unnecessarily.
044605 | The serialization of an unsent JMS message no longer generates a NullPointerException.
044891 | On a JMS transacted session, Session.close() now rolls back the in-progress transaction instead of committing it.
044961 | The getBooleanProperty() correctly returns false if a value for name is not found. All of the other getProperty methods return NumberFormatException if a value is not found.
044976 | The returned values and exceptions from getXXX() in MapMessage now return the correct values, as follows: If the value for the field does not exist, then getByte() should return NumberFormatException. If the value for field can not convert, then getByte() should return MessageFormatException. If the value for the field does not exist, then getBoolean() should return false. If the value for the field can not convert, then getBoolean() should return MessageFormatException.
045531 | A NullPointerException no longer occurs when a JMS durable subscription is configured but a store is not configured.
045956 | The connection consumer now behaves properly when creating a server session pool that is using default factories.
045963 | The connection consumer no longer ignores the maxMessages field that caused it to swallow all the selected messages.
045980 | A detailed log message was added for failures of the first SQL query, which describes the likely problem and provides a work-around. The work around ensures that the connection pool being used has permission to access the given tables. It also fully qualifies the table names by configuring a table name prefix in the JMS JDBC store that includes the schema and catalog names: ([schema.[catalog.]]prefix).
046705 | When setting the message listener on a subscriber, JMS now remembers the context classloader at the time of setting so that when it calls onMessage on that message listener it can set the context classloader appropriately. This allows EJB to send messages to a web application subscriber that contains classes only present in the EJB.
046726 | There is a new configuration option for "acknowledge" to specify the new or old behavior. This has been added because JavaSoft has proposed changing the meaning of "acknowledge" based on the description in the JMS 1.0.2 specification as opposed to the one specified in the Javadoc, as follows: "Section 4.4.13: Acknowledging a consumed message automatically acknowledges the receipt of all messages that have been delivered by its session."
047424 | JMS no longer throws a NullPointerException when the message size exceeds the quota size.
048181 | When creating a temporary topic, and then closing the connection, the following exception is no longer thrown when looking up the topic name: weblogic.jms.common.JMSException: Error unregistering RuntimeMBean.
049518 | Fixed a problem migrating text messages generated using WebLogic Server 6.0 to WebLogic Server 6.1. The messages could not be received and the following message was thrown: The corresponding file block will be zeroed out on disk, and this corruption will no longer be reported in the future. java.io.StreamCorruptedException: Unknown object stream version.

Miscellaneous

Change Request Number | Description
035039 | When WebLogic Server needs to prompt for the boot password, it now logs (in security.xml) that it is prompting. This allows an administrator on a remote machine to know why the machine is apparently "hung".
036141 | A Managed Server did not start if guest had been disabled (in order to do a JNDI lookup in an ACL). This has been fixed.
036604 | The method ClusterMBean.setDefaultLoadAlgorithm() no longer accepts illegal values and now throws the proper IllegalArgumentException.
036986 | Using Weblogic Server's XA driver with CMP no longer fails at deployment time.
038883 | Specifying the root directory when starting the server was not working when the root directory was not under a /config directory. This has been fixed.
039066 | If you entered an incorrect password when prompted at system startup, the server tried to start anyway. The startup eventually fails. Now you are re-prompted for the password when the password is wrong.
039182 | When binding two clusterable objects implementing the same interface to the same JNDI name on a single server, an exception was not being thrown and the first clusterable object was being bound. This has been fixed.
039249 | A Managed Server had a memory leak when it monitored JMSServer using the Administration Console. This has been fixed.
039361 | If you create a group in the RDBMS realm, you can now delete the group.
039891 | The server now sets the context attribute correctly during servlet initialization.
039960 | Log Viewer is now working in non-U.S. locales.
039995 | A server startup error no longer occurs after a WLEC Connection pool was created using the Administration Console.
040168 | The logging example for internationalization failed when a dot (.) occurred in the path. This has been fixed.
040177 | Additional user information was required when converting weblogic.properties files for use with WebLogic Server 6.0. This has now been added to the product documentation.
040178 | When you were using the conversion utility, if a weblogic.properties file included the property weblogic.httpd.register.Name=weblogic.servlet.FileServlet and the servlet did not have initial arguments associated with it (it did not have the property weblogic.httpd.initArgs.file=arg1=value defined in the same weblogic.properties file), then the conversion utility was throwing a Null pointer exception. This has been fixed.
040213 | The listenport of a Managed Server cannot be the same as the Administration Server listenport. You cannot, for example, use localhost or 127.0.0.1, with the 7001 host number on both the Managed and Administrative Servers. A more descriptive and informative error message has been added.
040297 | Fixed a bug that prevented attributes set in application.xml from propagating from Administration Servers to Managed Servers.
040405 | The config.xml file is now serialized using the Apache XML serialize classes. This results in the correct XML, including escapes for built-in entities and an XML header with encoding specified. The encoding used is the platform default. This also fixes problems with the "&" character.
040659 | When specifying getParameter() encoding as iso-8859-1, the POST method is now working properly.
040688 | When a mail session was targeted to a server that is part of a cluster, the following exception was being thrown because the mailsession was not serializable: java.io.NotSerializableException: javax.mail.Session. This has been fixed.
040698 | The Application Manager no longer throws an unnecessary exception if the poller tries to deploy an application that is still in the process of being copied.
040899 | Fixed a problem with a start-up class that occurred when the converter utility converted startup weblogic.properties into .xml.
040950 | Fixed a problem in JTA. For XA connections, the Connection Pool test connection logic was attempting to start a distributed transaction before executing the testing SQL. This had the potential to create a javax.transaction.NotSupported exception.
041157 | The dialog tabs in the Console were not working correctly when the Mbean name contained Kanji characters.
041290 | If the username property is set from the weblogic.Admin or weblogic.Server command lines, the username must be the system password. Note however, that the username syntax is retained to prevent breaking a user's scripts. The weblogic.management.password property value must be the system password and the username may not be modified in the config.xml file.
041662 | To improve JTA, we now advertise resources on JNDI. Resources were dynamically discovered as transactions go along, but now it is also possible to find out which resources are currently being supported at which servers.
041757 | Fixed a problem with JTA. Resource advertisement (JNDIAdvertiser) was incorrectly done under the caller's identity. We now use the system identity while doing this operation.
041845 | Updated the NTRealm to improve general usability and functionality.
041854 | To help support Java WebStart with WebLogic Server, we now provide a default web application with the web.xml configured for this mime type. We have also provided other mime type mappings.
041995 | Fixed an Unexpected Error being received in the console when resuming an active server. Also deleted some extraneous informational messages in the console when adding users.
042183 | When the config.dtd was being generated in the console it was appearing with some errors. This has been fixed.
042362 | According to the JTA spec documentation of setTransactionTimeout(): "seconds: The value of the timeout in seconds. If the value is zero, the transaction service restores the default value." If the value was zero, WebLogic Server was not resetting the default value. This has been fixed.
042794 | Deploying message-driven beans into a full cluster through the Console's Clusters panel was broken. It is necessary to specify each server individually as a target through the Servers panel.
043369 | Applications deployed across a domain now keep their original packaging, meaning that if an application was exploded on the Administration Server, it will stay exploded on the Managed Server.
043388 | Clusters of WebLogic Servers no longer require the use of a shared network drive. Both the WebLogic Server installations and your applications can now reside on local file systems.
049417 | The Password Converter Tool shipped with the Beta Release has been fixed and no longer returns a SAX Parser error for all files.

Plug-ins

Change Request Number | Description
038831 | The Apache plug-in no longer fails under heavy load.
040817 | When using IIS to browse and call a regular JSP page that calls a Java Bean and getting a ResultSet reference, there were problems when submitting through the FORM POST method. The HTML stream was getting truncated when it came back to IIS--in other words, the page was only partially painted. This has been fixed.
041332 | Using plug-ins, MatchExpression can now contain multiple, comma-separated expressions.
041534 | Using the mod_wl.so, Apache was not proxying without Debug and DebugConfigInfo in the httpd.conf. This has been fixed.
041580 | The Apache plug-in MatchExpression now works if an encoded URL is used.
041745 | Added a log message when the trusted CA file isn't specified and SSL is used with the Isapi plug-in.
041754 | Fixed an infinite loop when ISAPI was configured for SSL but using a non-secure port.
041939 | The Apache plug-in wasn't filtering out the header "transfer-encoding"="chunked". So the browser was failing to handle these responses, causing Netscape to hang and IE to display an error page. This has been fixed.
042482 | The NSAPI and Apache plug-ins no longer have a READ timeout on HPUX-11.
044988 | Fixed a problem with the NSAPI plug-ins where the socket was not properly closed by the plug-in side. The un-closed socket on the webserver side will be left in CLOSE_WAIT state.
046018 | There are new binaries for Apache 2.0.
046392 | It is now possible to have different cookie names set for different <Location> blocks when using the Apache plug-in.
046423 | Weblogic Server now supports static libraries for Apache.
046424 | KeepAliveEnabled and KeepAliveSecs parameters have been added for the Apache 2.0 plug-in.
046546 | Cookie name is now configurable for persistent sessions. There is a new parameter, PersistentStoreCookieName (default=WLCOOKIE), in weblogic.xml.
046946 | Fixed a problem with large deployments of WebLogic Server, wherein for a period of time a cluster node behaves as if it is the only one member in the cluster when it's not. Now, using ListenDelaySecs, you can delay the http request handling until it finds the other members. For example: <Server> ListenDelaySecs="30" </Server> Delay the http listen thread for a configurable amount of time so that the new node has time to acknowledge the existence of other cluster members.
046956 | Resolved some problems caused by DefaultFileName and VirtualHost with Apache Stronghold/Raven proxies.
047987 | Resolved a problem that occurred with NSAPI when streaming a large number of bytes (500,000 bytes) using SSL from the browser to the proxy and from the proxy to the server.
047636 | WebLogic Server now supports DSO as well as statically linked modules for Apache 1.3.X.

RMI-IIOP

Servlets and JSP

Change Request Number | Description
026488 | Fixed a problem with servlets when the parameter for method println(String) was null.
029989 | The wrong error message is no longer sent when an UnavailableException was raised within a servlet.
030880 | Fixed problems compiling JSPs when debugging was turned on. Now you can specify compiler flags in weblogic.xml. For example: <!-- weblogic.xml: weblogic-specific web app descriptor --> <weblogic-web-app> <session-descriptor> </session-descriptor> <jsp-descriptor> <jsp-param> <param-name>compileCommand</param-name> <param-value>jikes</param-value> </jsp-param> <jsp-param> <param-name>compileFlags</param-name> <param-value>+E -nowarn</param-value> </jsp-param>
037771 | Optimized the checking of JSPs for reloading.
038739 | Improved support for JSP debugging.
039083 | The RequestDispatcher and forwarding a JSP page now works correctly.
039193 | When users forgot to make their servlet class public, a vague and unhelpful error was being thrown. This no longer happens.
039530 | Fixed internal servlet tags to reset their state on release. If you used the same tag more than once on a page the additional tags kept the stale data from the previous tag.
040171 | You can now set the attribute SingleThreadedServletPoolSize through the Administration Console.
040338 | All functioning servlets are now displayed in the mydomain>web applicationlications>Defaultweb application_myserver>ActiveServlets window of the console.
040662 | When JSP files had a page tag, the JSP compiler was not generating a class, or java file. This happened only with command line jspc. This has been fixed.
040766 | Fixed a problem in servlets with using ../ for a relative URL when doing a response.sendRedirect.
040814 | Added more informative error messages for instances when servlet user errors cause exceptions.
040843 | Fixed problems with deploying web applicationComponents using virtual hosts.
040981 | Fixed problems associated with WAP and session cookies using the pipe characters.
041234 | Fixed a problem in JSP/Servlets using POST and HTTPS.
041478 | A change to session cookie format fixed some problems with URL rewriting.
041605 | JSPs compiler error pages no longer display a corrupt error message from javac.
041684 | Fixed a problem in servlets. The XSLT tag threw a SAXParseException while processing XML content.
041729 | The weblogic.servlet.jsp.Precompiler now honors weblogic.xml parameters, like workingdir, packagePrefix, etc., for the JSPs that it precompiles.
041945 | When the web.xml had the setting inputCharset./A*=Shift_JIS inputCharset./B*=EUC-JP, and two clients simultaneously accessed the JSP/Servlet, WebLogic Server failed to handle these string correctly. It was possible to get the correct result from one client, but not from the other. This has been fixed.
042031 | In the web application data table, when you click the monitoring icon for any web application and then click on the monitor link in the Servlets column, the correct heading is now displayed.
042293 | Servlet URL rewriting was working fine with IE 5.0 but wasn't working with Netscape 4.7. This has been fixed.
042509 | Fixed problems with forwarding from one web application to another web application and using authentication in both. Session data is no longer sharing inappropriately across the applications.
044873 | When you compile a JSP manually with weblogic.jspc, the -version argument is now working.
044926 | WebLogic Server 6.1 now correctly generates Java code from JSPs that include 2Bytes code.
049760 | The weblogic-vtags.jar file containing the JSP tag library for Form Validation Tags is now in the ext directory as stated in the documentation.

Web Services

Change Request Number | Description
046032, 046808 | The WSDL of a WebLogic Web Service is now generated by a JSP, which by default dynamically sets the host and port of the WebLogic Server instance that hosts the service. You can specify that the host and port be hard-coded in the WSDL by explicitly specifying their values when you assemble the Web service using the wsgen Ant task.
046215 | When you assemble a WebLogic Web Service using the wsgen Java Ant task, you can now specify that you want to use HTTPS (rather than the default HTTP) when invoking the Web service.
047794 | When you use the wsgen Java Ant task to assemble a WebLogic Web service, the generated Enterprise Application archive no longer contains both a web application directory and a web application *.war file; it now contains just the *.war file.
048797 | WebLogic Web Services now interoperate correctly with Array types in the Microsoft SOAP Toolkit.

XML

Change Request Number | Description
034785 | WebLogic Server now supports namespaces in the XML registry.
034785 | Provided methods to retrieve namespace information about the document, such as localRoot, qualifiedRoot, and namespaceURI. If the XML document has namespace defined, then the lookup in the registry will be based on the qualified name.
036428 | Previous releases of the XML subsystem included an error in Apache's implementation of the javax.xml.*.parse(File) method, included in the xmlx.jar file. Because WebLogic Server no longer includes this JAR file in the product and WebLogic Server's own implementation of the method has always been correct, this problem does not apply to the current release.
036642 | Generated custom parsers no longer convert newline characters that are embedded in attributes and tag bodies into a single space character. Note: The ability to generate custom parsers is deprecated in this release of WebLogic Server. Instead, use WebLogic Server's high-performance parser.
039096 | You no longer have to restart WebLogic Server to make it aware of a newly added entry to the XML registry.
039247 | Custom parsers are now correctly invoked when an XML document that has been configured to be parsed by the custom parser is parsed using the setAttribute() method of the Servlet API.
040479 | Fixed a bug in JMSHelper that was causing incorrect XML to be written to the config.xml file.
041540 | The Xerces parser serializer bundled with the WebLogic server now supports multi-byte encodings, such as Shift_JIS or EUC-JP.
041541 | The Xerces parser method apache.xml.serialize.BaseMarkupSerializer.printEscaped() bundled with the WebLogic server now supports multi-byte encodings such as Shift_JIS or EUC-JP.
041734 | WebLogic Server's JAXP implementation no longer requires the input stream to be resettable when it contains an XML document that is about to be delegated to a particular parser for parsing.
041778 | A NullPointerException error is no longer thrown when an XML document that contains an external entity that has been correctly registered in the XML registry is parsed.
041797 | After you create a new server, the server no longer fails to reboot and the config.xml file no longer has some incorrectly parsed headers.
46951 | The method weblogic.xml.sax.XMLInputSource.getNamespaceURI(), part of WebLogic Server's extension to the org.xml.sax.InputSource class, is implemented in the current release.
48809 | The SaxParserFactory is now being selected correctly when parsing a document from a SAX Version 2 Servlet attribute.
48810 | You can now configure a parser for a particular document type by mapping the class name of the parser to a Public ID. NOTE: Specifying the parser class name when configuring a parser for a particular document type is deprecated in this release. Instead specify the Factory name.

Copyright © 2001 BEA Systems, Inc. All rights reserved. Required browser: Netscape 4.0 or higher, or Microsoft Internet Explorer 4.0 or higher.