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

Re: Plus signs in dataset names and IDs?



Hi Nathan,

What kind of request are you getting this error on? Can you give me the full URL?

In the mean time, here's what I found ...

I'm not getting a NullPointerException like you are but I'm getting some failed requests that should succeed.

A THREDDS catalog can legally have dataset names and IDs that contain plus signs ("+"). The TDS HTML view of a catalog is mostly fine as well. The problem is when a dataset ID containing a plus sign is used in the query part of a URL as a parameter value. For instance, here's an example of an HTML view of a single dataset:

http://localhost:8080/thredds/catalog/testAll/test+dir/catalog.html?dataset=testDatasetScan/test+dir

The plus sign that is part of the dataset parameter value should be url-encoded as "%2B" but as is when the "dataset" parameter value is requested (req.getParameter("dataset")) the return value is "testDatasetScan/test dir".

We'll add this to our list of needed fixes. But in the mean time, try to avoid directories and datasets with plus signs in their names. Same goes for spaces.

Sorry for the restrictions.

Ethan


Nathan Potter wrote:

Is the "+" character allowed in either the name or ID attributes of a <dataset>?


When I tried that I got a null pointer exception from the THREDDS code (see stack trace below).

When I removed the "+" things worked.

N



2007-06-28T16:06:47.584 -0700 [ 1337941][ 26] [HTTP-GET] DEBUG - opendap.coreServlet.DispatchServlet - Request being handled by: opendap.bes.ThreddsDispatchHandler
2007-06-28T16:06:47.585 -0700 [ 1337942][ 26] [HTTP-GET] ERROR - opendap.coreServlet.OPeNDAPException - anyExceptionHandler(): java.lang.NullPointerException
java.lang.NullPointerException
at thredds.servlet.CatalogServicesServlet.handleCatalogServiceRequest(CatalogServicesServlet.java:226)


at thredds.servlet.DataRootHandler.processReqForCatalog(DataRootHandler.java:1117)

at opendap.bes.ThreddsDispatchHandler.handleRequest(ThreddsDispatchHandler.java:215)

at opendap.coreServlet.DispatchServlet.doGet(DispatchServlet.java:440)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)


at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)


at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)

at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)

at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)

at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)

at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

        at java.lang.Thread.run(Thread.java:613)





= = =
Nathan Potter                        ndp at opendap.org
OPeNDAP, Inc.                        541.752.1852


-- Ethan R. Davis Telephone: (303) 497-8155 Software Engineer Fax: (303) 497-8690 UCAR Unidata Program Center E-mail: address@hidden P.O. Box 3000 Boulder, CO 80307-3000 http://www.unidata.ucar.edu/ ---------------------------------------------------------------------------


=============================================================================== To unsubscribe thredds, visit: http://www.unidata.ucar.edu/mailing-list-delete-form.html ===============================================================================


NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.