File upload não persiste os dados no banco

Estou com uma aplicação primefaces 3.5 jsf 2.1 e jpa 2.0 . Estou fazendo o upload de um arquivo em que não faz a persistencia no banco mas os outputs no console estão ok. não entendi ainda porque não está comitando. algém faz ideia ? vou postar o codigo do bean:

public class FileBean implements Serializable {

private static final long serialVersionUID = 1L;

private String diretorioDestino = "c:\\temp\\";

@Inject
private EntityManager manager;

private UploadedFile uploadedFile;

public UploadedFile getFile() {
	return uploadedFile;
}

public void setFile(UploadedFile uploadedFile) {
	this.uploadedFile = uploadedFile;
}

public void handleFileUpload(FileUploadEvent event) throws IOException {

	this.uploadedFile = event.getFile();

	
}

@SuppressWarnings("unchecked")
public void send() throws IOException {

	if (getFile() == null) {
		FacesUtil.addErrorMessage(FacesUtil.getMensagemI18n("escolher_arquivo"));

	} else {
		String nomeArquivo = uploadedFile.getFileName().substring(uploadedFile.getFileName().lastIndexOf("\\") + 1);
		
		XStream ler = new XStream(new DomDriver());
		ler.alias("lista", List.class);
		ler.alias("historico", Historico.class);
		ler.alias("produto", Produto.class);

		List<Produto> listaProduto = (List<Produto>) ler
				.fromXML(new InputStreamReader(uploadedFile.getInputstream()));

		List<Historico> invertida = new ArrayList<Historico>();
		// Collections.reverse(invertida);
		// for (Object objeto : invertida) {
		// System.out.println(objeto);

		for (Iterator<Produto> p = listaProduto.iterator(); p.hasNext();) {

			Produto prod = p.next();
			System.out.println(prod.getCodigoProduto() == null ? "Erro" : prod.getCodigoProduto());
			System.out.println(prod.getDescricao());

			for (Iterator<Historico> h = prod.getHistoricos().iterator(); h.hasNext();) {

				Historico hist = h.next();

				System.out.println(hist.getMesesHistoricos() == null ? "Errro" : hist.getMesesHistoricos());
				System.out.println(hist.getQuantidade());

				// prod.getHistoricos().add(hist);
				invertida.add(hist);

			}
			Collections.reverse(invertida); // lista invertida para calcular
											// o alfa

			for (Historico hist : invertida) {
				System.out.println(hist.getMesesHistoricos() == null ? "Errro" : hist.getMesesHistoricos());
				System.out.println(hist.getQuantidade());
			}

			// prod.setFatorAmortecimentoExponencial(fatorAmortecimentoExponencial);
			manager.persist(prod);// persistir após calcular o alfa

		}

		//Upload(nomeArquivo, uploadedFile.getInputstream());

		FacesUtil.addInfoMessage(FacesUtil.getMensagemI18n("arquivo_processado") + " : " + nomeArquivo);

	}
}

e o codigo do xhtml

<h:form enctype=“multipart/form-data”>

					<p:fileUpload id="import" value="#{fileBean.file}" mode="single" label="Enviar" 
						auto="true" fileUploadListener="#{fileBean.handleFileUpload}"
						invalidFileMessage="#{msg.somente_excel}"
						allowTypes="/(\.|\/)(xml)$/" />

					<p:commandButton id="saveBtn" value="Processar" ajax="false"
						
						action="#{fileBean.send}"
						>

					</p:commandButton>
					<p:dialog widgetVar="importaDlg" id="idimportaDlg" height="200"
						header="Realizando Importação" width="400" modal="true"
						closable="false" draggable="false" resizable="false">
						<p:panelGrid columns="1" styleClass="semBorda">
							<h:outputText value="#{msg.aguarde}" />
							<p:graphicImage library="images" name="ajax-loading-bar.png" />
						</p:panelGrid>
					</p:dialog>
				
			</h:form>