netbeans-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geertjan Wielenga (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (NETBEANS-633) GUI Builder fails to load sub-panel with NLS / Respource bundle
Date Tue, 10 Apr 2018 12:36:00 GMT

    [ https://issues.apache.org/jira/browse/NETBEANS-633?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16432191#comment-16432191
] 

Geertjan Wielenga commented on NETBEANS-633:
--------------------------------------------

Best to include a small application or point to a GitHub repo with a small application that
reproduces this.

> GUI Builder fails to load sub-panel with NLS / Respource bundle
> ---------------------------------------------------------------
>
>                 Key: NETBEANS-633
>                 URL: https://issues.apache.org/jira/browse/NETBEANS-633
>             Project: NetBeans
>          Issue Type: Bug
>          Components: guibuilder - Binding, guibuilder - Natural Layout
>    Affects Versions: 8.2, 9.0
>         Environment: Product Version: Apache NetBeans IDE Dev (Build incubator-netbeans-release-205-on-20180202)
> Java: 10; Java HotSpot(TM) 64-Bit Server VM 10+46
> Runtime: Java(TM) SE Runtime Environment 10+46
> System: Windows 10 version 10.0 running on amd64; Cp1252; en_AU (nb)
> User directory: Z:\tmp\.other\user\netbeans\v09.00-beta\FourAbs
> Cache directory: Z:\tmp\.other\cache\netbeans\FourAbs-09
>            Reporter: will mason
>            Priority: Critical
>              Labels: GUI, MissingResourceException, Swing, internationalization
>         Attachments: image-2018-04-10-10-32-31-818.png
>
>
> h2. expected
>  * To be able to view and edit parent JPanel screen in Netbeans GUI Builder.
>  * This should be possible no matter what the sub-panels do
>  * If/when a resource is missing or unresolved some kind of place holder can be used
> h2. actual
>  * We have several GUI JPanel-s which act as containers for a "details" screen, sub-panel
layouts.
>  * In one of the sub-panels we introduced a resource bundle to display options for check-boxes.. 
>  * This details screen works as a sub-panel at run-time.
>  * This details screen works as in the GUI designer/builder fine.
>  * However whenever we load the parent panel, the container it fails with a *{{MissingResourceException}}*.
> !image-2018-04-10-10-32-31-818.png!
>  
>  * This is somewhat of a SHOW STOPPER as far as internationalisation goes for reusable
GUI components I'm afraid.
>  * The situation is quite mysterious as well since the Resource file is found, loaded
and displayed by the detail JPanel screen which is IN THE SAME java Package at runtime and
design time.
>  * The resource bundle itself is in the {{resources/bundles}} folder of common library
(Gradle directory layout) and is "fixed" so to speak at design time.
>  * I believe there is some fundamental flaw here because you must have parents able to
load sub-components with or without any resource strings.
>  
> h2. supporting information
> {noformat}
> --[ *stacktrace* ]--
> java.util.MissingResourceException: Can't find bundle for base name bundles/SpaAssurancesText,
locale en_AU
>     at java.base/java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:2055)
>     at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1689)
>     at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1593)
>     at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1556)
>     at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:857)
>     at au.com.fourtel.fourabs.client.spas.JPanelSpaDetails.initComponents(JPanelSpaDetails.java:1608)
>     at au.com.fourtel.fourabs.client.spas.JPanelSpaDetails.<init>(JPanelSpaDetails.java:148)
>     at au.com.fourtel.fourabs.client.spas.JPanelSpaDetails.<init>(JPanelSpaDetails.java:141)
>     at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
>     at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>     at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>     at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
>     at java.base/java.lang.Class.newInstance(Class.java:560)
>     at org.netbeans.modules.form.CreationFactory.createDefaultInstance(CreationFactory.java:155)
>     at org.netbeans.modules.form.RADComponent.createBeanInstance(RADComponent.java:227)
>     at org.netbeans.modules.form.RADComponent.initInstance(RADComponent.java:166)
>     at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:755)
>     at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:943)
>     at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:799)
>     at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:943)
>     at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:799)
>     at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:943)
>     at org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:478)
>     at org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:258)
>     at org.netbeans.modules.form.FormEditor$2.run(FormEditor.java:327)
>     at org.netbeans.modules.form.FormLAF$2.run(FormLAF.java:268)
>     at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:115)
>     at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:75)
>     at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:71)
>     at org.openide.util.Mutex.readAccess(Mutex.java:225)
>     at org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:251)
>     at org.netbeans.modules.form.FormEditor.loadFormData(FormEditor.java:324)
>     at org.netbeans.modules.nbform.FormEditorSupport.loadOpeningForm(FormEditorSupport.java:436)
>     at org.netbeans.modules.nbform.FormDesignerTC.loadForm(FormDesignerTC.java:256)
>     at org.netbeans.modules.nbform.FormDesignerTC.access$300(FormDesignerTC.java:64)
>     at org.netbeans.modules.nbform.FormDesignerTC$PreLoadTask$1.run(FormDesignerTC.java:245)
>     at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
>     at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
>     at java.desktop/java.awt.EventQueue.access$600(EventQueue.java:97)
>     at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
>     at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
>     at java.base/java.security.AccessController.doPrivileged(Native Method)
>     at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
>     at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
>     at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
>     at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
>     at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
>     at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
>     at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
>     at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
>     at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
> java.io.IOException: Undefined component referenced in layout: jPanelSpaDetails
>     at org.netbeans.modules.form.layoutdesign.LayoutPersistenceManager.correctMissingName(LayoutPersistenceManager.java:712)
>     at org.netbeans.modules.form.layoutdesign.LayoutPersistenceManager.loadLayout(LayoutPersistenceManager.java:388)
>     at org.netbeans.modules.form.layoutdesign.LayoutPersistenceManager.loadContainer(LayoutPersistenceManager.java:354)
>     at org.netbeans.modules.form.layoutdesign.LayoutModel.loadContainerLayout(LayoutModel.java:1206)
>     at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:973)
>     at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:799)
>     at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:943)
>     at org.netbeans.modules.form.GandalfPersistenceManager.restoreComponent(GandalfPersistenceManager.java:799)
>     at org.netbeans.modules.form.GandalfPersistenceManager.loadComponent(GandalfPersistenceManager.java:943)
>     at org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:478)
>     at org.netbeans.modules.form.GandalfPersistenceManager.loadForm(GandalfPersistenceManager.java:258)
>     at org.netbeans.modules.form.FormEditor$2.run(FormEditor.java:327)
>     at org.netbeans.modules.form.FormLAF$2.run(FormLAF.java:268)
>     at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:115)
>     at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:75)
>     at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:71)
>     at org.openide.util.Mutex.readAccess(Mutex.java:225)
>     at org.netbeans.modules.form.FormLAF.executeWithLookAndFeel(FormLAF.java:251)
>     at org.netbeans.modules.form.FormEditor.loadFormData(FormEditor.java:324)
>     at org.netbeans.modules.nbform.FormEditorSupport.loadOpeningForm(FormEditorSupport.java:436)
>     at org.netbeans.modules.nbform.FormDesignerTC.loadForm(FormDesignerTC.java:256)
>     at org.netbeans.modules.nbform.FormDesignerTC.access$300(FormDesignerTC.java:64)
>     at org.netbeans.modules.nbform.FormDesignerTC$PreLoadTask$1.run(FormDesignerTC.java:245)
>     at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
>     at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
>     at java.desktop/java.awt.EventQueue.access$600(EventQueue.java:97)
>     at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
>     at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
>     at java.base/java.security.AccessController.doPrivileged(Native Method)
>     at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
>     at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
>     at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
>     at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
>     at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
>     at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
>     at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
>     at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
>     at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


Mime
View raw message