Hello JB,

Just wanted to check whether you've managed to recreate this and possibly
explain what is happening. I'm wondering if there might be a problem with
the implementation of the feature functionality which is why I don't want
this in production yet (but I have to upgrade our production servers very
soon).

My reasoning is as follows: If the org.apache.aries.util bundle is already
installed (and possibly active - don't know what the timing looks like)
then installing a feature containing the org.apache.aries.util bundle
should be a noop - right? But apparently the feature functionality does
something regarding this bundle anyway. What should it do? Why should it do
anything?

/Bengt


2012/11/7 Bengt Rodehav <[email protected]>

> The workaround I'm currently using is to modify the
> enterprise-2.3.0-features.xml so that the *jpa* feature and the *jndi*feature 
> no longer include the org.apache.aries.util bundle. Then everything
> seems to work (the org.apache.aries.util bundle is installed anyway thanks
> to startup.properties).
>
> However, I still don't feel comfortable putting this into production until
> I know what is happening.
>
> /Bengt
>
>
>
>
> 2012/11/5 Bengt Rodehav <[email protected]>
>
>> Thanks a lot JB,
>>
>> /Bengt
>>
>>
>> 2012/11/5 Jean-Baptiste Onofré <[email protected]>
>>
>>> Hi Bengt,
>>>
>>> thanks for the detailed explanation.
>>>
>>> I will try to create a use case (without iPojo) to reproduce the issue
>>> (in combination with jpa feature).
>>>
>>> Regards
>>> JB
>>>
>>>
>>> On 11/05/2012 04:59 PM, Bengt Rodehav wrote:
>>>
>>>> Some more findings...
>>>>
>>>> It seems like the Karaf Shell (org.apache.karaf.shell.**console) bundle
>>>> uses packages from aries (e g org.apache.aries.blueprint) which in turn
>>>> uses packages from org.apache.aries.util. Could it be that when
>>>> the org.apache.aries.util bundle is installed as part of the jpa
>>>> feature, it somehow causes a refresh which causes dependent bundles
>>>> (such as the org.apache.karaf.shell.console bundle) to be rewired. This
>>>> in turn would probably reinitialize the console (I'm probably using the
>>>> wrong terminology here but you know what I mean...).
>>>>
>>>> If that is the case, then it seems highly undesirable to include
>>>> the org.apache.aries.util bundle in the jpa feature.
>>>>
>>>> I don't have an explanation as to why this problem only occurs together
>>>> with iPojo but I assume that it somehow triggers the refresh.
>>>>
>>>> /Bengt
>>>>
>>>>
>>>> 2012/11/5 Bengt Rodehav <[email protected] <mailto:[email protected]>>
>>>>
>>>>
>>>>     BTW, I tried using iPojo 1.6.8 instead to see if this is a problem
>>>>     introduced in later iPojo versions. I do, however, get the same
>>>>     problems using iPojo 1.6.8 which implies that it's not a newly
>>>>     introduced iPojo problem.
>>>>
>>>>     /Bengt
>>>>
>>>>
>>>>     2012/11/5 Bengt Rodehav <[email protected] <mailto:
>>>> [email protected]>>
>>>>
>>>>
>>>>         I'm trying to upgrade my custom Karaf distribution to Karaf
>>>>         2.3.0 but have ran into some problems. It seems there is some
>>>>         kind of conflict between ipojo 1.8.2 and the jpa feature -
>>>>         specifically the org.apache.aries.util bundle in the jpa
>>>> feature.
>>>>
>>>>         I install ipojo as a feature (not listed in startup.properties).
>>>>         But when I do this I get the following exception:
>>>>
>>>>         /2012-11-05 15:51:20,251 | INFO  | l Console Thread | Console
>>>>
>>>>                                 | araf.shell.console.jline.**Console
>>>>  199
>>>>         | 14 - org.apache.karaf.shell.console - 2.3.0 | Exception caught
>>>>         while executing command/
>>>>         /java.lang.**UnsupportedOperationException: read() with timeout
>>>>         cannot be called as non-blocking operation is disabled/
>>>>         /at
>>>>         jline.internal.**NonBlockingInputStream.read(**
>>>> NonBlockingInputStream.java:**134)[14:org.apache.karaf.**
>>>> shell.console:2.3.0]/
>>>>         /at
>>>>         jline.internal.**NonBlockingInputStream.read(**
>>>> NonBlockingInputStream.java:**246)[14:org.apache.karaf.**
>>>> shell.console:2.3.0]/
>>>>         /at
>>>>         jline.internal.**InputStreamReader.read(**
>>>> InputStreamReader.java:259)[**14:org.apache.karaf.shell.**
>>>> console:2.3.0]/
>>>>         /at
>>>>         jline.internal.**InputStreamReader.read(**
>>>> InputStreamReader.java:196)[**14:org.apache.karaf.shell.**
>>>> console:2.3.0]/
>>>>         /at
>>>>         jline.console.ConsoleReader.**readCharacter(ConsoleReader.**
>>>> java:1974)[14:org.apache.**karaf.shell.console:2.3.0]/
>>>>         /at
>>>>         jline.console.ConsoleReader.**readLine(ConsoleReader.java:**
>>>> 2174)[14:org.apache.karaf.**shell.console:2.3.0]/
>>>>         /at
>>>>         jline.console.ConsoleReader.**readLine(ConsoleReader.java:**
>>>> 2098)[14:org.apache.karaf.**shell.console:2.3.0]/
>>>>         /at
>>>>         org.apache.karaf.shell.**console.jline.Console.**
>>>> readAndParseCommand(Console.**java:235)[14:org.apache.karaf.**
>>>> shell.console:2.3.0]/
>>>>         /at
>>>>         org.apache.karaf.shell.**console.jline.Console.run(**
>>>> Console.java:171)[14:org.**apache.karaf.shell.console:2.**3.0]/
>>>>         /at java.lang.Thread.run(Thread.**java:662)[:1.6.0_32]/
>>>>
>>>>
>>>>         Then it seems like Karaf (or Felix) restarts somehow since I get
>>>>         another "Karaf" logo in the console. The issue can be reproduced
>>>>         quite easily:
>>>>
>>>>         1. Download a fresh Karaf 2.3.0
>>>>
>>>>         2. Create a new feature containing the ipojo bundle. The easiest
>>>>         way is probably to add the following lines to the
>>>>         enterprise-2.3.0-features.xml in the "system" folder:
>>>>
>>>>              <feature name="ipojo">
>>>>
>>>>         <bundle>mvn:org.apache.felix/**org.apache.felix.ipojo/1.8.2</**
>>>> bundle>
>>>>              </feature>
>>>>
>>>>         3. Edit the etc/org.apache.karaf.features.**cfg as follows:
>>>>
>>>>              featuresBoot=config,ssh,**management,kar,jpa,ipojo
>>>>
>>>>         Some other obeservations:
>>>>
>>>>         - If I switch the jpa and the ipojo features I get other
>>>> exceptions.
>>>>
>>>>         - The org.apache.aries.util bundle is part of the jpa feature
>>>>         (start level 30) but it is also present in startup.properties
>>>>         (start level 20).
>>>>
>>>>         - If I remove the org.apache.aries.util bundle from the jpa
>>>>         feature then things seem to work.
>>>>
>>>>         - If I install ipojo by using startup.properties instead of
>>>>         using a feature then things seem to work.
>>>>
>>>>         The last two observations might imply that org.apache.aries.util
>>>>         and ipojo must be resolved at the same time (start levels do not
>>>>         make any difference).
>>>>
>>>>         I'm not sure if this post belongs here or in Felix mailing list.
>>>>         However, since it seems to involve the enterprise features that
>>>>         is part of Karaf I try here first. It's very confusing. Although
>>>>         I have found a couple of work-arounds I don't feel comfortable
>>>>         using them since I don't know what is happening.
>>>>
>>>>         Does anyone have a clue?
>>>>
>>>>         /Bengt
>>>>
>>>>
>>>>
>>>>
>>> --
>>> Jean-Baptiste Onofré
>>> [email protected]
>>> http://blog.nanthrax.net
>>> Talend - http://www.talend.com
>>>
>>
>>
>

Reply via email to