Resolving FactoryPMI Designer Startup Error in Java 6

David Krause6 min read
HMI / SCADAOther ManufacturerTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

The java.lang.ArrayIndexOutOfBoundsException: No such child: 2 message at FactoryPMI Designer startup is a user-interface compatibility defect, not a project or communications failure. It occurs when the docking framework used by FactoryPMI v3 interacts with later Java 6 releases; the reported installation used FactoryPMI v3.3.2 build 2754 and Java 1.6.0_14. If the Designer continues to operate, record the exception as harmless and plan migration to FactoryPMI v4, the stated correction target.

Symptom Classification

Classify the failure from the exception type and the first product-specific frames in the stack trace. The term stack trace here means the ordered list of methods active when Java raised the exception.

Observed signature Subsystem Engineering interpretation Required response
ArrayIndexOutOfBoundsException: No such child: 2
JideSplitPane.setDividersVisible
JideSplitPane.componentHidden
Designer docking interface The framework requested a split-pane child component that was not present while processing a component-hidden event. Check Designer usability. Treat the message as non-fatal when editing functions remain available.
FailedDownloadException
SocketException: Connection reset
Java Web Start download and network path The connection failed while retrieving http://127.0.0.1:8080/gateway/designer/designer.jnlp. Diagnose the gateway, listener, local network path, and download transaction. This is a separate fault.

Do not combine these signatures merely because both appear during launch. An interface event exception and a resource-download failure occur in different layers and require different tests.

Docking-Framework Mechanism

FactoryPMI v3 uses a docking framework that manages split panes, docked windows, and component visibility. Java delivers visibility changes through the Abstract Window Toolkit event queue. In the reported trace, componentHidden calls setDividersVisible, which then asks the container for child index 2. The container has no child at that index, so Java raises the bounds exception.

The failure therefore occurs during interface layout handling on the Java event-dispatch thread. It does not identify a failed PLC connection, corrupt project resource, unavailable gateway, or download problem. Those conditions require their own diagnostic evidence.

A caught interface exception can leave the application usable because the rejected operation concerns docking presentation rather than the Designer's core editing transaction. The decisive observation is functional: verify that the application opens, panels respond, and project operations remain available after the message.

Affected-Version Boundary

The known interaction involves the docking framework in FactoryPMI version 3 combined with later Java 6 releases. Java 6 update 12 and later were identified as the suspect range, and the supplied installation reports Java 1.6.0_14. The FactoryPMI installation is v3.3.2, build 2754.

Item Reported value Diagnostic use
FactoryPMI version 3.3.2 Places the Designer in the version-3 docking-framework family.
FactoryPMI build 2754 Preserves the exact installation identity for testing and escalation.
Java runtime Sun Microsystems Inc. 1.6.0_14 Places the runtime after Java 6 update 12.
Correction target FactoryPMI v4 Defines the major-version migration path to test.

Read the runtime version from the launch diagnostics or exception report rather than relying on the Java version believed to be installed. A workstation can contain multiple runtimes, while the launcher selects one runtime for the actual process.

Corrective Procedure

  1. Capture the exact signature. Record the FactoryPMI version, build, Java runtime, exception text, and the first FactoryPMI or docking-framework methods. Match the interface defect only when the trace includes No such child: 2 and the JideSplitPane visibility calls.
  2. Test operation after dismissal. Close or acknowledge the error display, then exercise the Designer functions needed for the work session. If the Designer remains responsive, classify the event as a non-fatal interface defect.
  3. Separate concurrent launch faults. If the trace instead contains FailedDownloadException or Connection reset, test access to the configured Designer resource and inspect the FactoryPMI logs, normally under C:\Program Files\Inductive Automation\FactoryPMI\logs. Do not use the docking-framework diagnosis for that condition.
  4. Select the correction path. Test migration from FactoryPMI v3 to FactoryPMI v4 because v4 is the stated target for correcting this docking-framework interaction. Follow the applicable product upgrade procedure and validate the project in a controlled environment before changing an operating workstation.
  5. Manage a deferred upgrade. When the installation must remain on v3, document the recognized signature and its non-fatal acceptance criteria. Do not tell operators to ignore every Java exception; acceptance applies only when the signature matches and the functional checks pass.

Replacing networking components, modifying PLC addresses, or rebuilding project communications cannot correct a bounds exception generated by a split-pane visibility event. Likewise, changing Java solely to suppress the message introduces a runtime change that requires a complete application compatibility test.

Verification Criteria

  1. Check 1: exception identity. Expect the non-fatal case to show java.lang.ArrayIndexOutOfBoundsException: No such child: 2 with JideSplitPane.setDividersVisible and JideSplitPane.componentHidden.
  2. Check 2: launch completion. Expect the Designer window to finish opening rather than terminate at the exception.
  3. Check 3: interface response. Expect docked panes and the required editing views to open, close, and respond to input after the message.
  4. Check 4: fault separation. Expect no FailedDownloadException or SocketException: Connection reset in the trace being classified as the docking defect.
  5. Check 5: corrected-version test. After migration testing, expect FactoryPMI v4 to launch on the selected runtime without the No such child: 2 stack trace and with the required Designer functions available.

Recurring Diagnostic Pitfalls

The most common wrong practice is grouping all startup messages under one root cause. A Java collection or container exception describes invalid software state inside the process; a socket reset describes a broken transport transaction. Similar timing does not make them related.

Another mistake is treating “harmless” as meaning “unclassified.” Preserve the complete trace and verify the application after every occurrence. A different exception, a changed top frame, or loss of Designer function starts a new diagnosis.

Avoid declaring the issue fixed merely because the dialog disappeared. The correction criterion is both absence of the known exception and successful operation of the Designer views used by the project. Also avoid representing Java 6 update 12 as an exact universal cutoff: use it to identify the compatibility range to test, while the active runtime string and repeatable behavior decide the workstation result.

FAQ

What happens if I ignore the FactoryPMI No such child: 2 error?

If the trace contains the two JideSplitPane calls and the Designer remains functional, work can continue with the event recorded as a non-fatal interface defect. Stop and reassess if the Designer closes, freezes, or loses required functions.

What happens if the error appears with Java 1.6.0_14?

1.6.0_14 falls within the later Java 6 range associated with the FactoryPMI v3 docking-framework interaction. Confirm that the FactoryPMI version is v3 and match the complete stack-trace signature.

What happens if the trace says Connection reset?

Treat it as a separate networking or download failure, especially when FailedDownloadException identifies the Designer JNLP resource. Check the gateway path and the FactoryPMI logs instead of applying the split-pane diagnosis.

What happens if FactoryPMI v3 must remain installed?

Document the exact accepted signature, runtime, build, and functional test results. Reclassify the event whenever the exception text changes or the Designer does not remain usable.

What happens if FactoryPMI v4 starts without the exception?

Complete the final verification: open and exercise the required docked Designer views, confirm normal project operation, and verify that No such child: 2 does not recur during startup.

Back to blog