[JBoss JIRA] (WFLY-6827) JGroups subsystem version bump needed
by Kabir Khan (JIRA)
[ https://issues.jboss.org/browse/WFLY-6827?page=com.atlassian.jira.plugin.... ]
Kabir Khan updated WFLY-6827:
-----------------------------
Component/s: Clustering
> JGroups subsystem version bump needed
> -------------------------------------
>
> Key: WFLY-6827
> URL: https://issues.jboss.org/browse/WFLY-6827
> Project: WildFly
> Issue Type: Bug
> Components: Clustering
> Reporter: Kabir Khan
> Assignee: Jason Greene
> Priority: Blocker
> Fix For: 10.1.0.Final
>
>
> Doing a model comparison of current master against EAP 7.0.0 I came across this:
> {code}
> ====== Resource root address: ["subsystem" => "jdr"] - Current version: 1.2.0; legacy version: 1.2.0 =======
> ====== Resource root address: ["subsystem" => "jgroups"] - Current version: 4.0.0; legacy version: 4.0.0 =======
> --- Problems for relative address to root ["channel" => "*","fork" => "*","protocol" => "*"]:
> Missing parameters for operation 'add' in current: []; missing in legacy [add-index]
> --- Problems for relative address to root ["channel" => "ee","fork" => "*","protocol" => "*"]:
> Missing parameters for operation 'add' in current: []; missing in legacy [add-index]
> --- Problems for relative address to root ["channel" => "ee","protocol" => "UDP"]:
> Missing attributes in current: []; missing in legacy [bundler_class]
> --- Problems for relative address to root ["stack" => "*","protocol" => "*"]:
> {code}
> The missing add-index was due to the non-auto-generated add handler operation definition not including that. bundler_class appears to be a runtime attribute.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months
[JBoss JIRA] (WFLY-6827) JGroups subsystem version bump needed
by Kabir Khan (JIRA)
[ https://issues.jboss.org/browse/WFLY-6827?page=com.atlassian.jira.plugin.... ]
Kabir Khan reassigned WFLY-6827:
--------------------------------
Assignee: Paul Ferraro (was: Jason Greene)
> JGroups subsystem version bump needed
> -------------------------------------
>
> Key: WFLY-6827
> URL: https://issues.jboss.org/browse/WFLY-6827
> Project: WildFly
> Issue Type: Bug
> Components: Clustering
> Reporter: Kabir Khan
> Assignee: Paul Ferraro
> Priority: Blocker
> Fix For: 10.1.0.Final
>
>
> Doing a model comparison of current master against EAP 7.0.0 I came across this:
> {code}
> ====== Resource root address: ["subsystem" => "jdr"] - Current version: 1.2.0; legacy version: 1.2.0 =======
> ====== Resource root address: ["subsystem" => "jgroups"] - Current version: 4.0.0; legacy version: 4.0.0 =======
> --- Problems for relative address to root ["channel" => "*","fork" => "*","protocol" => "*"]:
> Missing parameters for operation 'add' in current: []; missing in legacy [add-index]
> --- Problems for relative address to root ["channel" => "ee","fork" => "*","protocol" => "*"]:
> Missing parameters for operation 'add' in current: []; missing in legacy [add-index]
> --- Problems for relative address to root ["channel" => "ee","protocol" => "UDP"]:
> Missing attributes in current: []; missing in legacy [bundler_class]
> --- Problems for relative address to root ["stack" => "*","protocol" => "*"]:
> {code}
> The missing add-index was due to the non-auto-generated add handler operation definition not including that. bundler_class appears to be a runtime attribute.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months
[JBoss JIRA] (WFLY-6827) JGroups subsystem version bump needed
by Kabir Khan (JIRA)
Kabir Khan created WFLY-6827:
--------------------------------
Summary: JGroups subsystem version bump needed
Key: WFLY-6827
URL: https://issues.jboss.org/browse/WFLY-6827
Project: WildFly
Issue Type: Bug
Reporter: Kabir Khan
Assignee: Jason Greene
Priority: Blocker
Fix For: 10.1.0.Final
Doing a model comparison of current master against EAP 7.0.0 I came across this:
{code}
====== Resource root address: ["subsystem" => "jdr"] - Current version: 1.2.0; legacy version: 1.2.0 =======
====== Resource root address: ["subsystem" => "jgroups"] - Current version: 4.0.0; legacy version: 4.0.0 =======
--- Problems for relative address to root ["channel" => "*","fork" => "*","protocol" => "*"]:
Missing parameters for operation 'add' in current: []; missing in legacy [add-index]
--- Problems for relative address to root ["channel" => "ee","fork" => "*","protocol" => "*"]:
Missing parameters for operation 'add' in current: []; missing in legacy [add-index]
--- Problems for relative address to root ["channel" => "ee","protocol" => "UDP"]:
Missing attributes in current: []; missing in legacy [bundler_class]
--- Problems for relative address to root ["stack" => "*","protocol" => "*"]:
{code}
The missing add-index was due to the non-auto-generated add handler operation definition not including that. bundler_class appears to be a runtime attribute.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months
[JBoss JIRA] (WFLY-6498) EJBClient UserTransactions with multiple method invocations generate lock conflicts
by Richard Achmatowicz (JIRA)
[ https://issues.jboss.org/browse/WFLY-6498?page=com.atlassian.jira.plugin.... ]
Richard Achmatowicz commented on WFLY-6498:
-------------------------------------------
The issue was fixed by following the strategy in the last paragraph of the previous comment.
There is a lot of detail in the comments above, so i'll try to summarise the changes made in this issue:
When making an invocation on a SFSB, interceptors are used to get the SFSB instance from the ISPN cache before the invocation starts, and to release the instance (and at the same time commit the changes made) to the cache when the invocation completes. In the case of nested beans, this would mean having two transactions created and committed: one for the outer bean and one for the inner bean. A batching mechanism (based on Batcher and Batch) was created to allow multiple ISPN cache operations on the same thread to be coalesced (interposed) into the same ISPN transaction. This means that all the work performed on that thread, even if multiple beans are accessed, will be represented in one transaction, committed when the original invocation commits. The mechanism is implemented by intercepting calls to get(), release() and discard() of the class DistributableCache, which is the interface the EJB code uses to access the ISPN cache, as well as associating a Batch with the current thread and the SFSB instance itself. This works fine when making individual remote invocations on CMT and BMT beans.
If we now want to wrap several invocations on SFSBs in an EJBCLient UserTransaction, we want all work on those beans to be interposed into a single ISPN transaction, which is committed when the UserTransaction commits. The existing Batching mechanism can't handle that as the various invocations happen on separate threads. So the Batching mechanism was extended to check for data stored in the TransactionSynchronizationRepository, which would be available across invocations. The data stored there was the single Batch associated with the UserTransactioin. get(), release() and discard() were then modified to retrieve the batch from there if present, and use that batch for interposing the various calls to get(), release() and discard(). Finally, the timing of when the Batch associated with the SFSB instance for the first invocation in the UserTransaction had to be adjusted due to the registered Synchronization of the UserTransaction delaying the final call to release().
> EJBClient UserTransactions with multiple method invocations generate lock conflicts
> ------------------------------------------------------------------------------------
>
> Key: WFLY-6498
> URL: https://issues.jboss.org/browse/WFLY-6498
> Project: WildFly
> Issue Type: Bug
> Components: Clustering
> Affects Versions: 10.0.0.Final
> Reporter: Richard Achmatowicz
> Assignee: Paul Ferraro
> Fix For: 11.0.0.Alpha1
>
>
> Using the EJBClient library, we should be able to do the following from a standalone EJBClient application:
> // create a UserTransaction associated with a clustered server node X
> // make an invocation on an EJB on X
> // make an invocation on an EJB on X
> // commit the UserTransaction
> However, doing so results in this exception which occurs during processing of the second invocation:
> {noformat}
> [0m[31m11:16:22,580 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (default task-57) ISPN000136: Error executing command GetKeyValueCommand, writing keys []: org.infinispan.util.concurrent.TimeoutException: ISPN000299: Unable to acquire lock after 15 seconds for key UnknownSessionID [4967684957516649565452525270575756545166695455535750486549485166] and requestor GlobalTransaction:<node-0>:120:local. Lock is held by GlobalTransaction:<node-0>:118:local
> at org.infinispan.util.concurrent.locks.impl.DefaultLockManager$KeyAwareExtendedLockPromise.lock(DefaultLockManager.java:236)
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.lockAndRecord(AbstractLockingInterceptor.java:190)
> at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.checkPendingAndLockKey(AbstractTxLockingInterceptor.java:192)
> at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.lockOrRegisterBackupLock(AbstractTxLockingInterceptor.java:113)
> at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.visitDataReadCommand(PessimisticLockingInterceptor.java:70)
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitGetKeyValueCommand(AbstractLockingInterceptor.java:77)
> at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.TxInterceptor.enlistReadAndInvokeNext(TxInterceptor.java:345)
> at org.infinispan.interceptors.TxInterceptor.visitGetKeyValueCommand(TxInterceptor.java:330)
> at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
> at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:85)
> at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.statetransfer.StateTransferInterceptor.visitReadCommand(StateTransferInterceptor.java:176)
> at org.infinispan.statetransfer.StateTransferInterceptor.visitGetKeyValueCommand(StateTransferInterceptor.java:153)
> at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:107)
> at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:76)
> at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:85)
> at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
> at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:85)
> at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
> at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:336)
> at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:411)
> at org.infinispan.cache.impl.DecoratedCache.get(DecoratedCache.java:443)
> at org.infinispan.cache.impl.AbstractDelegatingCache.get(AbstractDelegatingCache.java:286)
> at org.wildfly.clustering.ejb.infinispan.bean.InfinispanBeanFactory.findValue(InfinispanBeanFactory.java:87)
> at org.wildfly.clustering.ejb.infinispan.bean.InfinispanBeanFactory.findValue(InfinispanBeanFactory.java:49)
> at org.wildfly.clustering.ejb.infinispan.InfinispanBeanManager.findBean(InfinispanBeanManager.java:244)
> at org.jboss.as.ejb3.cache.distributable.DistributableCache.get(DistributableCache.java:124)
> at org.jboss.as.ejb3.component.stateful.StatefulComponentInstanceInterceptor.processInvocation(StatefulComponentInstanceInterceptor.java:59)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:254)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:333)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:80)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.deployment.processors.EjbSuspendInterceptor.processInvocation(EjbSuspendInterceptor.java:53)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:66)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
> at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)
> at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
> at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
> at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:195)
> at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.invokeMethod(MethodInvocationMessageHandler.java:327)
> at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$100(MethodInvocationMessageHandler.java:67)
> at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:200)
> at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.processMessage(MethodInvocationMessageHandler.java:262)
> at org.jboss.as.ejb3.remote.protocol.versionone.VersionOneProtocolChannelReceiver.processMessage(VersionOneProtocolChannelReceiver.java:213)
> at org.jboss.as.ejb3.remote.protocol.versiontwo.VersionTwoProtocolChannelReceiver.processMessage(VersionTwoProtocolChannelReceiver.java:76)
> at org.jboss.as.ejb3.remote.protocol.versionone.VersionOneProtocolChannelReceiver.handleMessage(VersionOneProtocolChannelReceiver.java:159)
> {noformat}
> The exception does not arise if we perform only one invocation within the UserTransaction.
> This exception is repeatable.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months
[JBoss JIRA] (WFLY-6826) Provide ability to start/stop Resource Adapter creation/deletion without restart of server
by Kabir Khan (JIRA)
Kabir Khan created WFLY-6826:
--------------------------------
Summary: Provide ability to start/stop Resource Adapter creation/deletion without restart of server
Key: WFLY-6826
URL: https://issues.jboss.org/browse/WFLY-6826
Project: WildFly
Issue Type: Enhancement
Components: JCA
Affects Versions: 9.0.0.Final, 10.0.0.Final
Reporter: Ramesh Reddy
Assignee: Stefano Maestri
Currently in WF 10, when a resource adapter is created / deleted using the CLI the "reload-status" is set to "requires restart", based how the resource is expected to be managed in WF. We need ability *avoid* the restart of the server
h3. Why We need it?
In Teiid, it is common practice to add/remove resource adapters dynamically and restarting server will affect performance and usability severely.
* Because delete/re-add is in Teiid's workflow to manage a resource adapters and when we have to restart we loose the whole state of the virtual database. That means we need re-establish runtime status. For example, all the existing sessions will be killed.
* Runtime environment are often shared, that could kill other person's tasks in flight leaving them hanging with errors.
* Every time resource adapter starts we fetch metadata from the source, this is very expensive operation.
* With multi-source feature, it is a feature that user dynamically brings in/out sources as they show up on their dashboard, it would be not possible to support this feature.
* This is a change of behavior from earlier versions of the EAP, our users and customers rely on this feature
As per Teiid project is concerned, we consider this is regression on WF and thus a bug.
h3. Proposed Solution
[~brian.stansberry] suggested the WF management practices here in this document https://docs.jboss.org/author/display/WFLY10/Admin+Guide#AdminGuide-Apply...
Based on this the conclusion is that resource adapters, is developed under "all-services" paradigm, not under "resource-services" paradigm, where a explicit header from client to whether to restart or not can avoid having to "reload" the server when a new RA is added or removed. We understand the nature of service dependencies in WF, and how this can affect the other dependent services, but we verified that Teiid will not have those side effects as we designed. Since these sources are effectively exclusively defined for Teiid should not interfere with others. Also, since the request is explicit, should not affect current behavior.
h3. Workarounds Considered
Teiid currently deploy the RAR files in module format (due to product requirements) if allowed this can be changed to deploy .rar files, which is suggested as alternative. This does require lot of code changes and not approved path. Aslo, only half solution as WFLY-6773 we would still need.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months
[JBoss JIRA] (WFLY-6825) Provide ability to start/stop Data Source creation without restart of server
by Kabir Khan (JIRA)
Kabir Khan created WFLY-6825:
--------------------------------
Summary: Provide ability to start/stop Data Source creation without restart of server
Key: WFLY-6825
URL: https://issues.jboss.org/browse/WFLY-6825
Project: WildFly
Issue Type: Enhancement
Components: JCA
Affects Versions: 10.0.0.Final
Reporter: Ramesh Reddy
Assignee: Stefano Maestri
Currently in WF 10, where a data source is created / removed using the CLI the "reload-status" is set to "requires restart", based how the resource is expected to be managed in WF.
h3. Why We need it?
In Teiid, it is common practice to add/remove data sources dynamically and restarting server will affect performance and usability severely.
* Because delete/re-add is in Teiid's workflow to manage a data sources and when we have to restart we loose the whole state of the virtual database. That means we need re-establish runtime status. For example, all the existing sessions will be killed.
* Runtime environment are often shared, that could kill other person's tasks in flight leaving them hanging with errors.
* Every time data source starts we fetch metadata from the source, this is very expensive operation.
* With multi-source feature, it is a feature that user dynamically brings in/out sources as they show up on their dashboard, it would be not possible to support this feature.
* This is a change of behavior from earlier versions of the EAP, our users and customers rely on this feature
As per Teiid project is concerned, we consider this is regression on WF and thus a bug.
h3. Proposed Solution
[~brian.stansberry] suggested the WF management practices here in this document https://docs.jboss.org/author/display/WFLY10/Admin+Guide#AdminGuide-Apply...
Based on this the conclusion is that Data Sources, is developed under "all-services" paradigm, not under "resource-services" paradigm, where a explicit header from client to whether to restart or not can avoid having to "reload" the server when a new DS is added or removed. We understand the nature of service dependencies in WF, and how this can affect the other dependent services, but we verified that Teiid will not have those side effects as we designed. Since these sources are effectively exclusively defined for Teiid should not interfere with others. Also, since the request is explicit, should not affect current behavior.
h3. Workarounds Considered
Since this highly dependent on configuration based data source creation, we can opt to a deployment based data source creation (-ds.xml), however GSS is quick to dismiss this as this not supported feature.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months
[JBoss JIRA] (DROOLS-329) ClassFormatException when compile template with latest JDK8 (b114)
by Pete Cornish (JIRA)
[ https://issues.jboss.org/browse/DROOLS-329?page=com.atlassian.jira.plugin... ]
Pete Cornish commented on DROOLS-329:
-------------------------------------
Updating the ecj dependency works for me:
We're using drools 5.2.0.Final. In {{build.gradle}} we have:
{code}
compile "org.eclipse.jdt.core.compiler:ecj:4.4"
{code}
...and this works on JDK8 (1.8.0.65).
> ClassFormatException when compile template with latest JDK8 (b114)
> ------------------------------------------------------------------
>
> Key: DROOLS-329
> URL: https://issues.jboss.org/browse/DROOLS-329
> Project: Drools
> Issue Type: Bug
> Affects Versions: 5.5.0.Final, 6.0.0.CR5
> Environment: Ubuntu linux, latest JDK1.8 (b114) downloaded from https://jdk8.java.net/download.html
> Reporter: Marek Posolda
> Assignee: Mario Fusco
> Fix For: 5.5.1.Final, 6.3.0.CR1
>
>
> When trying to run code for compile templates with latest JDK8 (For instance this example https://github.com/droolsjbpm/drools/blob/master/drools-examples/src/main... )
> it will throw an exception like this:
> {code}
> Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: wrong class format
> at org.drools.template.parser.DefaultTemplateRuleBase.readRule(DefaultTemplateRuleBase.java:148)
> at org.drools.template.parser.DefaultTemplateRuleBase.<init>(DefaultTemplateRuleBase.java:62)
> at org.drools.template.parser.TemplateDataListener.<init>(TemplateDataListener.java:74)
> at org.drools.decisiontable.ExternalSpreadsheetCompiler.compile(ExternalSpreadsheetCompiler.java:95)
> at org.drools.decisiontable.ExternalSpreadsheetCompiler.compile(ExternalSpreadsheetCompiler.java:81)
> at org.drools.examples.templates.SimpleRuleTemplateExample.buildKBase(SimpleRuleTemplateExample.java:84)
> at org.drools.examples.templates.SimpleRuleTemplateExample.executeExample(SimpleRuleTemplateExample.java:49)
> at org.drools.examples.templates.SimpleRuleTemplateExample.main(SimpleRuleTemplateExample.java:43)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:483)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
> Caused by: java.lang.RuntimeException: wrong class format
> at org.drools.commons.jci.compilers.EclipseJavaCompiler$2.findType(EclipseJavaCompiler.java:263)
> at org.drools.commons.jci.compilers.EclipseJavaCompiler$2.findType(EclipseJavaCompiler.java:203)
> at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:102)
> at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)
> at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:122)
> at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1188)
> at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromVariantTypeSignature(LookupEnvironment.java:1244)
> at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeArgumentsFromSignature(LookupEnvironment.java:1031)
> at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.java:1193)
> at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethod(BinaryTypeBinding.java:495)
> at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethods(BinaryTypeBinding.java:577)
> at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.java:327)
> at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:640)
> at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.java:619)
> at org.eclipse.jdt.internal.compiler.Compiler.accept(Compiler.java:295)
> at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:133)
> at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:183)
> at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.java:465)
> at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleImport(CompilationUnitScope.java:519)
> at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports(CompilationUnitScope.java:368)
> at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:444)
> at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:752)
> at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:464)
> at org.drools.commons.jci.compilers.EclipseJavaCompiler.compile(EclipseJavaCompiler.java:389)
> at org.drools.commons.jci.compilers.AbstractJavaCompiler.compile(AbstractJavaCompiler.java:49)
> at org.drools.rule.builder.dialect.java.JavaDialect.compileAll(JavaDialect.java:371)
> at org.drools.compiler.DialectCompiletimeRegistry.compileAll(DialectCompiletimeRegistry.java:46)
> at org.drools.compiler.PackageRegistry.compileAll(PackageRegistry.java:102)
> at org.drools.compiler.PackageBuilder.compileAll(PackageBuilder.java:1006)
> at org.drools.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:842)
> at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:831)
> at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:441)
> at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:419)
> at org.drools.template.parser.DefaultTemplateRuleBase.readRule(DefaultTemplateRuleBase.java:139)
> ... 12 more
> Caused by: org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
> at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>(ClassFileReader.java:372)
> at org.drools.commons.jci.compilers.EclipseJavaCompiler$2.createNameEnvironmentAnswer(EclipseJavaCompiler.java:287)
> at org.drools.commons.jci.compilers.EclipseJavaCompiler$2.findType(EclipseJavaCompiler.java:258)
> ... 45 more
> {code}
> Workaround, which worked for me is to switch to Janino compiler (See Workaround description)
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months
[JBoss JIRA] (JGRP-2043) Improve performance of Message#readHeader
by Sanne Grinovero (JIRA)
[ https://issues.jboss.org/browse/JGRP-2043?page=com.atlassian.jira.plugin.... ]
Sanne Grinovero commented on JGRP-2043:
---------------------------------------
right, that seems to match with my previous results.
> Improve performance of Message#readHeader
> -----------------------------------------
>
> Key: JGRP-2043
> URL: https://issues.jboss.org/browse/JGRP-2043
> Project: JGroups
> Issue Type: Enhancement
> Reporter: Sanne Grinovero
> Assignee: Bela Ban
> Priority: Minor
> Fix For: 4.0
>
>
> A CPU hot spot highlighed by profiling via JFR:
> {noformat}Stack Trace Sample Count Percentage(%)
> java.lang.reflect.Constructor.newInstance(Object[]) 71 2.392
> java.lang.Class.newInstance() 71 2.392
> org.jgroups.Message.readHeader(DataInput) 71 2.392
> {noformat}
> I'd have expected the reflective constructor to perform well on a recent JVM, but apparently it's not in this case. A theory is that the {{Class}} type being unknown makes this code harder to optimise; needs to be looked into.
> It might be possible to patch the {{ClassConfigurator}} to provide instances of the required {{Header}} type rather than returning the class, and optimise that instead.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months