[overlord-commits] Overlord SVN: r901 - report-server/trunk/core/src/main/java/org/jboss/bpm/report.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Thu Dec 10 09:41:56 EST 2009


Author: heiko.braun at jboss.com
Date: 2009-12-10 09:41:55 -0500 (Thu, 10 Dec 2009)
New Revision: 901

Modified:
   report-server/trunk/core/src/main/java/org/jboss/bpm/report/ReportFacade.java
Log:
Gracefully exit when BIRT not installed

Modified: report-server/trunk/core/src/main/java/org/jboss/bpm/report/ReportFacade.java
===================================================================
--- report-server/trunk/core/src/main/java/org/jboss/bpm/report/ReportFacade.java	2009-12-10 14:36:40 UTC (rev 900)
+++ report-server/trunk/core/src/main/java/org/jboss/bpm/report/ReportFacade.java	2009-12-10 14:41:55 UTC (rev 901)
@@ -62,17 +62,19 @@
   private static final Log log = LogFactory.getLog(ReportFacade.class);
   private BirtService birtService;
   private boolean isInitialized;
+  private boolean initAttempt;
 
-
   public ReportFacade()
   {
     try
     {
-      initBirtService();
+      if(!initAttempt) initBirtService();
     }
     catch (BirtInitException e)
     {
-      log.error("Failed to initialize BIRT service", e);
+      initAttempt = true; // RIFTSAW-111: gracefully exit when BIRT not installed
+      log.warn("Failed to initialize BIRT service. Please check the DEBUG log for further details.");
+      log.debug("Initialization failed", e);
     }
   }
 
@@ -131,6 +133,8 @@
       @Context HttpServletRequest request
   )
   {
+    assertBirtAvailability();
+
     try
     {
       RenderMetaData renderMeta = defaultRenderMetaData(fileName, request);
@@ -148,6 +152,13 @@
     }
   }
 
+  private void assertBirtAvailability()
+  {
+    if(!isInitialized)
+      throw new IllegalStateException("Report server not initialized. " +
+          "Please check the server logs for further details.");
+  }
+
   @POST
   @Path("render/{fileName}")
   @Produces("text/html")
@@ -157,6 +168,9 @@
       @Context HttpServletRequest request
   )
   {
+
+    assertBirtAvailability();
+    
     try
     {
       RenderMetaData renderMeta = defaultRenderMetaData(fileName, request);
@@ -184,6 +198,8 @@
           request
   )
   {
+    assertBirtAvailability();
+    
     String imageDir = birtService.getIntegrationConfig().getImageDirectory();
     String absName = imageDir + fileName;
     File imageFile = new File(absName);
@@ -272,6 +288,8 @@
   @Produces("application/json")
   public Response getReportConfig()
   {
+    assertBirtAvailability();
+    
     List<ReportReference> refs = birtService.getReportReferences();
     String json = new GsonBuilder().create().toJson(refs);
     return Response.ok(json).build();



More information about the overlord-commits mailing list