Project

General

Profile

« Previous | Next » 

Revision 40707

do not eat exceptions!

View differences:

modules/dnet-actionmanager-common/trunk/src/main/java/eu/dnetlib/actionmanager/actions/XsltInfoPackageAction.java
71 71
						puts.addAll(action.asPutOperations(getRowKey(), provenance, trust, nsprefix));
72 72
					}
73 73
				}
74
			} catch (Exception e) {
74
			} catch (Throwable e) {
75 75
				log.error("Error generating actions", e);
76 76
				throw new ActionManagerException(e);
77 77
			}
......
79 79
		return puts;
80 80
	}
81 81

  
82
	public List<AtomicAction> asAtomicActions() {
82
	public List<AtomicAction> asAtomicActions() throws TransformerException, DocumentException {
83 83
		return Lists.newArrayList(Iterables.filter(calculateAtomicActions(), new Predicate<AtomicAction>() {
84 84
			@Override
85 85
			public boolean apply(final AtomicAction action) {
......
103 103
		return result.getDocument();
104 104
	}
105 105

  
106
	protected List<AtomicAction> calculateAtomicActions() {
106
	protected List<AtomicAction> calculateAtomicActions() throws TransformerException, DocumentException {
107 107
		final List<AtomicAction> list = Lists.newArrayList();
108 108

  
109
		try {
110
			Document doc = applyXslt(getInfoPackage(), provenance, trust, nsprefix);
111
			for (Object o : doc.selectNodes("//ACTION")) {
112
				list.add(createAtomicAction((Element) o));
113
			}
114
		} catch (Exception e) {
115
			log.error("Error generating actions", e);
109
		final Document doc = applyXslt(getInfoPackage(), provenance, trust, nsprefix);
110
		for (Object o : doc.selectNodes("//ACTION")) {
111
			list.add(createAtomicAction((Element) o));
116 112
		}
117 113

  
118 114
		return list;
modules/dnet-actionmanager-common/trunk/src/main/java/eu/dnetlib/actionmanager/actions/ActionFactory.java
2 2

  
3 3
import java.util.List;
4 4
import java.util.Map;
5

  
6 5
import javax.xml.transform.Transformer;
7 6
import javax.xml.transform.TransformerFactory;
8 7

  
8
import com.google.common.collect.Lists;
9
import eu.dnetlib.actionmanager.common.Agent;
10
import eu.dnetlib.actionmanager.common.Operation;
11
import eu.dnetlib.actionmanager.common.Provenance;
12
import eu.dnetlib.actionmanager.rmi.ActionManagerException;
13
import eu.dnetlib.data.proto.TypeProtos.Type;
14
import eu.dnetlib.miscutils.datetime.DateUtils;
9 15
import org.apache.commons.logging.Log;
10 16
import org.apache.commons.logging.LogFactory;
11 17
import org.dom4j.Document;
......
14 20
import org.springframework.beans.factory.annotation.Required;
15 21
import org.springframework.core.io.Resource;
16 22

  
17
import com.google.common.collect.Lists;
18

  
19
import eu.dnetlib.actionmanager.common.Agent;
20
import eu.dnetlib.actionmanager.common.Operation;
21
import eu.dnetlib.actionmanager.common.Provenance;
22
import eu.dnetlib.actionmanager.rmi.ActionManagerException;
23
import eu.dnetlib.data.proto.TypeProtos.Type;
24
import eu.dnetlib.miscutils.datetime.DateUtils;
25

  
26 23
/**
27 24
 * Factory bean to create Actions bypassing the Action Manager API
28 25
 * 
......
31 28
public class ActionFactory {
32 29

  
33 30
	private static final Log log = LogFactory.getLog(ActionFactory.class);
34

  
31
	final TransformerFactory tFactory = TransformerFactory.newInstance();
35 32
	private Map<String, Resource> xslts;
36 33

  
37
	final TransformerFactory tFactory = TransformerFactory.newInstance();
38

  
39 34
	/**
40 35
	 * Creates a list of AtomicAction(s) to handle an UPDATE. Produces one Oaf, stored in CF = [entity]:update_[timestamp]
41 36
	 * 
......
58 53
			final String originalId,
59 54
			final Type entityType,
60 55
			final byte[] updateContent) {
61
		List<AtomicAction> res = Lists.newArrayList();
56
		final List<AtomicAction> res = Lists.newArrayList();
62 57

  
63 58
		res.add(createAtomicAction(set, agent, originalId, entityType.toString(), "update_" + DateUtils.now(), updateContent));
64 59

  
......
71 66
			final String targetColFamily,
72 67
			final String targetCol,
73 68
			final byte[] targetContent) {
74
		AtomicAction action = new AtomicAction(set, agent);
69
		final AtomicAction action = new AtomicAction(set, agent);
75 70

  
76 71
		action.setTargetRowKey(targetKey);
77 72
		action.setTargetColumnFamily(targetColFamily);
......
105 100
				log.debug("xslt: \n" + doc.asXML());
106 101
			}
107 102
			return tFactory.newTransformer(new DocumentSource(doc));
108
		} catch (Exception e) {
103
		} catch (final Throwable e) {
109 104
			throw new ActionManagerException("Problem with xslt resource " + xsltName, e);
110 105
		}
111 106
	}

Also available in: Unified diff