Bug 1007425 - "java.util.Hashtable is not proxyable" with latest OpenJDK7
Summary: "java.util.Hashtable is not proxyable" with latest OpenJDK7
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: JBoss BRMS Platform 6
Classification: Retired
Component: BRE
Version: 6.0.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ER4
: 6.0.0
Assignee: Pere Fernàndez
QA Contact: Lukáš Petrovický
URL:
Whiteboard:
: 1012543 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-09-12 13:18 UTC by Lukáš Petrovický
Modified: 2014-08-06 20:15 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-08-06 20:15:37 UTC
Type: Bug


Attachments (Terms of Use)

Description Lukáš Petrovický 2013-09-12 13:18:32 UTC
After deploying the web app, we get the following exception in server log:

15:11:58,171 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-7) MSC000001: Failed to start service
jboss.deployment.unit."business-central.war".WeldStartService: org.jboss.msc.service.StartException in service
jboss.deployment.unit."business-central.war".WeldStartService: Failed to start service

        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767)
[jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_60]

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_60]

        at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_60]

Caused by: org.jboss.weld.exceptions.UnproxyableResolutionException: WELD-001437 Normal scoped bean class
java.util.Hashtable is not proxyable because the type is final or it contains a final method final boolean
java.util.Hashtable.initHashSeedAsNeeded(int) - Managed Bean [class
org.jbpm.formModeler.core.processing.formProcessing.FunctionsProvider] with qualifiers [@Any @Default].

        at org.jboss.weld.util.Proxies.getUnproxyableClassException(Proxies.java:229)

        at org.jboss.weld.util.Proxies.getUnproxyableTypeException(Proxies.java:184)

        at org.jboss.weld.util.Proxies.getUnproxyableTypesExceptionInt(Proxies.java:195)

        at org.jboss.weld.util.Proxies.getUnproxyableTypesException(Proxies.java:169)

        at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:147)

        at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:163)

        at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:382)

        at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:367)

        at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:379)

        at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:64)

        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
[jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]

        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
[jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]

        ... 3 more

This only happens with the latest OpenJDK7, which hit Fedora 18, 19 and 20 yesterday. It is also supposed to hit RHEL6 soon.

Although this is a problem with the web app, it will probably need to be resolved on a lower level, in Drools. We don't think this should be fixed in OpenJDK.

Comment 1 Pavel Tisnovsky 2013-09-12 13:30:51 UTC
This is change was added to OpenJDK7 by the following patch:

changeset:   6151:b03bbdef3a88
user:        mduigou
date:        Mon Mar 11 14:11:30 2013 -0700
summary:     8006593: Peformance and compatibility improvements to hash based Map implementations.

(their bad spelling ;-)

http://hg.openjdk.java.net/jdk7u/jdk7u-dev/jdk/rev/b03bbdef3a88

Comment 2 Pere Fernàndez 2013-09-16 11:40:27 UTC
The WELD error was thrown when the FunctionsProvider is initialized, BSH Interpreter internally use a HashTable to store the evaluable objets. Removed injection points of FunctionsProvider build a new instance when needed

Commit on master: https://github.com/droolsjbpm/jbpm-form-modeler/commit/12b52881997585415ae09093569ccb20c61c6473

Commit on 6.0.x: https://github.com/droolsjbpm/jbpm-form-modeler/commit/623da7f425b9e43af08896b99febbd03e4ba4aa2

Comment 3 Pere Fernàndez 2013-09-16 12:02:41 UTC
The WELD error was thrown when the FunctionsProvider is initialized, BSH Interpreter internally use a HashTable to store the evaluable objets. Removed injection points of FunctionsProvider build a new instance when needed

Commit on master:
https://github.com/droolsjbpm/jbpm-form-modeler/commit/12b52881997585415ae09093569ccb20c61c6473
https://github.com/droolsjbpm/jbpm-form-modeler/commit/d87a6ab8469d63928d55fda4d8771f3bdad3db09

Commit on 6.0.x:
https://github.com/droolsjbpm/jbpm-form-modeler/commit/623da7f425b9e43af08896b99febbd03e4ba4aa2
https://github.com/droolsjbpm/jbpm-form-modeler/commit/0be7dad52986ce2c40c6b37dc5d883f46d99471b

Comment 4 Pere Fernàndez 2013-09-16 12:02:41 UTC
The WELD error was thrown when the FunctionsProvider is initialized, BSH Interpreter internally use a HashTable to store the evaluable objets. Removed injection points of FunctionsProvider build a new instance when needed

Commit on master:
https://github.com/droolsjbpm/jbpm-form-modeler/commit/12b52881997585415ae09093569ccb20c61c6473
https://github.com/droolsjbpm/jbpm-form-modeler/commit/d87a6ab8469d63928d55fda4d8771f3bdad3db09

Commit on 6.0.x:
https://github.com/droolsjbpm/jbpm-form-modeler/commit/623da7f425b9e43af08896b99febbd03e4ba4aa2
https://github.com/droolsjbpm/jbpm-form-modeler/commit/0be7dad52986ce2c40c6b37dc5d883f46d99471b

Comment 5 Bernard Tison 2013-09-26 15:46:57 UTC
*** Bug 1012543 has been marked as a duplicate of this bug. ***

Comment 9 Lukáš Petrovický 2013-10-17 06:20:48 UTC
No longer seeing this on ER4. VERIFIED.


Note You need to log in before you can comment on or make changes to this bug.