java.lang.ClassNotFoundException: com.acme.stash.plugin.other.content.SomeKeyInSetMultimap

Atlassian JIRA | Alexey Efimov | 3 years ago
  1. 0

    If you run some tasks from com.atlassian.sal.api.scheduling.PluginScheduler them will be runned with WebappClassloader. If your plugin job try to check merge vetos for other pull request via com.atlassian.stash.scm.pull.MergeRequestCheckService in this job thread, then all MergeChecks will executed not in http-threads-xxx, bu in other threads. And then, if you try to serialize ListHashMultimap in some of this MergeChecks (other plugins), you may get strange exception: {code} 2014-02-10 01:46:42,645 WARN [scheduler_Worker-5] java.lang.ClassNotFoundException: com.acme.stash.plugin.other.content.SomeKeyInSetMultimap at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702) ~[catalina.jar:7.0.47] at java.lang.Class.forName0(Native Method) ~[na:1.6.0_45] at java.lang.Class.forName(Class.java:249) ~[na:1.6.0_45] at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:602) ~[na:1.6.0_45] at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1589) ~[na:1.6.0_45] at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1494) ~[na:1.6.0_45] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1748) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349) ~[na:1.6.0_45] at com.google.common.collect.Serialization.populateMultimap(Serialization.java:184) ~[guava-10.0.1.jar:na] at com.google.common.collect.LinkedHashMultimap.readObject(LinkedHashMultimap.java:383) ~[guava-10.0.1.jar:na] at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969) ~[na:1.6.0_45] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) ~[na:1.6.0_45] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1775) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327) ~[na:1.6.0_45] at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1969) ~[na:1.6.0_45] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893) ~[na:1.6.0_45] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1775) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349) ~[na:1.6.0_45] at java.util.HashSet.readObject(HashSet.java:291) ~[na:1.6.0_45] at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969) ~[na:1.6.0_45] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) ~[na:1.6.0_45] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1775) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349) ~[na:1.6.0_45] ... (skipped) ... at com.atlassian.stash.internal.pull.DefaultMergeRequestCheckService.check(DefaultMergeRequestCheckService.java:46) [stash-service-impl-2.10.1.jar:na] at com.sun.proxy.$Proxy168.check(Unknown Source) [na:na] at com.sun.proxy.$Proxy218.check(Unknown Source) [na:na] at com.sun.proxy.$Proxy218.check(Unknown Source) [na:na] at com.acme.stash.plugin.pull.merge.AutoMergingJob$2.perform(AutoMergingJob.java:218) [plugin.6818593026216650093.stash-pull-request-automerge-1.0.32_1390605423000.jar:na] {code} The bug only in this thread, the same check from Web UI work fine. I think, that PluginScheduler load tasks in not valid ClassLoader.

    Atlassian JIRA | 3 years ago | Alexey Efimov
    java.lang.ClassNotFoundException: com.acme.stash.plugin.other.content.SomeKeyInSetMultimap
  2. 0

    If you run some tasks from com.atlassian.sal.api.scheduling.PluginScheduler them will be runned with WebappClassloader. If your plugin job try to check merge vetos for other pull request via com.atlassian.stash.scm.pull.MergeRequestCheckService in this job thread, then all MergeChecks will executed not in http-threads-xxx, bu in other threads. And then, if you try to serialize ListHashMultimap in some of this MergeChecks (other plugins), you may get strange exception: {code} 2014-02-10 01:46:42,645 WARN [scheduler_Worker-5] java.lang.ClassNotFoundException: com.acme.stash.plugin.other.content.SomeKeyInSetMultimap at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702) ~[catalina.jar:7.0.47] at java.lang.Class.forName0(Native Method) ~[na:1.6.0_45] at java.lang.Class.forName(Class.java:249) ~[na:1.6.0_45] at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:602) ~[na:1.6.0_45] at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1589) ~[na:1.6.0_45] at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1494) ~[na:1.6.0_45] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1748) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349) ~[na:1.6.0_45] at com.google.common.collect.Serialization.populateMultimap(Serialization.java:184) ~[guava-10.0.1.jar:na] at com.google.common.collect.LinkedHashMultimap.readObject(LinkedHashMultimap.java:383) ~[guava-10.0.1.jar:na] at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969) ~[na:1.6.0_45] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) ~[na:1.6.0_45] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1775) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327) ~[na:1.6.0_45] at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1969) ~[na:1.6.0_45] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893) ~[na:1.6.0_45] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1775) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349) ~[na:1.6.0_45] at java.util.HashSet.readObject(HashSet.java:291) ~[na:1.6.0_45] at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969) ~[na:1.6.0_45] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) ~[na:1.6.0_45] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1775) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327) ~[na:1.6.0_45] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349) ~[na:1.6.0_45] ... (skipped) ... at com.atlassian.stash.internal.pull.DefaultMergeRequestCheckService.check(DefaultMergeRequestCheckService.java:46) [stash-service-impl-2.10.1.jar:na] at com.sun.proxy.$Proxy168.check(Unknown Source) [na:na] at com.sun.proxy.$Proxy218.check(Unknown Source) [na:na] at com.sun.proxy.$Proxy218.check(Unknown Source) [na:na] at com.acme.stash.plugin.pull.merge.AutoMergingJob$2.perform(AutoMergingJob.java:218) [plugin.6818593026216650093.stash-pull-request-automerge-1.0.32_1390605423000.jar:na] {code} The bug only in this thread, the same check from Web UI work fine. I think, that PluginScheduler load tasks in not valid ClassLoader.

    Atlassian JIRA | 3 years ago | Alexey Efimov
    java.lang.ClassNotFoundException: com.acme.stash.plugin.other.content.SomeKeyInSetMultimap
  3. 0

    Deserialization throwing ClassNotFoundException for object in object

    Stack Overflow | 3 years ago | DaJackal
    java.lang.ClassNotFoundException: com.liferay.portal.model.impl.UserImpl
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    sending and receiving objects in mqtt by Serialization and deserialization results in classnotfound exception

    Stack Overflow | 3 years ago | Reva
    java.lang.ClassNotFoundException: com.example.cv_client_android.deviceloc

  1. Tahir 2 times, last 2 months ago
  2. Piz 2027 times, last 4 months ago
  3. jedcua 1 times, last 4 months ago
  4. esaar 3 times, last 4 months ago
  5. Justin 1 times, last 5 months ago
4 more registered users
91 unregistered visitors
Not finding the right solution?
Take a tour to get the most out of Samebug.

Tired of useless tips?

Automated exception search integrated into your IDE

Root Cause Analysis

  1. java.lang.ClassNotFoundException

    com.acme.stash.plugin.other.content.SomeKeyInSetMultimap

    at org.apache.catalina.loader.WebappClassLoader.loadClass()
  2. Glassfish Core
    WebappClassLoader.loadClass
    1. org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)[catalina.jar:7.0.47]
    1 frame
  3. Java RT
    ObjectInputStream.readObject
    1. java.lang.Class.forName0(Native Method)[na:1.6.0_45]
    2. java.lang.Class.forName(Class.java:249)[na:1.6.0_45]
    3. java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:602)[na:1.6.0_45]
    4. java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1589)[na:1.6.0_45]
    5. java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1494)[na:1.6.0_45]
    6. java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1748)[na:1.6.0_45]
    7. java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327)[na:1.6.0_45]
    8. java.io.ObjectInputStream.readObject(ObjectInputStream.java:349)[na:1.6.0_45]
    8 frames
  4. Guava
    LinkedHashMultimap.readObject
    1. com.google.common.collect.Serialization.populateMultimap(Serialization.java:184)[guava-10.0.1.jar:na]
    2. com.google.common.collect.LinkedHashMultimap.readObject(LinkedHashMultimap.java:383)[guava-10.0.1.jar:na]
    2 frames
  5. Java RT
    ObjectInputStream.readObject
    1. java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969)[na:1.6.0_45]
    2. java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)[na:1.6.0_45]
    3. java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1775)[na:1.6.0_45]
    4. java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327)[na:1.6.0_45]
    5. java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1969)[na:1.6.0_45]
    6. java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)[na:1.6.0_45]
    7. java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1775)[na:1.6.0_45]
    8. java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327)[na:1.6.0_45]
    9. java.io.ObjectInputStream.readObject(ObjectInputStream.java:349)[na:1.6.0_45]
    10. java.util.HashSet.readObject(HashSet.java:291)[na:1.6.0_45]
    11. java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:969)[na:1.6.0_45]
    12. java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)[na:1.6.0_45]
    13. java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1775)[na:1.6.0_45]
    14. java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327)[na:1.6.0_45]
    15. java.io.ObjectInputStream.readObject(ObjectInputStream.java:349)[na:1.6.0_45]
    15 frames