SolutionsTools & SDKSupportForums Register



Quick Links
 
List of Openwave SDK 3.x Known Bugs
 
 
Last updated: June 19, 2001

This document describes the bugs known to exist in the SDK 3.2 that are considered to be most important to application developers. If you discover a bug not listed here, please report the bug to our Developer Support Team.
 




SDK 3.2 Installer
  • The Solaris install script sometimes stops and reports an 'out of memory' error. Solution: The Solaris install script needs about 132MB of swap space on Solaris systems. Make sure you have this much available before running the installer.

  • After installing the Solaris version of the SDK, all of the example Perl scripts are set to non-executable file privelege. This will cause the scripts to not run when called from the Web server.
    Solution: Run the following commands from the SDK installation directory:
    $  cd examples/scripts
    $  chmod 755 *.cgi




Simulator 3.2 / Common Problems
  • Invoking a GO task with METHOD="POST" always results in a cache miss, even if the deck is already loaded in the cache and the deck's TTL has not expired. This problem exists for both HDML and WML. Solution: None.

  • If you enter a password-protected URL in the Simulator's "Go:" field, the Simulator will navigate to the home deck instead of the requested URL after you enter the username/password. If you re-request the URL, the Simulator will navigate to it. Solution: This only happens the first time. After the username/password is authenticated, re-enter the URL in the "Go:" field and the Simulator will navigate to the appropriate card.

  • Simulator Info->Vars doesn't display input variable for current entry card or choice card. Solution: none.

  • There are significant differences in key functionality between the Simulator Alcatel configuration and the real Alcatel phone. Solution: none.

  • The WinInet.dll that ships with the SDK 3.2 has a known bug that prevents proper resolution of localhost when there is no active network connection. Microsoft does not permit any other version of WinInet.dll for inclusion in non-Microsoft products. Solution: The only way to upgrade WinInet.dll to fix this bug is to install Internet Explorer 4.0 or higher.

  • When posting data to either an ASP or a JavaServlet, through an Mobile Access Gateway, the POSTDATA may not appear the way you expect. ASP fails to build the Request.Form object, and the req.getParameterNames and req.getParameterValeus methods from the Java servlet class fail. The problems that the Mobile Access Gateway posts data with a content type of

    application/x-www-form-urlencoded;charset="UTF-8" (or the appropriate characterset)

    Both the servlet class and ASP fail to recognize this content type as a form, even though it is valid according to the HTTP spec. Solution: The data is delivered, so you can read it in off of the input stream and parse it yourself manually.




Simulator 3.2 / WML 1.1
  • The Simulator 3.2 in HTTP Direct Mode does not handle multiple <do> elements that share the same 'type' attribute value within a single WML card. In this case, all but the last <do> element of a given type is ignored. NOTE: This bug does not occur when the simulator is connected to the Mobile Access Gateway Server. A soft 'action menu' will be presented, containing any user actions that cannot be assigned to a physical key.

  • The Openwave® Mobile Browser ignores any <setvar> elements contained in a <prev> task, so variables cannot be set as a result of popping a card from the history. Solution: Use <go> instead of <prev> if you need to set variables during navigation, although this will result in a card getting added to the history instead of being removed.

  • 3.x browsers ignore "&nbsp;" in display text when it is in front of a new line. If you have two successive non breaking spaces in the front of a line, only one shows up. Below is some sample code to reproduce this:

    <wml>
      <card id="space">
        <p>Column_1</p>
        <p>&nbsp;Column_2</p>
        <p>&nbsp;&nbsp;Column_3</p>
      </card>
    </wml>
    
    
    In the code above, the second row will NOT be indented and the third row will be indented by one space only. This happens on all 3.x browsers and simulators.

  • If you include "$$" in a URL attribute value (to insert a literal "$" character into the URL string), the Simulator will report an "invalid variable" error. Solution: Per the WML Specification, you should use the escape string "%24" instead of "$$" in URL strings.

  • Executing an 'onenterbackward' attribute for a <card> element results in a translation to a <go> task. However, the result is more like a <prev>, and all cards except the destination URL are popped from the activity stack as a result. Solution: None. Example: In the following deck, if you navigate to card "d" and then prev back, the resuting onenterbackward event in card "c" removes all cards from the history except the new one (card "e").

        <wml>
           <card id="a">
              <do type="accept">
                 <go href="#b"../>
              </do>
              <p>
               A
              </p>
           </card>
    
           <card id="b">
              <do type="accept">
                 <go href="#c"../>
              </do>
              <p>
               B
              </p>
           </card>
    
           <card id="c" onenterbackward="#e">
              <do type="accept">
                 <go href="#d"../>
              </do>
              <p>
               C
              </p>
           </card>
    
           <card id="d">
              <p>
               D
              </p>
           </card>
    
           <card id="e">
              <p>
               E
              </p>
           </card>
        </wml>
    

  • If you include both a format string and a maxlength string in an <input> element and the format string specifies the number of characters, it will take precedence. For example, in the following deck, a user may enter only 5 characters despite the fact that the maxlength is set to 8.

    <wml>
    <card>
    <do type="accept">
    <go href="../next.wml"../>
    </do>
    <p>
    Enter a number
    <input name="NUM" format="NNNNN" 
    maxlength="8"../>
    </p>
    </card>
    </wml>
    

    However, if you do not specify a fixed number of characters in your format string, maxlength will take effect. This is illustrated in the following deck which will allow the user to enter no more than 5 characters.

    <wml>
    <card>
    <do type="accept">
    <go href="../next.wml"../>
    </do>
    <p>
    Enter a number
    <input name="NUM" format="N*N" 
    maxlength="8"../>
    </p>
    </card>
    </wml>
    

  • If a WML card calls the newcotext="true", and contains an <onevent> event, the newcontext is applied after the onevent. This means that any variables that you attempt to set via a <refresh> as part of the onevent will NOT be set. A workaround would be to utilze two cards. The fisrt card containing the newcontext="true" and an <onevent> with a <go> task to a second card which contains an <onevent> with a <refresh> event that sets the variables. Here is an example of such a setup where the first card will never be seen by the end user:


    <wml>
      <card>
         <onevent type="onenterforward">
            <go href="#card2"../>
         </onevent>
         <onevent type="onenterbackward">
            <prev/>
         </onevent>
      </card>
    
      <card id="card2">
         <onevent type="onenterforward">
            <refresh>
            <setvar name="foo" value="bar"../>
            </refresh>
         </onevent>
         <p>
            Card 2 <br/>
            your var foo=$foo
         </p>
      </card>
    </wml>
       



SDK Documentation
  • In the WML 1.1 Language Reference that ships with the 3.2 SDK the explanation of "prev" requires correction. In the list for the <type> attribute of the <do> element the explanation for "prev" should read:

    prev Navigates to previous card by invoking PREV mechanism from current card.

  • The syntax for the tag is incorrect in the documentation for the SDK 3.2. The errors appear on pages 44 and 143 of the SDK Developer's Guide for WML 1.1 and on pages 42, 43, and 67 of the SDK WML Reference Guide for WML 1.1. The correct syntax for setting bookmarks with WML1.1 is as follows: <head>
        <meta name="vnd.up.markable" forua="true" content="true"../>
        <meta name="vnd.up.bookmark" forua="true" content="url"/>
    </head>

  • The very first code sample in the SDK Getting Started Guide 3.2 for WML 1.1 contains 2 errors. The first is the xml declaration. It currently reads
    <?xml version="1.1"?> and should read <?xml version="1.0"?>
    The DTD is also formatted incorrectly. It should begin
    <!DOCTYPE wml PUBLIC not <!DOCTYPE WML PUBLIC.

  • In Chapter 5 of the SDK Developer's Guide for both HDML and WML on the Windows platform under the heading of "Using the COM Notification library to send notifications" there is reference to a path of sdk_installdir\lib. This should read sdk_installdir\examples\vc\SendNtfn

  • Although it is documented in the HDML 3.0 Language Reference, the Mobile Browser does not support the FILL attribute for the ENTRY language element. Only left-justified text input is supported for ENTRY cards.

  • Chapter 1 of the SDK Tools & APIs Guide (for HDML) states that the Simulator running in HTTP Direct mode does not support character set transcoding or HTTP user authentication. This is not true, and both features are supported for the Simulator 3.2 in both HTTP Direct and Mobile Access Gateway mode.




SDK Sample Code
  • When you attempt to build the sample digest code for Visual C++ that ships with the SDK 3.2 for Windows, you will receive the following error: LNK2001: unresolved external symbol _strcasecmp. There is a line missing from the .h file:
    #define strcasecmp _strnicmp




Mobile Access Gateway Server
  • When you POST data through an Mobile Access Gateway Server, the Mobile Access Gateway transcodes the data from the character set of the device to the character set of the application server. When this transcoding takes place, the Mobile Access Gateway includes the charset parameter with the content type of the posted data, for example:
    application/x-www-form-urlencoded;charset=UTF-8
    The charset parameter is compliant with the HTTP spec, however, neither ASP nor the Java Servlet classes recognizes it, and the result is that neither environment can correctly build the appropriate form objects. As a workaround, you can access the post data from the input stream:

    ASP Example

    myVariable = StrConv(Request.BinaryRead(myByteCount), vbUnicode)

    Java Example

    // First read off the input stream as follows
    int contentLength =
    req.getContentLength();
    byte[] b = new byte[contentLength];
    int result;
    int totalRead = 0;
    try {
       result = in.readLine(b, 0, b.length);
       while (result != -1) {
          totalRead += result;
          result = in.readLine(b, totalRead, 
    	  buffsize);
       }
    } catch (IOException ioe) {
       // Ignore, it's probably from EOF
    }
    



Openwave Mobile Browser 3.x Devices
  • The TouchPoint 3000 phone from LG does not properly render cards which contain both a <select> element and an <input> element. The user is never presented with the <input>. Workaroud: place the <select> element on a card of its own.

Related Links

 
 
Copyright © 2000-2008 Openwave Systems Inc.    About Us  |  Openwave  |  Terms & Conditions  |  Privacy Policy  |  Update Profile