Git Product home page Git Product logo

ow2-proactive / programming Goto Github PK

View Code? Open in Web Editor NEW
7.0 18.0 19.0 316.55 MB

ProActive Programming library

Home Page: http://proactive.activeeon.com/

License: GNU Affero General Public License v3.0

Shell 0.64% XSLT 0.18% Python 0.51% Perl 0.02% Awk 0.01% Java 98.01% C 0.17% HTML 0.35% Batchfile 0.08% Groovy 0.01% VBScript 0.02%
middleware protocol asynchronous api rpc-framework distributed-computing java

programming's Introduction

ProActive Programming

Build Status

ProActive is a Java middleware that provides the programming and runtime facilities to build and deploy parallel, distributed and concurrent applications. It offers several built-in features (Asynchrony, Data spaces, Security, Fault tolerance, etc.)

Building binaries

If you want to recompile all sources and generate all jar files:

$> gradlew build -x test

You can also download binaries at http://www.activeeon.com/register/web-download

Contact

If you have any problems or questions when using ProActive feel free to contact us at [email protected]

programming's People

Contributors

acontes avatar bsauvan avatar cruz avatar fviale avatar gheon avatar ghsioux avatar jrochas avatar lpellegr avatar maelaudren avatar marcocast avatar mauriciojost avatar mbenguig avatar mboussaa avatar mcompastie avatar mebubo avatar nebilbenmabrouk avatar paraita avatar shatalovyaroslav avatar smirnoveeon avatar tao-xinxiu avatar tobwiens avatar youribonnaffe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

programming's Issues

Broken IPv6 support

Original issue created by Clement Mathieu on 17, Oct 2007 at 11:28 AM – PROACTIVE-19


ProActive is not able to deal correctly with IPv6 addresses.

URIBuilder.getLocalAddress() returns the first local InetAddress matching user requirement (PA_NOLOCAL, PA_NOPRIVATE). On dual stacked machines an Inet6Address can be returned.

The prefered stack is then set using (java.net.preferIPv?Stack). The rmiregistry & friends are started using the right protocol but remote object are unable to regsiter in the rmiregistry for un unknown reason.

<![CDATA[ → This ClassFileServer is listening on port 2026
Created a new registry on port 6604
//[fe80:0:0:0:200:ff:fe00:0]:6604/-5fac7077:115ad3c19a0:-7fff
-86c90fa5ce75c7ef:-5fac7077:115ad3c19a0:-8000
org.objectweb.proactive.core.ProActiveException: java.rmi.ConnectException: Connection refused to host: [fe80:0:0:0:200:ff:fe00:0]; nested exception is:
java.net.ConnectException: Connection refused
unable to activate a remote object at endpoint rmi://[fe80:0:0:0:200:ff:fe00:0]:6604/-5fac7077:115ad3c19a0:-7fff—86c90fa5ce75c7ef:-5fac7077:115ad3c19a0:-8000
]]> <![CDATA[org.objectweb.proactive.core.ProActiveException: java.rmi.ConnectException: Connection refused to host: [fe80:0:0:0:200:ff:fe00:0]; nested exception is:
java.net.ConnectException: Connection refused
at org.objectweb.proactive.core.remoteobject.rmi.RmiRemoteObjectFactory.register(RmiRemoteObjectFactory.java:166)
at org.objectweb.proactive.core.remoteobject.RemoteObjectExposer.activateProtocol(RemoteObjectExposer.java:116)
at org.objectweb.proactive.core.body.AbstractUniversalBody.register(AbstractUniversalBody.java:132)
at org.objectweb.proactive.core.body.AbstractUniversalBody.(AbstractUniversalBody.java:120)
at org.objectweb.proactive.core.body.AbstractBody.(AbstractBody.java:198)
at org.objectweb.proactive.core.body.HalfBody.(HalfBody.java:82)
at org.objectweb.proactive.core.body.HalfBody.getHalfBody(HalfBody.java:69)
at org.objectweb.proactive.core.body.LocalBodyStore.getContext(LocalBodyStore.java:189)
at org.objectweb.proactive.api.ProActiveObject.getBodyOnThis(ProActiveObject.java:1156)
at org.objectweb.proactive.api.ProActiveObject.newActive(ProActiveObject.java:245)
at org.objectweb.proactive.api.ProActiveObject.newActive(ProActiveObject.java:110)
at functionalTests.activeobject.acontinuation.Test$ACThread.run(Test.java:79)
Caused by: java.rmi.ConnectException: Connection refused to host: [fe80:0:0:0:200:ff:fe00:0]; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Naming.java:160)
at org.objectweb.proactive.core.remoteobject.rmi.RmiRemoteObjectFactory.register(RmiRemoteObjectFactory.java:151)
… 11 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.(Socket.java:366)
at java.net.Socket.(Socket.java:179)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
… 17 more

A temporary workaround is to set by hand -Djava.net.preferIPv4Stack. Non-regression test suite has been hacked to set this property.

NonSerializableException not thrown in void calls

Original issue created by Clement Mathieu on 16, Oct 2007 at 16:54 PM – PROACTIVE-9


When calling a method returning void with a non serializable parameter on a
group, the NotSerializableException is never raised and the call fails silently.

The issue boils down to:
ProxyForGroup.reify()
The exception list is not empty thus the NFE handler is called

NFEManager.fireNFE()
No custom handling, so the exception is thrown

ProcessForOneWayCall.run()
The exception is catched and put in the exception list again

Since no result is returned (void call), the application does not have access
to the exception list.

JMX notification causes NullPointerException caused by an early acces to the unstarted ProActiveConnectorServer in BodyImpl class.

Original issue created by Vladimir Bodnartchouk on 24, Oct 2007 at 19:41 PM – PROACTIVE-47


bash-3.00$ ./nbody.sh


N-body with ProActive -——————————————— Usage : nbody.(link: sh text: bat) (link: -3dft text: -nodisplay | -displayft | -3d ) totalNbBodies maxIter from the command line, it would be java Start xmlFile (link: -3dft text: -nodisplay | -displayft | -3d ) totalNbBodies maxIter Running with options set to 4 bodies, 10000 iterations, display true 1: Simplest version, one-to-one communication and master 2: Group communication and master 3: Group communication, odd-even-synchronization 4: Group communication, oospmd synchronization 5: Barnes-Hut

Choose which version you want to run (link: 12345) :
1
Thank you!
—> This ClassFileServer is listening on port 2027
Detected an existing RMI Registry on port 4001
*\\* \* Reading deployment descriptor: file:./../.././descriptors/Matrix.xml *******\* \* created VirtualNode name=Workers
Generating class : pa.stub.org.objectweb.proactive.core.jmx.util.StubJMXNotificationListener
*\\* Starting jvm on orchidee.inria.fr
—> This ClassFileServer is listening on port 2028
Detected an existing RMI Registry on port 4001
\* Mapping VirtualNode Workers with Node: rmi://orchidee.inria.fr:4001/Workers2049214902 done
Generating class : pa.stub.org.objectweb.proactive.examples.nbody.common.StubDisplayer
RUNNING simplest VERSION
Generating class : pa.stub.org.objectweb.proactive.examples.nbody.simple.StubDomain
(link: NBODY) 4 Planets are deployed
Generating class : pa.stub.org.objectweb.proactive.examples.nbody.simple.StubMaestro
Generating class : pa.stub.org.objectweb.proactive.core.jmx.server.StubProActiveServerImpl
Generating class : pa.stub.org.objectweb.proactive.core._StubUniqueID
Success at binding url PAJMXServer
PA
JVM1055174654
Generating class : pa.stub.org.objectweb.proactive.core.jmx.
StubProActiveConnection
java.lang.NullPointerException
java.lang.NullPointerException
at org.objectweb.proactive.core.body.BodyImpl$ActiveLocalBodyStrategy.sendRequest(BodyImpl.java:616)
at org.objectweb.proactive.core.body.AbstractBody.sendRequest(AbstractBody.java:930)
at org.objectweb.proactive.core.body.proxy.UniversalBodyProxy.sendRequestInternal(UniversalBodyProxy.java:354)
at org.objectweb.proactive.core.body.proxy.UniversalBodyProxy.sendRequest(UniversalBodyProxy.java:323)
at org.objectweb.proactive.core.body.proxy.UniversalBodyProxy.sendRequest(UniversalBodyProxy.java:277)
at org.objectweb.proactive.core.body.proxy.AbstractBodyProxy.reifyAsOneWay(AbstractBodyProxy.java:206)
at org.objectweb.proactive.core.body.proxy.AbstractBodyProxy.invokeOnBody(AbstractBodyProxy.java:141)
at org.objectweb.proactive.core.body.proxy.AbstractBodyProxy.reify(AbstractBodyProxy.java:114)
at pa.stub.org.objectweb.proactive.examples.nbody.simple.
StubMaestro.notifyFinished(
StubMaestro.java)
at org.objectweb.proactive.examples.nbody.simple.Domain.setValue(Domain.java:127)
at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.objectweb.proactive.core.mop.MethodCall.execute(MethodCall.java:389)
at org.objectweb.proactive.core.body.request.RequestImpl.serveInternal(RequestImpl.java:242)
at org.objectweb.proactive.core.body.request.RequestImpl.serve(RequestImpl.java:183)
at org.objectweb.proactive.core.body.BodyImpl$ActiveLocalBodyStrategy.serveInternal(BodyImpl.java:512)
at org.objectweb.proactive.core.body.BodyImpl$ActiveLocalBodyStrategy.serve(BodyImpl.java:480)
at org.objectweb.proactive.core.body.AbstractBody.serve(AbstractBody.java:887)
at org.objectweb.proactive.Service.blockingServeOldest(Service.java:192)
at org.objectweb.proactive.Service.blockingServeOldest(Service.java:167)
at org.objectweb.proactive.Service.fifoServing(Service.java:143)
at org.objectweb.proactive.core.body.ActiveBody$FIFORunActive.runActivity(ActiveBody.java:288)
at org.objectweb.proactive.core.body.ActiveBody.run(ActiveBody.java:170)
at java.lang.Thread.run(Thread.java:619)

binding of remote objects on laptop with a network configuration similar to a semir laptop

Original issue created by Arnaud Contes on 05, Nov 2007 at 18:54 PM – PROACTIVE-60


lalime is a laptop with a default network configuration :
- hostname set to lalime.inria.fr and /etc/hosts contains an entry like 138.96.×.x lalime lalime.inria.fr

Everything is fine when the laptop is connected to the inria’s production network but if booted only with a wifi connection things are really bad.

active objects try to bind themselves on lalime.inria.fr → no route to host

setting the proactive.runtime.ip does not help

there should be a solution for specifying a filter that accept either ip address, network mask or dns entries onto bind the active objects by default.

Automatically load group/bridge plugins

Original issue created by Clement Mathieu on 09, Nov 2007 at 10:40 AM – PROACTIVE-66


In GCMDeploymentParserImpl “plugin” are hard coded.

example:
registerGroupParser(new GroupARCParser());

All plugins should be put in a dedicated directory and automatically discovered/loaded. 3rd party plugins should also be easy to add.

Synchronous Call on group

Original issue created by Christian Delbé on 16, Oct 2007 at 16:52 PM – PROACTIVE-8


Suppose a synchronous call
AnyType toto() throws Exception;
is performed on a group g:
g.toto();

If the method execution toto is long/infinite, or if this method triggers a synchronisation between all the members
of the group, only a part of the calls are executed.

Indeed, as the group thread pool usually contains n threads (n < number of targets) those threads calls toto() only
on the n first objects of the groups, and are stucked until those calls end.

We should either forbid synchronous call on group, or fork as many threads as targets (:(), or call asynchronously inside
the group proxy if possible (while the group call itself remains synchronous).

Choice of appropriate constructor in newActive

Original issue created by Fabien Viale on 18, Oct 2007 at 11:21 AM – PROACTIVE-20


1) In ProActiveObject.newActive, when the choice of a constructor is ambiguous, MOP will take the first constructor declared in the Java source file and won’t display any error message.

2) Again in newActive, when one parameter of the constructor is null, MOP will throw a NullPointerException, without trying to find a constructor which could work.

Unexpected exception during deployment

Original issue created by Viet Dung Doan on 18, Oct 2007 at 14:51 PM – PROACTIVE-22


Using a fairly standard deployment descriptor, even after maximal simplification, a Null Pointer Exception arises. Application launched with this param:

-Djava.security.policy=/user/istokes/home/proactive/simple.policy

and a deployment descriptor found here:

/home/vddoan/picsougrid/PicsouGrid/config/Matrix.xml

Local nodes start fine, remote nodes inaccessible. Logging output with stack trace follows. Please add “istokes” to CC list for this bug.

—> This ClassFileServer is listening on port 2030

Detected an existing RMI Registry on port 1099
Generating class : pa.stub.org.objectweb.proactive.core.runtime.StubProActiveRuntime
Generating class : pa.stub.org.objectweb.proactive.core.body.StubUniversalBody
*******\* Reading deployment descriptor: file:/user/vddoan/home/picsougrid/PicsouGrid/config/Matrix.xml ***********\*
created VirtualNode name=matrixNode
Generating class : pa.stub.org.objectweb.proactive.core.jmx.util._StubJMXNotificationListener
*\\* \* Starting jvm on thanglong.inria.fr
*\\* \* Starting jvm on thanglong.inria.fr
—> This ClassFileServer is listening on port 2033
—> This ClassFileServer is listening on port 2034
Detected an existing RMI Registry on port 1099
Detected an existing RMI Registry on port 1099
Generating class : pa.stub.org.objectweb.proactive.core.runtime.
StubProActiveRuntime
Generating class : pa.stub.org.objectweb.proactive.core.runtime.
StubProActiveRuntime
*\\* \* Mapping VirtualNode matrixNode with Node: rmi://thanglong.inria.fr:1099/matrixNode1686251308 done
\* Mapping VirtualNode matrixNode with Node: rmi://thanglong.inria.fr:1099/matrixNode379797970 done
Exception in thread “main” java.lang.ExceptionInInitializerError
at org.objectweb.proactive.core.runtime.StartRuntime.(StartRuntime.java:62)
Caused by: java.lang.NullPointerException
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:433)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:336)
at org.objectweb.proactive.core.util.log.ProActiveLogger.(ProActiveLogger.java:51)
… 1 more
Exception in thread “main” java.lang.ExceptionInInitializerError
at org.objectweb.proactive.core.runtime.StartRuntime.(StartRuntime.java:62)
Caused by: java.lang.NullPointerException
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:433)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:336)
at org.objectweb.proactive.core.util.log.ProActiveLogger.(ProActiveLogger.java:51)
… 1 more
Process finished Thread=ERR → /usr/bin/rsh anacon
Process finished Thread=IN → /usr/bin/rsh anacon
Process finished Thread=IN → /usr/bin/rsh anacon
Process finished Thread=ERR → /usr/bin/rsh anacon
Exception in thread “main” java.lang.ExceptionInInitializerError
at org.objectweb.proactive.core.runtime.StartRuntime.(StartRuntime.java:62)
Caused by: java.lang.NullPointerException
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:433)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:336)
at org.objectweb.proactive.core.util.log.ProActiveLogger.(ProActiveLogger.java:51)
… 1 more
Exception in thread “main” java.lang.ExceptionInInitializerError
at org.objectweb.proactive.core.runtime.StartRuntime.(StartRuntime.java:62)
Caused by: java.lang.NullPointerException
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:433)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:336)
at org.objectweb.proactive.core.util.log.ProActiveLogger.(ProActiveLogger.java:51)
… 1 more
Exception in thread “main” java.lang.ExceptionInInitializerError
at org.objectweb.proactive.core.runtime.StartRuntime.(StartRuntime.java:62)
Caused by: java.lang.NullPointerException
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:433)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:336)
at org.objectweb.proactive.core.util.log.ProActiveLogger.(ProActiveLogger.java:51)
… 1 more
Exception in thread “main” java.lang.ExceptionInInitializerError
at org.objectweb.proactive.core.runtime.StartRuntime.(StartRuntime.java:62)
Caused by: java.lang.NullPointerException
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:433)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:336)
at org.objectweb.proactive.core.util.log.ProActiveLogger.(ProActiveLogger.java:51)
… 1 more
Process finished Thread=ERR → /usr/bin/rsh petawa
Process finished Thread=IN → /usr/bin/rsh petawa
Process finished Thread=ERR → /usr/bin/rsh fideli
Process finished Thread=IN → /usr/bin/rsh fideli
Process finished Thread=IN → /usr/bin/rsh fideli
Process finished Thread=ERR → /usr/bin/rsh fideli
Process finished Thread=IN → /usr/bin/rsh petawa
Process finished Thread=ERR → /usr/bin/rsh petawa
After many retries, only 2 nodes are created on 8 expected for Virtual Node “matrixNode” in descriptor “file:/user/vddoan/home/picsougrid/PicsouGrid/config/Matrix.xml”.
2 nodes found
thanglong.inria.fr
thanglong.inria.fr
Press Enter to continue

Service.getRequestCount(String methodName)

Original issue created by Clement Mathieu on 16, Oct 2007 at 17:20 PM – PROACTIVE-12


Submitted By:
Wasseim Al Zouabi (walzouab)

i believe that since we have the pair hasRequestToServe() and getRequestCount() it would be very useful to also have
the pair hasRequestToServe(String methodName) and Service.getRequestCount(String methodName) however the latter doesnt
exist.

the requested method would return the number of request on a specific method inside the request queue.

i believe it would be very useful to have such a method. i have already faced a situation in which such a method would
prove useful and disccused it with mario.

regards,
wasseim

Get thread dump when a functional test is killed on timeout

Original issue created by Clement Mathieu on 19, Oct 2007 at 16:21 PM – PROACTIVE-23


When a timeout occur, a functional test dump its thread on stdout before exiting.

We use forked VMs to run tests. Unfortunately, when the forked VM exit, ant stupidly decides to delete the log file. So the thread dump is lost.

We need to find a workaround to keep the logs.

One solution is to hack ant, but I don’t think we want to do this. And x year old bug lives in the ant BTS, but it seems that nobody care to fix it…

Parser/Schema/Impl refactoring

Original issue created by Clement Mathieu on 09, Nov 2007 at 11:11 AM – PROACTIVE-68


Currently schema, parser and implementations are splitted in 3 different packages.

We should move to a different layout: put all classes and schema related to NAME inside the package o.o.p.e.gcm.process.NAME.

Immediate Service on component could be applicable to many method

Original issue created by Cédric Dalmasso on 17, Oct 2007 at 09:26 AM – PROACTIVE-18


A component expose several interfaces. These interfaces could contains method with identical signatures (I never saw
that, but it’s possible). In this case, if we want put in immediate service one of this identical method using ProActive.setImmediateService(…) the two will became immediate service.

The solution could be to add specific setImmediateService method for component allowing to specify the name of the component
interface on which it’s applicable. This implies to handle Component request in the RequestReceiver implementation class.

GroupParser: environment tag is wrong

Original issue created by Clement Mathieu on 09, Nov 2007 at 13:52 PM – PROACTIVE-69


A group can have an inner environment tag. This tag allows to set some environment variable for the process to be executed.

Actually, environment type allows descriptorVariable and javaPropertyVariable. That is wrong. Should be something like

Remove unnecessary JARs

Original issue created by Clement Mathieu on 08, Nov 2007 at 15:55 PM – PROACTIVE-63


Some JARs inside lib/ are unnecessary.

ProActive can be COMPILED without the following JARs:

../lib/activation.jar
../lib/asm-2.2.1.jar
../lib/batik-awt-util.jar
../lib/batik-dom.jar
../lib/batik-svggen.jar
../lib/batik-util.jar
../lib/batik-xml.jar
../lib/bcel-5.1-fixes-1.0.jar
../lib/bcel-5.1.jar
../lib/bundlerepository.jar
../lib/clibwrapper_jiio.jar
../lib/cog-jglobus-1.2.jar
../lib/cog-jglobus.jar
../lib/cog-ogce.jar
../lib/colobus-0.1.jar
../lib/colt.jar
../lib/commons-collections-3.2.jar
../lib/commons-discovery.jar
../lib/commons-logging.jar
../lib/cryptix32.jar
../lib/cryptix-asn1.jar
../lib/cryptix.jar
../lib/derby.jar
../lib/derbytools.jar
../lib/dtdparser.jar
../lib/fractal-gui.jar
../lib/fractal-swing.jar
../lib/ibis-connect-1.0.jar
../lib/ibis-util-1.0.jar
../lib/jai_core.jar
../lib/jai_imageio.jar
../lib/jh.jar
../lib/julia-asm.jar
../lib/julia-mixins.jar
../lib/julia-runtime.jar
../lib/jung-1.7.4.jar
../lib/mlibwrapper_jai.jar
../lib/moduleloader.jar
../lib/njs_client.jar
../lib/oscar.jar
../lib/puretls.jar
../lib/saaj-api.jar
../lib/servlet.jar
../lib/shellgui.jar
../lib/shellplugin.jar
../lib/shelltui.jar
../lib/simple.jar
../lib/SVGGraphics.jar
../lib/tablelayout.jar
../lib/xml-apis.jar

Of course some of them are loaded by reflection or used by a JAR

Please add your bit of knowledge about which one is really useful !

Migrateable Hello example

Original issue created by Clement Mathieu on 16, Oct 2007 at 16:34 PM – PROACTIVE-7


The UML does not match the actual code (since MigratableHello subclasses InitializedHello). Also, since this is one
of the first code examples in the tutorial introduction, I think it should be included in the “normal” set
of examples (o.o.p.examples) and have a script so that it can be run easily with IC2D to actually try to migrate an
object.

ProActive properties refactoring

Original issue created by Clement Mathieu on 16, Oct 2007 at 19:08 PM – PROACTIVE-15


All proactive properties have been centralized in PAProperties.java.

Now they need to be “standardized”:
- Have a good name
- Expect standard values (for example boolean can take “true” or “false”)
- Good documentation (at least Javadoc)

Stop polluting a class namespace

Original issue created by ProActive team on 15, Oct 2007 at 16:59 PM – PROACTIVE-4


When a stub (Stub_A) is created for a class A, this stubs inherits
from A and two methods are added in this stub:

```
public Proxy getProxy()
{
return myProxy;
}

public void setProxy(Proxy proxy)
{
myProxy = proxy;
}
```

So the class A cannot define the method getProxy().

A (not proposed) solution could be to rename the method
to dont_touch_this_getProxy() with as much underscores
as you want.

Another (proposed) solution would be for ProActive.{get,set}Proxy(stub)
to use reflection to manipulate the proxy field.

This way, {get,set}Proxy() are a bit slowed down (but they shouldn’t
be in a fast-path anyway), and a class’ namespace is never polluted.

Maybe it’s possible, maybe not ;-)

Serialization of multiple parameters on an active object method call is done independently when it should be done simultaneously

Original issue created by Mario Leyton on 23, Oct 2007 at 16:34 PM – PROACTIVE-34


Given a method AcitveObject.foo(A a, B b); where A and B are passive serializable objects, if a.c==b.c is true before the serialization, it will not hold inside the method foo(…).

This happens because each parameter is serialized independently, hence there will be two copies of c inside foo(…).

Add the resource provider ID to HostInfo

Original issue created by Clement Mathieu on 12, Nov 2007 at 15:38 PM – PROACTIVE-74


To be able to dispatch a Node to a VirtualNode according to its Resource Provider, we need to know to which RP has created a Node.

Two solutions:
- the resource provider ID must be passed as parameter to StartRuntime. So this id has to be added to HostInfo.
- Another, cleaner, way to do this is to be able to associate the deploymentID to a resource provider. I don’t know if it is possible.

NPE if log4j.configuration property is not set

Original issue created by Cédric Dalmasso on 26, Oct 2007 at 00:06 AM – PROACTIVE-53


a NPE is thrown if the log4j.configuration property is not set

Exception in thread “main” java.lang.ExceptionInInitializerError
at org.objectweb.proactive.api.ProActiveObject.(ProActiveObject.java:83)
at active.Main.main(Main.java:41)
Caused by: java.lang.NullPointerException
at org.objectweb.proactive.core.util.log.ProActiveLogger.(ProActiveLogger.java:56)
… 2 more

Error handling when a keyref is not found

Original issue created by Clement Mathieu on 12, Nov 2007 at 13:49 PM – PROACTIVE-73


Add a nice & useful error message when a keyId is wrong and cannot be found. Currently a raw Exception is thrown & printed, not user friendly !

PARENT [ deployment.GCMD] CommandBuilderProActive created
PARENT (link: deployment.GCMD) Key ‘refIdKeyBridge’ with value ‘bSchubby’ not found for identity constraint of element ‘GCMDeployment’.Exception in thread “main” org.xml.sax.SAXParseException: Key ‘refIdKeyBridge’ with value ‘bSchubby’ not found for identity constraint of element ‘GCMDeployment’.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator$KeyRefValueStore.endDocumentFragment(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.handleEndElement(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at org.objectweb.proactive.extra.gcmdeployment.GCMDeployment.GCMDeploymentParserImpl.(GCMDeploymentParserImpl.java:138)
at org.objectweb.proactive.extra.gcmdeployment.GCMDeployment.GCMDeploymentParserImpl.(GCMDeploymentParserImpl.java:116)
at org.objectweb.proactive.extra.gcmdeployment.GCMDeployment.GCMDeploymentDescriptorImpl.(GCMDeploymentDescriptorImpl.java:60)
at org.objectweb.proactive.extra.gcmdeployment.GCMDeployment.GCMDeploymentDescriptorFactory.createDescriptor(GCMDeploymentDescriptorFactory.java:41)
at org.objectweb.proactive.extra.gcmdeployment.GCMApplication.GCMApplicationParserImpl.getResourceProviders(GCMApplicationParserImpl.java:225)
at org.objectweb.proactive.extra.gcmdeployment.GCMApplication.GCMApplicationDescriptorImpl.(GCMApplicationDescriptorImpl.java:94)
at org.objectweb.proactive.extra.gcmdeployment.API.getGCMApplicationDescriptor(API.java:48)
at ping.Main.main(Main.java:17)

Inconsistency in group attributes handling

Original issue created by Clement Mathieu on 12, Nov 2007 at 11:40 AM – PROACTIVE-71


Common attributes like username, commandPath etc. are parsed by AbstractGroupParser but GroupSSHParser (at least) also parse theses attributes !

1- Remove all duplicated code in GroupSSHParser
2- Check all other groups/bridges

PDF Manual build fails

Original issue created by vjuresch on 23, Oct 2007 at 14:17 PM – PROACTIVE-32


On running the ./build manualPdf the build fails with the following errors.

(link: fop] [INFO] [441) (link: fop] [INFO) (link: 442) (link: fop) (link: INFO) (link: 443) (link: fop) (link: INFO) (link: 444) (link: fop) (link: INFO) (link: 445)

BUILD FAILED
/auto/sea/u/sea/0/user/vjuresch/workspace/ProActive/compile/doc.xml:249: The following error occurred while executing this line:
/auto/sea/u/sea/0/user/vjuresch/workspace/ProActive/compile/doc.xml:157: org.apache.fop.apps.FOPException: file:/auto/sea/u/sea/0/user/vjuresch/workspace/ProActive/docs/pdf/ProActiveManual.pdf.fo:15049:3541 internal-destination or external-destination must be specified in basic-link

Request priority should be easy to set in runActivity

Original issue created by Clement Mathieu on 16, Oct 2007 at 17:17 PM – PROACTIVE-11


Suppose I have an active object with three types of request. A priority is associated to each type. Writting a such active object leads to quite dumpy code. Perhaps some methods can be provided to help the users ?
For example in the NQueens application, we can found the following code:

public void runActivity(Body body) {
Service service = new Service(body);
RequestQueue requestQueue = body.getRequestQueue();

```
while (body.isActive()) {
service.waitForRequest();

Request request; if (!fastTermination) { // Give a job to an idle worker, then add workers to the computation, then collect results request = requestQueue.removeOldest(“workerIsIdle”); if (request == null) request = requestQueue.removeOldest(“workerAvailable”); if (request == null) request = requestQueue.removeOldest(“resultAvailable”); } else { // We need to know when the end of the computation occurred ASAP request = requestQueue.removeOldest(“resultAvailable”); } if (request == null) request = requestQueue.removeOldest(); service.serve(request); }

}
```

Requesting nodes using P2P generates too many messages

Original issue created by Fabrice Huet on 24, Oct 2007 at 11:27 AM – PROACTIVE-45


When requesting multiple nodes, the P2PNodeLookup will generate a new message for each node received, which add too much traffic on the network.

while (!this.allArrived()) {
this.localP2pService.askingNode(TTL, null, this.localP2pService,
this.numberOfAskedNodes – this.acquiredNodes, stub,
this.vnName, this.jobId, this.nodeFamilyRegexp);

```
// Serving request
service.blockingServeOldest(LOOKUP_FREQ);
while (service.hasRequestToServe()) {
service.serveOldest();
}
}
```

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.