PSQLException Zero bytes may not occur in string parameters?

0 respostas
thiagonego

Senhores,

Estou tenando fazer uma grande inserção de dados no PostGres.
So que as vezes aparece essa exception.

O que faço?
Ja rodei e nao acho nada…

Segue o código que estou fazendo.

public static Package findPackage(String packageName, Project project){
		
		try {
			
			if(packageName != null && !"".equals(packageName) && project != null && project.getId() != null ){
				
				packageName = packageName.trim();
				
				List<Package> results = null;
				String jpql = "SELECT p FROM Package p WHERE p.name = '"+packageName+"' and p.project.id = "+project.getId();
				
				jpql = jpql.replace('\0', ' ');
				
				System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
				System.out.println(jpql);
				
				Boolean result = false;
				for (int i = 0; i < jpql.length(); i++) {
					char ch = jpql.charAt(i);
					if(ch == '\0')
						result = true;
				}
				
				
				if(result == false){
					Query query = Generator.getInstance().getEntityManager().createQuery(jpql);
					results = query.getResultList();
					
					Package p = null;
					if( results != null ){
						
						for (Package package1 : results) {
							p = package1;
						}
						if (p != null)
							return p;
						
					}
				}				
				
				
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return null;
		
	}
java.lang.IllegalArgumentException: org.postgresql.util.PSQLException: Zero bytes may not occur in string parameters.

at org.postgresql.core.v3.SimpleParameterList.toString(SimpleParameterList.java:163)

at org.postgresql.core.v3.SimpleQuery.toString(SimpleQuery.java:46)

at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2567)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1796)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:407)

at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2708)

at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)

at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)

at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114)

at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)

at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244)

at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2252)

at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2688)

at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)

at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)

at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)

at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)

at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)

at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:64)

at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:996)

at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1141)

at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)

at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:67)

at br.com.seiz.generatorApi.doclets.Generator.findPackage(Generator.java:484)

at br.com.seiz.generatorApi.doclets.Generator.addTreePackages(Generator.java:530)Hibernate: select nextval (SEQ_PACKAGE_ID)
at br.com.seiz.generatorApi.doclets.Generator.start(Generator.java:254)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:215)
at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:91)
at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)
at com.sun.tools.javadoc.Start.begin(Start.java:128)
at com.sun.tools.javadoc.Main.execute(Main.java:41)
at com.sun.tools.javadoc.Main.main(Main.java:31)
javadoc: error - In doclet class br.com.seiz.generatorApi.doclets.Generator,  method start has thrown an exception java.lang.reflect.InvocationTargetException

javax.persistence.PersistenceException: unexpected error when rollbacking

at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:88)

at br.com.seiz.generatorApi.doclets.Generator.start(Generator.java:340)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:215)

at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:91)

at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:340)

at com.sun.tools.javadoc.Start.begin(Start.java:128)

at com.sun.tools.javadoc.Main.execute(Main.java:41)

at com.sun.tools.javadoc.Main.main(Main.java:31)

Caused by: org.hibernate.TransactionException: JDBC rollback failed

at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:204)

at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:85)

 11 more

Caused by: org.postgresql.util.PSQLException: ERRO: transação atual foi interrompida, comandos ignorados até o fim do bloco de transação

at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)

at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)

at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)

at org.postgresql.jdbc2.AbstractJdbc2Connection.executeTransactionCommand(AbstractJdbc2Connection.java:671)

at org.postgresql.jdbc2.AbstractJdbc2Connection.rollback(AbstractJdbc2Connection.java:708)

at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:217)

at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:196)

 12 more
Criado 19 de janeiro de 2010
Respostas 0
Participantes 1