java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: can't parse argument number

Apache's JIRA Issue Tracker | Tobias Rho | 8 years ago
tip
Your exception is missing from the Samebug knowledge base.
Here are the best solutions we found on the Internet.
Click on the to mark the helpful solution and get rewards for you help.
  1. 0

    [OPENEJB-950] Turning on transaction logging results in the IllegalArgumentException: can't parse argument number - ASF JIRA

    apache.org | 1 year ago
    java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: can't parse argument number
  2. 0

    Hello OpenEJB Developers! I am using OpenEJB embedded in a wicket web application running on Jetty. Now I wanted to trace JPA / JTA operations in my test environment and turned the "transaction" logging level to "debug". Here are the relevant snippets from my configuration: ====== Turned on external logging configuration in test case setup ========= .... System.setProperty("openejb.logger.external", "true"); p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory"); .... ====== Extract from my log4j.properties file ======== log4j.rootLogger = fatal,C ... log4j.category.Transaction = debug ... log4j.appender.C = org.apache.log4j.ConsoleAppender log4j.appender.C.layout = org.apache.log4j.SimpleLayout ======================================= This led to an endless loop in the method org.apache.openejb.util.Memoizer.compute(..) on several debug messages emitted by the class org.apache.openejb.core.transaction.JtaTransactionPolicy. Here is an example message copied from the source code: JtaTransactionPolicy.beginTransaction(JtaTransactionPolicy.java:235) txLogger.debug("TX {}: Started transaction {}", transactionType, transaction); The message key (ok, this cannot be a key anyway) is not found in \openejb-core-3.1.jar\org\apache\openejb\util\resources\Messages.properties so "TX {}: Started transaction {}" is passed on to java.text.MessageFormat. But MessageFormat.makeFormat(..) expects arguments numbers in the braces and throws an IllegalArgumentException. I solved the problem for myself by replacing all occurences of "{}" in all debug messages in this file (see below) and copied the resulting class to openejb-core-3.1.jar. Maybe the reason for this bug is that I my JDK version is not compatible? makeFormat(..) could have had a default behaviour replacing all {} with {<{} position>} in a JDK < 1.5....? Anyway, replacing JtaTransactionPolicy with my variant would be helpful for my configuration. ============ Stack Trace ============= java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: can't parse argument number at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:205) at java.util.concurrent.FutureTask.get(FutureTask.java:80) at org.apache.openejb.util.Memoizer.compute(Memoizer.java:53) at org.apache.openejb.util.Logger.formatMessage(Logger.java:185) at org.apache.openejb.util.Logger.debug(Logger.java:234) at org.apache.openejb.core.transaction.JtaTransactionPolicy.beginTransaction(JtaTransactionPolicy.java:235) at org.apache.openejb.core.transaction.TxRequired.<init>(TxRequired.java:54) at org.apache.openejb.core.transaction.JtaTransactionPolicyFactory.createTransactionPolicy(JtaTransactionPolicyFactory.java:36) at org.apache.openejb.core.transaction.EjbTransactionUtil.createTransactionPolicy(EjbTransactionUtil.java:55) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:200) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:169) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:286) at $Proxy28.getUserFor(Unknown Source) 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 org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:416) at org.apache.wicket.proxy.$Proxy27.getUserFor(Unknown Source) at de.trho.login.CreateUserAccountPage$1.onValidate(CreateUserAccountPage.java:89) ... Caused by: java.lang.IllegalArgumentException: can't parse argument number at java.text.MessageFormat.makeFormat(MessageFormat.java:1330) at java.text.MessageFormat.applyPattern(MessageFormat.java:450) at java.text.MessageFormat.<init>(MessageFormat.java:350) at org.apache.openejb.util.Logger$4.compute(Logger.java:108) at org.apache.openejb.util.Logger$4.compute(Logger.java:107) at org.apache.openejb.util.Memoizer$1.call(Memoizer.java:42) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) at java.util.concurrent.FutureTask.run(FutureTask.java:123) at org.apache.openejb.util.Memoizer.compute(Memoizer.java:49) ... 60 more ================ Modified JtaTransactionPolicy File ======================= /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.openejb.core.transaction; import java.rmi.RemoteException; import java.util.Map; import java.util.LinkedHashMap; import java.util.List; import java.util.LinkedList; import java.util.ArrayList; import javax.transaction.HeuristicMixedException; import javax.transaction.HeuristicRollbackException; import javax.transaction.InvalidTransactionException; import javax.transaction.RollbackException; import javax.transaction.Status; import javax.transaction.Transaction; import javax.transaction.TransactionManager; import javax.transaction.TransactionSynchronizationRegistry; import javax.transaction.Synchronization; import javax.transaction.xa.XAResource; import org.apache.openejb.ApplicationException; import org.apache.openejb.SystemException; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; public abstract class JtaTransactionPolicy implements TransactionPolicy { protected final static Logger logger = Logger.getInstance(LogCategory.OPENEJB, "org.apache.openejb.util.resources"); protected final static Logger txLogger = Logger.getInstance(LogCategory.TRANSACTION, "org.apache.openejb.util.resources"); protected final TransactionType transactionType; protected final TransactionManager transactionManager; private final TransactionSynchronizationRegistry synchronizationRegistry; private Map<Object,Object> resources; private final List<TransactionSynchronization> synchronizations = new LinkedList<TransactionSynchronization>(); private boolean rollbackOnly; public JtaTransactionPolicy(TransactionType transactionType, TransactionManager transactionManager) { this.transactionType = transactionType; this.transactionManager = transactionManager; synchronizationRegistry = SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class); } public TransactionType getTransactionType() { return transactionType; } protected abstract Transaction getCurrentTrasaction(); public boolean isTransactionActive() { Transaction trasaction = getCurrentTrasaction(); if (trasaction == null) { return false; } try { int status = trasaction.getStatus(); return status == Status.STATUS_ACTIVE || status == Status.STATUS_MARKED_ROLLBACK; } catch (javax.transaction.SystemException e) { return false; } } public boolean isRollbackOnly() { Transaction trasaction = getCurrentTrasaction(); if (trasaction != null) { try { int status = trasaction.getStatus(); return status == Status.STATUS_MARKED_ROLLBACK; } catch (javax.transaction.SystemException e) { return false; } } else { return rollbackOnly; } } public void setRollbackOnly() { Transaction trasaction = getCurrentTrasaction(); if (trasaction != null) { setRollbackOnly(trasaction); } else { rollbackOnly = true; } } public Object getResource(Object key) { if (isTransactionActive()) { return synchronizationRegistry.getResource(key); } if (resources == null) { return null; } return resources.get(key); } public void putResource(Object key, Object value) { if (isTransactionActive()) { synchronizationRegistry.putResource(key, value); } if (resources == null) { resources = new LinkedHashMap<Object,Object>(); } resources.put(key, value); } public Object removeResource(Object key) { if (isTransactionActive()) { Object value = synchronizationRegistry.getResource(key); synchronizationRegistry.putResource(key, null); return value; } if (resources == null) { return null; } return resources.remove(key); } public void registerSynchronization(final TransactionSynchronization synchronization) { if (isTransactionActive()) { synchronizationRegistry.registerInterposedSynchronization(new Synchronization() { public void beforeCompletion() { synchronization.beforeCompletion(); } public void afterCompletion(int s) { TransactionSynchronization.Status status; if (s == Status.STATUS_COMMITTED) { status = TransactionSynchronization.Status.COMMITTED; } else if (s == Status.STATUS_ROLLEDBACK) { status = TransactionSynchronization.Status.ROLLEDBACK; } else { status = TransactionSynchronization.Status.UNKNOWN; } synchronization.afterCompletion(status); } }); } else { synchronizations.add(synchronization); } } protected void fireNonTransactionalCompletion() { for (TransactionSynchronization synchronization : new ArrayList<TransactionSynchronization>(synchronizations)) { try { synchronization.beforeCompletion(); } catch (Throwable e) { logger.error("Exception thrown from beforeCompletion() of TransactionSynchronization " + synchronization); } } TransactionSynchronization.Status status = isRollbackOnly() ? TransactionSynchronization.Status.ROLLEDBACK : TransactionSynchronization.Status.COMMITTED; for (TransactionSynchronization synchronization : new ArrayList<TransactionSynchronization>(synchronizations)) { try { synchronization.afterCompletion(status); } catch (Exception e) { logger.error("Exception thrown from afterCompletion(" + status + ") of TransactionSynchronization " + synchronization); } } } public void enlistResource(XAResource xaResource) throws SystemException { Transaction transaction = getCurrentTrasaction(); if (transaction != null) { try { if (transaction.enlistResource(xaResource)) { return; } } catch (Exception e) { throw new SystemException("Unable to enlist xa resource in the transaction", e); } } throw new SystemException("Unable to enlist xa resource in the transaction"); } public String toString() { return transactionType.toString(); } protected Transaction getTransaction() throws SystemException { try { return transactionManager.getTransaction(); } catch (javax.transaction.SystemException e) { txLogger.error("The Transaction Manager has encountered an unexpected error condition while attempting to obtain current transaction: {0}", e.getMessage()); throw new SystemException(e); } } protected void setRollbackOnly(Transaction tx) { try { if (tx != null && tx.getStatus() == Status.STATUS_ACTIVE) { tx.setRollbackOnly(); txLogger.debug("TX {0}: setRollbackOnly() on transaction {1}", transactionType, tx); } } catch (Exception e) { txLogger.error("Exception during setRollbackOnly()", e); throw new IllegalStateException("No transaction active", e); } } protected Transaction beginTransaction() throws SystemException { Transaction transaction; try { transactionManager.begin(); transaction = transactionManager.getTransaction(); } catch (Exception e) { txLogger.error("The Transaction Manager has encountered an unexpected error condition while attempting to begin a new transaction: {0}", e.getMessage()); throw new SystemException(e); } if (transaction == null) { throw new SystemException("Failed to begin a new transaction"); } txLogger.debug("TX {0}: Started transaction {1}", transactionType, transaction); return transaction; } protected Transaction suspendTransaction() throws SystemException { try { Transaction tx = transactionManager.suspend(); txLogger.info("TX {0}: Suspended transaction {1}", transactionType, tx); return tx; } catch (javax.transaction.SystemException se) { txLogger.error("Exception during suspend()", se); throw new SystemException(se); } } protected void resumeTransaction(Transaction tx) throws SystemException { try { if (tx == null) { txLogger.debug("TX {0}: No transaction to resume", transactionType); } else { txLogger.debug("TX {0}: Resuming transaction {1}",transactionType, tx); transactionManager.resume(tx); } } catch (InvalidTransactionException ite) { txLogger.error("Could not resume the client's transaction, the transaction is no longer valid: {}", ite.getMessage()); throw new SystemException(ite); } catch (IllegalStateException e) { txLogger.error("Could not resume the client's transaction: {0}", e.getMessage()); throw new SystemException(e); } catch (javax.transaction.SystemException e) { txLogger.error("Could not resume the client's transaction: The transaction reported a system exception: {0}", e.getMessage()); throw new SystemException(e); } } protected void completeTransaction(Transaction tx) throws SystemException, ApplicationException { boolean shouldRollback; try { shouldRollback = tx.getStatus() != Status.STATUS_ACTIVE; } catch (javax.transaction.SystemException e) { txLogger.error("The Transaction Manager has encountered an unexpected error condition while attempting to obtain transaction status: {0}", e.getMessage()); throw new SystemException(e); } if (shouldRollback) { rollbackTransaction(tx); return; } try { txLogger.debug("TX {0}: Committing transaction {1}", transactionType, tx); if (tx.equals(transactionManager.getTransaction())) { transactionManager.commit(); } else { tx.commit(); } } catch (RollbackException e) { txLogger.debug("The transaction has been rolled back rather than commited: {0}", e.getMessage()); Throwable txe = new TransactionRolledbackException("Transaction was rolled back, presumably because setRollbackOnly was called during a synchronization").initCause(e); throw new ApplicationException(txe); } catch (HeuristicMixedException e) { txLogger.debug("A heuristic decision was made, some relevant updates have been committed while others have been rolled back: {0}", e.getMessage()); throw new ApplicationException(new RemoteException("A heuristic decision was made, some relevant updates have been committed while others have been rolled back").initCause(e)); } catch (HeuristicRollbackException e) { txLogger.debug("A heuristic decision was made while commiting the transaction, some relevant updates have been rolled back: {0}", e.getMessage()); throw new ApplicationException(new RemoteException("A heuristic decision was made while commiting the transaction, some relevant updates have been rolled back").initCause(e)); } catch (SecurityException e) { txLogger.error("The current thread is not allowed to commit the transaction: {0}", e.getMessage()); throw new SystemException(e); } catch (IllegalStateException e) { txLogger.error("The current thread is not associated with a transaction: {0}", e.getMessage()); throw new SystemException(e); } catch (javax.transaction.SystemException e) { txLogger.error("The Transaction Manager has encountered an unexpected error condition while attempting to commit the transaction: {0}", e.getMessage()); throw new SystemException(e); } } protected void rollbackTransaction(Transaction tx) throws SystemException { try { txLogger.debug("TX {0}: Rolling back transaction {1}", transactionType, tx); if (tx.equals(transactionManager.getTransaction())) { transactionManager.rollback(); } else { tx.rollback(); } } catch (IllegalStateException e) { logger.error("The TransactionManager reported an exception while attempting to rollback the transaction: " + e.getMessage()); throw new SystemException(e); } catch (javax.transaction.SystemException e) { logger.error("The TransactionManager reported an exception while attempting to rollback the transaction: " + e.getMessage()); throw new SystemException(e); } } }

    Apache's JIRA Issue Tracker | 8 years ago | Tobias Rho
    java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: can't parse argument number
  3. 0

    Hello OpenEJB Developers! I am using OpenEJB embedded in a wicket web application running on Jetty. Now I wanted to trace JPA / JTA operations in my test environment and turned the "transaction" logging level to "debug". Here are the relevant snippets from my configuration: ====== Turned on external logging configuration in test case setup ========= .... System.setProperty("openejb.logger.external", "true"); p.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.client.LocalInitialContextFactory"); .... ====== Extract from my log4j.properties file ======== log4j.rootLogger = fatal,C ... log4j.category.Transaction = debug ... log4j.appender.C = org.apache.log4j.ConsoleAppender log4j.appender.C.layout = org.apache.log4j.SimpleLayout ======================================= This led to an endless loop in the method org.apache.openejb.util.Memoizer.compute(..) on several debug messages emitted by the class org.apache.openejb.core.transaction.JtaTransactionPolicy. Here is an example message copied from the source code: JtaTransactionPolicy.beginTransaction(JtaTransactionPolicy.java:235) txLogger.debug("TX {}: Started transaction {}", transactionType, transaction); The message key (ok, this cannot be a key anyway) is not found in \openejb-core-3.1.jar\org\apache\openejb\util\resources\Messages.properties so "TX {}: Started transaction {}" is passed on to java.text.MessageFormat. But MessageFormat.makeFormat(..) expects arguments numbers in the braces and throws an IllegalArgumentException. I solved the problem for myself by replacing all occurences of "{}" in all debug messages in this file (see below) and copied the resulting class to openejb-core-3.1.jar. Maybe the reason for this bug is that I my JDK version is not compatible? makeFormat(..) could have had a default behaviour replacing all {} with {<{} position>} in a JDK < 1.5....? Anyway, replacing JtaTransactionPolicy with my variant would be helpful for my configuration. ============ Stack Trace ============= java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: can't parse argument number at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:205) at java.util.concurrent.FutureTask.get(FutureTask.java:80) at org.apache.openejb.util.Memoizer.compute(Memoizer.java:53) at org.apache.openejb.util.Logger.formatMessage(Logger.java:185) at org.apache.openejb.util.Logger.debug(Logger.java:234) at org.apache.openejb.core.transaction.JtaTransactionPolicy.beginTransaction(JtaTransactionPolicy.java:235) at org.apache.openejb.core.transaction.TxRequired.<init>(TxRequired.java:54) at org.apache.openejb.core.transaction.JtaTransactionPolicyFactory.createTransactionPolicy(JtaTransactionPolicyFactory.java:36) at org.apache.openejb.core.transaction.EjbTransactionUtil.createTransactionPolicy(EjbTransactionUtil.java:55) at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:200) at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:169) at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217) at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77) at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:286) at $Proxy28.getUserFor(Unknown Source) 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 org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:416) at org.apache.wicket.proxy.$Proxy27.getUserFor(Unknown Source) at de.trho.login.CreateUserAccountPage$1.onValidate(CreateUserAccountPage.java:89) ... Caused by: java.lang.IllegalArgumentException: can't parse argument number at java.text.MessageFormat.makeFormat(MessageFormat.java:1330) at java.text.MessageFormat.applyPattern(MessageFormat.java:450) at java.text.MessageFormat.<init>(MessageFormat.java:350) at org.apache.openejb.util.Logger$4.compute(Logger.java:108) at org.apache.openejb.util.Logger$4.compute(Logger.java:107) at org.apache.openejb.util.Memoizer$1.call(Memoizer.java:42) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) at java.util.concurrent.FutureTask.run(FutureTask.java:123) at org.apache.openejb.util.Memoizer.compute(Memoizer.java:49) ... 60 more ================ Modified JtaTransactionPolicy File ======================= /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.openejb.core.transaction; import java.rmi.RemoteException; import java.util.Map; import java.util.LinkedHashMap; import java.util.List; import java.util.LinkedList; import java.util.ArrayList; import javax.transaction.HeuristicMixedException; import javax.transaction.HeuristicRollbackException; import javax.transaction.InvalidTransactionException; import javax.transaction.RollbackException; import javax.transaction.Status; import javax.transaction.Transaction; import javax.transaction.TransactionManager; import javax.transaction.TransactionSynchronizationRegistry; import javax.transaction.Synchronization; import javax.transaction.xa.XAResource; import org.apache.openejb.ApplicationException; import org.apache.openejb.SystemException; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; public abstract class JtaTransactionPolicy implements TransactionPolicy { protected final static Logger logger = Logger.getInstance(LogCategory.OPENEJB, "org.apache.openejb.util.resources"); protected final static Logger txLogger = Logger.getInstance(LogCategory.TRANSACTION, "org.apache.openejb.util.resources"); protected final TransactionType transactionType; protected final TransactionManager transactionManager; private final TransactionSynchronizationRegistry synchronizationRegistry; private Map<Object,Object> resources; private final List<TransactionSynchronization> synchronizations = new LinkedList<TransactionSynchronization>(); private boolean rollbackOnly; public JtaTransactionPolicy(TransactionType transactionType, TransactionManager transactionManager) { this.transactionType = transactionType; this.transactionManager = transactionManager; synchronizationRegistry = SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class); } public TransactionType getTransactionType() { return transactionType; } protected abstract Transaction getCurrentTrasaction(); public boolean isTransactionActive() { Transaction trasaction = getCurrentTrasaction(); if (trasaction == null) { return false; } try { int status = trasaction.getStatus(); return status == Status.STATUS_ACTIVE || status == Status.STATUS_MARKED_ROLLBACK; } catch (javax.transaction.SystemException e) { return false; } } public boolean isRollbackOnly() { Transaction trasaction = getCurrentTrasaction(); if (trasaction != null) { try { int status = trasaction.getStatus(); return status == Status.STATUS_MARKED_ROLLBACK; } catch (javax.transaction.SystemException e) { return false; } } else { return rollbackOnly; } } public void setRollbackOnly() { Transaction trasaction = getCurrentTrasaction(); if (trasaction != null) { setRollbackOnly(trasaction); } else { rollbackOnly = true; } } public Object getResource(Object key) { if (isTransactionActive()) { return synchronizationRegistry.getResource(key); } if (resources == null) { return null; } return resources.get(key); } public void putResource(Object key, Object value) { if (isTransactionActive()) { synchronizationRegistry.putResource(key, value); } if (resources == null) { resources = new LinkedHashMap<Object,Object>(); } resources.put(key, value); } public Object removeResource(Object key) { if (isTransactionActive()) { Object value = synchronizationRegistry.getResource(key); synchronizationRegistry.putResource(key, null); return value; } if (resources == null) { return null; } return resources.remove(key); } public void registerSynchronization(final TransactionSynchronization synchronization) { if (isTransactionActive()) { synchronizationRegistry.registerInterposedSynchronization(new Synchronization() { public void beforeCompletion() { synchronization.beforeCompletion(); } public void afterCompletion(int s) { TransactionSynchronization.Status status; if (s == Status.STATUS_COMMITTED) { status = TransactionSynchronization.Status.COMMITTED; } else if (s == Status.STATUS_ROLLEDBACK) { status = TransactionSynchronization.Status.ROLLEDBACK; } else { status = TransactionSynchronization.Status.UNKNOWN; } synchronization.afterCompletion(status); } }); } else { synchronizations.add(synchronization); } } protected void fireNonTransactionalCompletion() { for (TransactionSynchronization synchronization : new ArrayList<TransactionSynchronization>(synchronizations)) { try { synchronization.beforeCompletion(); } catch (Throwable e) { logger.error("Exception thrown from beforeCompletion() of TransactionSynchronization " + synchronization); } } TransactionSynchronization.Status status = isRollbackOnly() ? TransactionSynchronization.Status.ROLLEDBACK : TransactionSynchronization.Status.COMMITTED; for (TransactionSynchronization synchronization : new ArrayList<TransactionSynchronization>(synchronizations)) { try { synchronization.afterCompletion(status); } catch (Exception e) { logger.error("Exception thrown from afterCompletion(" + status + ") of TransactionSynchronization " + synchronization); } } } public void enlistResource(XAResource xaResource) throws SystemException { Transaction transaction = getCurrentTrasaction(); if (transaction != null) { try { if (transaction.enlistResource(xaResource)) { return; } } catch (Exception e) { throw new SystemException("Unable to enlist xa resource in the transaction", e); } } throw new SystemException("Unable to enlist xa resource in the transaction"); } public String toString() { return transactionType.toString(); } protected Transaction getTransaction() throws SystemException { try { return transactionManager.getTransaction(); } catch (javax.transaction.SystemException e) { txLogger.error("The Transaction Manager has encountered an unexpected error condition while attempting to obtain current transaction: {0}", e.getMessage()); throw new SystemException(e); } } protected void setRollbackOnly(Transaction tx) { try { if (tx != null && tx.getStatus() == Status.STATUS_ACTIVE) { tx.setRollbackOnly(); txLogger.debug("TX {0}: setRollbackOnly() on transaction {1}", transactionType, tx); } } catch (Exception e) { txLogger.error("Exception during setRollbackOnly()", e); throw new IllegalStateException("No transaction active", e); } } protected Transaction beginTransaction() throws SystemException { Transaction transaction; try { transactionManager.begin(); transaction = transactionManager.getTransaction(); } catch (Exception e) { txLogger.error("The Transaction Manager has encountered an unexpected error condition while attempting to begin a new transaction: {0}", e.getMessage()); throw new SystemException(e); } if (transaction == null) { throw new SystemException("Failed to begin a new transaction"); } txLogger.debug("TX {0}: Started transaction {1}", transactionType, transaction); return transaction; } protected Transaction suspendTransaction() throws SystemException { try { Transaction tx = transactionManager.suspend(); txLogger.info("TX {0}: Suspended transaction {1}", transactionType, tx); return tx; } catch (javax.transaction.SystemException se) { txLogger.error("Exception during suspend()", se); throw new SystemException(se); } } protected void resumeTransaction(Transaction tx) throws SystemException { try { if (tx == null) { txLogger.debug("TX {0}: No transaction to resume", transactionType); } else { txLogger.debug("TX {0}: Resuming transaction {1}",transactionType, tx); transactionManager.resume(tx); } } catch (InvalidTransactionException ite) { txLogger.error("Could not resume the client's transaction, the transaction is no longer valid: {}", ite.getMessage()); throw new SystemException(ite); } catch (IllegalStateException e) { txLogger.error("Could not resume the client's transaction: {0}", e.getMessage()); throw new SystemException(e); } catch (javax.transaction.SystemException e) { txLogger.error("Could not resume the client's transaction: The transaction reported a system exception: {0}", e.getMessage()); throw new SystemException(e); } } protected void completeTransaction(Transaction tx) throws SystemException, ApplicationException { boolean shouldRollback; try { shouldRollback = tx.getStatus() != Status.STATUS_ACTIVE; } catch (javax.transaction.SystemException e) { txLogger.error("The Transaction Manager has encountered an unexpected error condition while attempting to obtain transaction status: {0}", e.getMessage()); throw new SystemException(e); } if (shouldRollback) { rollbackTransaction(tx); return; } try { txLogger.debug("TX {0}: Committing transaction {1}", transactionType, tx); if (tx.equals(transactionManager.getTransaction())) { transactionManager.commit(); } else { tx.commit(); } } catch (RollbackException e) { txLogger.debug("The transaction has been rolled back rather than commited: {0}", e.getMessage()); Throwable txe = new TransactionRolledbackException("Transaction was rolled back, presumably because setRollbackOnly was called during a synchronization").initCause(e); throw new ApplicationException(txe); } catch (HeuristicMixedException e) { txLogger.debug("A heuristic decision was made, some relevant updates have been committed while others have been rolled back: {0}", e.getMessage()); throw new ApplicationException(new RemoteException("A heuristic decision was made, some relevant updates have been committed while others have been rolled back").initCause(e)); } catch (HeuristicRollbackException e) { txLogger.debug("A heuristic decision was made while commiting the transaction, some relevant updates have been rolled back: {0}", e.getMessage()); throw new ApplicationException(new RemoteException("A heuristic decision was made while commiting the transaction, some relevant updates have been rolled back").initCause(e)); } catch (SecurityException e) { txLogger.error("The current thread is not allowed to commit the transaction: {0}", e.getMessage()); throw new SystemException(e); } catch (IllegalStateException e) { txLogger.error("The current thread is not associated with a transaction: {0}", e.getMessage()); throw new SystemException(e); } catch (javax.transaction.SystemException e) { txLogger.error("The Transaction Manager has encountered an unexpected error condition while attempting to commit the transaction: {0}", e.getMessage()); throw new SystemException(e); } } protected void rollbackTransaction(Transaction tx) throws SystemException { try { txLogger.debug("TX {0}: Rolling back transaction {1}", transactionType, tx); if (tx.equals(transactionManager.getTransaction())) { transactionManager.rollback(); } else { tx.rollback(); } } catch (IllegalStateException e) { logger.error("The TransactionManager reported an exception while attempting to rollback the transaction: " + e.getMessage()); throw new SystemException(e); } catch (javax.transaction.SystemException e) { logger.error("The TransactionManager reported an exception while attempting to rollback the transaction: " + e.getMessage()); throw new SystemException(e); } } }

    Apache's JIRA Issue Tracker | 8 years ago | Tobias Rho
    java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: can't parse argument number
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    why i'm getting java.lang.ExceptionInInitializerError and how can i solve it?

    Stack Overflow | 5 years ago | itro
    java.util.concurrent.ExecutionException: java.lang.ExceptionInInitializerError
  6. 0

    VMware KB: Performance Overview charts fail with STATs Report service internal error

    vmware.com | 1 year ago
    java.util.concurrent.ExecutionException: java.lang.IllegalStateException: com.vmware.vim.stats.webui.StatsReportException: Unable to open VC DataSource.
Not finding the right solution?
Take a tour to get the most out of Samebug.

Tired of useless tips?

Automated exception search integrated into your IDE

Root Cause Analysis

  1. java.util.concurrent.ExecutionException

    java.lang.IllegalArgumentException: can't parse argument number

    at java.util.concurrent.FutureTask$Sync.innerGet()
  2. Java RT
    FutureTask.get
    1. java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:205)
    2. java.util.concurrent.FutureTask.get(FutureTask.java:80)
    2 frames
  3. OpenEJB :: OSGi :: Core
    BaseEjbProxyHandler.invoke
    1. org.apache.openejb.util.Memoizer.compute(Memoizer.java:53)
    2. org.apache.openejb.util.Logger.formatMessage(Logger.java:185)
    3. org.apache.openejb.util.Logger.debug(Logger.java:234)
    4. org.apache.openejb.core.transaction.JtaTransactionPolicy.beginTransaction(JtaTransactionPolicy.java:235)
    5. org.apache.openejb.core.transaction.TxRequired.<init>(TxRequired.java:54)
    6. org.apache.openejb.core.transaction.JtaTransactionPolicyFactory.createTransactionPolicy(JtaTransactionPolicyFactory.java:36)
    7. org.apache.openejb.core.transaction.EjbTransactionUtil.createTransactionPolicy(EjbTransactionUtil.java:55)
    8. org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:200)
    9. org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:169)
    10. org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
    11. org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
    12. org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:286)
    12 frames
  4. Unknown
    $Proxy28.getUserFor
    1. $Proxy28.getUserFor(Unknown Source)
    1 frame
  5. Java RT
    Method.invoke
    1. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    2. sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    3. sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    4. java.lang.reflect.Method.invoke(Method.java:585)
    4 frames
  6. Wicket IoC common code
    $Proxy27.getUserFor
    1. org.apache.wicket.proxy.LazyInitProxyFactory$JdkHandler.invoke(LazyInitProxyFactory.java:416)
    2. org.apache.wicket.proxy.$Proxy27.getUserFor(Unknown Source)
    2 frames
  7. de.trho.login
    CreateUserAccountPage$1.onValidate
    1. de.trho.login.CreateUserAccountPage$1.onValidate(CreateUserAccountPage.java:89)
    1 frame