Skip to content

Commit c06637f

Browse files
committed
add handling for error conditions
1 parent eb3ae35 commit c06637f

File tree

4 files changed

+33
-7
lines changed

4 files changed

+33
-7
lines changed

src/gov/nasa/worldwind/util/DataConfigurationUtils.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -766,8 +766,9 @@ public static AVList getWMSLayerConfigParams(WMSCapabilities caps, String[] form
766766
WMSLayerCapabilities layerCaps = caps.getLayerByName(name);
767767
if (layerCaps == null)
768768
{
769-
Logging.logger().warning(Logging.getMessage("WMS.LayerNameMissing", name));
770-
continue;
769+
String msg = Logging.getMessage("WMS.LayerNameMissing", name);
770+
Logging.logger().warning(msg);
771+
throw new WWRuntimeException(msg);
771772
}
772773

773774
if (layerCaps.hasCoordinateSystem("EPSG:4326"))
@@ -916,6 +917,13 @@ public static AVList getWCSConfigParameters(WCS100Capabilities caps, WCS100Descr
916917
throw new IllegalArgumentException(message);
917918
}
918919

920+
if (coverage.getCoverageOfferings().size() == 0)
921+
{
922+
String message = Logging.getMessage("AbsentResourceList.WCSDescribeCoverage");
923+
Logging.logger().severe(message);
924+
throw new IllegalArgumentException(message);
925+
}
926+
919927
if (params == null)
920928
{
921929
String message = Logging.getMessage("nullValue.ParametersIsNull");
@@ -1148,6 +1156,8 @@ protected static String makeTitle(WMSCapabilities caps, String layerNames, Strin
11481156

11491157
String layerName = lNames[i];
11501158
WMSLayerCapabilities layer = caps.getLayerByName(layerName);
1159+
if (layer == null) continue; // layer not found
1160+
11511161
String layerTitle = layer.getTitle();
11521162
sb.append(layerTitle != null ? layerTitle : layerName);
11531163

src/gov/nasa/worldwind/util/MessageStrings.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -743,6 +743,7 @@ AbsentResourceList.MaxTriesLessThanOne=The specified maximum number of tries is
743743
AbsentResourceList.CheckIntervalLessThanZero=The specified check interval is less than 0
744744
AbsentResourceList.RetryIntervalLessThanZero=The specified retry interval is less than 0
745745
AbsentResourceList.MaximumListSizeLessThanOne=The requested maximum list size is less than 1
746+
AbsentResourceList.WCSDescribeCoverage=No coverage offering from WCS
746747

747748
AVAAccessibleImpl.AttributeValueForKeyIsNotAString=Attribute value for key is not a String. Key {0}
748749

src/gov/nasa/worldwindx/examples/layermanager/ElevationModelManagerPanel.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ protected boolean isUpToDate(WorldWindow wwd)
127127

128128
if (!(wwd.getModel().getGlobe().getElevationModel() instanceof CompoundElevationModel))
129129
{
130-
return this.modelPanels.get(0).getElevationModel() == wwd.getModel().getGlobe().getElevationModel();
130+
if (this.modelPanels.size() == 0) return false;
131+
return this.modelPanels.get(0).getElevationModel() == wwd.getModel().getGlobe().getElevationModel();
131132
}
132133

133134
CompoundElevationModel cem = (CompoundElevationModel) wwd.getModel().getGlobe().getElevationModel();

src/gov/nasa/worldwindx/examples/util/WCSCoveragePanel.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,9 @@ protected void load()
100100
{
101101
e.printStackTrace();
102102
Container c = WCSCoveragePanel.this.getParent();
103-
c.remove(WCSCoveragePanel.this);
103+
if (c != null)
104+
c.remove(WCSCoveragePanel.this);
105+
104106
JOptionPane.showMessageDialog((Component) wwd, "Unable to connect to server " + serverURI.toString(),
105107
"Server Error", JOptionPane.ERROR_MESSAGE);
106108
return;
@@ -192,8 +194,10 @@ public void actionPerformed(ActionEvent actionEvent)
192194
// If the coverage is selected, add it to the WorldWindow's current model, else remove it from the model.
193195
if (((JCheckBox) actionEvent.getSource()).isSelected())
194196
{
195-
if (this.component == null)
197+
if (this.component == null) {
196198
this.component = createComponent(coverageInfo.caps, coverageInfo);
199+
if (this.component == null) return;
200+
}
197201

198202
updateComponent(this.component, true);
199203
}
@@ -224,8 +228,18 @@ protected CoverageInfo createCoverageInfo(WCS100Capabilities caps, WCS100Coverag
224228
protected void updateComponent(Object component, boolean enable)
225229
{
226230
ElevationModel model = (ElevationModel) component;
227-
CompoundElevationModel compoundModel =
228-
(CompoundElevationModel) this.wwd.getModel().getGlobe().getElevationModel();
231+
CompoundElevationModel compoundModel;
232+
233+
// Guarantee that we have a compound elevation model, so additional elevation models can be added.
234+
ElevationModel em = this.wwd.getModel().getGlobe().getElevationModel();
235+
236+
if (!(em instanceof CompoundElevationModel)) {
237+
compoundModel = new CompoundElevationModel();
238+
compoundModel.addElevationModel(em);
239+
this.wwd.getModel().getGlobe().setElevationModel(compoundModel);
240+
} else {
241+
compoundModel = (CompoundElevationModel) em;
242+
}
229243

230244
if (enable)
231245
{

0 commit comments

Comments
 (0)