[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