@@ -26,7 +26,7 @@ import scala.util.{Failure, Sorting, Success, Try}
2626case class Header (name : CharSequence , value : String )
2727
2828class App extends ScalaVerticle {
29-
29+ import App . _
3030 private val HELLO_WORLD = " Hello, world!"
3131 private val HELLO_WORLD_BUFFER = Buffer .buffer(HELLO_WORLD , " UTF-8" )
3232 private val SERVER = " vert.x"
@@ -116,8 +116,7 @@ class App extends ScalaVerticle {
116116 .end(World (row.getInteger(0 ), row.getInteger(1 )).encode())
117117 }
118118 } else {
119- App .logger.error(" Failed to handle request" , ar.cause())
120- request.response.setStatusCode(500 ).end(ar.cause.getMessage)
119+ sendError(request, ar.cause, " Failed to handle Db request" )
121120 }
122121 }
123122 )
@@ -136,7 +135,7 @@ class App extends ScalaVerticle {
136135 if (! failed) {
137136 if (ar.failed) {
138137 failed = true
139- request.response.setStatusCode( 500 ).end( ar.cause.getMessage )
138+ sendError(request, ar.cause, " Failed to handle Queries request " )
140139 return
141140 }
142141 // we need a final reference
@@ -155,11 +154,6 @@ class App extends ScalaVerticle {
155154 }
156155
157156 private def handleUpdates (request : HttpServerRequest ): Unit = {
158- def sendError (err : Throwable ): Unit = {
159- App .logger.error(" " , err)
160- request.response.setStatusCode(500 ).end(err.getMessage)
161- }
162-
163157 def handleUpdates (conn : SqlConnection , worlds : Array [World ]): Unit = {
164158 Sorting .quickSort(worlds)
165159
@@ -170,7 +164,7 @@ class App extends ScalaVerticle {
170164 batch,
171165 (ar : AsyncResult [RowSet [Row ]]) => {
172166 if (ar.failed) {
173- sendError(ar.cause)
167+ sendError(request, ar.cause, " handleUpdates: failed to update DB " )
174168 return
175169 }
176170
@@ -197,7 +191,7 @@ class App extends ScalaVerticle {
197191 if (! failed) {
198192 if (ar2.failed) {
199193 failed = true
200- sendError(ar2.cause)
194+ sendError(request, ar2.cause, " handleUpdates: failed to read DB " )
201195 return
202196 }
203197 worlds(index) = World (ar2.result.iterator.next.getInteger(0 ), App .randomWorld())
@@ -206,7 +200,6 @@ class App extends ScalaVerticle {
206200 }
207201 }
208202 )
209-
210203 i += 1
211204 }
212205 }
@@ -230,9 +223,7 @@ class App extends ScalaVerticle {
230223 responseWithHeaders(request.response, contentTypeHtml)
231224 .end(html.fortune(fortunes).body)
232225 } else {
233- val err = ar.cause
234- App .logger.error(" " , err)
235- response.setStatusCode(500 ).end(err.getMessage)
226+ sendError(request, ar.cause, " handleFortunes failed to update DB" )
236227 }
237228 }
238229 )
@@ -241,9 +232,9 @@ class App extends ScalaVerticle {
241232
242233object App {
243234 val logger : Logger = Logger [App ]
244-
235+ val defaultConfigPath = " src/main/conf/config.json "
245236 def main (args : Array [String ]): Unit = {
246- val config = new JsonObject (Files .readString(new File (args(0 )).toPath))
237+ val config = new JsonObject (Files .readString(new File (if (args.length < 1 ) defaultConfigPath else args(0 )).toPath))
247238 val vertx = Vertx .vertx(VertxOptions ().setPreferNativeTransport(true ))
248239
249240 printConfig(vertx)
@@ -299,4 +290,9 @@ object App {
299290 logger.info(" Event Loop Size: {}" , JVertxOptions .DEFAULT_EVENT_LOOP_POOL_SIZE )
300291 logger.info(" Native transport: {}" , vertx.isNativeTransportEnabled)
301292 }
293+
294+ def sendError (request : HttpServerRequest , err : Throwable , msg : String = " " ): Unit = {
295+ App .logger.error(msg, err)
296+ request.response.setStatusCode(500 ).end(err.getMessage)
297+ }
302298}
0 commit comments