@David- thanks for your reply.

In the patch, we have applied synchronise block, we referred to 6.0.0 release.

Still it's throwing LinkageError for the same,

Regards,
Karan

From: rules-users-boun...@lists.jboss.org 
[mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Davide Sottara
Sent: 05 April 2014 12:19
To: rules-users@lists.jboss.org
Subject: Re: [rules-users] Linkage Error In execute method

Can you upgrade to 5.6?
Otherwise, you'll have to synchronize the methods int ClassLoader, the null 
check is not enough

On 04/04/2014 09:16 PM, Karan Malhotra wrote:
Hi All,

We have recently upgraded our application from 5.1.0 to 5.4.0.Final.

Everything worked well until this was deployed at Production Envr. We started 
getting multiple Linkage Error in execute method of Stateless KnowledgeSession.

StackTrace:

Exception: java.util.concurrent.ExecutionException: java.lang.LinkageError: 
loader (instance oforg/drools/rule/JavaDialectRuntimeData$PackageClassLoader): 
attemptedduplicate class definition for name: 
"OffBarCapping/Rule_Off_Bar_Tariff_Capping_13_2a4a909def69414bbd60cdfdac9ad807"|

OffBarCapping/Rule_Off_Bar_Tariff_Capping_16_6b6f1282708449448fc434e820fa8e1f#  
    at 
OffBarCapping.Rule_Off_Bar_Tariff_Capping_16_6b6f1282708449448fc434e820fa8e1fPredicate0InvokerGenerated.evaluate(Unknown
 Source)#    at 
OffBarCapping.Rule_Off_Bar_Tariff_Capping_16_6b6f1282708449448fc434e820fa8e1fPredicate0Invoker.evaluate(Unknown
 Source)#     at 
org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:299)# 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:337)#  at 
org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:298)#  at 
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:888)# 
     at 
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)# 
     at 
org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:269)#
  at 
org.drools.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:294)#

1.    Some surfing on the internet referred us to a similar JIRA issue:- 
JBRULES-3675<https://issues.jboss.org/browse/JBRULES-3675>
It says this has been fixed in 6.0.0. We were not in a position to upgrade to 
6.0.0 right away and hence decide to apply a patch in 
drools-core-5.4.0.Final.jar

Drools: 5.4.0
public Class<?> More ...fastFindClass( final String name ) {
            Class<?> cls = findLoadedClass( name );

            if (cls == null) {
                final byte[] clazzBytes = this.store.read( 
convertClassToResourcePath( name ) );
                if (clazzBytes != null) {
                    String pkgName = name.substring( 0,
                                                     name.lastIndexOf( '.' ) );
                    if (getPackage( pkgName ) == null) {
                        definePackage( pkgName,
                                      "",
                                       "",
                                       "",
                                       "",
                                       "",
                                       "",
                                       null );
                    }

                    cls = defineClass( name,
                                       clazzBytes,
                                       0,
                                      clazzBytes.length,
                                       PROTECTION_DOMAIN );
                }
                if (cls != null) {
                    resolveClass( cls );
                }
            }
            return cls;
        }

Path applied:-

public Class fastFindClass(String name)
    {
        Class cls = findLoadedClass(name);
        if(cls == null)
        {
            byte clazzBytes[] = 
store.read(JavaDialectRuntimeData.convertClassToResourcePath(name));
            if(clazzBytes != null)
            {
                String pkgName = name.substring(0, name.lastIndexOf('.'));
                if(!existingPackages.contains(pkgName))
                {
                    synchronized(this)
                    {
                        if(!existingPackages.contains(pkgName))
                        {
                            if(getPackage(pkgName) == null)
                            {
                                definePackage(pkgName, "", "", "", "", "", "", 
null);
                            }
                            existingPackages.add(pkgName);
                        }
                    }
                }
                cls = defineClass(name, clazzBytes, 0, clazzBytes.length, 
JavaDialectRuntimeData.access$000());
            }
            if(cls != null)
            {
                resolveClass(cls);
            }
        }
        return cls;
    }

But we are still getting this Error.

Let me know if any one did face a similar issue and solution for the same.

Thanks and regards,
Karan Malhotra

The contents of this email, including the attachments, are PRIVILEGED AND 
CONFIDENTIAL to the intended recipient at the email address to which it has 
been addressed. If you receive it in error, please notify the sender 
immediately by return email and then permanently delete it from your system. 
The unauthorized use, distribution, copying or alteration of this email, 
including the attachments, is strictly forbidden. Please note that neither 
MakeMyTrip nor the sender accepts any responsibility for viruses and it is your 
responsibility to scan the email and attachments (if any). No contracts may be 
concluded on behalf of MakeMyTrip by means of email communications.




_______________________________________________

rules-users mailing list

rules-users@lists.jboss.org<mailto:rules-users@lists.jboss.org>

https://lists.jboss.org/mailman/listinfo/rules-users


The contents of this email, including the attachments, are PRIVILEGED AND 
CONFIDENTIAL to the intended recipient at the email address to which it has 
been addressed. If you receive it in error, please notify the sender 
immediately by return email and then permanently delete it from your system. 
The unauthorized use, distribution, copying or alteration of this email, 
including the attachments, is strictly forbidden. Please note that neither 
MakeMyTrip nor the sender accepts any responsibility for viruses and it is your 
responsibility to scan the email and attachments (if any). No contracts may be 
concluded on behalf of MakeMyTrip by means of email communications.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to