Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Java Development

Thank you for visiting the BlackBerry Support Community Forums.

BlackBerry will be closing the BlackBerry Support Community Forums Device Forums on April 1st (Developers, see below)

BlackBerry remains committed to providing excellent customer support to our customers. We are delighted to direct you to the CrackBerry Forums, a well-established and thorough support channel, for continued BlackBerry support. Please visit http://forums.crackberry.com or http://crackberry.com/ask. You can also continue to visit BlackBerry Support or the BlackBerry Knowledge Base for official support options available for your BlackBerry Smartphone.

"When we launched CrackBerry.com 10 years ago, we set out to make it a fun and useful destination where BlackBerry Smartphone owners could share their excitement and learn to unleash the full potential of their BlackBerry. A decade later, the CrackBerry community is as active and passionate as ever and I know our knowledgeable members and volunteers will be excited to welcome and assist more BlackBerry owners with their questions."

- Kevin Michaluk, Founder, CrackBerry.com

Developers, for more information about the BlackBerry Developer Community please review Join the Conversation on the BlackBerry Developer Community Forums found on Inside BlackBerry.

Posts: 131
Registered: ‎08-13-2008
My Device: Not Specified
Accepted Solution

IllegalStateException in OptionsProvider

I created an options page for my application using the "How To - Add application options to the BlackBerry Options" example. Loading and saving worked fine, but when I opened the page a second time it crashes with an IllegalStateException. It's already been solved, but I don't know the reason. 

private RichTextField text_allow; //Will crash program //private RichTextField text_allow=new RichTextField("Allow connections:",Field.NON_FOCUSABLE); public void populateMainScreen(MainScreen screen){ optionsProperties=SMOptionsProperties.getSMOP();


//works when initialised here text_allow=new RichTextField("Allow connections:",Field.NON_FOCUSABLE); screen.add(text_allow); //other things omitted }//populatrMainScreen


Is it something to do with


//Null out our member variables so that their objects can be garbage //collected. Note that this instance continues to be held by the //options manager even after the user exits the options app, //and will be re-used next time.

If I null out text_allow, NullPointerException is thrown.

If I don't, it's an IllegalStateException.




BlackBerry Development Advisor
Posts: 15,886
Registered: ‎07-09-2008
My Device: BlackBerry PRIV
My Carrier: Bell

Re: IllegalStateException in OptionsProvider

Every time an Options screen is shown, populateMainScreen is called and a new instance of MainScreen created.  This means you'll also need to create a new instance of your fields to be added to this new instance of MainScreen.


A field can only be added to a single screen.  By instantiating text_allow outside of populateMainScreen you are re-using the instance of that field, which does not work.

Mark Sohm
BlackBerry Development Advisor

Please refrain from posting new questions in solved threads.
Problem solved? Click the Accept As Solution button.