incubator-clerezza-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Spicar (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CLEREZZA-617) Bug in org.apache.clerezza.platform.typerendering.WebRenderingService causes a refresh of all bundles
Date Mon, 23 Jan 2012 14:22:41 GMT

    [ https://issues.apache.org/jira/browse/CLEREZZA-617?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13191174#comment-13191174
] 

Daniel Spicar commented on CLEREZZA-617:
----------------------------------------

Some information on the runtime dependencies for SSPs:

Bare minimum:
<Import-Package>
	scala,
	scala.reflect,
	scala.collection,
	scala.xml,
	org.apache.clerezza.platform.typerendering.scala,
	*
</Import-Package>

NOTE: declaring scala.* will not work for some reason. I assume patterns are only correctly
resolved at compile time by the BND plugin. These dependencies are not visible at compile
time.

when referencing a  WebRenderingService: org.clerezza.app.webrenderingservice is required
additionally

NOTE: depending on the code in the SSP you may require different packages you reference in
the code.

The lazy and expensive method (classpath becomes expensive to search):
<DynamicImport-Package>*</DynamicImport-Package>

This will dynamically resolve packages exported in the OSGi environment at runtime.

Usage with maven bundle plugin:
<build>
	<plugins>
		<plugin>
			<groupId>org.apache.felix</groupId>
			<artifactId>maven-bundle-plugin</artifactId>
			<configuration>
				<instructions>
				<!--	<DynamicImport-Package>*</DynamicImport-Package>   -->
					<Import-Package>
						scala,
						scala.reflect,
						scala.collection,
						scala.xml,
						org.apache.clerezza.platform.typerendering.scala,
						org.clerezza.app.webrenderingservice,
						*
					</Import-Package>
				</instructions>
			</configuration>
		</plugin>
	</plugins>
</build>


                
> Bug in org.apache.clerezza.platform.typerendering.WebRenderingService causes a refresh
of all bundles
> -----------------------------------------------------------------------------------------------------
>
>                 Key: CLEREZZA-617
>                 URL: https://issues.apache.org/jira/browse/CLEREZZA-617
>             Project: Clerezza
>          Issue Type: Bug
>         Environment: Mac OSx 10.6.6
> java version "1.6.0_26"
> Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
> Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)
>            Reporter: Tsuyoshi Ito
>            Assignee: Daniel Spicar
>            Priority: Critical
>         Attachments: refreshes.png, renderingservice-minimal.zip, renderingservice.zip
>
>
> Updating a bundle which provides a WebrenderingService causes an update of all bundles
(after refresh). Even thougth there are no dependencies between most of the bundles.
> test bundles to reproduce the bug attached.
> How to reproduce it:
> parent version 0.3-incubating-SNAPSHOT is used in test bundles (probably you need  0.2-incubating-SNAPSHOT).
> attempt 1
> 1. Install and start bundle org.clerezza.app.webrenderingservice
> 2. Install and start bundle org.clerezza.app.webrenderingserviceconsumer
> 3. Go to http://localhost:8080/admin/renderingtest, The WebrenderingService produces
the text "hello test". WebrenderingService is used in an ssp in the webrenderingserviceconsumer
bundle
> 4. update org.clerezza.app.webrenderingservice, 
> 5. enter ":f refresh", a refresh is necessary. all bundles are updated
> Furthermore the following error occured, which makes Clerezza Console unavailable.
> org.apache.clerezza.shell.InterruptibleInputStream$$anon$1@2053076f: caught java.io.IOException:
Bad file descriptor
> java.io.IOException: Bad file descriptor
> 	at sun.nio.ch.FileDispatcher.read0(Native Method)
> 	at sun.nio.ch.FileDispatcher.read(FileDispatcher.java:26)
> 	at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:202)
> 	at sun.nio.ch.IOUtil.read(IOUtil.java:175)
> 	at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:144)
> 	at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:48)
> 	at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:92)
> 	at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:86)
> 	at java.io.InputStream.read(InputStream.java:85)
> 	at sun.nio.ch.ChannelInputStream.read(ChannelInputStream.java:64)
> 	at org.apache.clerezza.shell.InterruptibleInputStream$$anon$1$$anonfun$act$1$$anonfun$apply$1.apply(InterruptibleInputStream.scala:40)
> 	at org.apache.clerezza.shell.InterruptibleInputStream$$anon$1$$anonfun$act$1$$anonfun$apply$1.apply(InterruptibleInputStream.scala:35)
> 	at scala.actors.ReactorTask.run(ReactorTask.scala:34)
> 	at scala.actors.Reactor$class.resumeReceiver(Reactor.scala:129)
> 	at org.apache.clerezza.shell.InterruptibleInputStream$$anon$1.scala$actors$ReplyReactor$$super$resumeReceiver(InterruptibleInputStream.scala:32)
> 	at scala.actors.ReplyReactor$class.resumeReceiver(ReplyReactor.scala:69)
> 	at org.apache.clerezza.shell.InterruptibleInputStream$$anon$1.resumeReceiver(InterruptibleInputStream.scala:32)
> 	at scala.actors.Actor$class.searchMailbox(Actor.scala:478)
> 	at org.apache.clerezza.shell.InterruptibleInputStream$$anon$1.searchMailbox(InterruptibleInputStream.scala:32)
> 	at scala.actors.Reactor$$anonfun$startSearch$1$$anonfun$apply$mcV$sp$1.apply(Reactor.scala:114)
> 	at scala.actors.Reactor$$anonfun$startSearch$1$$anonfun$apply$mcV$sp$1.apply(Reactor.scala:114)
> 	at scala.actors.ReactorTask.run(ReactorTask.scala:36)
> 	at scala.concurrent.forkjoin.ForkJoinPool$AdaptedRunnable.exec(ForkJoinPool.java:611)
> 	at scala.concurrent.forkjoin.ForkJoinTask.quietlyExec(ForkJoinTask.java:422)
> 	at scala.concurrent.forkjoin.ForkJoinWorkerThread.mainLoop(ForkJoinWorkerThread.java:340)
> 	at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:325)
> Because Clerezza Console is unavailable I have used http://localhost:8080/system/console/shell

> attempt 2
> 1 .Update bundle org.clerezza.app.webrenderingservice again without visiting http://localhost:8080/admin/renderingtest
first (not compiling the ssp)
> 2. enter refresh => no refresh necessary

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message