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: 2JideSplitPane.setDividersVisibleJideSplitPane.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. |
FailedDownloadExceptionSocketException: 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
-
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: 2and theJideSplitPanevisibility calls. - 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.
-
Separate concurrent launch faults. If the trace instead contains
FailedDownloadExceptionorConnection reset, test access to the configured Designer resource and inspect the FactoryPMI logs, normally underC:\Program Files\Inductive Automation\FactoryPMI\logs. Do not use the docking-framework diagnosis for that condition. - 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.
- 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
-
Check 1: exception identity. Expect the non-fatal case to show
java.lang.ArrayIndexOutOfBoundsException: No such child: 2withJideSplitPane.setDividersVisibleandJideSplitPane.componentHidden. - Check 2: launch completion. Expect the Designer window to finish opening rather than terminate at the exception.
- Check 3: interface response. Expect docked panes and the required editing views to open, close, and respond to input after the message.
-
Check 4: fault separation. Expect no
FailedDownloadExceptionorSocketException: Connection resetin the trace being classified as the docking defect. -
Check 5: corrected-version test. After migration testing, expect FactoryPMI v4 to launch on the selected runtime without the
No such child: 2stack 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.