private final EntityProducer getEntityProducerNoDebug(String reference, Reference target) { if (reference.trim().length() == 0) { return null; } String ref = reference; int n = ref.indexOf('/', 1); if (n > 0) { if (ref.charAt(0) == '/') { ref = ref.substring(1, n); } else { ref = ref.substring(0, n); } } if (m_rejectRef.get(ref) != null) { return null; } EntityProducer ep = m_producers.get(ref); if (ep != null) { if (ep.parseEntityReference(reference, target)) { return ep; } } for (Iterator<EntityProducer> iServices = m_producers.values().iterator(); iServices.hasNext(); ) { EntityProducer service = iServices.next(); Calls c = m_performance.get(service); c.iterateStart(); try { if (service.parseEntityReference(reference, target)) { c.iterateMatch(); return service; } } finally { c.iterateEnd(); } } return null; }
private final EntityProducer getEntityProducerWithDebug(String reference, Reference target) { nparse++; long start = System.currentTimeMillis(); try { if (reference.trim().length() == 0) { return null; } if (nparse == 1000) { long t = total; double rate = (1.0 * t) / (1.0 * nparse); nparse = 0; StringBuilder sb = new StringBuilder(); for (Calls c : m_performance.values()) { sb.append("\n ").append(c); } for (String c : m_producers.keySet()) { sb.append("\n [").append(c).append("]").append(m_producers.get(c)); } M_log.debug("EntityManager Montor " + sb.toString()); M_log.info("EntityManager Montor Average " + rate + " ms per parse"); } String ref = reference; int n = ref.indexOf('/', 1); if (n > 0) { if (ref.charAt(0) == '/') { ref = ref.substring(1, n); } else { ref = ref.substring(0, n); } } if (m_rejectRef.get(ref) != null) { return null; } EntityProducer ep = m_producers.get(ref); if (ep != null) { Calls c = m_performance.get(ep); c.lookupStart(); try { if (ep.parseEntityReference(reference, target)) { c.lookupMatch(); return ep; } } finally { c.lookupEnd(); } } M_log.info("Entity Scan for " + ref + " for " + reference); for (Iterator<EntityProducer> iServices = m_producers.values().iterator(); iServices.hasNext(); ) { EntityProducer service = iServices.next(); Calls c = m_performance.get(service); c.iterateStart(); try { if (service.parseEntityReference(reference, target)) { c.iterateMatch(); return service; } } finally { c.iterateEnd(); } } M_log.info( "Nothing Found for " + ref + " for " + reference + " adding " + ref + " to the reject list"); Exception e = new Exception("Traceback"); M_log.info("Traceback ", e); addRejectRef(ref); return null; } finally { total += (System.currentTimeMillis() - start); } }