IT Mill Toolkit Release Notes

Version 4.0.2

General

Version 4.0.2 is an maintenance release for IT Mill Toolkit 4.0 branch. It contains bugfixes for various browsers including critical memory leak fixes.

Client-side API (i.e. JavaScript and CSS files) are subject to change during 2007. These changes are required for better client-side compatibility, and they will not affect on the server-side Java APIs and components. IT Mill Toolkit 4.0 branch is not involved with these changes. Contact support@itmill.com for more information about client-side API changes.

Note that executing demos locally may provide security warning from your firewall software. This is due to started Web service which is required to run demos. You have to ignore warnings or temporarily accept connections to port 8888 on your firewall software.

Previously IT Mill Toolkit was called Millstone UI Library. The last publicly available version of Millstone UI Library is 3.1.1. This new generation 4.0.2 version of the library is still API-level compatible with the previous generation. A simple Millstone migration example is included in demos.

See index.html for more information.

Requirements

Supported server-side environments are

  • Sun JDK, version 1.4, 5 and 6
  • Servlet Container, version 2.3 and 2.4
  • Application Servers / Servlet Containers
    • Apache Tomcat, since version 4.1
    • BEA WebLogic Server, since version 8.1
    • IBM WebSphere Application Server, since version 5.1
    • JBoss Application Server, since version 3.2.7
    • Jetty, since version 5
    • Oracle Application Server, since version 9i
    • Sun Java Systems Application Server, since version 7

Supported client-side environments are

  • Browsers on AJAX-mode
    • Internet Explorer, version 6 and 7.0
    • Firefox, version 1.5 and 2.0
    • Safari, version 2.0
    • Opera, version 9.0 and 9.1
    • Konqueror, version 3.5
    • Camino version 1.0
    • Series60 version 3.1 fp1
    • WebKit since version 400
  • Browsers on HTML-mode
    • Other browsers (non-AJAX capable) use HTML-mode automatically
  • Operating systems
    • Windows 2000 Pro/2000 Server 2003/XP Server/XP Pro/XP Home/Vista
    • Mac OS X 10.3 / 10.4 / 10.5
    • Linux Red Hat / CentOS / Suse / Debian / Ubuntu

How to start

See index.html for more information or go to Developers' Area at www.itmill.com.

Changes in this Release (4.0.2)

Compatibility

IT Mill Toolkit versions 4.0.0 and 4.0.1 are API level compatible with version 4.0.2.

Following steps are required to upgrade from Millstone UI Library version 3.1.1 to Toolkit version 4.0.2:

  • 1. update your application's imports
    • search for import org.millstone.base.*
    • and replace to com.itmill.toolkit.*
  • 2. update application's Deployment Description, rename WebAdapter class into ApplicationServlet class
    • search for <servlet-class>org.millstone.webadapter.WebAdapterServlet</servlet-class>
    • and replace to <servlet-class>com.itmill.toolkit.terminal.web.ApplicationServlet</servlet-class>

Fixed issues in this Release (4.0.2)

Since versionIssueDescriptionWorkaround
4.0.0ContainerHierarchicalWrapper setParent at root level issueRelocating an item to root node is not possible with ContainerHierarchicalWrapper. If you need to relocate an item to root node, create new Container.
4.0.0DateField format limitationDateField component renders dates in day.month.year format.
4.0.0Memory leakApplications are never garbage collected. This is considered as critical memory leak.
4.0.0Some virtual hosts configuration may failSome virtual hosts configurations may not work with Toolkit because of the way Toolkit serves Application resources (XSS issues with URLs).
4.0.1Table may throw NullPointerException when it is removedNullPointerException may be thrown when Table is being removed from a Container.
4.0.1Select with lazyloading issueIf user first types some letter to a Select component that is using lazyloading style and then selects an item from the list, the first item in the list is always selected.
4.0.0Popups position calculation not optimalPopups on various UI components are not displayed on best possible place.
4.0.0Windows limitation in HTML-modeMultiple Window components are not supported in HTML-mode.Use AJAX mode instead.
4.0.1Label CONTENT_RAW brokenLabel with content mode CONTENT_RAW does not work.Use CONTENT_XHTML as content mode instead.
4.0.0ComponentDetachEvents do not workComponentAttachEvent (wrong) is thrown instead ComponentDetachEvent (correct).
4.0.0Servlet Specification 2.4 required to deploy demo WAROfficial demos located at itmill-toolkit.war had dependency for Servlet Specification version 2.4. This prevents deployment to Servlet Containers that follow version 2.3 specification.Downgrade web.xml notation to Servlet Specification version 2.3.
4.0.1Window with Select interoperability issueSelect with lazyloading under Window component does not work.
4.0.0Denial of service under extreme server loadToolkit applications are not always served because of concurrency issues under extreme load of multiple concurrent users.Clients that get HTTP error messages have to press browser's "refresh" button to get back into their application. After refresh session continues normally.
4.0.0On some rare cases exceptions are not written to consoleApplicationServlet service method may produce exceptions on some rare cases, these exceptions are only displayed for end user (browser) but not written to console.
4.0.1On some cases Application does not start if JavaScript is disabledIf user has disabled JavaScript from the browser and accesses Toolkit application without renderingMode=detect parameter in URL, eternal looping occurs in user's browser.Add renderingMode=detect parameter to URL.
4.0.1Firebug lite debugging tool does not workFirebug lite cannot be used as an debugging tool for Toolkit applications.
4.0.1Table rendering issue (Opera 9, Firefox)Table component with long content does not have optimal cell size on initial render. Affects Opera 9 and Firefox browsers.
4.0.1Component tooltip may not closeComponent that has a tooltip (e.g. ComponentError) may not be closed on some cases.
4.0.1Select with lazyloading may hang Application (Safari)Select with lazyloading hangs Toolkit application if user uses non-ascii characters to filter or look up items.
4.0.0Calendar and Window interoperabilityOpening Calendar component in child windows in AJAX-mode is unsupported.
4.0.0Table sort provides minor jitter on HTML-mode (Opera 9)Sorting Table component rows with HTML-mode may result in temporary relocation of component for small amount of time. This can be seen as minor jitter on client-side. Affects Opera 9 browser.
4.0.1Select with lazyloading dropdown issueSelect with lazyloading keeps dropdown list open even if focus is lost from Select component.
4.0.1TabSheet with disabled tab issueTabSheet that has disabled tabs is not rendered correctly.
4.0.0Table containing Label component issueTable may not render Label components with new content after they are updated on some cases.
4.0.0Table context menu alignment issueTable context menu is aligned wrong if browser window is horizontally scrolled.
4.0.1Table containing Select component issueTable containing Select with lazyloading has rendering issues.
4.0.1Select with lazyloading on bottom of the browser area issueWhen Select with lazyloading is located at bottom of the browser area and user opens dropdown list, browser provides unnecessary scroll effect.
4.0.0Initial Toolkit page is not validInitial Toolkit page which serves JavaScript and other application resources back to user's browser does not conform to XHTML 1.0 Transitional specification.
4.0.0Table column popup opens right to the tableTable column popup should open towards table, not to the right of it.
4.0.0Obsolete Theme warning in consoleOn some developer environments an obsolete warning is displayed if developer is not using default theme package.
4.0.0Form getValidators issueIf Form has no validators and getValidators method is called, new validator list is implicitly created but the validator list is not returned back.
4.0.0Customer license may fail on some environmentsWhitespace text-node detection behaves differently on different environments, you might get invalid license exception when accessing Toolkit applications after upgrading your server environment (JDK, Operating system and such).

Known issues in this Release (4.0.2)

Since versionIssueDescriptionWorkaround
4.0.1TabSheet issue (Safari)If user changes any component (e.g. TextField or Select) which is located in Tab A and then moves to Tab B, component state change is lost. Affects Safari browsers.Add e.g. Button component that is used to save changes before moving from one Tab to another.
4.0.0Closing Application session not possible.AjaxApplicationContext class does not include any method for closing sessions.Register TransactionListener where HttpServletRequest class is available. HttpServletRequest provides you access to session.
4.0.0Table with certain configuration does not sortWhen "List" or "Paging" styles are used, Table component sorts only to one direction.Use "Default" style.
4.0.0Select NullPointerExceptionIt is not possible to select null item for Select component after some other item has been selected, doing this results in NullPointerException.
4.0.1Table column size modifications broken (Opera 9)Dragging table column size larger or smaller does not align headers correctly. Affects Opera 9 browser.
4.0.1Table setVisible state issueSetting Table visibility to false and then back to true does not always bring Table back to UI.Put your Table into component container such as Panel and use Panel's setVisible methods instead.
Table column selector issue (Konqueror)Table column hide or show selector makes screen area black while doing selection. Affects Konqueror browser.
4.0.0Table row header icon limitationTable does not properly support icons in row headers in AJAX rendering mode
4.0.0DateField does not support Locale on AJAX-modeChanging locale for DateField component does not produce any visible changes when AJAX-mode is used. HTML mode is not affected by this bug.You can set locale by calling getApplication().setLocale(new Locale("en","US")), but change affects whole Application and not just DateField.
4.0.0Nokia Communicator 9300i may not work with ToolkitAutodetection of Nokia Communicator 9300i may fail. This results to empty application screen.
4.0.0Select may produce JavaScript errorsIf "lazyloading" feature is used for Select component, users that have JavaScript debugging in use see an error for each typed character that does not match. This mean cases where user is searching for values that do not exists.
4.0.0Embedded limitationMethod setVisible() provides no changes on the component.Put Embedded component inside some Container and use Container's setVisible() instead.
4.0.0Embedded limitationMethod setEnable() provides no changes on the component.
4.0.0Upload requires manual refresh (Safari / Konqueror)Upload component requires manual refresh from browser after file is sent from client to server. This issue is related to bug that exists in Safari and Konqueror browsers. Note, current WebKit has this issue resolved. Affects Safari and Konqueror browsers.Test Feature Browser Upload component demo using some other supported browser.
4.0.0Terminal class not usable until Application is initialized.Terminal class is null until Application.init() has been completed.Create CustomComponent and use it as your Application's first page. You can now override paint() method and access Terminal class before anything is rendered at client-side.
4.0.0Demo package does not work fully with Oracle ASWhen demo package itmill-toolkit.war is deployed to Oracle Application Server, non-AJAX (HTML) demos fail and you cannot browse javadocs or theme code.Configure Oracle AS to allow directory listing for docs and themes directories. To get HTML demos work you have to specify the used XSLT processor with JVM parameter like: -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl -Dorg.xml.sax.driver=org.apache.crimson.parser.XMLReaderImpl
4.0.1Setting focus to UI component limitationsAbstractField.setFocus() method works only for Button and Textfield components.
4.0.0Keyboard input feature in beta stage for AJAX-modeKeyboard input feature for UI components is supported, but considered as beta for AJAX-mode. API may change.
4.0.0Embedded does not work on HTML-mode (IE 6, 7)Embedded objects may not be seen on HTML-mode. Affects Internet Explorer 6 and 7 browsers.
Window with Modal style issue (Konqueror)Modal window makes other application screen area black. After modal window is closed, screen area is again normal. Affects Konqueror browser.
4.0.0Button usability (Safari)Selected Button component can only be clicked by pressing spacebar when using keyboard. Enter would be a more intuitive choice. Affects Safari browser.
4.0.1URIHandler, ParameterHandler broken (Safari)URIHandler and ParameterHandler does not work. Affects Safari browsers.