diff options
author | Bernard Normier <bernard@zeroc.com> | 2011-03-28 18:32:25 -0400 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2011-03-28 18:32:25 -0400 |
commit | 7ab21a7df484b0186cca1c7f5dc931c016cbe4de (patch) | |
tree | aafe7e530246b75adac36d3eacf54b45c2bb3452 /java/src/IceGridGUI/Application/Communicator.java | |
parent | 5004 - Slice file UTF-8 BOM and #define (diff) | |
download | ice-7ab21a7df484b0186cca1c7f5dc931c016cbe4de.tar.bz2 ice-7ab21a7df484b0186cca1c7f5dc931c016cbe4de.tar.xz ice-7ab21a7df484b0186cca1c7f5dc931c016cbe4de.zip |
Fixed NPE when loading bad XML file (bug #4859)
Diffstat (limited to 'java/src/IceGridGUI/Application/Communicator.java')
-rw-r--r-- | java/src/IceGridGUI/Application/Communicator.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/java/src/IceGridGUI/Application/Communicator.java b/java/src/IceGridGUI/Application/Communicator.java index a52ed16e0cf..b7d2c0b2ffd 100644 --- a/java/src/IceGridGUI/Application/Communicator.java +++ b/java/src/IceGridGUI/Application/Communicator.java @@ -699,14 +699,24 @@ abstract class Communicator extends TreeNode implements DescriptorHolder TemplateDescriptor templateDescriptor = getRoot().findServiceTemplateDescriptor(descriptor.template); - assert templateDescriptor != null; + if(templateDescriptor == null) + { + throw new UpdateFailedException("Cannot find template descriptor '" + + descriptor.template + + "' referenced by service-instance"); + } serviceResolver = new Utils.Resolver(getResolver(), descriptor.parameterValues, templateDescriptor.parameterDefaults); ServiceDescriptor serviceDescriptor = (ServiceDescriptor)templateDescriptor.descriptor; - assert serviceDescriptor != null; + + // + // If it's not null, it's a bug in the provider of this descriptor, e.g. + // the icegridadmin parsing code. + // + assert serviceDescriptor != null; serviceName = serviceResolver.substitute(serviceDescriptor.name); serviceResolver.put("service", serviceName); |