[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[THREDDS #YXL-373395]: IndexOutOfBoundsException



Fan,

I think the problem is that the variable float ta is defined with dimensions 
[time plev lat lon].  Instead, the order on the dimensions should be reversed 
to [lon lat plev time].  If you try to open the file with the ToolsUI 
FeatureType->Grids, you get a nicer error that says no grids are found in the 
file.  Running the TDS in the debugger shows the same problem, but the TDS 
isn't giving a nice error message.

Thanks for bringing this to our attention!

-Lansing

> Hi Lansing,
> 
> I have a sample file at
> 
> ftp://hydro1.sci.gsfc.nasa.gov/private/ffang/ta_AIRS.2002.09.01.L3.RetStd030.v5.0.14.0.G07283162057.hdf.nc
> 
> We also aggregate these granules in time.  Both granules and the aggregation 
> has the same symptom.
> 
> -Fan
> ________________________________________
> From: Unidata THREDDS Support [address@hidden]
> Sent: Wednesday, April 10, 2013 1:38 PM
> To: Fang, Fan (GSFC-610.2)[ADNET SYSTEMS INC]
> Subject: [THREDDS #YXL-373395]: IndexOutOfBoundsException
> 
> Hi Fan,
> 
> Can you send me the file, or otherwise make it available?  I'll look at it 
> and see what I find.
> 
> -Lansing Madry
> Unidata
> Boulder, Colorado
> 
> > Hi.
> >
> > I am testing a netCDF dataset on a TDS server version 4.3.14.  Curiously
> > the netcdf subset service gives me 500 Internal Server Error.  The
> > 'threddsServlet.log' shows a IndexOutOfBoundsException:
> >
> > 2013-04-08T17:36:45.411 +0000 [   2624702][      84] INFO  -
> > threddsServlet - Remote host: 128.183.162.99 - Request: "GET
> > /thredds/ncss/grid/ESG_AIRX3STM_TA/2002/ta_AIRS.2002.12.01.L3.RetStd031.v5.0.14.0.G07295003749.hdf.nc/dataset.html
> > HTTP/1.1"
> > 2013-04-08T17:36:45.417 +0000 [   2624708][      84] ERROR -
> > thredds.server.ncSubset.dataservice.NcssShowDatasetInfoImpl -
> > ForecastModelRunServlet internal error
> > java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
> > at java.util.ArrayList.rangeCheck(ArrayList.java:604)
> > at java.util.ArrayList.get(ArrayList.java:382)
> > at
> > ucar.nc2.dt.grid.GridDatasetInfo.makeGridForm(GridDatasetInfo.java:266)
> > at
> > thredds.server.ncSubset.dataservice.NcssShowDatasetInfoImpl.showForm(NcssShowDatasetInfoImpl.java:51)
> > ...
> >
> > I enclose the CDL here - wonder which netcdf definition here can lead to
> > this error?
> >
> > The OPeNDAP service works fine, but we need netcdf subset/download
> > service on the server side.  If you need a sample netcdf data please let
> > me know.
> >
> > Thanks.
> >
> > -Fan
> >
> > netcdf ta_AIRS.2002.12.01.L3.RetStd031.v5.0.14.0.G07295003749.hdf {
> > dimensions:
> > lat = 180 ;
> > bnds = 2 ;
> > lon = 360 ;
> > plev = 17 ;
> > time = UNLIMITED ; // (1 currently)
> > variables:
> > double lat(lat) ;
> > lat:_CoordinateAxisType = "Lat" ;
> > lat:axis = "Y" ;
> > lat:bounds = "lat_bnds" ;
> > lat:long_name = "latitude" ;
> > lat:standard_name = "latitude" ;
> > lat:units = "degrees_north" ;
> > double lat_bnds(lat, bnds) ;
> > double lon(lon) ;
> > lon:_CoordinateAxisType = "Lon" ;
> > lon:axis = "X" ;
> > lon:bounds = "lon_bnds" ;
> > lon:long_name = "longitude" ;
> > lon:standard_name = "longitude" ;
> > lon:units = "degrees_east" ;
> > double lon_bnds(lon, bnds) ;
> > double plev(plev) ;
> > plev:_CoordinateAxisType = "Pressure" ;
> > plev:_CoordinateZisPositive = "down" ;
> > plev:axis = "Z" ;
> > plev:long_name = "pressure" ;
> > plev:positive = "down" ;
> > plev:standard_name = "air_pressure" ;
> > plev:units = "Pa" ;
> > float ta(time, plev, lat, lon) ;
> > ta:_FillValue = 1.e+20f ;
> > ta:cell_measures = "area: areacella" ;
> > ta:cell_methods = "time: mean" ;
> > ta:long_name = "Air Temperature" ;
> > ta:missing_value = 1.e+20f ;
> > ta:standard_name = "air_temperature" ;
> > ta:units = "K" ;
> > double time(time) ;
> > time:units = "days since 2000-01-01" ;
> > time:_CoordinateAxisType = "Lon" ;
> > time:axis = "T" ;
> > time:bounds = "time_bnds" ;
> > time:calendar = "standard" ;
> > time:long_name = "time" ;
> > time:standard_name = "time" ;
> > double time_bnds(time, bnds) ;
> >
> > }
> >
> >
> 
> 
> Ticket Details
> ===================
> Ticket ID: YXL-373395
> Department: Support THREDDS
> Priority: Normal
> Status: Open
> 
> 


Ticket Details
===================
Ticket ID: YXL-373395
Department: Support THREDDS
Priority: Normal
Status: Open