[
https://issues.apache.org/jira/browse/KARAF-3746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14563024#comment-14563024
]
Manohar Gandra commented on KARAF-3746:
---------------------------------------
This issue is fixed by adding the bundle class loader to Thread context in
InstallFeatureCommand.java.
protected Object doExecute() throws Exception {
// check if the cluster group exists
Group group = groupManager.findGroupByName(groupName);
if (group == null) {
System.err.println("Cluster group " + groupName + " doesn't exist");
return null;
}
// check if the producer is ON
if (eventProducer.getSwitch().getStatus().equals(SwitchStatus.OFF)) {
System.err.println("Cluster event producer is OFF");
return null;
}
ClassLoader originalClassLoader =
Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
Map<String, FeatureState> clusterFeatures =
clusterManager.getMap(Constants.FEATURES_MAP + Configurations.SEPARATOR +
groupName);
// try to resolve the feature version if not provided
if (version == null) {
for (FeatureState state : clusterFeatures.values()) {
if (state.getName().equals(feature)) {
version = state.getVersion();
}
}
}
// check if the feature exists in the map
if (!clusterFeatures.containsKey(feature + "/" + version)) {
if (version != null)
System.err.println("Feature " + feature + "/" +
version + " doesn't exist in the cluster group " + groupName);
else System.err.println("Feature " + feature + "
doesn't exist in the cluster group " + groupName);
return null;
}
// check if the outbound event is allowed
if (!isAllowed(group, Constants.CATEGORY, feature,
EventType.OUTBOUND)) {
System.err.println("Feature " + feature + " is blocked
outbound for cluster group " + groupName);
return null;
}
// update the features in the cluster group
FeatureState clusterFeatureState = clusterFeatures.get(feature
+ "/" + version);
if (clusterFeatureState == null) {
clusterFeatureState = new FeatureState();
clusterFeatureState.setName(feature);
clusterFeatureState.setVersion(version);
}
clusterFeatureState.setInstalled(Boolean.TRUE);
clusterFeatures.put(feature + "/" + version,
clusterFeatureState);
// TODO does it make sense to also update the cluster bundles,
I don't think so ...
}finally {
Thread.currentThread().setContextClassLoader(originalClassLoader);
}
// broadcast the cluster event
ClusterFeaturesEvent event = new ClusterFeaturesEvent(feature, version,
noClean, noRefresh, FeatureEvent.EventType.FeatureInstalled);
event.setSourceGroup(group);
eventProducer.produce(event);
return null;
}
public EventProducer getEventProducer() {
return eventProducer;
}
public void setEventProducer(EventProducer eventProducer) {
this.eventProducer = eventProducer;
}
> cluster:feature-install issue- HazelcastSerializationException: Problem when
> serializing type 1
> -----------------------------------------------------------------------------------------------
>
> Key: KARAF-3746
> URL: https://issues.apache.org/jira/browse/KARAF-3746
> Project: Karaf
> Issue Type: Bug
> Components: cellar-hazelcast
> Affects Versions: cellar-2.3.6
> Environment: CentOS -6.6
> Reporter: Manohar Gandra
> Priority: Blocker
>
> we are setting up the cellar 2.3.6 with apache servicemix 5.3.2. we are
> installing the features on cluster and seeing issues. We also tried the same
> with cellar 2.3.5 and apache servicemix 5.3.0 and seeing same issue.
> 1. cluster:feature-url-add default <maven feature url>
> This is working fine.
> 2. cluster:feature-install default <feature name>
> This command is failing with following exception.
> Any help is appreciated.
> 2015-05-27 09:22:15,144 | ERROR | l Console Thread | Console
> | ? ? | 20 -
> org.apache.karaf.shell.console - 2.4.0 | Exception caught while executing
> command
> com.hazelcast.nio.HazelcastSerializationException: Problem when serializing
> type 1
> at
> com.hazelcast.nio.AbstractSerializer.toObject(AbstractSerializer.java:128)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.nio.AbstractSerializer.toObject(AbstractSerializer.java:156)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.nio.Serializer.readObject(Serializer.java:75)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.impl.ThreadContext.toObject(ThreadContext.java:135)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.nio.IOUtil.toObject(IOUtil.java:163)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.impl.base.KeyValue.getValue(KeyValue.java:85)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.impl.Entries$EntryIterator.setHasNext(Entries.java:134)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.impl.Entries$EntryIterator.hasNext(Entries.java:125)[195:com.hazelcast:2.6.9]
> at
> org.apache.karaf.cellar.features.shell.InstallFeatureCommand.doExecute(InstallFeatureCommand.java:70)[202:org.apache.karaf.cellar.features:2.3.5]
> at
> org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:38)[20:org.apache.karaf.shell.console:2.4.0]
> at
> org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35)[20:org.apache.karaf.shell.console:2.4.0]
> at
> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)[20:org.apache.karaf.shell.console:2.4.0]
> at
> org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)[20:org.apache.karaf.shell.console:2.4.0]
> at
> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)[20:org.apache.karaf.shell.console:2.4.0]
> at
> org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)[20:org.apache.karaf.shell.console:2.4.0]
> at
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)[20:org.apache.karaf.shell.console:2.4.0]
> at
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)[20:org.apache.karaf.shell.console:2.4.0]
> at
> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:92)[20:org.apache.karaf.shell.console:2.4.0]
> at
> org.apache.karaf.shell.console.jline.Console.run(Console.java:196)[20:org.apache.karaf.shell.console:2.4.0]
> at
> org.apache.karaf.shell.console.jline.DelayedStarted.run(DelayedStarted.java:79)[20:org.apache.karaf.shell.console:2.4.0]
> Caused by: java.lang.ClassNotFoundException:
> org.apache.karaf.cellar.features.FeatureState
> at java.net.URLClassLoader$1.run(URLClassLoader.java:366)[:1.7.0_79]
> at java.net.URLClassLoader$1.run(URLClassLoader.java:355)[:1.7.0_79]
> at java.security.AccessController.doPrivileged(Native Method)[:1.7.0_79]
> at java.net.URLClassLoader.findClass(URLClassLoader.java:354)[:1.7.0_79]
> at java.lang.ClassLoader.loadClass(ClassLoader.java:425)[:1.7.0_79]
> at
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)[:1.7.0_79]
> at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_79]
> at
> com.hazelcast.nio.AbstractSerializer.loadClass(AbstractSerializer.java:81)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.nio.AbstractSerializer.loadClass(AbstractSerializer.java:56)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.nio.AbstractSerializer$1.resolveClass(AbstractSerializer.java:91)[195:com.hazelcast:2.6.9]
> at
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1612)[:1.7.0_79]
> at
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)[:1.7.0_79]
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)[:1.7.0_79]
> at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)[:1.7.0_79]
> at
> java.io.ObjectInputStream.readUnshared(ObjectInputStream.java:460)[:1.7.0_79]
> at
> com.hazelcast.nio.DefaultSerializer$ObjectSerializer.readNormal(DefaultSerializer.java:410)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.nio.DefaultSerializer$ObjectSerializer.read(DefaultSerializer.java:380)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.nio.DefaultSerializer.read(DefaultSerializer.java:138)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.nio.CustomSerializerAdapter.read(CustomSerializerAdapter.java:32)[195:com.hazelcast:2.6.9]
> at
> com.hazelcast.nio.AbstractSerializer.toObject(AbstractSerializer.java:121)[195:com.hazelcast:2.6.9]
> ... 19 more
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)