
Release Notes for OracleJSP 1.1.0.0.0
*************************************

July 31, 2000

New features
============

- This release of OracleJSP supports the JSP 1.1 specification,
  including the tag extension mechanism for custom tags. 

- OracleJSP translates and executes JSP pages in the 817 database 
  using the embedded Oracle Servlet Engine (OSE). Refer to the 
  OracleJSP Developer's Guide and Reference Release 8.1.7 for details.

- A set of database access beans and SQL tags have been provided to
  facilitate database operations from JSPs. 

- Many code enhancements and bug fixes have been made since the last 
  OracleJSP release (1.0.0.6.1).  See the "Bugs fixed" section below.

- This OracleJSP release has been tested in the following environments:   
   - JDK 1.1.8 and 1.2.2
   - Oracle Servlet Engine in Oracle 817 database.
   - Apache Web server with JServ servlet engine (iAS), Solaris and NT.

  OracleJSP also works with the Tomcat server. Refer to the JSP 
  Developer's Guide to see how to set up OracleJSP with Tomcat. 

- Note that with bug fix/enhancement 1155470 (see description below),
  a file named Foo.jsp will be translated into the file _Foo.java.
  This naming scheme for generated files is different from that in the 
  OracleJSP 1.0.0.6.1 release, where it was translated into Foo.java.
  However, this change should not be directly visible to users, unless
  they are using the ojspc command-line translator tool (which was 
  Beta in the 1.0.0.6.1 release). 



Known Issues and Restrictions in OracleJSP Release 1.1.0.0.0
============================================================

- On NT, The ojspc translator tool does not support wildcards in file lists.
  Wildcards will work on Solaris (UNIX) shells, as the shell expands them.

- The database access beans do not support any classes from 
  oracle.jdbc2 package. This was made to be consistent with different
  JDK versions.

- In the 8.1.7 release, for the PL/SQL Gateway Servlet running on the 
  Oracle Servlet Engine, PSPs cannot be called from JSPs or vice-versa.
  This interoperability may be provided in a later release. 

- iAS 1.0.1 NT Release Note

  iAS 1.0.1 uses 8.1.6 libraries for SQLJ. However, OracleJSP 1.1 is    
  designed to work with SQLJ 8.1.7.  This creates a "no such method"
  error when dynamically compiling SQLJSPs (JSPs with SQLJ code in them).
  To work around this problem, you can use the 'sqljcmd' configuration 
  parameter.  The following line must be present in zone.properties:

  servlet.oracle.jsp.JspServlet.initArgs=sqljcmd=%ORACLE_HOME%\apache\jdk\bin\java.exe sqlj.tools.Sqlj
 
  Note the %ORACLE_HOME% needs to be substituted with the right value.
  The other alternative is to use the ojspc command-line translator to
  pre-compile SQLJSPs.   


- [1285959] PAGE DIRECTIVE: LANGUAGE="SQLJ" IS NOT ENOUGH
In a JSP that uses SQLJ code, the following directive is not enough:
<%@ page language="sqlj" %> 

The OJSP translator will still treat it as a .jsp file with java as its
scripting language, instead of sqlj. 

The workaround is to rename the filename to .sqljsp. 


- [1234581] IF PAGE VALUE NOT DEFINED IN JSP:INCLUDE, 
            GET STRINGINDEXOUTOFBOUNDSEXCEPTION

This error is caused by the following directive:

<jsp:include page="" flush="true" /> 

java.lang.StringIndexOutOfBoundsException: String index out of range:
        at java.lang.String.charAt(String.java) 
        at oracle.jsp.runtime.OraclePageContext.include(OraclePageContext.java)
        at empty._jspService(empty.java:59) 
        at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java) 
        at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java) 
        at oracle.jsp.JspServlet.doDispatch(JspServlet.java) 
        ...
The workaround is to provide a non-empty string for the page,
or to omit the include statement conditionally. 


- [1138828] GET JAVA.LANG.VERIFYERROR WHEN TRYING TO LOAD JSP PAGE

This happens sporadically for a jsp page - after a while, the error
goes away. The stack trace seems to point to the classloader:
  JspServlet: unable to dispatch to requested page:java.lang.VerifyError 
     at java.lang.ClassLoader.resolveClass(ClassLoader.java) 
     at oracle.jsp.app.JspClassLoader.loadClass(JspClassLoader.java:538)
     at java.lang.ClassLoader.loadClass(ClassLoader.java) 
     ...
This problem has been traced to a bug in JDK 1.1.6 (JDK Bug Id: 4211181).
The error does not happen with JDK 1.1.8 and higher.



Bugs fixed since OracleJSP Release 1.0.0.6.1
============================================


[1358636] <JSP:EXPRESSION> AND <JSP:DECLARATION> DO NOT WORK

<jsp:expression> and <jsp:declaration> did not work in OJSP, 
but their non-standard short forms <jsp:expr> and <jsp:decl> did.
This has been fixed in OracleJSP 1.1.


[1288730] ".." WON'T WORK IN ERRORPAGE / JSP:FORWARD / JSP:INCLUDE

The following 'errorPage' directive did not work: 
<%@ page language="java" errorPage="../control/error.jsp" %> 

This has been fixed in OracleJSP 1.1.


[1261458] JSP:FORWARD CANNOT FORWARD TO A HTML PAGE
 
This limitation was applicable for servlet 2.0 environments, such as 
the iAS Release 1.0. The following statement would raise an exception:
<jsp:forward page="hello.html" />

javax.servlet.ServletException: Forward /bugs/hello.html failed: can only 
forward to a JSP page. 
        at java.lang.Throwable.(Compiled Code) 
        at java.lang.Exception.(Compiled Code) 
        at javax.servlet.ServletException.(Compiled Code) 
        at oracle.jsp.runtime.OraclePageContext.forward(Compiled Code)
        ...

This is really a limitation of the Servlet 2.0 API in JServ, which has no 
RequestDispatcher interface. OracleJSP 1.1 works around this problem.


[1250326]  CARRIAGE RETURN AND LINEFEED CHARACTERS IN STATIC TEXT ARE
           MISSING IN SOME CASES

In some cases, Carriage Return and Line Feed characters in static texts (e.g. 
html part) were missing in generated class. For example, 
"<html>\r\n" was being transformed into: 
out.println("<html>"); 
instead of:  
out.println("<html>\r"); 
or 
out.print("<html>\r\n"); 


[1238238] OJSP CANNOT DYNAMICALLY INCLUDE AN HTML FILE

Dynamic include commands would raise an exception on Apache/JServ:
<jsp:include page="hello.html" />

javax.servlet.ServletException: Include hello.html failed: can
only include a JSP page. 
   at oracle.jsp.runtime.OraclePageContext.include(OraclePageContext.java)
   ...
This is a limitation of the Servlet 2.0 API for dynamic includes 
and forwards (no RequestDispatcher interface). OracleJSP 1.1 works
around this limitation. 


[1237578] OJSP FAILS TO LOCATE FILES WHEN IT IS INVOKED WITH SERVLET 
          ALIAS IN APACHE

Oracle JSP 1.0.0.6.1 failed to locate some files, when alias_translation 
was set to true (the default) and users used servlet alias to invoke the 
oracle jsp servlet. e.g., using servlet alias "orajsp" instead of the full 
class name "oracle.jsp.JspServlet". (The workaround was to either turn off 
the alias_translation or invoke the JSP servlet with the full name 
"oracle.jsp.JspServlet".) This problem has been fixed in OracleJSP 1.1.


[1222788] ERROR MESSAGES DISPLAY MULTIBYTE CHARACTERS WITH "?"

Oracle JSP failed to display multibyte characters on the error messages
correctly. For example, I have the following line on my jsp: 
<jsp:setProperty name="XXX" property="YYY" value="ZZZ"> 
With XXX, YYY, ZZZ are multibyte characters. 
If this JSP fails for some reason on this line, the following was displayed: 
Exception: 
oracle.jsp.parse.JspParseException: Line # 10, name="???" property="???" 
value="" /> Error: Error in attribute list: ??? is not a defined bean. 

This problem has been fixed in OracleJSP 1.1.


[1213897] SHORT IS NOT CASTED PROPERLY

Test case: 
<%@ taglib uri="oracle.jsp.parse.OpenJspRegisterLib" prefix="jml" %> 
<jml:useBean id="shortBean" class="Bean.ShortBean" scope="page" /> 
<jml:setProperty name="shortBean" property="shortValue" /> 
<%= shortBean.getShortValue() %> 

The bean has a property with type defined as Short, but it returned error: 
Errors compiling: jml_setProperty3.
    Incompatible type for method. Can't convert short to java.lang.Short. 
     shortBean.setShortValue(Short.valueOf( __paramList[0]).shortValue()); 
        at oracle.jsp.app.JspJavacCompiler.compile(JspJavacCompiler.java:167) 
        at oracle.jsp.app.JspAppLoader.reloadPage(JspAppLoader.java:870) 
        at oracle.jsp.app.JspAppLoader.loadPage(JspAppLoader.java:749) 
        at oracle.jsp.app.JspAppLoader.getPage(JspAppLoader.java:501) 
        ...
This problem has been fixed in OracleJSP 1.1.


[1213777] JML:USEFORM - PROBLEM IN CASTING

Test case: 
<%@ taglib uri="oracle.jsp.parse.OpenJspRegisterLib" prefix="jml" %> 
<jml:useForm id = "user" type = "fpnumber" param="plo"  /> 
 
Exception: 

oracle.jsp.provider.JspCompileException: 
Errors compiling:JML_useForm4.java
      Incompatible type for method. Can't convert java.lang.String to double. 
      user.setValue( __paramVals[0]); 
      at oracle.jsp.app.JspJavacCompiler.compile(JspJavacCompiler.java:167) 
        at oracle.jsp.app.JspAppLoader.reloadPage(JspAppLoader.java:870) 
        at oracle.jsp.app.JspAppLoader.loadPage(JspAppLoader.java:749)
        at oracle.jsp.app.JspAppLoader.getPage(JspAppLoader.java:501) 
        at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:325)
        at oracle.jsp.JspServlet.doDispatch(JspServlet.java:227) 


[1207720] SUPPORT IMPORT LISTS THAT SPAN MULTIPLE LINES

OracleJSP previously did not support breaking the list of 
imported packages across multiple lines. So, the following
was valid:
<%@ page import="package1,package2,package3" %> 
or
<%@ page import="package1" %> 
<%@ page import="package2" %> 
<%@ page import="package3" %> 
but not 
<%@ page import="package1"
         import="package2"
         import="package3" %>

The latter syntax is now supported in OracleJSP 1.1.


[1155470] JSP FILE NAME CAN NOT CONTAIN "-" (DASH)

The JSP Specification 1.0 does not limit that jsp file name 
contains "-" (dash), which means a jsp file can be named as 
a-b.jsp. But this would cause compilation error in OracleJSP,
because the jsp engine created a-b.java based upon a-b.jsp; In 
this java file, there is a public class called "a-b", this 
is an illegal name in java language, and cause the 
compilation error. Note: a html file can be named as a-b.html. 


Now, the default behavior of OracleJSP 1.1 is to encode the
jsp filename into a legal Java identifier. 

e.g. for /public/dir1/a-b.jsp 
package name becomes: _public._dir1 
class name becomes: _a_2d_b 

So, reserved keywords and illegal java identifier characters
in JSP file name will not create any problems in OracleJSP 1.1.

===============================================================================


Bugs fixed since OracleJSP Release 1.0.0.6.0
============================================


[1225531] JSP UNABLE TO SHARE SESSION WITH SERVLET

When a JSP put a value into the session object, servlets in the same JVM
cannot see the value (directly). It is due to the session in JSP is a
session wrapper object. The values stored in the JSP session are not exposed
to the underlying servlet session directly.

The session object in JSP is now the actual servlet session object, if there
is no globals.jsa detected. Also, the JSP session wrapper object now by
default would expose its session data to the underlying servlet session, when
there is a globals.jsa file detected in the directory.


[1230626] OJSP DOESN'T WORK FOR PAGES IN ROOT DIRECTORY OF ALIASED PATH

If users configure Apache/JServ with aliasing (e.g. /vpath/ -> /ppath/ )
and they try to access the page right at the root of the alias
(e.g. http://host/vpath/test.jsp ), OJSP returns an error stating it cannot
find the page.

This bug has been fixed by changing the path matching logic in the
alias-related rountines.


[1233612] REQUEST.GETPATHTRANSLATED() RETURNS INCORRECT VALUES UNDER ALIASING

When a jsp is used under an anliased directory, request.getPathTranslated()
returns an incorrect value, as if the jsp was under the doc root.

This bug has been fixed by calling the right underlying methods in the native
request object by the request wrapper object.


[1235873] FAILURE IN JSP:INCLUDE WHEN APP RELATIVE AND PAGE RELATIVE USAGE
MIX TOGETHER

This bug affect Apache/Jserv configuration only. If the page contains one
application-path relative jsp:include and then one page-path relative 
jsp:include, the second jsp:include will fail to locate the file.

This bug has been fixed by removing servlet include attribute from the request
object after the include action is finished.


===============================================================================

