18
18
import java .util .Collection ;
19
19
import java .util .HashMap ;
20
20
import java .util .Map .Entry ;
21
+ import java .util .logging .Level ;
22
+ import java .util .logging .Logger ;
21
23
import java .util .regex .Matcher ;
22
24
import java .util .regex .Pattern ;
23
25
import javax .servlet .ServletConfig ;
37
39
import org .linkeddatafragments .datasource .JenaTDBDataSourceType ;
38
40
import org .linkeddatafragments .datasource .TriplePatternFragment ;
39
41
import org .linkeddatafragments .exceptions .DataSourceException ;
42
+ import org .linkeddatafragments .exceptions .DataSourceNotFoundException ;
40
43
import org .linkeddatafragments .util .CommonResources ;
41
44
import org .linkeddatafragments .util .MIMEParse ;
42
45
@@ -118,7 +121,7 @@ public void init(ServletConfig servletConfig) throws ServletException {
118
121
* @return
119
122
* @throws IOException
120
123
*/
121
- private IDataSource getDataSource (HttpServletRequest request ) throws IOException {
124
+ private IDataSource getDataSource (HttpServletRequest request ) throws DataSourceNotFoundException {
122
125
String contextPath = request .getContextPath ();
123
126
String requestURI = request .getRequestURI ();
124
127
@@ -133,7 +136,7 @@ private IDataSource getDataSource(HttpServletRequest request) throws IOException
133
136
String dataSourceName = path .substring (1 );
134
137
IDataSource dataSource = dataSources .get (dataSourceName );
135
138
if (dataSource == null ) {
136
- throw new IOException ( "Data source not found." );
139
+ throw new DataSourceNotFoundException ( dataSourceName );
137
140
}
138
141
return dataSource ;
139
142
}
@@ -299,8 +302,15 @@ public void doGet(HttpServletRequest request, HttpServletResponse response) thro
299
302
300
303
RDFDataMgr .write (response .getOutputStream (), output , contentType );
301
304
} catch (IOException | URISyntaxException e ) {
302
- e .printStackTrace ();
303
305
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
+ }
304
314
}
305
315
}
306
316
0 commit comments