1818import java .util .Collection ;
1919import java .util .HashMap ;
2020import java .util .Map .Entry ;
21+ import java .util .logging .Level ;
22+ import java .util .logging .Logger ;
2123import java .util .regex .Matcher ;
2224import java .util .regex .Pattern ;
2325import javax .servlet .ServletConfig ;
3739import org .linkeddatafragments .datasource .JenaTDBDataSourceType ;
3840import org .linkeddatafragments .datasource .TriplePatternFragment ;
3941import org .linkeddatafragments .exceptions .DataSourceException ;
42+ import org .linkeddatafragments .exceptions .DataSourceNotFoundException ;
4043import org .linkeddatafragments .util .CommonResources ;
4144import org .linkeddatafragments .util .MIMEParse ;
4245
@@ -118,7 +121,7 @@ public void init(ServletConfig servletConfig) throws ServletException {
118121 * @return
119122 * @throws IOException
120123 */
121- private IDataSource getDataSource (HttpServletRequest request ) throws IOException {
124+ private IDataSource getDataSource (HttpServletRequest request ) throws DataSourceNotFoundException {
122125 String contextPath = request .getContextPath ();
123126 String requestURI = request .getRequestURI ();
124127
@@ -133,7 +136,7 @@ private IDataSource getDataSource(HttpServletRequest request) throws IOException
133136 String dataSourceName = path .substring (1 );
134137 IDataSource dataSource = dataSources .get (dataSourceName );
135138 if (dataSource == null ) {
136- throw new IOException ( "Data source not found." );
139+ throw new DataSourceNotFoundException ( dataSourceName );
137140 }
138141 return dataSource ;
139142 }
@@ -299,8 +302,15 @@ public void doGet(HttpServletRequest request, HttpServletResponse response) thro
299302
300303 RDFDataMgr .write (response .getOutputStream (), output , contentType );
301304 } catch (IOException | URISyntaxException e ) {
302- e .printStackTrace ();
303305 throw new ServletException (e );
306+ } catch (DataSourceNotFoundException ex ) {
307+ try {
308+ response .setStatus (404 );
309+ response .getOutputStream ().println (ex .getMessage ());
310+ response .getOutputStream ().close ();
311+ } catch (IOException ex1 ) {
312+ throw new ServletException (ex1 );
313+ }
304314 }
305315 }
306316
0 commit comments