[
https://issues.apache.org/jira/browse/GERONIMO-5256?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mark Struberg closed GERONIMO-5256.
-----------------------------------
Resolution: Won't Fix
Closing old outdated issues.
Note that the Apache Geronimo Application Server itself was declared EOL in
2017 and we do not maintain the server parts anymore.
We still do actively maintain many of the Java EE / Jakarta EE which saw the
light during creation of the Apache Geronimo Aplication Server.
If you feel that this ticket still affects one of those components then please
feel free to reopen the ticket.
thanks, your Apache Geronimo team!
> in special cases wadi clustering thread fails to load web application classes
> -----------------------------------------------------------------------------
>
> Key: GERONIMO-5256
> URL: https://issues.apache.org/jira/browse/GERONIMO-5256
> Project: Geronimo
> Issue Type: Bug
> Security Level: public(Regular issues)
> Affects Versions: 2.1.4
> Environment: redhat 5.4, suse 11.2
> Reporter: Simon Godik
> Priority: Major
> Attachments:
> ASF.LICENSE.NOT.GRANTED--geronimo-wadi-cl-bug-war.tar.gz,
> ASF.LICENSE.NOT.GRANTED--geronimo-wadi-cl-bug.logs.tar.gz
>
>
> If object placed in a http session implements java.io.Externalizable and is
> loading web-app specific classes from the readExternal() method with the
> thread context classloader (which is
> org.apache.geronimo.configs/wadi-clustering/2.1.4/car classloader) class
> loading fails. This happens on the receiving side when session is replicated
> from the owning cluster member to the peer cluster member over wadi transport
> and is consumed by the wadi thread.
> This came about because some web frameworks load classes from the
> readExternal() method with TC classloader.
> I have a fix for this but it is not generic, so I'm not submitting it.
> Not sure how to attach files, so code and logs below:
> Code and log below.
> public void readExternal(ObjectInput in) throws IOException,
> ClassNotFoundException {
> this.state = (String) in.readObject();
>
> try {
> Class<?> clazz =
> Thread.currentThread().getContextClassLoader().loadClass("org.bpma.cluster.VerySpecial");
> this.verySpecial = (VerySpecial) clazz.newInstance();
> this.verySpecial.setHello("hello, very special!!!");
>
> System.out.println("VERY-SPECIAL LOADED FROM THE
> TC-CL");
> System.out.flush();
> } catch (InstantiationException e) {
> e.printStackTrace();
> } catch (IllegalAccessException e) {
> e.printStackTrace();
> }
> }
> Caused by: org.codehaus.wadi.core.WADIRuntimeException:
> java.lang.ClassNotFoundException: org.bpma.cluster.VerySpecial in classloader
> org.apache.geronimo.configs/wadi-clustering/2.1.4/car
> at
> org.codehaus.wadi.replication.manager.basic.SessionStateHandler.resto
> reFromFullState(SessionStateHandler.java:78)
> at
> org.codehaus.wadi.replication.storage.memory.SyncMemoryReplicaStorage
> .mergeCreate(SyncMemoryReplicaStorage.java:83)
> ... 20 more
> Caused by: java.lang.ClassNotFoundException: org.bpma.cluster.VerySpecial in
> cla
> ssloader org.apache.geronimo.configs/wadi-clustering/2.1.4/car
> at
> org.apache.geronimo.kernel.config.MultiParentClassLoader.loadOptimize
> dClass(MultiParentClassLoader.java:438)
> at
> org.apache.geronimo.kernel.config.MultiParentClassLoader.loadClass(Mu
> ltiParentClassLoader.java:280)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at org.bpma.cluster.TcLoading.readExternal(TcLoading.java:35)
> at
> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:179
> 2)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1
> 751)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:19
> 47)
> at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1
> 753)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
> at
> org.codehaus.wadi.core.session.DistributableAttributesMemento.readExt
> ernal(DistributableAttributesMemento.java:36)
> at
> org.codehaus.wadi.core.session.DistributableSessionMemento.readExtern
> al(DistributableSessionMemento.java:31)
> at
> org.codehaus.wadi.core.eviction.SimpleEvictable.readExternal(SimpleEv
> ictable.java:91)
> at org.codehaus.wadi.core.util.Utils.setContent(Utils.java:78)
> at
> org.codehaus.wadi.replication.manager.basic.SessionStateHandler.resto
> reFromFullState(SessionStateHandler.java:76)
> ... 21 more
--
This message was sent by Atlassian Jira
(v8.20.10#820010)