diff -r 4060a0bfff28 web.project/src/org/netbeans/modules/web/project/Bundle.properties --- a/web.project/src/org/netbeans/modules/web/project/Bundle.properties Tue Jul 17 15:37:16 2012 +0200 +++ b/web.project/src/org/netbeans/modules/web/project/Bundle.properties Thu Jul 19 13:36:53 2012 +0200 @@ -98,6 +98,9 @@ MSG_No_Server_Selected=The target server has not been set or has been removed.
Right-click the project in the Projects window and choose
Resolve Missing Server Problem \ to set the target server. +MSG_Unknown_Server_Selected=The target server ({0}) may have been removed.
Right-click the project in the Projects window and choose
Resolve Missing Server Problem \ + to set the target server. +MSG_Unknown_Server_Exec=E&xecute anyway! TXT_noExecutableClass=Class "{0}" neither has a main method nor is it a servlet specified in web.xml. diff -r 4060a0bfff28 web.project/src/org/netbeans/modules/web/project/WebActionProvider.java --- a/web.project/src/org/netbeans/modules/web/project/WebActionProvider.java Tue Jul 17 15:37:16 2012 +0200 +++ b/web.project/src/org/netbeans/modules/web/project/WebActionProvider.java Thu Jul 19 13:36:53 2012 +0200 @@ -84,6 +84,7 @@ import java.util.LinkedList; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.TypeElement; +import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; @@ -117,6 +118,8 @@ import org.netbeans.spi.project.support.ant.PropertyEvaluator; import org.netbeans.spi.project.support.ant.PropertyUtils; import org.openide.DialogDescriptor; +import org.openide.NotifyDescriptor.Message; +import org.openide.awt.Mnemonics; import org.openide.util.Exceptions; /** Action provider of the Web project. This is the place where to do @@ -913,10 +916,22 @@ return true; } } - - // no selected server => warning - String msg = NbBundle.getMessage(WebActionProvider.class, "MSG_No_Server_Selected"); // NOI18N - DialogDisplayer.getDefault().notify(new NotifyDescriptor.Message(msg, NotifyDescriptor.WARNING_MESSAGE)); + + if (instance == null || instance.isEmpty()) { + // no selected server => warning + String msg = NbBundle.getMessage(WebActionProvider.class, "MSG_No_Server_Selected"); // NOI18N + DialogDisplayer.getDefault().notify(new Message(msg, NotifyDescriptor.WARNING_MESSAGE)); + } else { + String msg = NbBundle.getMessage(WebActionProvider.class, "MSG_Unknown_Server_Selected", instance); // NOI18N + final Message nd = new Message(msg, NotifyDescriptor.WARNING_MESSAGE); + JButton anyway = new JButton(); + Mnemonics.setLocalizedText(anyway, NbBundle.getMessage(WebActionProvider.class, "MSG_Unknown_Server_Exec")); // NOI18N + anyway.setDefaultCapable(false); + nd.setOptions(new Object[] { Message.OK_OPTION, anyway }); + if (DialogDisplayer.getDefault().notify(nd) == anyway) { + return true; + } + } return false; }