Re: IllegalArgumentException: factory thrown when creating LdapNetworkConnection inside OSGi

2012-07-22 Thread Emmanuel Lécharny

Göktürk, any insight ?

Le 7/22/12 12:26 PM, Hendy Irawan a écrit :

Hi Apache Directory developers,

Creating LdapNetworkConnection throws IllegalArgumentException (in at
org.apache.mina.filter.codec.ProtocolCodecFilter.init(ProtocolCodecFilter.java:73)
), even after all apache.directory bundles have been started.

No problem if outside OSGi.

I'm using LdapConnectionPool here but simple LdapNetworkConnection also
throws error.

Any suggestions / workaround ?

I've also filed this as a bug in
https://issues.apache.org/jira/browse/DIRAPI-90

{code}
2012-07-22 17:16:44,329 | ERROR | rint Extender: 3 | BlueprintContainerImpl
| 9 - org.apache.aries.blueprint - 0.3.2 | Unable to start blueprint
container for bundle com.wikindonesia.person
org.osgi.service.blueprint.container.ComponentDefinitionException: Error
when instanciating bean #recipe-6 of class class
com.wikindonesia.person.PersonRepository
 at
org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:271)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:708)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:198)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:137)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.ServiceRecipe.createRecipe(ServiceRecipe.java:370)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:278)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:248)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:229)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.ServiceRecipe.getClasses(ServiceRecipe.java:340)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:178)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:653)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:336)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:230)[9:org.apache.aries.blueprint:0.3.2]
 at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.6.0_24]
 at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)[:1.6.0_24]
 at
java.util.concurrent.FutureTask.run(FutureTask.java:166)[:1.6.0_24]
 at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165)[:1.6.0_24]
 at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)[:1.6.0_24]
 at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)[:1.6.0_24]
 at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)[:1.6.0_24]
 at java.lang.Thread.run(Thread.java:679)[:1.6.0_24]
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException:
factory
 at
org.soluvas.ldap.PooledLdapRepository.init(PooledLdapRepository.java:65)
 at
com.wikindonesia.person.PersonRepository.init(PersonRepository.java:41)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)[:1.6.0_24]
 at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)[:1.6.0_24]
 at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.6.0_24]
 at
java.lang.reflect.Constructor.newInstance(Constructor.java:532)[:1.6.0_24]
 at
org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:257)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:842)[9:org.apache.aries.blueprint:0.3.2]
 at
org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:269)[9:org.apache.aries.blueprint:0.3.2]
 ... 22 more
Caused by: java.lang.IllegalArgumentException: factory
 at

Re: IllegalArgumentException: factory thrown when creating LdapNetworkConnection inside OSGi

2012-07-22 Thread Hendy Irawan
Thank you Gokturk !

Much appreciated :-)

On Mon, Jul 23, 2012 at 1:22 AM, Göktürk Gezer gokturk.ge...@gmail.comwrote:

 Hi Hendy,

 I see you pointed out the cause in jira, and that solves the issue.

 We're about to switch to OSGI runtime in near future for both the server
 and the api. Currently we have no documentation for our OSGI extensions,
 but this situation will change soon and will fix many similar issues.

 I'll close this issue with your recommendation-1 ( please throw a better
 exception message (e.g. Cannot find ProtocolCodecFactory, hint: install
 mvn:org.apache.directory.shared/shared-ldap-net-mina bundle))

 Regards,
 Göktürk

 On Sun, Jul 22, 2012 at 7:02 PM, Emmanuel Lécharny elecha...@gmail.com
 wrote:

  Göktürk, any insight ?
 
  Le 7/22/12 12:26 PM, Hendy Irawan a écrit :
 
   Hi Apache Directory developers,
 
  Creating LdapNetworkConnection throws IllegalArgumentException (in at
  org.apache.mina.filter.codec.**ProtocolCodecFilter.init(**
  ProtocolCodecFilter.java:73)
  ), even after all apache.directory bundles have been started.
 
  No problem if outside OSGi.
 
  I'm using LdapConnectionPool here but simple LdapNetworkConnection also
  throws error.
 
  Any suggestions / workaround ?
 
  I've also filed this as a bug in
  https://issues.apache.org/**jira/browse/DIRAPI-90
 https://issues.apache.org/jira/browse/DIRAPI-90
 
  {code}
  2012-07-22 17:16:44,329 | ERROR | rint Extender: 3 |
  BlueprintContainerImpl
  | 9 - org.apache.aries.blueprint - 0.3.2 | Unable to start blueprint
  container for bundle com.wikindonesia.person
  org.osgi.service.blueprint.**container.**ComponentDefinitionException:
  Error
  when instanciating bean #recipe-6 of class class
  com.wikindonesia.person.**PersonRepository
   at
  org.apache.aries.blueprint.**container.BeanRecipe.**
  getInstance(BeanRecipe.java:**271)[9:org.apache.aries.**blueprint:0.3.2]
   at
  org.apache.aries.blueprint.**container.BeanRecipe.**
  internalCreate(BeanRecipe.**java:708)[9:org.apache.aries.**
  blueprint:0.3.2]
   at
  org.apache.aries.blueprint.di.**AbstractRecipe.create(**
  AbstractRecipe.java:64)[9:org.**apache.aries.blueprint:0.3.2]
   at
  org.apache.aries.blueprint.**container.BlueprintRepository.**
  createInstances(**BlueprintRepository.java:219)[**
  9:org.apache.aries.blueprint:**0.3.2]
   at
  org.apache.aries.blueprint.**container.BlueprintRepository.**
  createInstance(**BlueprintRepository.java:198)[**
  9:org.apache.aries.blueprint:**0.3.2]
   at
  org.apache.aries.blueprint.**container.BlueprintRepository.**
  create(BlueprintRepository.**java:137)[9:org.apache.aries.**
  blueprint:0.3.2]
   at
  org.apache.aries.blueprint.**container.ServiceRecipe.**
  createRecipe(ServiceRecipe.**java:370)[9:org.apache.aries.**
  blueprint:0.3.2]
   at
  org.apache.aries.blueprint.**container.ServiceRecipe.**
  createService(ServiceRecipe.**java:278)[9:org.apache.aries.**
  blueprint:0.3.2]
   at
  org.apache.aries.blueprint.**container.ServiceRecipe.**
  internalGetService(**ServiceRecipe.java:248)[9:org.**
  apache.aries.blueprint:0.3.2]
   at
  org.apache.aries.blueprint.**container.ServiceRecipe.**
  internalGetService(**ServiceRecipe.java:229)[9:org.**
  apache.aries.blueprint:0.3.2]
   at
  org.apache.aries.blueprint.**container.ServiceRecipe.**
  getClasses(ServiceRecipe.java:**340)[9:org.apache.aries.**
  blueprint:0.3.2]
   at
  org.apache.aries.blueprint.**container.ServiceRecipe.**
  register(ServiceRecipe.java:**178)[9:org.apache.aries.**blueprint:0.3.2]
   at
  org.apache.aries.blueprint.**container.**BlueprintContainerImpl.**
 
 registerServices(**BlueprintContainerImpl.java:**653)[9:org.apache.aries.
  **blueprint:0.3.2]
   at
  org.apache.aries.blueprint.**container.**BlueprintContainerImpl.doRun(**
  BlueprintContainerImpl.java:**336)[9:org.apache.aries.**blueprint:0.3.2]
   at
  org.apache.aries.blueprint.**container.**BlueprintContainerImpl.run(**
  BlueprintContainerImpl.java:**230)[9:org.apache.aries.**blueprint:0.3.2]
   at
  java.util.concurrent.**Executors$RunnableAdapter.**
  call(Executors.java:471)[:1.6.**0_24]
   at
  java.util.concurrent.**FutureTask$Sync.innerRun(**
  FutureTask.java:334)[:1.6.0_**24]
   at
  java.util.concurrent.**FutureTask.run(FutureTask.**java:166)[:1.6.0_24]
   at
  java.util.concurrent.**ScheduledThreadPoolExecutor$**
  ScheduledFutureTask.access$**101(**ScheduledThreadPoolExecutor.**
  java:165)[:1.6.0_24]
   at
  java.util.concurrent.**ScheduledThreadPoolExecutor$**
  ScheduledFutureTask.run(**ScheduledThreadPoolExecutor.**
  java:266)[:1.6.0_24]
   at
  java.util.concurrent.**ThreadPoolExecutor.runWorker(**
  ThreadPoolExecutor.java:1110)[**:1.6.0_24]
   at
  java.util.concurrent.**ThreadPoolExecutor$Worker.run(**
  ThreadPoolExecutor.java:603)[:**1.6.0_24]
   at