[JBoss JIRA] (DROOLS-76) Incorrect parsing of negative integers in decision tables resulting in NumberFormatException
by Syargey Z (JIRA)
[ https://issues.jboss.org/browse/DROOLS-76?page=com.atlassian.jira.plugin.... ]
Syargey Z updated DROOLS-76:
----------------------------
Attachment: DroolsNegIntBug.zip
> Incorrect parsing of negative integers in decision tables resulting in NumberFormatException
> --------------------------------------------------------------------------------------------
>
> Key: DROOLS-76
> URL: https://issues.jboss.org/browse/DROOLS-76
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 5.5
> Reporter: Syargey Z
> Assignee: Mark Proctor
> Attachments: DroolsNegIntBug.zip
>
>
> Since Drools 5.5.0 negative integers parsing in decision tables causes NumberFormatException.
> The source code of project is attached.
> The stack trace:
> java.lang.NumberFormatException: For input string: "-1.0"
> at java.lang.NumberFormatException.forInputString(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at org.drools.base.FieldFactory.getFieldValue(FieldFactory.java:142)
> at org.drools.rule.builder.PatternBuilder.getFieldValue(PatternBuilder.java:1389)
> at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:765)
> at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:736)
> at org.drools.rule.builder.PatternBuilder.buildRelationalExpression(PatternBuilder.java:721)
> at org.drools.rule.builder.PatternBuilder.buildExpression(PatternBuilder.java:673)
> at org.drools.rule.builder.PatternBuilder.buildCcdDescr(PatternBuilder.java:657)
> at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:629)
> at org.drools.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:477)
> at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:302)
> at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:123)
> at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:67)
> at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:84)
> at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2830)
> at org.drools.compiler.PackageBuilder.compileRules(PackageBuilder.java:970)
> at org.drools.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:879)
> at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:871)
> at org.drools.compiler.PackageBuilder.addPackageFromDecisionTable(PackageBuilder.java:447)
> at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:711)
> at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:51)
> at com.sample.DecisionTableTest.readKnowledgeBase(DecisionTableTest.java:51)
> at com.sample.DecisionTableTest.main(DecisionTableTest.java:28)
> java.lang.NumberFormatException: For input string: "-1.0"
> at java.lang.NumberFormatException.forInputString(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at org.mvel2.conversion.IntegerCH$4.convert(IntegerCH.java:80)
> at org.mvel2.conversion.IntegerCH.convertFrom(IntegerCH.java:41)
> at org.mvel2.DataConversion.convert(DataConversion.java:129)
> at org.mvel2.ast.BinaryOperation.<init>(BinaryOperation.java:76)
> at org.mvel2.util.CompilerTools.finalizePayload(CompilerTools.java:118)
> at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:287)
> at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)
> at org.mvel2.MVEL.compileExpression(MVEL.java:810)
> at org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:435)
> at org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)
> at org.drools.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:206)
> at org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:190)
> at org.drools.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:157)
> at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)
> at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497)
> at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382)
> at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)
> at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)
> at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350)
> at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:311)
> at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)
> at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)
> at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:269)
> at com.sample.DecisionTableTest.main(DecisionTableTest.java:35)
> The problem exists in org.drools.decisiontable.parser.xls.ExcelParser:
> {code:lang=java}
> if (cell.getType() == CellType.NUMBER) {
> NumberCell nc = (NumberCell) cell;
> num = nc.getValue();
> }
> if ( Math.abs(num) - Math.ceil(num) != 0 ) {
> newCell(listeners, i, cellNum, String.valueOf(num), DataListener.NON_MERGED );
> } else {
> newCell( listeners,
> i,
> cellNum,
> cell.getContents(),
> DataListener.NON_MERGED );
> }
> {code}
> The condition "Math.abs(-1.0) - Math.ceil(-1.0) != 0" is true, so a cell with String.valueOf(-1.0) is created, resulting to: java.lang.NumberFormatException: For input string: "-1.0"
> The error is not reproduced with Drools 5.3.0
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] (DROOLS-76) Incorrect parsing of negative integers in decision tables resulting in NumberFormatException
by Syargey Z (JIRA)
[ https://issues.jboss.org/browse/DROOLS-76?page=com.atlassian.jira.plugin.... ]
Syargey Z updated DROOLS-76:
----------------------------
Description:
Since Drools 5.5.0 negative integers parsing in decision tables causes NumberFormatException.
The source code of project is attached.
The stack trace:
java.lang.NumberFormatException: For input string: "-1.0"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at org.drools.base.FieldFactory.getFieldValue(FieldFactory.java:142)
at org.drools.rule.builder.PatternBuilder.getFieldValue(PatternBuilder.java:1389)
at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:765)
at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:736)
at org.drools.rule.builder.PatternBuilder.buildRelationalExpression(PatternBuilder.java:721)
at org.drools.rule.builder.PatternBuilder.buildExpression(PatternBuilder.java:673)
at org.drools.rule.builder.PatternBuilder.buildCcdDescr(PatternBuilder.java:657)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:629)
at org.drools.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:477)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:302)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:123)
at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:67)
at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:84)
at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2830)
at org.drools.compiler.PackageBuilder.compileRules(PackageBuilder.java:970)
at org.drools.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:879)
at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:871)
at org.drools.compiler.PackageBuilder.addPackageFromDecisionTable(PackageBuilder.java:447)
at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:711)
at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:51)
at com.sample.DecisionTableTest.readKnowledgeBase(DecisionTableTest.java:51)
at com.sample.DecisionTableTest.main(DecisionTableTest.java:28)
java.lang.NumberFormatException: For input string: "-1.0"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at org.mvel2.conversion.IntegerCH$4.convert(IntegerCH.java:80)
at org.mvel2.conversion.IntegerCH.convertFrom(IntegerCH.java:41)
at org.mvel2.DataConversion.convert(DataConversion.java:129)
at org.mvel2.ast.BinaryOperation.<init>(BinaryOperation.java:76)
at org.mvel2.util.CompilerTools.finalizePayload(CompilerTools.java:118)
at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:287)
at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)
at org.mvel2.MVEL.compileExpression(MVEL.java:810)
at org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:435)
at org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)
at org.drools.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:206)
at org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:190)
at org.drools.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:157)
at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)
at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497)
at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350)
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:311)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)
at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:269)
at com.sample.DecisionTableTest.main(DecisionTableTest.java:35)
The problem exists in org.drools.decisiontable.parser.xls.ExcelParser:
{code:lang=java}
if (cell.getType() == CellType.NUMBER) {
NumberCell nc = (NumberCell) cell;
num = nc.getValue();
}
if ( Math.abs(num) - Math.ceil(num) != 0 ) {
newCell(listeners, i, cellNum, String.valueOf(num), DataListener.NON_MERGED );
} else {
newCell( listeners,
i,
cellNum,
cell.getContents(),
DataListener.NON_MERGED );
}
{code}
The condition "Math.abs(-1.0) - Math.ceil(-1.0) != 0" is true, so a cell with String.valueOf(-1.0) is created, resulting to: java.lang.NumberFormatException: For input string: "-1.0"
The error is not reproduced with Drools 5.3.0
> Incorrect parsing of negative integers in decision tables resulting in NumberFormatException
> --------------------------------------------------------------------------------------------
>
> Key: DROOLS-76
> URL: https://issues.jboss.org/browse/DROOLS-76
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 5.5
> Reporter: Syargey Z
> Assignee: Mark Proctor
>
> Since Drools 5.5.0 negative integers parsing in decision tables causes NumberFormatException.
> The source code of project is attached.
> The stack trace:
> java.lang.NumberFormatException: For input string: "-1.0"
> at java.lang.NumberFormatException.forInputString(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at org.drools.base.FieldFactory.getFieldValue(FieldFactory.java:142)
> at org.drools.rule.builder.PatternBuilder.getFieldValue(PatternBuilder.java:1389)
> at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:765)
> at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:736)
> at org.drools.rule.builder.PatternBuilder.buildRelationalExpression(PatternBuilder.java:721)
> at org.drools.rule.builder.PatternBuilder.buildExpression(PatternBuilder.java:673)
> at org.drools.rule.builder.PatternBuilder.buildCcdDescr(PatternBuilder.java:657)
> at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:629)
> at org.drools.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:477)
> at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:302)
> at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:123)
> at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:67)
> at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:84)
> at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2830)
> at org.drools.compiler.PackageBuilder.compileRules(PackageBuilder.java:970)
> at org.drools.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:879)
> at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:871)
> at org.drools.compiler.PackageBuilder.addPackageFromDecisionTable(PackageBuilder.java:447)
> at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:711)
> at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:51)
> at com.sample.DecisionTableTest.readKnowledgeBase(DecisionTableTest.java:51)
> at com.sample.DecisionTableTest.main(DecisionTableTest.java:28)
> java.lang.NumberFormatException: For input string: "-1.0"
> at java.lang.NumberFormatException.forInputString(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at java.lang.Integer.parseInt(Unknown Source)
> at org.mvel2.conversion.IntegerCH$4.convert(IntegerCH.java:80)
> at org.mvel2.conversion.IntegerCH.convertFrom(IntegerCH.java:41)
> at org.mvel2.DataConversion.convert(DataConversion.java:129)
> at org.mvel2.ast.BinaryOperation.<init>(BinaryOperation.java:76)
> at org.mvel2.util.CompilerTools.finalizePayload(CompilerTools.java:118)
> at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:287)
> at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)
> at org.mvel2.MVEL.compileExpression(MVEL.java:810)
> at org.drools.base.mvel.MVELCompilationUnit.compile(MVELCompilationUnit.java:435)
> at org.drools.base.mvel.MVELCompilationUnit.getCompiledExpression(MVELCompilationUnit.java:238)
> at org.drools.rule.constraint.MvelConstraint.createMvelConditionEvaluator(MvelConstraint.java:206)
> at org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:190)
> at org.drools.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:157)
> at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)
> at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497)
> at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382)
> at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)
> at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)
> at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350)
> at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:311)
> at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)
> at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)
> at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:269)
> at com.sample.DecisionTableTest.main(DecisionTableTest.java:35)
> The problem exists in org.drools.decisiontable.parser.xls.ExcelParser:
> {code:lang=java}
> if (cell.getType() == CellType.NUMBER) {
> NumberCell nc = (NumberCell) cell;
> num = nc.getValue();
> }
> if ( Math.abs(num) - Math.ceil(num) != 0 ) {
> newCell(listeners, i, cellNum, String.valueOf(num), DataListener.NON_MERGED );
> } else {
> newCell( listeners,
> i,
> cellNum,
> cell.getContents(),
> DataListener.NON_MERGED );
> }
> {code}
> The condition "Math.abs(-1.0) - Math.ceil(-1.0) != 0" is true, so a cell with String.valueOf(-1.0) is created, resulting to: java.lang.NumberFormatException: For input string: "-1.0"
> The error is not reproduced with Drools 5.3.0
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] (SECURITY-709) Auth. using LdapLoginModule does not return HTTP 500 when the LDAP server not available
by Yi Chen (JIRA)
[ https://issues.jboss.org/browse/SECURITY-709?page=com.atlassian.jira.plug... ]
Yi Chen commented on SECURITY-709:
----------------------------------
Hi, Anil
Just wondering if there is an update to this. Any feedback on my latest comments above?
Thanks!
Yi
> Auth. using LdapLoginModule does not return HTTP 500 when the LDAP server not available
> ---------------------------------------------------------------------------------------
>
> Key: SECURITY-709
> URL: https://issues.jboss.org/browse/SECURITY-709
> Project: PicketBox
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: PicketBox
> Affects Versions: PicketBox_v4_0_7
> Reporter: Yi Chen
> Assignee: Anil Saldhana
>
> I am using the LdapLoginModule from PicketBox in JBoss AS 7.1.1 to enable authentication against our company's LDAP server. However, I always get a HTTP 401 back no matter what kind of problem caused the authentication failure. Tracing through the Picketbox and JBoss code, I found that the problem seems to be from the private method "proceedWithJaasLogin" in "JBossCachedAuthenticationManager". At the end of this method:
> ...
> catch (LoginException e)
> {
> // Don't log anonymous user failures unless trace level logging is on
> if (principal != null && principal.getName() != null || trace)
> log.error("Login failure", e);
> authException = e;
> }
> // Set the security association thread context info exception
> SubjectActions.setContextInfo("org.jboss.security.exception", authException);
> return authenticated;
> }
> So basically, whatever exception that was sent up from the login modules is simply store in the thread context. The methods then simply returns true or false to indicate whether an authentication is successful or not. Whatever exception is store in the thread context doesn't appear to be used to generate a more appropriate error code to the client.
> Steps to reproduce:
> Just set up a LdapLoginModule and verify that it can be used to authenticate some users for a web application. Then shut down the LDAP server and try again. The client of the web application will always get back HTTP 401.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] (AS7-6716) Expose pool statistcs from a deployed .rar via the console
by Johnathon Lee (JIRA)
Johnathon Lee created AS7-6716:
----------------------------------
Summary: Expose pool statistcs from a deployed .rar via the console
Key: AS7-6716
URL: https://issues.jboss.org/browse/AS7-6716
Project: Application Server 7
Issue Type: Feature Request
Components: Console
Affects Versions: 7.1.3.Final (EAP)
Reporter: Johnathon Lee
Assignee: Heiko Braun
Currently pool statistics are not available from a resource adapter, but can be seen via jboss-cli.sh [1].
Note this is a subset of a rejected FR [2] (found during creation of this FR)
The FR is to expose these statistics via the web console.
[1]
[standalone@localhost:9999 /] /deployment=helloworld.rar/subsystem=resource-adapters/statistics=statistics/connection-definitions=java\:\/eis\/HelloWorld:read-resource(include-runtime=true)
{
"outcome" => "success",
"result" => {
"ActiveCount" => "0",
"AvailableCount" => "20",
"AverageBlockingTime" => "0",
"AverageCreationTime" => "0",
"CreatedCount" => "0",
"DestroyedCount" => "0",
"MaxCreationTime" => "0",
"MaxUsedCount" => "0",
"MaxWaitTime" => "0",
"TimedOut" => "0",
"TotalBlockingTime" => "0",
"TotalCreationTime" => "0"
}
}
[standalone@localhost:9999 /]
[2]
https://issues.jboss.org/browse/AS7-3780
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months
[JBoss JIRA] (JBMETA-350) Merging entity bean metadata yields ClassCastException
by Carlo de Wolf (JIRA)
[ https://issues.jboss.org/browse/JBMETA-350?page=com.atlassian.jira.plugin... ]
Carlo de Wolf commented on JBMETA-350:
--------------------------------------
https://github.com/jboss/metadata/commit/3b6a4754c389ba175b26a6d9ddfb5ab9...
> Merging entity bean metadata yields ClassCastException
> ------------------------------------------------------
>
> Key: JBMETA-350
> URL: https://issues.jboss.org/browse/JBMETA-350
> Project: JBoss Metadata
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: ejb
> Environment: JBoss AS 7.1.0.CR1b
> Reporter: Rune Flobakk
> Assignee: Carlo de Wolf
> Priority: Critical
> Labels: ejb2, entitybean, jboss-as, metadata
> Fix For: 7.0.0.Beta34
>
>
> I have encountered this issue on JBoss AS 7.1.0.CR1b with an application containing EJB2 entity beans. When deploying the beans I get the following ClassCastException:
> {quote}
> 13:04:55,292 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC00001: Failed to start service jboss.deployment.subunit."myapp.ear"."myapplication-ejb-1.3-SNAPSHOT.jar".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.subunit."myapp.ear"."myapplication-ejb-1.3-SNAPSHOT.jar".PARSE: Failed to process phase PARSE of subdeployment "myapplication-ejb-1.3-SNAPSHOT.jar" of deployment "myapp.ear"
> at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121) [jboss-as-server-7.1.0.CR1b.jar:7.1.0.CR1b]
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
> at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_24]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_24]
> at java.lang.Thread.run(Thread.java:662) [:1.6.0_24]
> Caused by: java.lang.ClassCastException: org.jboss.metadata.ejb.spec.EntityBeanMetaData cannot be cast to org.jboss.metadata.ejb.jboss.ejb3.JBossGenericBeanMetaData
> at org.jboss.metadata.ejb.spec.EntityBeanMetaData.merge(EntityBeanMetaData.java:121)
> at org.jboss.metadata.ejb.spec.EntityBeanMetaData.createMerged(EntityBeanMetaData.java:112)
> at org.jboss.metadata.ejb.spec.EntityBeanMetaData.createMerged(EntityBeanMetaData.java:32)
> at org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData.merge(EnterpriseBeansMetaData.java:81)
> at org.jboss.metadata.ejb.spec.EnterpriseBeansMetaData.createMerged(EnterpriseBeansMetaData.java:52)
> at org.jboss.metadata.ejb.spec.EjbJarMetaData.merge(EjbJarMetaData.java:175)
> at org.jboss.metadata.ejb.spec.EjbJarMetaData.createMerged(EjbJarMetaData.java:668)
> at org.jboss.as.ejb3.deployment.processors.EjbJarParsingDeploymentUnitProcessor.deploy(EjbJarParsingDeploymentUnitProcessor.java:124)
> at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115) [jboss-as-server-7.1.0.CR1b.jar:7.1.0.CR1b]
> ... 5 more
> {quote}
> I have recreated the exception in isolation in a unit test, which can be pulled from my fork of jboss-metadata at github https://github.com/runeflobakk/metadata.
> I have identified the bug to be a faulty cast at {{[EntityBeanMetaData.java:121|https://github.com/jboss/metadata/blob/master/ejb/src/main/java/org/jboss/metadata/ejb/spec/EntityBeanMetaData.java#L121]}} (well, obviously). The immediate cause of this is the call to {{EntityBeanMetaData#merge}} at {{[EntityBeanMetaData.java:112|https://github.com/jboss/metadata/blob/master/ejb/src/main/java/org/jboss/metadata/ejb/spec/EntityBeanMetaData.java#L112]}}, passing {{this}} as argument for the {{AbstractEnterpriseBeanMetaData or}} parameter. {{or}} is then being cast to {{JBossGenericBeanMetaData}}, which is an entirely different type than {{EntityBeanMetaData}}. The code simply cannot possibly run.
> I _can_ change the cast to EntityBeanMetaData and the code still compiles, but I do not know if this has any other implications, e.g. if the public {{merge}} method is being called by any others which actually _do_ pass an JBossGenericBeanMetaData.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 4 months