Fixes in NetPhantom 6.50 Build 6500

These are fixes done since version 6.00 Build 6100 in chronological order.

Version 6.50 Build 6500

  • Last opened panels not shown in Panel menu
    The last opened panels is not shown in the Panel menu. This was the case in NetPhantom 5 where it stored the panel ID's in the application INI file. In NetPhantom 6, such file is not present. A new file "" is added to store the panel ID's opened, along with showing the last opened panels, as in NetPhantom 5.
  • Editor freeze at start-up
    On very rare occasions, the Editor could freeze up during start when an opened project contained previously opened panels and they should have been displayed. A thread (AWT) dead-lock occurred in this case that sometimes could be released by changing project, if the menu bar is accessible.
  • Eclipse: initial project updates from Editor sometimes lost
    If the Eclipse file system was not synchronized, the Eclipse plug-in could lose initial updates sent from the Editor because internally the project was not yet opened in the workspace. Closing the project in question and re-opening it solved the problem. If the updates were not lost, it takes a long time to be shown in the Explorer (all processor cores in the machine are now used optimally). Both these problems could only be seen when working with many and large very applications simultaneously in a single Eclipse workspace.
  • Editor automatic build, strange effect
    When Automatic build was turned off in the Editor, it didn't inform Eclipse of changes in the current application (which can be discussed). As the building of REXX and Java code is done in Eclipse, the Editor setting Automatic build now has no effect if Eclipse is connected and using the project, i.e. it's just as if Automatic build in the Editor is turned on.
  • Regression: Eclipse builder never completes or gets hung
    The Eclipse builders for REXX and Java could sometimes get hung due to Markers creation and workspace dead-lock. When this occurred, it could become difficult to e.g. exit Eclipse. Regression since 6115.
  • Editor: Host field dialog box and multiple monitors
    The Host field dialog box can sometimes be placed outside of the visible screen area(s), typically when multiple monitors are used or screen resolution is decreased.
  • Regression: combobox list contents updates are not shown
    When the Server issues a new combobox list content, this new list is not shown in the combobox. Regression since Build 5530.
  • Regression: combobox IndexOutOfBoundsException
    In some cases, the combobox can cause an IndexOutOfBoundsException. Regression since Build 5530.
  • Mouse press on notebook page tab
    The notebook page tabs requires pressing the mouse on the text in order to turn page when the option Bold font is used. This is due to Swing and JTabbedPane not working properly when mouse listeners are present in conjunction with Tab Components. A work-around is now implemented to check for mouse press and to change the selected tab accordingly.
  • Phantom Session Booster combobox files and distributions created with NetPhantom 6
    Files updated with IBM iSeries and Phantom Session Booster were written in OEM code page instead of Ansi when runtime application is compiled with NetPhantom 6. NetPhantom Server 6 had no problem running applications compiled with previous Editor versions.
  • Terminal window hotspot color choice is not readable
    The hotspot color choice cannot be configured, and the system provided colors are hard to read.
  • Eclipse: minor fixes/enhancement
    • Double-click "(Popup menus)" just expands or collapses the tree node: now Pop-up menus dialog box is shown in the Editor.
    • Double-click "(Referenced images)" shows error message that image is not a file: now Available images dialog box is shown.
    • Double-click "(REXX or Java Objects)" shows error message that Object is not found: now the List objects dialog box is shown.
    • Explorer could begin looping updates, also Digest or References views, noticeable by a short time of hour-glass display. This consumed quite a lot of CPU, but was running with very low priority.
    • Problem marker "Unresolved item(s)" was not always removed when an error is corrected.
    • Editor updates to Eclipse not always complete in some cases, and work-around to open/close project corrects the update.
    • Difficult to know when an Eclipse project is ready, i.e. has received all information from the Editor: an hour-glass has been added to the project icon as decoration.
    • The NetPhantom.project file that contains short-cuts to NetPhantom.PHE/PHA does not reflect project errors with a warning decoration.

Version 6.00 Build 6124

  • Regression: changing panels with notebook NullPointerException
    The Client could exit with a NullPointerException when changing between main panels containing notebooks. Regression since Build 6115.
  • Regression: refresh ServerAdmin Server thread info dialog is not working
    Refresh of the dialog box Server thread info accessed from the Threads dialog in the Server Administration program does not work (since Build 6100) or gets a NullPointerException in the log (since Build 6115).
  • Regression: multiple-line entry field not updated
    The MLE control is not updated on the Client side. The text is set only at panel creation. Regression since Build 6120.
  • Regression: Eclipse builder never completes or hangs
    The Eclipse REXX builder never completes due to thread dead-lock. Regression since Build 6115.
  • Regression: Eclipse skips Editor transactions for project updates
    An Eclipse project could lose an Editor transaction during start-up of Eclipse workspace because the project is not loaded quick enough. Regression since Build 6115.

Version 6.00 Build 6121

  • NetPhantom Starter: specifying multiple servers for backup scenario
    When specifying multiple servers (in order to use backup servers), the connected server overwrites the entry fileServer in client.pkg thus next time the Starter is launched, only one server is used (the one that the Starter connected to). The client package file must be edited to re-enter the file servers.
  • Regression: count of combobox lines always zero
    The count of combobox lines from the Java API getLineCount() or the REXX function PanListGetNum('COMBO') always returned zero.

Version 6.00 Build 6120

  • Client (and Editor): Swing memory leak
    Workaround implemented for quite large Swing memory leak involving mouse listeners and JFrame/JDialog in combination with JScrollPane or JScrollBar. This memory leak affected freeing of memory of the panel control data in the Client. Working with a Client for a longer period of time eventually consumed all available memory. As almost all panels contains scroll bars in some form (even hidden ones), this impacts every panel created. This error is present in NetPhantom version 5 with later versions of Java 1.6 and 1.7.
  • Client: undo/redo support uses less memory
    The undo/redo support is now optimized for smaller memory consumption for entry fields (includes combobox, spin button, MLE and editable list box).
  • Client: drag-drop for MLE
    The multiple-line entry field was not enabled for drag-drop even if the Client settings were.
  • Java API method setTooltipText(null) returns false
    The method setTooltipText(null) for controls (except for the tree control nodes), menu items and pull-down menus always returns false, but should have had the same effect as setTooltipText("").
  • Server Administration - File manager
    Corrections in the File manager for the Server Administration program:
    • Large file support: file transfer of files larger than 2 GB added, previously, errors would occur.
    • Sorting of file and directory names now done with the default Collator.
  • Editor: Debug output not removed
    Debug output not removed, logging "objs: FILENAME" when files are changed to update Eclipse. This cluttered the Java output console and NetPhantom Console in Eclipse and slowed down the Editor-Eclipse communication.
  • Editor: Last Jar-creation stage of Compile distribution
    During Compile distribution, the Jar file was created in the final location, then tested for final validity and correctness. If e.g. a Java Object could not be loaded or the wrong Object is loaded due to name collision (e.g. when using package-less class name), the created runtime Jar is not correct but created the final Jar location. This is now changed to create a temporary Jar that is checked and when validated, copied into the final location.
  • Editor: MLE and vertical scroll bar
    The data written by the Editor for the multiple-line entry field (MLE) was not correct, e.g. the vertical scroll bar was always present even if the option is turned off. The Panel Editor shows the correct settings, thus this only affected application that were compiled with this Editor version 6. A recompile of the applications with an Editor Build 6120 or later is required to fix the problem of the created application Jar.
  • Editor: minor fixes
    • The initial dialog box for Compile distribution that performs a quick-check if the application can be compiled at all doesn't reload files and reports errors when Build automatically is turned off or when an Object was just refactored from Eclipse. Performing Compiled distribution again works however.
    • Removed "duplicate" Eclipse file markers for problems in the application, there was often two, one that shows the detailed error and a second one "Unresolved item(s)" to show error in the Explorer. Only one is kept now, preferably the detailed error if it exists, otherwise the generic "Unresolved item(s)".
    • Files deleted in the current Editor project outside of Eclipse is not informed to Eclipse from the Editor automatically, you had to press F5 (Refresh) to update Eclipse.
    • Fixing a project problem with an unresolved file (e.g. by adding a missing combobox file) did not always remove the file marker and could still show a small warning in Explorer. A Refresh, Clean or Close+Open project corrected it (in order of severity).
    • Deleting a file in a project did not always cause the builder to check for updates in Application references, and if required, inform Eclipse of the changes.

Version 6.00 Build 6115

  • Client crashes when using merge-on-the-fly when switching application
    When a client runs with several runtime applications at the same time using merge-on-the-fly, and application switching happens at the same time as showing or hiding the terminal window (i.e. the terminal application), pop-up menus could become mixed up between the runtimes due to timing issues. When this occurred, the client would continue to run as if nothing happened, and could crash much later when switching panels with the logged error exception:
      Internal error in NetPhantom Client. Details: java.lang.InternalError: Pop-up menu not found!
        at se.entra.phantom.client.PPanel.createBaseContents
  • Editor: JNI memory leak
    Corrected a JNI memory leak.
  • Editor: high memory usage
    The Editor consumes a lot of memory when switching applications and launching clients. After repeated project switching, the memory may be fully consumed, not due to memory leak. This was due to the Editor caching the project data for faster access. This is now removed, i.e. not cached, and closed projects frees memory completely. This results in the memory requirement to be typically 200 to 300 MB for a large standard application when Eclipse is connected.
  • Changed implementations from Runtime.exec ProcessBuilder
    As the new JVM's 1.6 and 1.7 now stops supporting Runtime.exec with quotes, all calls to execute a process when a single line of command with options is used are changed to the ProcessBuilder implementation. Errors from e.g. Java 1.6 Update 45 such as "java.lang.IllegalArgumentException: Executable name has embedded quote, split the arguments" are then avoided.
  • Eclipse: REXX and/or NetRexx errors do not persist when restarting Eclipse
    Compiler errors in REXX and/or NetRexx generated during a build operation are lost (i.e. do not persist) when closing and reopening an Eclipse workspace. If requesting a Clean operation, the builder recreates the error markers.
  • Eclipse: Explorer shows unresolved images in application
    The application file NetPhantom.PHA in the Eclipse Explorer view shows unresolved images, but without the ".gif" file extension, thus unresolved. The images now includes the file extension and are not shown as unresolved.
  • Editor: Eclipse workspace updates without file refresh
    Changes in the Editor did not always cause updates to be correctly reflected in the Eclipse workspace.
  • Editor: Application references NullPointerException
    A NullPointerException could occur when bringing up the Application References from Eclipse or the dialog box in the Editor when a pop-up menu was defined with a Next panel that is not found.
  • Editor: very large projects updates Eclipse workspace slowly
    Having very large projects (more than 2500 panels) causes up to half a minute delays before the Eclipse workspace is updated when panels are changed in the Editor. This is now improved resulting in the standard delay of 2 to 3 seconds. The initial project information can still take up to half a minute due to the massive information (huge tree and many references). Tuning the memory environment in both Editor and Eclipse is recommended (adjusting the maximum heap size to 900 MB for both Editor and Eclipse, i.e. -Xmx900m in PHANTOM.INI and eclipse.ini). This decreases garbage collection time in the Java VM.
  • Editor: Combobox file references missing
    Regression: referencing for Combobox Files is broken, both inbound and outbound. This is also seen as missing Explorer text "(Combobox file)" as comment besides the file name for combobox files being used in the application.
  • Quick Start: installed shortcuts launches system "javaw.exe"
    The NetPhantom Quick Start installed icons launches javaw.exe from C:\Windows\System for a 32-bit OS and C:\Windows\SysWOW64 for a 64-bit OS, where it should really launch the javaw.exe from C:\NetPhantom 6 QS\jdk1.6.0\jre\bin instead in order to launch the correct Java version.
  • Editor: minor fixes
    • Application references dialog box did not always refresh the application files if Automatic build is not turned on before showing the results.
    • Project refreshes sent to Eclipse more than once when not required causing unnecessary workspace updates.
    • Double-clicking in Eclipse to open Panel Editor items could be "queued" in the Editor, followed by an error message box of the Undo engine for the panel. This typically occurred for very large projects when updates were processed in the Editor waiting to be sent to Eclipse, at the same time the Editor felt "sluggish".
    • Eclipse initiated operations are queued during Compile distribution, should show error message instead.
    • Renaming an Object or pop-up menu initiated from Eclipse or from a Panel Control using Edit Object definition pop-up menu item can cause the renamed Object not to be found.
    • Panel message box does not show referenced host field in Eclipse Explorer and Digest/References views.
    • Bar files and panels updates Eclipse Explorer unnecessarily.
    • All pop-up menus in the application do not always show a description, only the ones that are somehow connected do.
    • Application references and Eclipse sometimes lists Next panel strings starting with '*' (e.g. *COPY) as Unresolved for menu items.
    • NetRexx compiler did not clean up nicely, statically allocated object left causing pollution of memory.
    • REXX generated directory "gensrc" and REXX source directory "rexxsrc" files "*.rexxerr" not cleaned when performing Editor command Clean and an Eclipse connection is not present.
    • Hidden panel not included in Application References (host screen and Object references).
    • The Explorer warning decoration on a file due to unresolved items doesn't always correspond with its children state after Eclipse change operations such as file rename.
    • Notebook page did not include a panel reference for Explorer or for Application references.
    • Regression: double-click in Digest or References views only opens file editors and not the selected item in NetPhantom Editor.
    • Items in Digest or References view heading without text showing only an image (e.g. a Notebook) doesn't show the type "(Notebook)" text as additional informational text.
    • List box in Panel Editor shows preview lines in reverse order (the list box ID is the last line).
    • Dialog box Available images only lists images for supported file extensions in lower case, and image preview can show "Cannot load image" or wrong image (taken from classpath instead of the file or Jar file directly).
    • Regression: push button images referencing broken (seen in Explorer under Application as missing images and in the Application references dialog box). The push buttons in the Explorer tree shows the referred image however.

Version 6.00 Build 6102

  • Minor Editor fixes
    Corrected minor problems in the Editor:
    1. Launch Client from Editor did not always initiate application properly.
    2. Default URL in application and/or Java configuration not consistent.
    3. Closing a dialog box did not always update menu and toolbar state in the Panel Editor (activating menu bar sets state correctly).
    4. Maximize minimized edited panel in the Panel Editor shows the Panel Definition, but should restore the panel instead.
    5. Selection of External Image file with the "..." button causes image preview not to be updated.
    6. Menu item Help - Local web site always opened http://localhost and did not take started ports into account (e.g. port 80 is disabled).