[jboss-svn-commits] JBL Code SVN: r32783 - in labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server: util and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri May 7 10:31:00 EDT 2010
Author: eaa
Date: 2010-05-07 10:30:59 -0400 (Fri, 07 May 2010)
New Revision: 32783
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java
Log:
GUVNOR-536 Improve error messages when verifier fails
- ServiceImplementation: Verifier Runtime Exception is converted to a Serializable exception
- VerifierRunner: Now checks for errors after running verifier process and throw a RuntimeException if it finds any.
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2010-05-07 14:22:14 UTC (rev 32782)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2010-05-07 14:30:59 UTC (rev 32783)
@@ -2262,9 +2262,15 @@
throw new DetailedSerializableException( "Unable to load a required class.",
e.getMessage() );
} catch ( ConsequenceException e ) {
- log.error( "There was an error executing the consequence of rule [" + e.getRule().getName() + "]: " + e.getMessage() );
- throw new DetailedSerializableException( "There was an error executing the consequence of rule [" + e.getRule().getName() + "]",
- e.getMessage() );
+ String messageShort = "There was an error executing the consequence of rule [" + e.getRule().getName() + "]";
+ String messageLong = e.getMessage();
+ if (e.getCause() != null){
+ messageLong += "\nCAUSED BY "+e.getCause().getMessage();
+ }
+
+ log.error( messageShort+": "+messageLong );
+ throw new DetailedSerializableException( messageShort,
+ messageLong );
} catch ( Exception e ) {
log.error( "Unable to run the scenario: " + e.getMessage() );
throw new DetailedSerializableException( "Unable to run the scenario.",
@@ -2911,14 +2917,18 @@
if ( log.isDebugEnabled() ) {
log.debug( "constraints rules: " + constraintRules );
}
- if ( AssetFormats.DECISION_TABLE_GUIDED.equals( asset.metaData.format ) || AssetFormats.DECISION_SPREADSHEET_XLS.equals( asset.metaData.format ) ) {
- return runner.verify( drl,
- VerifierConfiguration.VERIFYING_SCOPE_DECISION_TABLE,
- constraintRules );
- } else {
- return runner.verify( drl,
- VerifierConfiguration.VERIFYING_SCOPE_SINGLE_RULE,
- constraintRules );
+ try{
+ if ( AssetFormats.DECISION_TABLE_GUIDED.equals( asset.metaData.format ) || AssetFormats.DECISION_SPREADSHEET_XLS.equals( asset.metaData.format ) ) {
+ return runner.verify( drl,
+ VerifierConfiguration.VERIFYING_SCOPE_DECISION_TABLE,
+ constraintRules );
+ } else {
+ return runner.verify( drl,
+ VerifierConfiguration.VERIFYING_SCOPE_SINGLE_RULE,
+ constraintRules );
+ }
+ } catch (Throwable t){
+ throw new SerializableException( t.getMessage() );
}
}
}
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java 2010-05-07 14:22:14 UTC (rev 32782)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java 2010-05-07 14:30:59 UTC (rev 32783)
@@ -18,6 +18,7 @@
import org.drools.verifier.Verifier;
import org.drools.verifier.VerifierConfiguration;
import org.drools.verifier.VerifierConfigurationImpl;
+import org.drools.verifier.VerifierError;
import org.drools.verifier.builder.VerifierBuilderFactory;
import org.drools.verifier.data.VerifierReport;
@@ -38,12 +39,12 @@
verifier.addResourcesToVerify( ResourceFactory.newReaderResource( new StringReader( drl ) ),
ResourceType.DRL );
- verifier.fireAnalysis();
- VerifierReport res = verifier.getResult();
+ VerifierReport res = fireAnalysis();
return VerifierReportCreator.doReport( res );
}
+
public AnalysisReport verify(PackageItem packageItem,
String scope, Collection<String> additionalVerifierRules) {
this.packageItem = packageItem;
@@ -66,13 +67,27 @@
addToRulesVerifier();
- verifier.fireAnalysis();
+ this.fireAnalysis();
VerifierReport report = verifier.getResult();
return VerifierReportCreator.doReport( report );
}
+ private VerifierReport fireAnalysis() throws RuntimeException {
+ verifier.fireAnalysis();
+ if (verifier.hasErrors()) {
+ StringBuilder message = new StringBuilder("Verifier Errors:\n");
+ for (VerifierError verifierError : verifier.getErrors()) {
+ message.append("\t");
+ message.append(verifierError.getMessage());
+ message.append("\n");
+ }
+ throw new RuntimeException(message.toString());
+ }
+ return verifier.getResult();
+ }
+
private void initVerifier(String scope, Collection<String> additionalVerifierRules) {
VerifierConfiguration conf = new DefaultVerifierConfiguration();
if(useDefaultConfig){
More information about the jboss-svn-commits
mailing list