[JBoss JIRA] Created: (JBAS-5364) UnifiedInvokerHAProxy can throw NullPointerException under load
by Galder Zamarreno (JIRA)
UnifiedInvokerHAProxy can throw NullPointerException under load
---------------------------------------------------------------
Key: JBAS-5364
URL: http://jira.jboss.com/jira/browse/JBAS-5364
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Clustering
Affects Versions: JBossAS-5.0.0.Beta4, JBossAS-4.2.2.GA
Reporter: Galder Zamarreno
Assigned To: Galder Zamarreno
Under heavy load and sharing an EJB proxy between different threads, there's a
chance of NullPointerException like the one below being reported, specially when
using proxies configured with RoundRobin as load balance policy, such as SLSBs
or EJB2 home proxies:
java.lang.NullPointerException
at org.jboss.invocation.unified.interfaces.UnifiedInvokerHAProxy.invoke(UnifiedInvokerHAProxy.java:186)
at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365)
at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java:63)
at org.jboss.proxy.ejb.RetryInterceptor.invoke(RetryInterceptor.java:176)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:184)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
at $Proxy1.create(Unknown Source)
Whenever a new target for an invocation is chosen, init(InvokerLocator locator)
method in UnifiedInvokerProxy is executed:
protected void init(InvokerLocator locator)
{
this.locator = locator;
try
{
client = createClient(locator, getSubSystem());
client.connect();
}
catch(Exception e)
{
log.fatal("Could not initialize UnifiedInvokerProxy.", e);
}
}
This method could be executed in paralell to the following in
UnifiedInvokerHAProxy.invoke(Invocation invocation):
Client clientInstance = getClient(invocation);
log.debug("Making invocation on " + clientInstance.getInvoker().getLocator());
When the new client instance is created, the invoker is null until client.connect() is
called, so something like this can happen:
1.- T1 (Thread 1) executes getClient(invocation); and returns client#1
2.- T2 (Thread 2) selects a new target for the invocation and calls init(InvokerLocator locator)
3.- T2 calls createClient() and the instance variable client becomes client#2
4.- T1 now calls clientInstance.getInvoker().getLocator() which is now client#2 but
connect() has not been called on this instance, so results on NPE.
The simplest of all solutions would be to make assignment of client instance thread safe,
something I already did for JBAS-4815 to get around another thread safety issue.
I'm gonna take the tests I created for JBAS-4815 and use them to replicate something like
this and check whether the fix for that fixes this as well.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 7 months
[JBoss JIRA] Created: (JBPORTAL-2227) login ui improvement
by Prabhat Jha (JIRA)
login ui improvement
--------------------
Key: JBPORTAL-2227
URL: https://jira.jboss.org/jira/browse/JBPORTAL-2227
Project: JBoss Portal
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: Portal Core Admin
Reporter: Prabhat Jha
Assignee: Wesley Hales
Fix For: 2.7.1 Final, 2.6.8 Final
When prompted for login, it will be better
1. To deactivate submit button until both username and password fields are non empty.
2. Currently, when you hit "Submit" button on empty fields, the background page becomes blank and it prompts you again but this time there is no cancel button.
- Keep the same "darkened" background page.
- Have Cancel button as well.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 7 months
[JBoss JIRA] Created: (JBRULES-1751) Issue in Drools 4.0.7 when run in Multithreaded environment
by Sitaraman Balaraman (JIRA)
Issue in Drools 4.0.7 when run in Multithreaded environment
-----------------------------------------------------------
Key: JBRULES-1751
URL: https://jira.jboss.org/jira/browse/JBRULES-1751
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 4.0.7
Environment: OS AIX 1.5
Reporter: Sitaraman Balaraman
Assignee: Mark Proctor
Hi
We have a batch program(Informatica mapping) which uses Jars taken from an application which uses JBoss Drools 4.0.7 and MVEL 1.3.7. The informatica Integration service runs in AIX Machine with JRE Version 1.5. The batch program process millions of records which in turn calls the Drools API. To improve the performance, we tried running our informatica process in a multi threaded environment(4 threads). While running we got the following exception for every record that we process(across all the threads).
: Exception executing predicate eval( $terDate.before(ExtDateTimeUtils.getDate("01/01/1900")) )
at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:216)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)
at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162)
at org.drools.reteoo.Rete.assertObject(Rete.java:175)
at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)
at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:911)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:684)
at org.drools.reteoo.ReteooStatelessSession.execute(ReteooStatelessSession.java:160)
at com.wellpoint.eps.epds.business.framework.rules.jbrules.JBRulesExecutor.fireAllRules(JBRulesExecutor.java:85)
at com.wellpoint.eps.epds.business.framework.validation.BaseHandlerImpl.validateInternal(BaseHandlerImpl.java:141)
at com.wellpoint.eps.epds.business.framework.validation.BaseHandlerImpl.validateInternal(BaseHandlerImpl.java:75)
at com.wellpoint.eps.epds.business.framework.validation.AbstractBusinessRuleHandler.validate(AbstractBusinessRuleHandler.java:43)
at com.wellpoint.eps.epds.business.application.validation.ProviderContractBusinessRuleHandler.validate(ProviderContractBusinessRuleHandler.java:43)
at com.wellpoint.eps.epds.business.framework.service.DefaultRuleValidationServiceImpl.applyBusinessRules(DefaultRuleValidationServiceImpl.java:284)
at com.eps.epds.api.validation.ValidationServiceDeligator$DefaultValidationServiceImpl.validate(ValidationServiceDeligator.java:181)
at com.informatica.powercenter.server.jtx.JTXPartitionDriverImplGen.inputTransaction(JTXPartitionDriverImplGen.java:1414)
Caused by: org.mvel.CompileException: cannot invoke method
at org.mvel.optimizers.impl.refl.MethodAccessor.getValue(MethodAccessor.java:54)
at org.mvel.optimizers.impl.refl.VariableAccessor.getValue(VariableAccessor.java:39)
at org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated(VariableDeepPropertyNode.java:22)
at org.mvel.ast.PropertyASTNode.getReducedValueAccelerated(PropertyASTNode.java:21)
at org.mvel.MVELRuntime.execute(MVELRuntime.java:90)
at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111)
at org.mvel.MVEL.executeExpression(MVEL.java:235)
at org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:45)
at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:209)
... 20 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at org.mvel.optimizers.impl.refl.MethodAccessor.getValue(MethodAccessor.java:46)
... 28 more
Caused by: java.lang.NullPointerException
at java.util.Date.getMillisOf(Date.java:953)
at java.util.Date.before(Date.java:912)
... 32 more
].
Could you please let me know if this is a known issue or is there any workaround for this problem?
Thanks
Sitaraman
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 8 months
[JBoss JIRA] Created: (JBRULES-1819) cannot retrieve rules from guvnor via ruleagent
by Nicolas Heron (JIRA)
cannot retrieve rules from guvnor via ruleagent
-----------------------------------------------
Key: JBRULES-1819
URL: https://jira.jboss.org/jira/browse/JBRULES-1819
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 5.0.0.M3
Environment: Linux, latest version trunk
Reporter: Nicolas Heron
Assignee: Mark Proctor
I use guvnor to store my rules and when trying to access to them throw the rule agent, here is the error I get :
15:22:48,814 INFO [STDOUT] INFO 23-10 15:22:48,807 (SecurityServiceImpl.java:login:46) Logging in user [nheron]
15:22:48,822 INFO [STDOUT] INFO 23-10 15:22:48,821 (DefaultAuthenticator.java:authenticate:38) User logged in via default authentication module (no security check).
15:22:50,494 INFO [STDOUT] Checking access for : Politiques Prix
15:23:06,201 INFO [STDOUT] DEBUG 23-10 15:23:06,193 (SelectorManager.java:<init>:27) Loading selectors
15:23:06,243 INFO [STDOUT] DEBUG 23-10 15:23:06,242 (ContentManager.java:<init>:45) Loading content properties
15:23:07,649 ERROR [STDERR] BR.recoverFromMismatchedToken
15:23:07,650 ERROR [STDERR] src/main/resources/org/drools/lang/DescrBuilderTree.g: node from line 6:45 mismatched tree node: ) expecting <UP>
15:23:07,651 ERROR [STDERR] BR.recoverFromMismatchedToken
15:23:07,652 ERROR [STDERR] src/main/resources/org/drools/lang/DescrBuilderTree.g: node from line 30:45 mismatched tree node: ) expecting <UP>
15:23:08,583 ERROR [STDERR] BR.recoverFromMismatchedToken
15:23:08,584 ERROR [STDERR] src/main/resources/org/drools/lang/DescrBuilderTree.g: node from line 4:14 mismatched tree node: ) expecting <UP>
15:23:08,584 ERROR [STDERR] BR.recoverFromMismatchedToken
15:23:08,584 ERROR [STDERR] src/main/resources/org/drools/lang/DescrBuilderTree.g: node from line 5:21 mismatched tree node: ) expecting <UP>
15:23:08,670 ERROR [STDERR] BR.recoverFromMismatchedToken
15:23:08,670 ERROR [STDERR] src/main/resources/org/drools/lang/DescrBuilderTree.g: node from line 6:71 mismatched tree node: ) expecting <UP>
15:23:08,671 ERROR [STDERR] BR.recoverFromMismatchedToken
15:23:08,671 ERROR [STDERR] src/main/resources/org/drools/lang/DescrBuilderTree.g: node from line 16:71 mismatched tree node: ) expecting <UP>
15:23:08,671 ERROR [STDERR] BR.recoverFromMismatchedToken
15:23:08,671 ERROR [STDERR] src/main/resources/org/drools/lang/DescrBuilderTree.g: node from line 26:43 mismatched tree node: ) expecting <UP>
15:23:58,147 INFO [STDOUT] PackageName: cgi.rules.politiquesprix
15:23:58,147 INFO [STDOUT] PackageVersion: LATEST
15:23:58,147 INFO [STDOUT] PackageIsLatest: true
15:23:58,147 INFO [STDOUT] PackageIsSource: true
and the code i use is :
Properties prop = new Properties();
prop.setProperty("url", "http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/cgi....");
webAgent = RuleAgent.newRuleAgent(prop);
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 8 months
[JBoss JIRA] Created: (JBRULES-1816) java.lang.ClassCastException: org.drools.util.ObjectHashMap cannot be cast to org.drools.reteoo.BetaMemory
by Nicolas Heron (JIRA)
java.lang.ClassCastException: org.drools.util.ObjectHashMap cannot be cast to org.drools.reteoo.BetaMemory
----------------------------------------------------------------------------------------------------------
Key: JBRULES-1816
URL: https://jira.jboss.org/jira/browse/JBRULES-1816
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Affects Versions: 5.0.0.M3
Environment: Linux, Eclipse ganymede and the last build
Reporter: Nicolas Heron
Assignee: Mark Proctor
I am upgrading from a drools project that works fine with 4.0.7 and here is the message I get in some of my junit test
java.lang.ClassCastException: org.drools.util.ObjectHashMap cannot be cast to org.drools.reteoo.BetaMemory
at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:148)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:43)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:180)
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:143)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:997)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:965)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:737)
at com.kiabi.met.decisionnel.kristal.calculation.bo.internals.DroolsSession.insert(DroolsSession.java:333)
at com.kiabi.met.decisionnel.kristal.calculation.bo.internals.DroolsSession.assertBufferObjects(DroolsSession.java:380)
at com.kiabi.met.decisionnel.kristal.calculation.bo.internals.PreparationBudgetSession.fireAllRulesForInitPrepa(PreparationBudgetSession.java:76)
at com.kiabi.met.decisionnel.kristal.calculation.bo.internals.DroolsLauncher.fireAllRulesForInitPrepa(DroolsLauncher.java:43)
at com.kiabi.met.decisionnel.kristal.calculation.bo.SessionCalcul.fireAllRulesForInitPrepa(SessionCalcul.java:60)
at com.kiabi.met.decisionnel.kristal.calculation.bo.CalculationManagerImpl.prepareBudget(CalculationManagerImpl.java:56)
at com.kiabi.met.decisionnel.kristal.calculation.test.CalculationManagerTestCase.testPrepareBudget(CalculationManagerTestCase.java:69)
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:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
15 years, 8 months