[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opennms-cvs
Subject:    [opennms-cvs] SF.net SVN: opennms:[15312]
From:       brozow () users ! sourceforge ! net
Date:       2009-11-30 22:49:51
Message-ID: E1NFF43-0001Jd-Qp () c3vjzd1 ! ch3 ! sourceforge ! com
[Download RAW message or body]

Revision: 15312
          http://opennms.svn.sourceforge.net/opennms/?rev=15312&view=rev
Author:   brozow
Date:     2009-11-30 22:49:36 +0000 (Mon, 30 Nov 2009)

Log Message:
-----------
WOTO-352: make sure that an event mapping doesn't match if a value with type 'sql' \
fails to return any rows

Modified Paths:
--------------
    opennms/trunk/opennms-services/src/main/java/org/opennms/netmgt/config/EventTranslatorConfigFactory.java


Modified: opennms/trunk/opennms-services/src/main/java/org/opennms/netmgt/config/EventTranslatorConfigFactory.java
 ===================================================================
--- opennms/trunk/opennms-services/src/main/java/org/opennms/netmgt/config/EventTranslatorConfigFactory.java	2009-11-30 \
                22:41:14 UTC (rev 15311)
+++ opennms/trunk/opennms-services/src/main/java/org/opennms/netmgt/config/EventTranslatorConfigFactory.java	2009-11-30 \
22:49:36 UTC (rev 15312) @@ -643,22 +643,65 @@
 				if (!nestedVal.matches(e))
 					return false;
 			}
-			return true;
+		    
+		    Query query = createQuery(e);
+		    int rowCount = query.execute();
+
+		    if (rowCount < 1) {
+                log().info("No results found for query \
"+query.reproduceStatement()+". No match."); +                return false;
+		    }
+		    
+		    return true;
 		}
+		
+		private class Query {
+		    SingleResultQuerier m_querier;
+		    Object[] m_args;
+		    
+		    Query(SingleResultQuerier querier, Object[] args) {
+		        m_querier = querier;
+		        m_args = args;
+		    }
 
+		    public int getRowCount() {
+		        return m_querier.getCount();
+		    }
+
+		    public int execute() {
+		        m_querier.execute(m_args);
+		        return getRowCount();
+		    }
+		    
+		    public String reproduceStatement() {
+		        return m_querier.reproduceStatement(m_args);
+		    }
+		    
+		    public Object getResult() {
+		        return m_querier.getResult();
+		    }
+		    
+		}
+		
+		public Query createQuery(Event srcEvent) {
+            Object[] args = new Object[getNestedValues().size()];
+            SingleResultQuerier querier = new SingleResultQuerier(m_dbConnFactory, \
m_val.getResult()); +            for (int i = 0; i < args.length; i++) {
+                args[i] = (getNestedValues().get(i)).getResult(srcEvent);
+            }
+            
+            return new Query(querier, args);
+		}
+		
 		public String getResult(Event srcEvent) {
-			SingleResultQuerier querier = new SingleResultQuerier(m_dbConnFactory, \
                m_val.getResult());
-			Object[] args = new Object[getNestedValues().size()];
-			for (int i = 0; i < args.length; i++) {
-				args[i] = (getNestedValues().get(i)).getResult(srcEvent);
-			}
-			querier.execute(args);
-			if (querier.getCount() < 1) {
-				log().info("No results found for query "+querier.reproduceStatement(args)+". \
Returning null"); +		    Query query = createQuery(srcEvent);
+            query.execute();
+			if (query.getRowCount() < 1) {
+                log().info("No results found for query \
"+query.reproduceStatement()+". Returning null");  return null;
 			}
 			else {
-			    Object result = querier.getResult();
+			    Object result = query.getResult();
 			    if (log().isDebugEnabled()) {
 			        log().debug("getResult: result of single result querier is:"+result);
 			    }


This was sent by the SourceForge.net collaborative development platform, the world's \
largest Open Source development site.

------------------------------------------------------------------------------
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing. 
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev
_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/wiki/index.php?page=MailingListFaq
opennms-cvs mailing list

To *unsubscribe* or change your subscription options, see the bottom of this page:
https://lists.sourceforge.net/lists/listinfo/opennms-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic