[JAMESII-488] MLRules Editor in JamesGUI selects old syntax by default without switch option Created: 07/Oct/14  Updated: 06/Nov/14  Resolved: 06/Nov/14

Status: Resolved
Project: James II
Component/s: ML-Rules
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The old MLRules syntax is selected by the model editor by default without giving the option to switch.
The only workaround right now is to load a new syntax model which switches the syntax to new.



 Comments   
Comment by Stefan Rybacki [ 07/Oct/14 ]

made the new syntax the default syntax

Comment by Arne Bittig [ 06/Nov/14 ]

There seems to be no way to create an empty SymbolicMLRulesModel after the changes (default constructor creates example model), so MLRulesModelFileWriterTest#testGenerateSource now fails, as there is species named A() in the example model and the test model.

See https://altair.informatik.uni-rostock.de/bamboo/browse/JAMESII-DEVTEST-TESTDEV-351/test/case/3148511

junit.framework.AssertionFailedError: Model Loading should produce no errors.
ParseError=A already defined
seed =5291136119039979520

at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.assertTrue(Assert.java:20)
at junit.framework.Assert.assertFalse(Assert.java:34)
at org.jamesii.model.mlrules.writer.antlr.AbstractMLRulesModelFileWriterTest.testGenerateSource(AbstractMLRulesModelFileWriterTest.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at org.jamesii.ChattyTestCase.run(ChattyTestCase.java:58)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at [...]

Comment by Arne Bittig [ 06/Nov/14 ]

Subsequent issue resolved by moving example model creation out of default constructor to factory method (insert whereever example model is needed) https://altair.informatik.uni-rostock.de/hg/james/private/rev/5b9617c18157d62e01abfa97cc53f3154a735cea





[JAMESII-484] ML-Rules Line Chart is not working correctly Created: 25/Sep/14  Updated: 07/Oct/14  Resolved: 29/Sep/14

Status: Resolved
Project: James II
Component/s: ML-Rules
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Critical
Reporter: Tobias Helms Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: ml-rules
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

While executing a simple experiment within the JAMES II GUI, the time of the plot is always 0. The amounts of the species are updated correctly.

We downloaded the latest binaries from Artifactory (https://altair.informatik.uni-rostock.de/artifactory/james2/org/jamesii/private/assemblies-release/0.9.7-SNAPSHOT/assemblies-release-0.9.7-20140923.064403-35-full.zip) and started the core from the terminal with (java -jar jamesii-core...). Afterwards, we clicked "Workflow" -> "Start Simple M&S" -> "ML-Rules" -> "Next" -> Selected the model file "EndoExoCytosis.mlrj" -> "Finish" -> "Each Step Instrumenter" -> "Visualization Data Plotter" -> "Start"






[JAMESII-286] Preferences mananges on GUI Preference Pages are not loaded until first display of preferences page Created: 20/Nov/12  Updated: 29/Sep/14  Resolved: 29/Sep/14

Status: Closed
Project: James II
Component/s: GUI
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Stefan Rybacki [ 29/Sep/14 ]

As it is likely that we will switch to a different UI framework eventually I mark this as won't fix as it would deprecate the existing GUI





Invalid parameterization of text-based species-reactions models (depending on context) (JAMESII-302)

[JAMESII-303] Parameters for an {{SRModel}} can only be provided within an "initialState" parameter {{Map}}, containing itself parameters of type {{SRModelParameter}} Created: 11/Jan/13  Updated: 25/Sep/14

Status: Open
Project: James II
Component/s: SR
Affects Version/s: James II 0.8.8, James II 0.9, James II 0.9.1
Fix Version/s: James II 0.9.8
Security Level: public (Visible to EVERYONE.)

Type: Technical task Priority: Minor
Reporter: Stefan Rybacki Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

This makes it hard, to correctly provide parameters provided by ExperimentVariables as there is no structure producing this data structure from a parameter tree for example.






Event queue cleanup, categorization & tests (JAMESII-423)

[JAMESII-426] Support factory filtering of event queues by their way of handling event identity and event ordering Created: 15/Nov/13  Updated: 25/Sep/14

Status: In Progress
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: James II 0.9.8
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: event-queue, plugnsimulate
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

This should resolve issues (1) and (2) in JAMESII-423, as the properties of each event queue are explicit.






[JAMESII-357] Unhandled exception during registry initialization can cause deadlock in parallel task runner Created: 11/Jun/13  Updated: 25/Sep/14

Status: Open
Project: James II
Component/s: Core
Affects Version/s: James II 0.9.2
Fix Version/s: James II 0.9.8
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Minor
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Unresolved Votes: 0
Labels: deadlock, stability
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

This happend in a recent SESSL build, where the plugin folder did not exist and hence the registry threw an exception (which is OK), and the ParallelTaskRunner crashed (not OK):

Jun 11, 2013 5:11:37 PM org.jamesii.core.experiments.taskrunner.parallel.ParallelComputationTaskRunner executeConfiguration (Line: 264)
SEVERE: Plug-in dir /home/jenkins/workspace/SESSL/sessl-integration/target/classes not found!
org.jamesii.core.plugins.PluginLoadException: Plug-in dir /home/jenkins/workspace/SESSL/sessl-integration/target/classes not found!
	at org.jamesii.core.plugins.install.DiscPlugInFinder.parseDirectory(DiscPlugInFinder.java:107)
	at org.jamesii.core.plugins.install.DiscPlugInFinder.parseDirectory(DiscPlugInFinder.java:91)
	at org.jamesii.core.Registry.initBySearch(Registry.java:924)
	at org.jamesii.core.Registry.initPlugins(Registry.java:981)
	at org.jamesii.SimSystem.initializeAndSetRegistry(SimSystem.java:258)
	at org.jamesii.SimSystem.createRegistry(SimSystem.java:220)
	at org.jamesii.SimSystem.getRegistry(SimSystem.java:199)
	at org.jamesii.core.experiments.taskrunner.parallel.ParallelComputationTaskRunner.initModelReader(ParallelComputationTaskRunner.java:344)
	at org.jamesii.core.experiments.taskrunner.parallel.ParallelComputationTaskRunner.setupTaskConfig(ParallelComputationTaskRunner.java:285)
	at org.jamesii.core.experiments.taskrunner.parallel.ParallelComputationTaskRunner.executeConfiguration(ParallelComputationTaskRunner.java:261)
	at org.jamesii.core.experiments.taskrunner.AbstractTaskRunner.run(AbstractTaskRunner.java:106)
	at java.lang.Thread.run(Thread.java:722)





[JAMESII-353] Make factory selection in Registry deterministic in case of multiple choices Created: 30/May/13  Updated: 28/Aug/14  Resolved: 28/Aug/14

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: James II 0.9.2
Fix Version/s: James II 0.9.8
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Major
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: reproducibility
Remaining Estimate: Not Specified
Time Spent: 2 days, 7 hours, 30 minutes
Original Estimate: Not Specified


 Description   

In case two factories are eligible for a task, the order in which they are loaded by the IPluginFinder implementation seems to determine which one gets selected eventually.

This may cause unexpected behavior that is hard to reproduce, so the eligible factories should be sorted beforehand.






[JAMESII-423] Event queue cleanup, categorization & tests Created: 13/Nov/13  Updated: 31/Jul/14

Status: Open
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Major
Reporter: Arne Bittig Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: event-queue
Σ Remaining Estimate: 0 minutes Remaining Estimate: 0 minutes
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: 0 minutes Original Estimate: 0 minutes

Sub-Tasks:
Key
Summary
Type
Status
Assignee
JAMESII-148 Inconsistent event queue behavior if ... Sub-task Open  
JAMESII-197 Move event queue code (from Richard) Sub-task Closed Arne Bittig  
JAMESII-308 The performance of the HeapEventQueue... Sub-task Open  
JAMESII-321 The justification for org.jamesii...L... Sub-task Open Arne Bittig  
JAMESII-421 TwoListWithBucketsSimpleThreshold siz... Sub-task Resolved Arne Bittig  
JAMESII-422 SimpleReBuckets and BucketsThreshold ... Sub-task Closed Arne Bittig  
JAMESII-426 Support factory filtering of event qu... Sub-task In Progress  

 Description   

Event queues can be found in the core (package org.jamesii.core.util.eventset), eventqueues-unreleased (package eventqueues) and elsewhere. Of the unreleased ones, some look more polished than some in the core, others again fail key tests and may be unsalvageable.

The behavior of event queues regarding, for example,
(1) addition of events that are equal but not identical
(2) order of events added with the same time stamp
(3) what information toString() contains (class name? elements?)
is not specified and not easily discernible.

Other concerns:
(4) the purpose of dequeueAllHashed() does not become clear (it returns a Map<E,Object> with null values whereas dequeueAll() returns a List<E>. This seems problematic also w.r.t. to (1)). It is used only in PDEVS and ML-DEVS, where on a cursory reading the maps seem to be used like Collections, i.e. the values do not seem to matter. Anyway, if a map is needed it could easily be constructed from the List returned by dequeueAll().
(5) dequeueAll() seems to be unfortunately named, as it does not dequeue all events, only all to which a certain condition applies (minimum time stamp).
(6) The distribution of method specifications between IBasicEventQueue and IEventQueue is conceptually well justified (in the respective comments), but practically rather confusing as the basic interface is used practically nowhere alone.






Event queue cleanup, categorization & tests (JAMESII-423)

[JAMESII-148] Inconsistent event queue behavior if events can be equal without being identical Created: 31/May/12  Updated: 31/Jul/14

Status: Open
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Arne Bittig Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: parameters
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

Some event queues use object identity, some use the .equals(...) method for comparing events, which is relevant when two equal but not identical events are enqueued. Toy example:

queue.enqueue(new Integer(1), 1.0);
queue.enqueue(1, 2.0);
queue.requeue(new Integer(1), 1.0);
queue.enqueue(2, 2.0);
System.out.println(queue.dequeueAll(2.0) + "/" + queue.dequeueAll());

As of this writing, it produces [1,2]/[1] for SimpleReBucketEQ, [2]/[1] for SimpleEQ and TLWBSTEQ and [1,2]/[1,1] for all others (or [2,1]/[1,1]). Changing the above line to "if (!this.event.equals(obj.getEvent()))" makes TreeMapEQ also produce [2]/[1], changing the HashMap in the SimpleEQ to an IdentityHashMap makes it join the [1,2]/[1,1] side.

Maybe the relevant factories should know which behavior their produced event queues exhibit, such that one can define filter criteria based on it?

Related:
Entry.compareTo contains {{if (this.event != obj.getEvent()) { result = 1; }}}, which seems to violate commutativity.



 Comments   
Comment by jh194 [ 31/May/12 ]

This is a known issue. Thanks for adding this to JIRA. So far it has not been resolved as there is no easy fix for all event queue implementations and as any non easy fix will harm the efficiency of the implementations. However, there are already ongoing discussions on how to resolve the problem in the future.

Comment by Arne Bittig [ 13/Nov/13 ]

unassigned, added hiwi label, changed description to reflect that this is a known issue





Event queue cleanup, categorization & tests (JAMESII-423)

[JAMESII-422] SimpleReBuckets and BucketsThreshold event queue's size() becomes inconsistent after addition of equal events Created: 13/Nov/13  Updated: 27/May/14  Resolved: 27/May/14

Status: Closed
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Arne Bittig Assignee: Arne Bittig
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Zip Archive mylyn-context.zip     Zip Archive mylyn-context.zip    

 Description   

see EventQueueTest#testSize()

BucketsThreshold event dequeues always the same element (potentially forever) after myQueue.enqueue(1, 1.0); myQueue.enqueue(1, 2.0);



 Comments   
Comment by Arne Bittig [ 15/Nov/13 ]

Both pass the respective test now after changeset: 32141:5c51dc099fef – this should count as "fixed", shouldn't it?

I started some (ML-Space) experiments testing event queues earlier today and noticed that SimpleReBuckets may go back in time at some point, at least my simulator complained about it (that an event dequeued earlier had a later time stamp). This happened after several thousand steps, I will see if I can boil the problem down to something simpler.





Event queue cleanup, categorization & tests (JAMESII-423)

[JAMESII-197] Move event queue code (from Richard) Created: 13/Jul/12  Updated: 27/May/14  Resolved: 27/May/14

Status: Closed
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Minor
Reporter: Anonymous Assignee: Arne Bittig
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by Arne Bittig [ 27/May/14 ]

In reply to JAMESII-197:
> moved Dsplay to eventset package in core, left LadderQueue where it is as it
> fails several tests

Comment by Arne Bittig [ 27/May/14 ]

moved Dsplay to eventset package in core, left LadderQueue where it is as it fails several tests





[JAMESII-352] ObjectGrid2DFactory performance issues Created: 30/May/13  Updated: 20/May/14

Status: Open
Project: James II
Component/s: CA
Affects Version/s: James II 0.9.3
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Minor
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Unresolved Votes: 0
Labels: performance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The ObjectGrid2DFactory runs into severe performance problems, at least when tested with the gameOfLife sample model from the release files.

Could be a memory leak.






Event queue cleanup, categorization & tests (JAMESII-423)

[JAMESII-308] The performance of the HeapEventQueue is alarming bad with the DynamicCCSLCS SR model. Created: 24/Jan/13  Updated: 31/Mar/14

Status: Open
Project: James II
Component/s: Core, SR
Affects Version/s: James II 0.9.2
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Minor
Reporter: Tobias Helms Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: event-queue, performance
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: PNG File actin-eventqueuecomparison.png    

 Description   

The performance of the HeapEventQueue is alarming bad.
Recognized this behavior with the DynamicCCSLCS SR model.
Probably there is a bug.



 Comments   
Comment by jh194 [ 22/Feb/13 ]

Could you please provide further details about the setup? I.e., which parameters of the model did you use, which computation algorithm etc ...? How bad is the performance in comparison to the "MListRe" queue?

Comment by Tobias Helms [ 22/Feb/13 ]

Ah yeah, sorry for that imprecise comment.
I just repeated the experiments and could reproduce the results. I executed the DynamicCCSLCS SR model for exactly 20,000 steps. I used the default parameter of the model.
Once I executed 10 replications with the DirectReactionProcessorVarA, once with the NextReactionProcessorVarA and the MListEventQueue and once with the NextReactionProcessorVarA and the HeapEventQueue. Whereas the mean time of the first configuration is ~ 0.4s and of the second configuration is ~ 1.5s, the third configuration's mean time is ~ 176s. This huge difference does not match the results of the paper "Large-Scale Design Space Exploration of SSA". Thus I suppose there is a bug (otherwise I do not know the details of the queues, so maybe the runtime difference can be explained by the queues' concepts).

Comment by jh194 [ 22/Feb/13 ]

Thanks for the details. The model has approx 600 reactions, the computation algorithm makes use of the requeue operation which is a pretty bad performing operation on the heap ("it's in" O(n ) + O(n )*O(log n)). The MList is way more efficient here (as it's in O(n )), would be even better with the MListRe. Thus it is clear that the Heap should perform not as good as the MList. However, the runtime diff is pretty large and thus further checks will be necessary.

Comment by jh194 [ 22/Feb/13 ]

We checked the queue and the models once more and identified that for the experiments in the paper
a) the priorityeventqueue might have been used in the paper (based on a heap as well)
b) that the load generated by the requeue operation of the current implementation of the HeapEventQueue and does not seem to be a functional bug but a serious performance problem in the code

Comment by Arne Bittig [ 22/Feb/13 ]

In ML-Space simulations with many requeue operations (i.e. particle bindings that change the next update event of particles unrelated to the last dequeued particle) the HeapEventQueue performs better than the PriorityEventQueue (both are outperformed by specifically requeue-optimized event queues, however, e.g. CalenderRe (see attachment), MListRe or a TreeMap-based one).

Comment by jh194 [ 23/Feb/13 ]

@Arne: could you provide some numbers? E.g., in the CCSLCS model we have approx 600 entries in the queues, what about your model? How many requeue operations per simulation step (usually a single dequeue) do you have?

Comment by Arne Bittig [ 23/Feb/13 ]

@[~jh194] I never counted, and now looking at the code I see (a) some optimization potential (e.g. redundant dequeue(event) calls and some requeue where enqueue suffices) and (b) that the operation I thought would trigger most requeues actually consists of "dequeue(event); time calculation; enqueue;" (but as I understand the HeapEventQueue, requeue is implemented just like dequeue(ev) and enqueue in sequence).

Anyway, there are 8802-9202 events in the queue (in steps of 100, resulting from different model properties and resulting in the different numbers of simulation steps; all runs were with same initial state and same rand seed (no replications), thus points in one "row" in the diagram probably belong to the same setting). Can we extract the number of requeues or dequeue(event)s from the difference of Calendar... and CalendarReQueue (or MList & MListRe now that the latter is working)? I guess writing an event queue wrapper counting the number of calls to each op is easier than guessing (but I can vouch that there is single dequeue() without event per simulation step





[JAMESII-270] {{org.jamesii.core.math.random.generators.plugintype.RandomGeneratorFactory}} does not handle non-existent {{seed}} parameter Created: 22/Oct/12  Updated: 31/Mar/14

Status: In Progress
Project: James II
Component/s: Core
Affects Version/s: James II 0.8.8
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

When specifying a RandomGeneratorFactory as parameter for a plugin, e.g., a processor a seed parameter can be provided. In case of multiple replications however a fixed seed is not prefereable as the simulation result will most likely be the same for each replication. But in case the seed parameter is ommited the missing seed is not handled by RandomGeneratorFactory.

java.lang.NullPointerException
at org.jamesii.core.math.random.generators.mersennetwister.MersenneTwisterGeneratorFactory.create(MersenneTwisterGeneratorFactory.java:24)
at org.jamesii.core.math.random.generators.plugintype.RandomGeneratorFactory.create(RandomGeneratorFactory.java:47)
at org.jamesii.simulator.mlrules.population.reference.MLRulesPopulationProcessorFactory.create(MLRulesPopulationProcessorFactory.java:48)
at org.jamesii.core.distributed.partition.Partition.createProcessor(Partition.java:155)
at org.jamesii.core.simulationrun.SimulationRun.<init>(SimulationRun.java:252)
at org.jamesii.core.experiments.tasks.setup.internalsimrun.SimulationRunSetup.createSimulation(SimulationRunSetup.java:155)
at org.jamesii.core.experiments.tasks.setup.internalsimrun.SimulationRunSetup.initComputationTask(SimulationRunSetup.java:90)
at org.jamesii.core.experiments.taskrunner.ComputationTaskHandler.initComputationTask(ComputationTaskHandler.java:77)
at org.jamesii.core.experiments.taskrunner.ComputationTaskHandler.initLocally(ComputationTaskHandler.java:236)
at org.jamesii.core.experiments.taskrunner.ComputationTaskHandler.initRunConfig(ComputationTaskHandler.java:211)
at org.jamesii.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.init(SequentialComputationTaskRunner.java:319)
at org.jamesii.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.executeConfiguration(SequentialComputationTaskRunner.java:173)
at org.jamesii.core.experiments.taskrunner.AbstractTaskRunner.run(AbstractTaskRunner.java:107)
at java.lang.Thread.run(Thread.java:722)



 Comments   
Comment by jh194 [ 22/Feb/13 ]

Could you describe a use case?

  • Currently the idea is that the parameter of the factory will be set BEFORE the concrete instance of the random generator is generated, thus is there any code in the framework where this factory is called directly (i.e., not in the code of a model / computation algorithm)?




[JAMESII-144] Adapt JDBC data storage to new methods / config id support Created: 11/May/12  Updated: 31/Mar/14  Due: 04/Jun/12

Status: Open
Project: James II
Component/s: None
Affects Version/s: James II 0.8.8
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 3 days
Time Spent: Not Specified
Original Estimate: 3 days





[JAMESII-121] DataStorage interface changes Created: 16/Apr/12  Updated: 31/Mar/14

Status: Open
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The data storage interface is currently very restrictive. The concrete read/write methods could be removed from the interface which should therefore support new methods to indicate that an experiment/configuration/replication has started / finished. All classes requiring access to data storages will then have to indicate which data storage interface they require. An additional plug-in type can be created which can convert between interfaces if this is possible.



 Comments   
Comment by jh194 [ 22/Jun/12 ]

Work on this issue is in progress and first results (less restrictive interfaces) have already been included in the 0.8.7 release.





[JAMESII-120] Replications in parallel from the beginning on Created: 16/Apr/12  Updated: 31/Mar/14

Status: Open
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently one replication has to be executed before the replication criteria is asked for the first time. While this is fine for some criteria it still seems to be worth to change: even the criteria checking for statistical quality of the results require a minimal number of replications, besides the so far most frequently used one which just defines n replications to be executed. One solution would be to add a preQuery method which returns this numbers ... currently we waste the runtime of a single replication on those machines which can compute n in parallel which is particular sad if someone sets up an experiment which tries to exploit the max parallelism available. Then 1 replication of n will be executed before the remaining n-1 are done in parallel.






[JAMESII-200] BaseExperiment.execute() should not return unless all IExperimentExecutionListener instances have been notified via experimentExecutionStopped(...) Created: 18/Jul/12  Updated: 31/Mar/14

Status: Open
Project: James II
Component/s: Core
Affects Version/s: James II 0.8.7
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: racing
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

If BaseExperiment.execute() is called, it is not guaranteed that IExperimentExecutionListener#experimentExecutionStopped(...) has been called for all listeners. This is not intuitive and makes it hard to use.



 Comments   
Comment by re027 [ 29/Jul/12 ]

It also seems as if it is not ensured that IExperimentExecutionListener#experimentExecutionStopped(...) is called after all calls to IExperimentExecutionListener#simulationExecuted(...) have been done, which is similarly counterintuitive.





Event queue cleanup, categorization & tests (JAMESII-423)

[JAMESII-321] The justification for org.jamesii...LinkedList's existence does not seem to be true (anymore?) Created: 22/Feb/13  Updated: 25/Mar/14

Status: Open
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Minor
Reporter: Arne Bittig Assignee: Arne Bittig
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates

 Description   

The class' comment of org.jamesii.core.util.collection.list.LinkedList claims that java.util.LinkedList "does not allow an efficient modification of the list if the list iterator is used: in this case the iterator will hand over an index to the main class to modify the list, thereby the iterator has already the pointer where to change."

But java.util.LinkedList$ListItr's remove and add modify the linked structure directly (and did so as of Java 6 already, too; don't know about earlier versions.

Maybe the comment refers to the iterator as implemented in AbstractList? But this one is not used in LinkedList, which extends AbstractSequentialList, which returns the #listIterator() even for the call to #iterator().

(As an aside, did the event queues based on the two implementation perform noticeably different anywhere?)



 Comments   
Comment by Arne Bittig [ 18/Nov/13 ]

converted to subtask of event queue cleanup issue as class is used only in event queue implementation. next actions (probably): check whether there is any observable performance difference, mark class as deprecated, remove eventually





[JAMESII-415] Move SASF to public repository Created: 18/Oct/13  Updated: 04/Mar/14  Resolved: 04/Mar/14

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: James II 0.9.5
Security Level: public (Visible to EVERYONE.)

Type: Task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: public-repo
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

I also moved all Hibernate mapping files (*.hbm.xml) from the Java source folder to the resources folder. The module sasf-weka should be kept in the internal repository for now: it has another license than our other code (GPL), so a move to a repository containing all our GPL'ed code seems more suitable in the long term.






[JAMESII-435] Hierarchy (both present implementations) retain removed leaf nodes as orphaned nodes instead of removing them completely Created: 03/Feb/14  Updated: 03/Feb/14  Due: 03/Feb/14  Resolved: 03/Feb/14

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Arne Bittig Assignee: Arne Bittig
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    




[JAMESII-434] ComputationTaskStopPolicy is a generic type and needs to be handled accordingly Created: 13/Dec/13  Updated: 13/Dec/13  Resolved: 13/Dec/13

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: James II 0.9.4
Fix Version/s: James II 0.9.5
Security Level: public (Visible to EVERYONE.)

Type: Task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: cleanup, compatibility, refactoring
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates
relates to ALESIA-40 Investigate problem of using Computat... Resolved

 Description   

ComputationTaskStopPolicy is a generic interface witha type parameter T extends IComputationTask. However, it is returned as a raw type by ComputationTaskStopPolicyFactory, which also uses the raw type to implement Factory.

Besides provoking compiler warnings, this makes it difficult for some client code to use the factory (e.g. see ALESIA-40), and should be fixed.



 Comments   
Comment by re027 [ 13/Dec/13 ]

This problem causes the difficulties in ALESIA-40.





[JAMESII-431] Reporting does not work with default template, or with > 1000 data views Created: 03/Dec/13  Updated: 04/Dec/13  Resolved: 04/Dec/13

Status: Resolved
Project: James II
Component/s: Result Reporting
Affects Version/s: James II 0.9.4
Fix Version/s: James II 0.9.5
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

With the default report template, the dataview data is recorded and written into data files in the raw directory, but these are not rendered.

Also, if > 1000 data views are used, the output will then look like this for item 1.000 :

\begin{Scode}{label=item-1,000,fig=TRUE,echo=FALSE,pdf=TRUE,eps=FALSE,height=10,width=10,include=false,results=hide} 
 source("plotting.R");
 par(mfrow=c(1,1));
 data <- t(readData("1,000-data"));
//..

which causes a Latex parser error (first line) and also means the file (stored as 1000-data) cannot be found.






[JAMESII-333] DeadLock in ObserverPlotterIncremental (potentially in other chart usages as well) Created: 20/Mar/13  Updated: 28/Nov/13

Status: Open
Project: James II
Component/s: GUI
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Critical
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

When running a simulation with a Visualization Data Plotter after a while a dead lock occurs:

Mar 20, 2013 4:22:05 PM org.jamesii.gui.application.ApplicationManager$DeadLockDetectionTimerTask run (Line: 79)
SEVERE: The following threads are deadlocked:
"task-runner (running: org.jamesii.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner)" Id=57 BLOCKED on org.jamesii.gui.visualization.chart.model.BasicXYChartModel@45867dcc owned by "AWT-EventQueue-0" Id=15
	at org.jamesii.gui.visualization.chart.model.BasicXYChartModel.valueAdded(BasicXYChartModel.java:130)
	-  blocked on org.jamesii.gui.visualization.chart.model.BasicXYChartModel@45867dcc
	at org.jamesii.gui.visualization.chart.model.AbstractSeries.fireValueAdded(AbstractSeries.java:125)
	-  locked org.jamesii.gui.visualization.chart.model.DefaultFunctionalXYSeries@40c01385
	at org.jamesii.gui.visualization.chart.model.DefaultXYSeries.addValuePair(DefaultXYSeries.java:94)
	-  locked org.jamesii.gui.visualization.chart.model.DefaultFunctionalXYSeries@40c01385
	at org.jamesii.gui.visualization.chart.model.DefaultFunctionalXYSeries.addValuePair(DefaultFunctionalXYSeries.java:84)
	-  locked org.jamesii.gui.visualization.chart.model.DefaultFunctionalXYSeries@40c01385
	at org.jamesii.gui.visualization.chart.model.DefaultXYSeries.addValuePair(DefaultXYSeries.java:108)
	-  locked org.jamesii.gui.visualization.chart.model.DefaultFunctionalXYSeries@40c01385
	at org.jamesii.gui.visualization.chart.plotter.ObserverPlotterIncremental.updateOccurred(ObserverPlotterIncremental.java:163)
	at org.jamesii.core.observe.NotifyingObserver.notifyListeners(NotifyingObserver.java:68)
	at org.jamesii.core.observe.NotifyingObserver.update(NotifyingObserver.java:81)
	...


"AWT-EventQueue-0" Id=15 BLOCKED on org.jamesii.gui.visualization.chart.model.DefaultFunctionalXYSeries@40c01385 owned by "task-runner (running: org.jamesii.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner)" Id=57
	at org.jamesii.gui.visualization.chart.model.DefaultXYSeries.getValueCount(DefaultXYSeries.java:68)
	-  blocked on org.jamesii.gui.visualization.chart.model.DefaultFunctionalXYSeries@40c01385
	at org.jamesii.gui.visualization.chart.model.BasicXYChartModel.getValueCount(BasicXYChartModel.java:91)
	-  locked org.jamesii.gui.visualization.chart.model.BasicXYChartModel@45867dcc
	at org.jamesii.gui.visualization.chart.plot.AbstractPlot.drawPlot(AbstractPlot.java:123)
	at org.jamesii.gui.visualization.chart.BasicChart.paintComponent(BasicChart.java:345)
	at javax.swing.JComponent.paint(JComponent.java:1054)
	at javax.swing.JComponent.paintChildren(JComponent.java:887)
	-  locked java.awt.Component$AWTTreeLock@acffbd
	at javax.swing.JComponent.paint(JComponent.java:1063)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5221)
	...


 Comments   
Comment by Tobias Helms [ 28/Nov/13 ]

Not fixed yet and probably not reproducible.





[JAMESII-427] In SimulationRun, startHook and endHook get no information on simulation (i.e. they are not called with info on what started or ended) Created: 19/Nov/13  Updated: 27/Nov/13  Resolved: 19/Nov/13

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Minor
Reporter: Arne Bittig Assignee: Arne Bittig
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 10 minutes
Time Spent: Not Specified
Original Estimate: 10 minutes





[JAMESII-124] Factory getName versus getReadableName Created: 19/Apr/12  Updated: 18/Nov/13

Status: Open
Project: James II
Component/s: Core
Affects Version/s: James II 0.8.7
Fix Version/s: None

Type: Improvement Priority: Trivial
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: 30 minutes
Time Spent: Not Specified
Original Estimate: 30 minutes


 Description   

The factory class provides a getReadableName method and inherits the getName method from NamedEntity. The string of the getName method seems not be used at all and thus I'd suggest to remove getReadableName and to replace the functionality by using the inherited currently unused methods.



 Comments   
Comment by Stefan Rybacki [ 19/Apr/12 ]

If I remember correctly, there was a problem, that the name was used in the Registry to identify factories and it needed to be unique. That is why I introduced getReadableName. It might be that this requirement is gone now in which case getReadableName and getName should be merged.





Event queue cleanup, categorization & tests (JAMESII-423)

[JAMESII-421] TwoListWithBucketsSimpleThreshold size is incorrect after adding two equal events Created: 13/Nov/13  Updated: 13/Nov/13  Resolved: 13/Nov/13

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Arne Bittig Assignee: Arne Bittig
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

When taking a virgin TwoListWithBucketsSimpleThreshold event queue and, for example, doing

queue.enqueue(new Integer(1), 1.0);
queue.enqueue(1, 2.0);

the event queue will contain 1 event afterwards (with the higher time), but .size() will return 2.

This is because the event(s) end up in the farFuture hashMap, so putting the second overwrites the first, but the size variable maintained in parallel is still increased.






[JAMESII-400] Move result reporting to public repository Created: 25/Sep/13  Updated: 18/Oct/13  Resolved: 18/Oct/13

Status: Resolved
Project: James II
Component/s: Result Reporting
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: public-repo
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes





Provide simtime() function to mlrules models (JAMESII-340)

[JAMESII-343] Add simtime function to other mlrules simulators Created: 09/Apr/13  Updated: 01/Oct/13

Status: Open
Project: James II
Component/s: ML-Rules
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Stefan Rybacki Assignee: Tobias Helms
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes





[JAMESII-386] Add methods of MergableEnvironment to Environment Created: 20/Aug/13  Updated: 17/Sep/13

Status: Open
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Minor
Reporter: Tobias Helms Assignee: Tobias Helms
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 1 hour
Time Spent: Not Specified
Original Estimate: 1 hour


 Description   

The class MergableEnvironment extends the class Environment.
It adds methods to merge two environments. These methods could also be added directly into the environment class.

-> Add the methods in the environment class.
-> Adapt all classes which use the MergableEnvironment.



 Comments   
Comment by Arne Bittig [ 17/Sep/13 ]

What is the point? If the methods were real merge methods (returning a new instance created from the content of two others), I think they should be static (although one method would suffice, actually). The currently implemented methods have an functionality better described by addAll, and even these could be implemented as static utility methods. I can see why you would want to pull up the (key or entry) iterator to the original interface, though.





[JAMESII-368] Enhance CSVWriter handling of 2D arrays of primitives Created: 09/Jul/13  Updated: 13/Sep/13  Resolved: 13/Sep/13

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: James II 0.9.3
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Minor
Reporter: Stefan Rybacki Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: output
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

The problem is that calling CSVWriter#writeResult with, for example, a double[][] will write a single line with the double[] toString output, instead of the whole matrix (as would be expected).



 Comments   
Comment by re027 [ 10/Jul/13 ]

To reduce redundancy (the many writeResult(...) functions with different signatures) I am going to change CSVWriter from a utility singleton (containing only static methods) to a class with state, so that default parameters (delimiter etc.) can be set in the constructor(s).

Comment by re027 [ 13/Sep/13 ]

To avoid code duplication, several public methods have been removed from CSVWriter, e.g. all methods to append data to an existing file.

To do so, you can now use org.jamesii.core.util.misc.Files#appendToFiles, which can be easily combined with the CSVWriter, for example:

Files.appendToFile("my.csv", CSVWriter.toCSV(results, ',').toString());

Additionally, the (seemingly unused?) method to store 1D arrays has been removed. This avoids to accidentally pass a 2D primitive array into it, although it cannot handle it.

Also, note that only the fully-configurable CSVWriter#writeResult(...) method is now available for 2D arrays of the eight primitive data types, to avoid code duplication.





[JAMESII-383] Rename one of the two CSVReader classes Created: 02/Aug/13  Updated: 13/Sep/13  Resolved: 13/Sep/13

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: James II 0.9.3
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Minor
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 1
Labels: naming, refactoring
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

There is org.jamesii.core.data.runtime.CSVReader, a specific implementation of javax.sql.RowSetReader, but also the utility class org.jamesii.core.util.misc.CSVReader (by [~sl031], Arne Bittig).

This is quite confusing and not immediately clear.

I would suggest to rename org.jamesii.core.data.runtime.CSVReader to RowSetCSVReader.



 Comments   
Comment by re027 [ 13/Sep/13 ]

As this seems to be fine with everyone, I changed the name of org.jamesii.core.data.runtime.CSVReader to RowSetCSVReader.





[JAMESII-393] Fix system-dependent test for post-serialization behavior of SecureRandom Created: 13/Sep/13  Updated: 13/Sep/13  Resolved: 13/Sep/13

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: James II 0.9.3
Security Level: public (Visible to EVERYONE.)

Type: Task Priority: Trivial
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: random-numbers, testing
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

Since implementations of SecureRandom may be platform-specific (http://docs.oracle.com/javase/7/docs/api/java/security/SecureRandom.html), their behavior after serialization differs. It seems that the default implementation for the Windows version of Oracle's JVM is serialized like other PRNGs, so that identical numbers are produced after de-serialisation, while the default implementation for Linux produces different numbers.






[JAMESII-380] Result Report Generation fails with R 3.x Created: 30/Jul/13  Updated: 13/Aug/13  Resolved: 13/Aug/13

Status: Resolved
Project: James II
Component/s: Result Reporting
Affects Version/s: None
Fix Version/s: James II 0.9.3
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Minor
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

A typical error message in R, when calling Sweave("report.Rtex"), would be

Error in plot.window(...) : need finite 'ylim' values


 Comments   
Comment by re027 [ 13/Aug/13 ]

The problem has not so much to do with the R version, but with the fact that the R code to generate the plots does not cope well with infinite / unknown values (i.e. NA). This can be changed by passing na.rm=TRUE to methods like range(...) and max(...).





[JAMESII-382] Shouldn't AbstractModelReaderFactory implement IUriHandling or at least provide a static member derived from IUriHandling? Created: 01/Aug/13  Updated: 01/Aug/13  Resolved: 01/Aug/13

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 1 minute
Time Spent: Not Specified
Original Estimate: 1 minute


 Description   

AbstractModelReader does not provide a static member to specify an URI in a ParameterBlock



 Comments   
Comment by re027 [ 01/Aug/13 ]

I don't think it's intentional, but the AbstractModelReaderFactory only manages the available ModelReaderFactory sub-classes for the registry, so it's hard to tell how you would implement supportsURI(URI). It would have to check all available (concrete) factories, but these can only be accessed by the filter criteria, and AbstractModelReaderFactory#SupportCriteria already relies on IURIHandling. Or do you mean something else?





[JAMESII-381] Where i could find a user guide for jamesII Created: 31/Jul/13  Updated: 01/Aug/13

Status: Open
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Story Priority: Major
Reporter: Anonymous Assignee: M&S Admin Mailing List
Resolution: Unresolved Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

as i'm a new to this tool. i would like to know where i'll find a user guide for jamesII. if it's available then please provide the link.the instructions provided on "how to use" is not sufficient for a novice user. please let me know if it's available.



 Comments   
Comment by Arne Bittig [ 01/Aug/13 ]

If a user guide has been written before, it is probably out of date now. A new one has not yet been written, unfortunately. (https://bitbucket.org/jamesii/main/wiki/User%20Guide as also linked at the bottom of the "how to use" page)

As many things can be done with James II, could you, for a more helpful start, please tell what you tried to do and what you would like to have explained better?

Comment by re027 [ 01/Aug/13 ]

Arne Bittig is right, there is currently no up-to-date documentation for novice users (but we are happy to provide one!).

I have added some (still empty) categories to the user guide at https://bitbucket.org/jamesii/main/wiki/User%20Guide. Maybe you could tell us what you are trying to do, i.e. which section would be of interest, and then we fill the gaps for them first?

Also, note that we have a public mailing list (james-ii@googlegroups.com), so feel free to ask questions there!





[JAMESII-374] Footer: add links to project sites of new M&S research group homepage Created: 10/Jul/13  Updated: 30/Jul/13  Resolved: 30/Jul/13

Status: Resolved
Project: James II
Component/s: website
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Trivial
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by re027 [ 30/Jul/13 ]

Still needs to be updated on the server...





[JAMESII-377] ML-Rules Parser should prevent same name for species and attribute binding Created: 17/Jul/13  Updated: 29/Jul/13  Resolved: 29/Jul/13

Status: Resolved
Project: James II
Component/s: ML-Rules
Affects Version/s: James II 0.9.1
Fix Version/s: James II 0.9.3
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Currently the parser allows constructs like this:

A(a):a -> @ 1;

which is ambiguous and is not allowed.






[JAMESII-364] "StringBuffer out" parameter in initComputationTask(...) seems to be unused Created: 02/Jul/13  Updated: 03/Jul/13  Resolved: 03/Jul/13

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Minor
Reporter: Arne Bittig Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

initComputationTask(IComputationTaskConfiguration, IModelReader, RunInformation, StringBuffer, List<ISimulationServer>), several methods called by it, and the constructor of ExecutionMeasurement used therein, have an "out" parameter that could be used to log messages to the given StringBuffer in addition to the usual log output. Hoever, it seems whereever the method is called the parameter value is null (except for tests, where it is new StringBuffer(), i.e. it is not referenced anywhere again, either).

The javadoc does not elucidate the purpose well, either:
"@param out

  • the out"

(I noticed this when inlining the only two report methods from Entity – see https://altair.informatik.uni-rostock.de/jira/browse/JAMESII-348 – that actually contained some logic (as opposed to a single call to another method), which were incidentally only used in the context above.)



 Comments   
Comment by re027 [ 03/Jul/13 ]

As far as I see it, the string buffer is used in SimulationRunSetup#handleError. I fixed (and updated) the javadocs.

Comment by Arne Bittig [ 03/Jul/13 ]

Pardon me? handleError is only ever called by initComputationTask, is it not? So how can it "use" the parameter if this one never has a useful value in initComputationTask in the first place?

Comment by re027 [ 03/Jul/13 ]

Anyhow, if nobody really uses it we could (should) still remove it. I have checked the code to include external formalisms and this does not really use it either (but maybe it should?). We could simply say that output management is handled via logging (this is how it is currently done in the external formalisms code).

Comment by re027 [ 03/Jul/13 ]

My point was just that out will be handled correctly by our default task setup, so it can be used. Sorry about the confusion.

Comment by re027 [ 03/Jul/13 ]

So, instead rather remove it altogether?

Comment by re027 [ 03/Jul/13 ]

I now removed the out parameter as suggested. To propagate the output of external processes org.jamesii.core.util.misc.exec.StreamReader should be used, and to post-process such output one could add a org.jamesii.core.util.logging.ILogListener to the org.jamesii.core.util.logging.ApplicationLogger.





[JAMESII-362] parser allows nu operator in stoichiometry parts of the an MLRules model Created: 27/Jun/13  Updated: 27/Jun/13

Status: Open
Project: James II
Component/s: ML-Rules
Affects Version/s: James II 0.9.3
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Minor
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The following model is parsed without errors, but should raise an error at $a.

A();

>>INIT [
	A()
];

A() -> $a A() @ 1;





[JAMESII-356] Move IDE configuration files to public repository, extend directory structure (/projects + /tools) Created: 11/Jun/13  Updated: 12/Jun/13  Resolved: 12/Jun/13

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: James II 0.9.3
Security Level: public (Visible to EVERYONE.)

Type: Task Priority: Trivial
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: directory-structure, eclipse
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

To facilitate contributions, our Eclipse configuration files should be moved to the public repository.






[JAMESII-355] Move core to new repository Created: 31/May/13  Updated: 31/May/13  Resolved: 31/May/13

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: James II 0.9.3
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: build-system, cleanup, maven
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The new repository will then be made publicly accessible.






[JAMESII-346] SR Tau-Leaping and reaction orders greater than 3 Created: 24/Apr/13  Updated: 24/Apr/13

Status: Open
Project: James II
Component/s: SR
Affects Version/s: None
Fix Version/s: None

Type: New Feature Priority: Minor
Reporter: Tobias Helms Assignee: Tobias Helms
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The current implementation of the g function in tau-leaping for SR (TauLeapingProcessorVarA.java, line 562-607) uses the method of Cao (2006, Efficient step size selection for the tau-leaping simulation method, http://dx.doi.org/10.1063/1.2159468 ), but Sandmann (2009, Streamlined formulation of adaptive explicit-implicit tau-leaping with automatic tau selection, http://dx.doi.org/10.1109/WSC.2009.5429309 ) developed a more general equation which is able to deal with higher orders of reactions. This method should be implemented for SR.






[JAMESII-342] NPE when editing constants in editor (which breaks subsequent parsing) Created: 09/Apr/13  Updated: 18/Apr/13  Resolved: 18/Apr/13

Status: Resolved
Project: James II
Component/s: ML-Rules
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

java.lang.NullPointerException
at org.antlr.runtime.tree.BaseTree.replaceChildren(BaseTree.java:183)
at org.antlr.runtime.tree.CommonTreeAdaptor.replaceChildren(CommonTreeAdaptor.java:165)
at org.antlr.runtime.tree.CommonTreeNodeStream.replaceChildren(CommonTreeNodeStream.java:142)
at org.jamesii.model.mlrules.reader.antlr.parser.ConstantResolver.enterVarRead(ConstantResolver.java:696)
at org.jamesii.model.mlrules.reader.antlr.parser.ConstantResolver.topdown(ConstantResolver.java:315)
at org.jamesii.model.mlrules.reader.antlr.parser.ConstantResolver.topdown(ConstantResolver.java:1)
at org.antlr.runtime.tree.TreeRewriter$2.rule(TreeRewriter.java:108)
at org.antlr.runtime.tree.TreeRewriter.applyOnce(TreeRewriter.java:61)
at org.antlr.runtime.tree.TreeRewriter$1.pre(TreeRewriter.java:92)
at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:28)
at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:33)
at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:33)
at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:33)
at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:33)
at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:33)
at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:33)
at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:33)
at org.antlr.runtime.tree.TreeVisitor.visit(TreeVisitor.java:33)
at org.antlr.runtime.tree.TreeRewriter.downup(TreeRewriter.java:95)
at org.jamesii.model.mlrules.journal.reader.antlr.MLRulesModelReader.preparseModel(MLRulesModelReader.java:184)
at org.jamesii.gui.mlrules.journal.editor.infoprovider.MLRulesInfoProvider.run(MLRulesInfoProvider.java:53)
at org.jamesii.gui.syntaxeditor.AbstractInfoProvider$1.run(AbstractInfoProvider.java:110)
at java.lang.Thread.run(Thread.java:722)






[JAMESII-340] Provide simtime() function to mlrules models Created: 09/Apr/13  Updated: 09/Apr/13  Resolved: 09/Apr/13

Status: Resolved
Project: James II
Component/s: ML-Rules
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: New Feature Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: 0 minutes Remaining Estimate: 0 minutes
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: 0 minutes Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    
Sub-Tasks:
Key
Summary
Type
Status
Assignee
JAMESII-343 Add simtime function to other mlrules... Sub-task Open Tobias Helms  

 Comments   
Comment by Stefan Rybacki [ 09/Apr/13 ]

Reference Implementation now supports simtime function.





[JAMESII-335] Handle package naming convention less restrictively Created: 02/Apr/13  Updated: 04/Apr/13  Resolved: 04/Apr/13

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Major
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: plugnsimulate, regexp
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

When a plugin.xml is loaded, the parser checks the FQCNs of the factories with the regular expression

[a-z][0-9a-zA-Z._]*[\[\]]*

which enforces that the first package name starts with a lower-case letter. While this is in tune with the JLS (see http://docs.oracle.com/javase/specs/jls/se7/jls7.pdf, p. 124: "The first component of a unique package name is always written in all-lowercase ASCII letters and should be one of the top level domain names, such as com, edu, gov, mil, net, or org, or one of the English two-letter codes identifying countries as specified in ISO Standard 3166."), it is not enforced by popular tools like Eclipse. Still, plugins referring to classes defined in the default package or within a (top-most) package named with an upper case as first character will not be loaded.

The error message will look like:

WARNING: Error reading plugin XML (might be ok if the loaded XML file is not a James II Plugin - XML File) --> [...]\GroupID\ArtificialID\model\plugin.xml/Path:[...]\target\classes\GroupID\ArtificialID\model\plugin.xml
org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 66; cvc-pattern-valid: Value 'GroupID.ArtificialID.model.MyModelFactory' is not facet-valid with respect to pattern '[a-z][0-9a-zA-Z._]*[\[\]]*' for type 'JavaClass'.

This may lead to confusion and seems too restrictive.

Credit: this issue was found by Lucio Tolentino (University of Iowa).






[JAMESII-334] When listing available Formalisms in Wizard some are sorted by alphabet but not all Created: 22/Mar/13  Updated: 22/Mar/13  Resolved: 22/Mar/13

Status: Resolved
Project: James II
Component/s: GUI
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Trivial
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: PNG File screenshot.png    




[JAMESII-302] Invalid parameterization of text-based species-reactions models (depending on context) Created: 10/Jan/13  Updated: 11/Jan/13  Resolved: 11/Jan/13

Status: Resolved
Project: James II
Component/s: SR
Affects Version/s: James II 0.8.8, James II 0.9, James II 0.9.1
Fix Version/s: James II 0.9.1
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Blocker
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: parameters, testing
Σ Remaining Estimate: 0 minutes Remaining Estimate: 0 minutes
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: 0 minutes Original Estimate: 0 minutes

Attachments: JPEG File correct_trajectories.jpg     JPEG File incorrect_trajectories.jpg    
Sub-Tasks:
Key
Summary
Type
Status
Assignee
JAMESII-303 Parameters for an {{SRModel}} can onl... Technical task Open  

 Description   

When executing a text-based SR-model with parameters, such as the following Lotka-Volterra model:

[model]
S: Food, Sheep, Wolf;
R: 
	r1 = 1Food + 1Sheep -> 2Sheep + 1Food,
	r2 = 1Sheep + 1Wolf -> 2Wolf,
	r3 = 1Wolf -> 0Wolf;
reference: http://dx.doi.org/10.1021/ja01453a010;
name: LotkaVolterra;

[parameters]
V: 10;
X_0: Food:10, Sheep:1000, Wolf:1000;
Rc: r1:10, r2:0.01, r3:100;

the parameters seem to be set in differing ways, depending on the way the model is executed.

For example, if you execute it from code like this (see test.sr.ssa.TestLotkaVolterra):

BaseExperiment exp = new BaseExperiment();
exp.setModelLocation(new URI("file-sr:/./LotkaVolterra.sr"));
exp.setDefaultSimStopTime(1.0);
exp.execute();

or via New > Experiment or Workflow > Start simulation in the James II GUI, the Wolves will die out immediately (this is reproducible, see fig. 'incorrect_trajectories'), although the correct behaviour seems to be that both populations oscillate, as it can be observed when executing the experiment via Workflow > Start simple M&S (see fig. 'correct_trajectories').



 Comments   
Comment by Stefan Rybacki [ 11/Jan/13 ]

FIX:
Problem was, that the SRLStringConverter used when storing the SR-Model from a text editor, did not parse the Volume parameter correctly (ignored it) and set it to 1.0, which was different from the value actually set.





[JAMESII-227] Tutorial Project Maven Archetype and Public File-Based Repository Created: 11/Sep/12  Updated: 30/Nov/12  Resolved: 29/Nov/12

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: James II 0.9
Security Level: public (Visible to EVERYONE.)

Type: New Feature Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: documentation, maven, web
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Sub-Tasks:
Key
Summary
Type
Status
Assignee
JAMESII-287 Gather feedback Sub-task Resolved re027  
JAMESII-288 Create Step-by-Step Tutorial/Screencast Sub-task Resolved re027  
JAMESII-289 Create prototypical Archetype Sub-task Resolved re027  

 Description   

A Maven archetype for a 'typical' JAMES II project that includes dummy plugins etc. shall be created. At first, it will focus on providing a new modeling formalism and simulator (additional feature suggestions are very welcome, just comment on this issue).

Additionally, the archetype and the public releases of JAMES II should be made available via a public (file-based) Maven repository. Eventually, this should mean that to get working with JAMES II, a user would simply have to do this from the command line:

mvn archetype:generate -DarchetypeRepository=http://altai.informatik.uni-rostock.de/jamesIIreleases/maven -DarchetypeGroupId=org.jamesii.archetypes -DarchetypeArtifactId=custom-extension-archetype -DarchetypeVersion=0.9.0





Tutorial Project Maven Archetype and Public File-Based Repository (JAMESII-227)

[JAMESII-288] Create Step-by-Step Tutorial/Screencast Created: 22/Nov/12  Updated: 29/Nov/12  Resolved: 29/Nov/12

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: James II 0.9
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by re027 [ 29/Nov/12 ]

Step-by-step guide from my mail seems to work for Eclipse, so this will simply put online for now...





Tutorial Project Maven Archetype and Public File-Based Repository (JAMESII-227)

[JAMESII-287] Gather feedback Created: 22/Nov/12  Updated: 29/Nov/12  Resolved: 29/Nov/12

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Comments   
Comment by re027 [ 29/Nov/12 ]

Worked in Feedback by Tobias (a mainconfig.xml is now provided, to make starting up the UI the first time more pleasant).





Tutorial Project Maven Archetype and Public File-Based Repository (JAMESII-227)

[JAMESII-289] Create prototypical Archetype Created: 22/Nov/12  Updated: 22/Nov/12  Resolved: 22/Nov/12

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[JAMESII-276] ConcurrentModificationException in TemporaryFileManager Created: 16/Nov/12  Updated: 16/Nov/12  Resolved: 16/Nov/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: James II 0.8.8
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Minor
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: multi-threading
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: File patch_TempFileManager.diff    

 Description   

When executing stochastic pi experiments in parallel, the TemporaryFileManager occassionally crashes with a ConcurrentModificationException (in line 182, rev. ).

The attached patch seems to fix this by replacing the ArrayList with a Vector (which should be thread-safe), but may not be the best solution.



 Comments   
Comment by Stefan Rybacki [ 16/Nov/12 ]

Fix: if this happens again, an exception is thrown to the caller that tried to create a manage temporary file or directory while the system is actually shutting down.





[JAMESII-37] Create super class for all stochastic tests Created: 05/Mar/12  Updated: 20/Oct/12  Resolved: 27/Sep/12

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: James II 0.8.7
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: refactoring, statistics, testing
Σ Remaining Estimate: 4 hours Remaining Estimate: 4 hours
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: 4 hours Original Estimate: 4 hours

Sub-Tasks:
Key
Summary
Type
Status
Assignee
JAMESII-139 Read up on the topic Sub-task Resolved re027  

 Description   

The super class should provide common functionality to re-try a stochastic test. It should use ChattyTestCase to print out only the data required for reproducing the error in case the test fails too often. This functionality is already hard-coded in many classes, most notably StatisticalResultComparisonTest is doing this already. The functionality offered there should be provided to all other stochastic tests as well, i.e. it should be generalized.



 Comments   
Comment by re027 [ 27/Sep/12 ]

The code regarding repeated test execution is rather hard to generalize and even all these additional efforts it will not prevent failures with a probability of 100%. Therefore, StochasticChattyTestCase currently just supports the usage of a global rng seed for each test. Note that if you have multiple test methods in your class, you will have to call super.setUp() in your setUp method, since the RNG seed should be the same for all methods (the execution order of which is assumed to be random).

Comment by re027 [ 20/Oct/12 ]

The name of the Java property to set a global seed is org.jamesii.test.seed. Check the surefire configuration in the parent pom.xml to see its current value.





[JAMESII-255] Add Collapse/Expand all functionality to TreeTable Created: 08/Oct/12  Updated: 08/Oct/12

Status: Open
Project: James II
Component/s: GUI
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified





[JAMESII-254] in Experiment Setup Dialog (Replication Tab) the Parameter Editor does not fill the entire area Created: 08/Oct/12  Updated: 08/Oct/12  Resolved: 08/Oct/12

Status: Resolved
Project: James II
Component/s: GUI
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip     PNG File screenshot.png    

 Description   

see screenshot






[JAMESII-248] Comments at the end of a model file with no linefeed are not recognized in MLRules Created: 28/Sep/12  Updated: 02/Oct/12  Resolved: 02/Oct/12

Status: Resolved
Project: James II
Component/s: ML-Rules
Affects Version/s: James II 0.8.8
Fix Version/s: James II 0.9
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

Example:

A();

>>INIT[
]

A() -> @ 1;

//this comment is not recognized as comment and causes the parser to fail





[JAMESII-245] DeadLock when closing ExperimentExecutionWindow on paused experiment/simulationrun Created: 26/Sep/12  Updated: 27/Sep/12  Resolved: 27/Sep/12

Status: Resolved
Project: James II
Component/s: Core, GUI
Affects Version/s: James II 0.8.8, James II 0.9
Fix Version/s: James II 0.9
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

To reproduce:

  1. GUI->Workflow -> Start Simple M&S
  2. select Species - Reaction
  3. click Next
  4. click OK
  5. click Finish
  6. click OK
  7. click OK
  8. close Experient Execution Window
  9. Answer security question "The Experiment is still running ..." with Yes
  10. Voilà Deadlock


 Comments   
Comment by re027 [ 27/Sep/12 ]

The deadlock is caused by a call to SwingUtilities#invokeAndWait, I fixed this by using SwingUtilities#invokeLater.





Renaming core packages to start with "org.jamesii" (JAMESII-230)

[JAMESII-234] Do not overdo it ;-) Created: 15/Sep/12  Updated: 27/Sep/12  Resolved: 27/Sep/12

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Minor
Reporter: Arne Bittig Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

projects/_mvn/assemblies/release/src/test/resources/samples/forestFire.car:

  • Rules for forrest fire model.
    + Rules for forrest fire org.jamesii.model.

b/projects/_mvn/assemblies/release/src/test/resources/samples/gameOfLife.car:

  • CA model for game of life
    + CA org.jamesii.model for game of life


 Comments   
Comment by Stefan Rybacki [ 27/Sep/12 ]

My bet is that there will be more of those refactoring errors





[JAMESII-246] Problems when reading supposingly same model files Created: 26/Sep/12  Updated: 26/Sep/12  Resolved: 26/Sep/12

Status: Resolved
Project: James II
Component/s: SR
Affects Version/s: James II 0.8.8, James II 0.9
Fix Version/s: James II 0.9
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: PNG File screenshot.png     File sr_ml_testmodel.sr     File sr_ml_testmodel_1.sr    

 Description   

When reading sr_ml_testmodel.sr
no exception is generated while when reading sr_ml_testmodel_1.sr a NPE is thrown.

Sep 26, 2012 3:14:22 PM org.jamesii.gui.workflow.experiment.ModelLoader$1 actionPerformed
SEVERE: null
java.lang.NullPointerException
at model.sr.antlr.reader.SRModelReader.parseString(SRModelReader.java:127)
at model.sr.antlr.reader.SRModelReader.read(SRModelReader.java:291)
at org.jamesii.gui.workflow.experiment.ModelLoader$1.actionPerformed(ModelLoader.java:150)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:155)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
at java.awt.Dialog.show(Dialog.java:1077)
at java.awt.Component.show(Component.java:1651)
at java.awt.Component.setVisible(Component.java:1603)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1003)
at org.jamesii.gui.wizard.Wizard.showWizard(Wizard.java:539)
at org.jamesii.gui.workflow.WorkflowPerspective$2.execute(WorkflowPerspective.java:66)
at org.jamesii.gui.application.action.IActionAction.actionPerformed(IActionAction.java:72)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)



 Comments   
Comment by Stefan Rybacki [ 26/Sep/12 ]

This file generates the shown Exception

Comment by Stefan Rybacki [ 26/Sep/12 ]

This file does not generate an exception

Comment by Stefan Rybacki [ 26/Sep/12 ]

Won't fix as it turns out, the file ending in _1.sr has extra non-printable characters in the beginning as seen in the screenshot.





[JAMESII-244] Infinity Loop in MLRules Each Step Observer Created: 26/Sep/12  Updated: 26/Sep/12  Due: 26/Sep/12  Resolved: 26/Sep/12

Status: Resolved
Project: James II
Component/s: ML-Rules
Affects Version/s: James II 0.8.8, James II 0.9
Fix Version/s: James II 0.9
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 1 minute
Time Spent: Not Specified
Original Estimate: 1 minute

Attachments: Zip Archive mylyn-context.zip    




Renaming core packages to start with "org.jamesii" (JAMESII-230)

[JAMESII-236] Move SASF packages to org.jamesii Created: 17/Sep/12  Updated: 17/Sep/12  Resolved: 17/Sep/12

Status: Resolved
Project: James II
Component/s: SASF
Affects Version/s: James II 0.8.8
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: refactoring
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes





Renaming core packages to start with "org.jamesii" (JAMESII-230)

[JAMESII-237] Move wumpus packages to org.jamesii Created: 17/Sep/12  Updated: 17/Sep/12  Resolved: 17/Sep/12

Status: Resolved
Project: James II
Component/s: Wumpus
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: refactoring
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes





[JAMESII-230] Renaming core packages to start with "org.jamesii" Created: 14/Sep/12  Updated: 17/Sep/12  Resolved: 14/Sep/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Blocker
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: refactoring
Σ Remaining Estimate: 1 hour Remaining Estimate: 1 hour
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: 1 hour Original Estimate: 1 hour

Sub-Tasks:
Key
Summary
Type
Status
Assignee
JAMESII-234 Do not overdo it ;-) Sub-task Resolved Stefan Rybacki  
JAMESII-236 Move SASF packages to org.jamesii Sub-task Resolved re027  
JAMESII-237 Move wumpus packages to org.jamesii Sub-task Resolved re027  

 Comments   
Comment by Arne Bittig [ 14/Sep/12 ]

Ach, soo? Ich hatte das so verstanden, dass überall org.jamesii. davorkommt, nicht, dass james.xyz... in org.jamesii.xyz... umbenannt wird. Wie soll das denn dann werden bei

1. james.xyz-Sachen die nicht im core-package liegen (z.B. in der sandbox)
2. model.xyz und simulator.xyz in veröffentlichten Paketen – die müssten ja auch umbenannt werden? (schnell www.model.org und www.simulator.org registrieren? )

Comment by re027 [ 15/Sep/12 ]

Hmm... is there any pressing reason for this? Note that these changes are unrelated to Maven compliance (see JAMESII-225), which is not concerned with the names of individual packages.

Maybe be we should have discussed this at the devs meeting. Anyhow, it is probably a move into the right direction (although a rather painful one :/). For the sake of consistency, I would argue to move all other packages into this scheme (org.jamesii.model.*, org.jamesii.simulator.*, and so on), as they all are part of JAMES II.

Comment by Stefan Rybacki [ 17/Sep/12 ]

it seems there was a missunderstanding with the Maven compliance, as I and I thing some others were under the impression that this also affects packages.
Nevertheless, I still think this is still probably a good thing as it is more consistent with conventions.

@ab358: the idea was to put org.jamesii in front of everything that does not start with james.

Comment by re027 [ 17/Sep/12 ]

@Stefan Rybacki: I agree, and would suggest to move at least all released packages for the upcoming release (i.e., until Wednesday night). To avoid any further confusion: packages starting with james should be renamed to org.jamesii, right? (So that eventually everything will be under org.jamesii).





[JAMESII-232] MLRules Journal Parser does not recognize functions as stochiometry factor Created: 15/Sep/12  Updated: 15/Sep/12

Status: Open
Project: James II
Component/s: ML-Rules
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Consider this example model:

A(0);

>>INIT [
]

binom(1,1) A() -> @ 0;

which should be valid, but binom is recognized as Species rather than as a function.



 Comments   
Comment by Stefan Rybacki [ 15/Sep/12 ]

Current Workaround:

put function in parenthesis

A(0);

>>INIT [
]

(binom(1,1)) A() -> @ 0;




[JAMESII-222] Could BaseExperiment.currentExperimentID be set earlier than in execute()? Created: 25/Aug/12  Updated: 27/Aug/12  Resolved: 27/Aug/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Arne Bittig Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

BaseExperiment.getUniqueIdentifier() returns null if called before the call to execute(). (side question: are there scenarios where BaseExpermiment.execute() is called more than once per instance?)

Yet if I want, for example, to redirect the Sytem.out-put into "%modelname%-%expID%.log", I'd rather do that before calling execute().

What is a good way around that? (I'd be fine with "start using SESSL already" as an answer. )



 Comments   
Comment by re027 [ 25/Aug/12 ]

Unfortunately, your side-question hits the nail on the head: BaseExperiment was intended to be re-executable, so its UID needs to be set that late and is changed for every invocation of execute(...) (instead of being final, as one would expect).

However, I am not aware that anyone uses it this way, so it could certainly be re-designed to be a single experiment execution. Johannes ran into a similar problem just a few days ago, so the current behavior seems to be unexpected (and therefore bad). I will ask around to see whether this can be changed

In the meantime, a relatively simple workaround would be to use a helper class along these lines:

  class MySingleRunExperiment extends BaseExperiment {
    
    private static final long serialVersionUID = 6027814608821842709L;
    
    final IUniqueID fixedID = UniqueIDGenerator.createUniqueID();

    public IUniqueID getFixedID() {
      return fixedID;
    }
  }

BTW I hate to say it, but SESSL doesn't really solve that problem either

A SESSL Experiment is intended to be executed only once, but so far it is up to the user to associate each experiment with an ID (unique run- and configuration-IDs are available). Although this is rather straightforward, it still has to be done manually (because there is no notion of an experiment sequence yet):

for(id <- 1 to 10)
 execute{
  new Experiment with Observation with Report {
    // ...
    reportName = "Results for Experiment " + id
    // ...
  }
 }
Comment by Arne Bittig [ 25/Aug/12 ]

How about having a field

boolean firstRun = true;
in BaseExperiment, assigning the (still not final) currentExperimentID in the constructor, and start execute() with
if (firstRun) {
  firstRun = false;
} else {
  currentExperimentID = UniqueIDGenerator.createUniqueID();
}
?
Then I would be logging all executions in a file named for the first one, but that would be fine with me (beats logging all of them in "null.log", anyway )

Comment by re027 [ 27/Aug/12 ]

Sounds good to me...





[JAMESII-171] The 'Start Simulation' Wizard in the UI uses counterintuitive default settings Created: 27/Jun/12  Updated: 21/Aug/12  Resolved: 21/Aug/12

Status: Resolved
Project: James II
Component/s: GUI
Affects Version/s: James II 0.8.7
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Major
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: usability
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

(This issue was reported by Mathias John)

If you start a simulation via Workflow > Start simulation in the GUI, the Concurrent Computation Task Stop Policy is selected per default, which yields strange (often unintended) behavior.






[JAMESII-199] Unexpected generation of unique values ($ operator) within the initial solution? Created: 17/Jul/12  Updated: 17/Jul/12  Resolved: 17/Jul/12

Status: Resolved
Project: James II
Component/s: ML-Rules
Affects Version/s: James II 0.8.7
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: File actin_simple.mlrj    

 Description   

It seems like the generation of unique values (UV) within the init specification is not as expected. In the attached model, the generation of two UV s is intendend ($bondone and $bondtwo), but it seems like the second usage of each $bond* generates a new value rather than assigning the already generated one, i.e., four values are generated instead of two.






Handling Lists of Plugins as Plugin Parameters not working properly (JAMESII-191)

[JAMESII-192] The Factory ParameterTreeTable does not provide the correct parameter block to the editor for list elements nested more than one level Created: 12/Jul/12  Updated: 12/Jul/12  Resolved: 12/Jul/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes





[JAMESII-191] Handling Lists of Plugins as Plugin Parameters not working properly Created: 12/Jul/12  Updated: 12/Jul/12  Resolved: 12/Jul/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: 0 minutes Remaining Estimate: 0 minutes
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: 0 minutes Original Estimate: 0 minutes

Attachments: PNG File screenshot.png    
Sub-Tasks:
Key
Summary
Type
Status
Assignee
JAMESII-192 The Factory ParameterTreeTable does n... Sub-task Resolved Stefan Rybacki  

 Description   

Editing in ListEditorComponent of lists works as long as there is no other list in the parameterblock as well as parameterblocks seem to be shared among different levels of nested lists (<-- endless loop see Screenshot) (need for standardized way of storing lists of plugins in a parameter block <-- needs to be investigated what to use here!)



 Comments   
Comment by Stefan Rybacki [ 12/Jul/12 ]

shows shared parameter block (rep number is always the same) and shows the resulting endless loop





[JAMESII-189] List Editor Window needs some fixes Created: 11/Jul/12  Updated: 12/Jul/12  Resolved: 12/Jul/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

When clicking Up or Down with no elements:

java.lang.ArrayIndexOutOfBoundsException: 0
at james.gui.utils.parameters.list.ParametrizedList.moveSelectedEntriesUp(ParametrizedList.java:122)
at james.gui.utils.objecteditor.property.editor.lists.ListEditorComponent$4.actionPerformed(ListEditorComponent.java:139)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:1098)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at java.awt.Component.show(Component.java:1584)
at java.awt.Component.setVisible(Component.java:1536)
at java.awt.Window.setVisible(Window.java:842)
at java.awt.Dialog.setVisible(Dialog.java:986)
at james.gui.utils.objecteditor.PropertyEditorDialog.showPropertyEditorDialog(PropertyEditorDialog.java:62)
at james.gui.utils.objecteditor.PropertyEditorTableCellEditorRenderer$ExternalButtonWithDialogListener.actionPerformed(PropertyEditorTableCellEditorRenderer.java:186)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

The ADD Button does not seem to do anything when tested with MaximizingRepCriterion for instance.






[JAMESII-182] Replication Criteria are currently not initialized using a factory and parameter block by BaseExperiment Created: 09/Jul/12  Updated: 10/Jul/12  Resolved: 10/Jul/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: James II 0.8.8
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Major
Reporter: Stefan Rybacki Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Σ Remaining Estimate: 0 minutes Remaining Estimate: 0 minutes
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: 0 minutes Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    
Sub-Tasks:
Key
Summary
Type
Status
Assignee
JAMESII-185 Extend variable handling in Confidenc... Sub-task Closed jh194  
JAMESII-186 Change GUI components that work on li... Sub-task Resolved Stefan Rybacki  

 Comments   
Comment by re027 [ 10/Jul/12 ]

In james.gui.experiment.windows.edit.EditReplications, I removed the code that operates on the list of replication criteria, but this needs to be refactored now (the model does not need to be a list anymore, etc.). A similar change had to be done for the GUI code in james.gui.experiment.windows.edit.ExperimentView.

Comment by re027 [ 10/Jul/12 ]

This changed the interface of BaseeExperiment and the expected format of the parameter block returned by james.core.experiments.steering.IExperimentSteerer#getExperimentParameters() (a list of parameterized replication criterion factories can now be stored in a sub-block called ExperimentVariables.REPLICATION_CRITERION_FACTORIES, with the same semantics as before, now implemented in james.core.experiments.replication.MaximizingReplicationCriterion).





Replication Criteria are currently not initialized using a factory and parameter block by BaseExperiment (JAMESII-182)

[JAMESII-186] Change GUI components that work on lists of replication criteria Created: 10/Jul/12  Updated: 10/Jul/12  Resolved: 10/Jul/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: gui, refactoring, replicationcriteria
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

james.gui.experiment.windows.editExperimentView and james.gui.experiment.windows.edit.EditReplications are now working on a paramterized replication factory (instead of a list of replication criteria) and need to be adapted corrspodingly.



 Comments   
Comment by Stefan Rybacki [ 10/Jul/12 ]

Didn't change james.gui.experiment.windows.edit.ExperimentView as it is not used anywhere anyways and only displays the replication criterion so the resposibility of correct information lies in the ParameterizedFactory.toString implementation.

Changed james.gui.experiment.windows.edit.EditReplications so it doesn't work on lists of replication criteria anymore but only one criterion which might hold a list of sub criteria.





Replication Criteria are currently not initialized using a factory and parameter block by BaseExperiment (JAMESII-182)

[JAMESII-185] Extend variable handling in ConfidenceIntervalCriterionFactory Created: 10/Jul/12  Updated: 10/Jul/12  Resolved: 10/Jul/12

Status: Closed
Project: James II
Component/s: Core
Affects Version/s: James II 0.8.7
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Minor
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: factory, parameters
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

Currently, james.core.experiments.replication.ConfidenceIntervalCriterionFactory does not handle minReplications and furtherReplications, which can be configured in james.core.experiments.replication.ConfidenceIntervalCriterion. Also, the factory is not defined in the corresponding plugin.xml.






[JAMESII-183] When using Command+Q on MacOSX James crashes Created: 10/Jul/12  Updated: 10/Jul/12  Resolved: 10/Jul/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

java.lang.SecurityException: System.exit attempted and blocked.
at james.gui.application.james.JamesGUI$1.checkPermission(JamesGUI.java:318)
at java.lang.SecurityManager.checkExit(SecurityManager.java:744)
at java.lang.Runtime.exit(Runtime.java:88)
at java.lang.System.exit(System.java:921)
at com.apple.eawt._AppEventHandler.performQuit(_AppEventHandler.java:124)
at com.apple.eawt.QuitResponse.performQuit(QuitResponse.java:31)
at com.apple.eawt._AppEventHandler$_QuitDispatcher.performDefaultAction(_AppEventHandler.java:382)
at com.apple.eawt._AppEventHandler$_AppEventDispatcher$1.run(_AppEventHandler.java:487)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:682)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:643)
at java.awt.EventQueue$1.run(EventQueue.java:641)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:652)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)






[JAMESII-170] The font of the textual model editor is hard to read on Macs Created: 27/Jun/12  Updated: 10/Jul/12  Resolved: 10/Jul/12

Status: Resolved
Project: James II
Component/s: AttribPi, GUI
Affects Version/s: James II 0.8.7
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Major
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: editor, fonts, macos
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes
Environment:

Mac OS X


Attachments: JPEG File attrpi_modeleditor_macos.jpg    

 Description   

(This bug was reported by Mathias John: )

In particular, parentheses/brackets are hard to read, as shown in the screenshot.






[JAMESII-172] Throttle simulation execution speed when using 'Workflow > Start Simulation' Created: 27/Jun/12  Updated: 09/Jul/12  Resolved: 09/Jul/12

Status: Resolved
Project: James II
Component/s: AttribPi, GUI
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Improvement Priority: Major
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: usability
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

(This issue was reported by Mathias John)

If a simulation run is started via Workflow > Start Simulation and the trajectories are plotted, the GUI freezes (probably due to having to plot lots of data from the simulator, which runs without any delay between the steps).

You can reproduce this by executing Euglena.attrpi in this manner. This problem does not occur when starting the simulation via Workflow > Start simple M&S.






[JAMESII-178] Executing an experiment hangs if the direct file data storage is being used Created: 04/Jul/12  Updated: 05/Jul/12  Resolved: 05/Jul/12

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

On executing experiments.sr.FullExploration with the DirectFileDataStorage we get stuck after the 1st experiment has been completed.

java.lang.NullPointerException
at james.core.Registry.instantiateFactory(Registry.java:1774)
at james.core.experiments.replication.DataStorageCriterion.setupStorage(DataStorageCriterion.java:69)
at james.core.experiments.replication.DataStorageCriterion.sufficientReplications(DataStorageCriterion.java:81)
at james.core.experiments.TaskConfiguration.allowedReplications(TaskConfiguration.java:301)
at james.core.experiments.taskrunner.parallel.ParallelComputationTaskRunner.getRequiredReplications(ParallelComputationTaskRunner.java:521)
at james.core.experiments.taskrunner.parallel.ParallelComputationTaskRunner.scheduleNewJobs(ParallelComputationTaskRunner.java:427)
at james.core.experiments.taskrunner.parallel.ParallelComputationTaskRunner.access$1(ParallelComputationTaskRunner.java:423)
at james.core.experiments.taskrunner.parallel.ParallelComputationTaskRunner$JobDoneThread.run(ParallelComputationTaskRunner.java:689)






Generalize Interface of Selectors (JAMESII-1)

[JAMESII-2] Rename Selectors to Predictors Created: 24/Feb/12  Updated: 03/Jul/12  Resolved: 03/Jul/12

Status: Resolved
Project: James II
Component/s: SASF
Affects Version/s: James II 0.8.6
Fix Version/s: James II 0.8.8
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Minor
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 59 minutes
Time Spent: 2 minutes
Original Estimate: 1 hour

Attachments: Zip Archive mylyn-context.zip    

 Description   

Monkey work... but will avoid confusion in the future.



 Comments   
Comment by re027 [ 03/Jul/12 ]

Instead of ISelector, the data mining components now simply generate IPerformancePredictor instances, and have been renamed accordingly.





[JAMESII-1] Generalize Interface of Selectors Created: 18/Feb/12  Updated: 03/Jul/12  Resolved: 03/Jul/12

Status: Resolved
Project: James II
Component/s: SASF
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Task Priority: Minor
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: refactoring, ssd
Σ Remaining Estimate: 3 hours, 53 minutes Remaining Estimate: 2 hours, 54 minutes
Σ Time Spent: 19 minutes Time Spent: 17 minutes
Σ Original Estimate: 4 hours, 10 minutes Original Estimate: 3 hours, 10 minutes

Sub-Tasks:
Key
Summary
Type
Status
Assignee
JAMESII-2 Rename Selectors to Predictors Sub-task Resolved re027  

 Description   

The selectors should be generalized, so that different kinds of algorithms can be selected/combined easily.






[JAMESII-164] ML-Rules Reference Simulator crashes when simulating Yeast-Examples Created: 21/Jun/12  Updated: 27/Jun/12  Resolved: 26/Jun/12

Status: Resolved
Project: James II
Component/s: ML-Rules
Affects Version/s: James II 0.8.7
Fix Version/s: James II 0.8.7
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File patch.diff    

 Description   

This problem occurs for all published Yeast Example models (#1-5), and always results in this exception:

 
java.util.ConcurrentModificationException
	at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
	at java.util.AbstractList$Itr.next(AbstractList.java:343)
	at simulator.mlrules.population.reference.MLRulesPopulationsSpecie.clone(MLRulesPopulationsSpecie.java:112)
	at simulator.mlrules.population.reference.MLRulesPopulationProcessor.removeSpeciesFromContexts(MLRulesPopulationProcessor.java:810)
	at simulator.mlrules.population.reference.MLRulesPopulationProcessor.executeRule(MLRulesPopulationProcessor.java:737)
	at simulator.mlrules.population.reference.MLRulesPopulationProcessor.nextStep(MLRulesPopulationProcessor.java:432)
	at james.core.processor.Processor.executeNextStep(Processor.java:148)
	at james.core.processor.execontrol.ExecutionControl.run(ExecutionControl.java:352)
	at james.core.processor.RunnableProcessor.run(RunnableProcessor.java:79)
	at james.core.simulationrun.SimulationRun.start(SimulationRun.java:719)
	at james.core.experiments.taskrunner.ComputationTaskHandler.runComputationTask(ComputationTaskHandler.java:135)
	at james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.run(SequentialComputationTaskRunner.java:350)
	at james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.executeConfiguration(SequentialComputationTaskRunner.java:197)
	at james.core.experiments.taskrunner.AbstractTaskRunner.run(AbstractTaskRunner.java:107)
	at java.lang.Thread.run(Thread.java:662)





Create super class for all stochastic tests (JAMESII-37)

[JAMESII-139] Read up on the topic Created: 28/Apr/12  Updated: 22/Jun/12  Resolved: 22/Jun/12

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Sub-task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: random-numbers, statistics, testing
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

See http://dx.doi.org/10.1145/1146238.1146263






[JAMESII-163] Fill methods createClassifierEstimator() and createPortfolioEstimator() in TestSynthSteadyStateEstimatorPlugins Created: 17/Jun/12  Updated: 19/Jun/12  Resolved: 19/Jun/12

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

Fill methods createClassifierEstimator() and createPortfolioEstimator() in TestSynthSteadyStateEstimatorPlugins, to complete test and avoid npe



 Comments   
Comment by re027 [ 19/Jun/12 ]

Fixed by adding dummy (random) problem solvers in both methods, moving on to JAMESII-161 and JAMESII-162 for actual fix.





[JAMESII-149] ImplementedModelReader not working with inner classes Created: 04/Jun/12  Updated: 08/Jun/12  Resolved: 08/Jun/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: James II 0.8.5, James II 0.8.6
Fix Version/s: James II 0.8.7

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: modelreader
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

Having this Model implementation defined as inner class resulting in a classname, e.g., OuterClass$InnerClass will result in an NPE.



 Comments   
Comment by Stefan Rybacki [ 04/Jun/12 ]

A solution might be to change

Class<?> modelClass = Class.forName(ident.getHost());

to

Class<?> modelClass = Class.forName(ident.getAuthority());

as it contains the host plus authority information as which the inner classes are identified.

Comment by re027 [ 08/Jun/12 ]

I fixed the bug as suggested above, and refactored the code to use james.core.util.Reflect for instantiation.

The model reader can now load nested and inner classes. Note, however, that inner classes require that there is a default constructor for the enclosing class.

The model constructor taking the Map<String,?> argument does not need to be public anymore.





[JAMESII-150] BaseExperiment.execute somehow prevents VM to shutdown (at least on error/exception) Created: 04/Jun/12  Updated: 07/Jun/12  Resolved: 07/Jun/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Unassigned
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: 2 hours, 32 minutes
Original Estimate: Not Specified


 Description   

Considering the following small example:

public static void main(String[] args) throws Throwable {
		ApplicationLogger.setLogLevel(Level.WARNING);
    URI modelURI = new URI("java://SomeClassName$Innerclass");  //name doesn't matter as it should throw an exception in execute anyway

		BaseExperiment exp = new BaseExperiment();
		exp.setModelLocation(modelURI);
		exp.execute();
		System.out.println("Finished.");
	}

The following code executes and raises, an NPE and leaves the VM running even though it should quit.



 Comments   
Comment by Stefan Rybacki [ 05/Jun/12 ]

This seems to be the problem with an open monitor:

"execution-controller (running: james.core.experiments.DefaultExecutionController)" Id=14 WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2b49959a
at sun.misc.Unsafe.park(Native Method)

  • waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2b49959a
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at james.core.experiments.DefaultExecutionController.run(DefaultExecutionController.java:113)
    at java.lang.Thread.run(Thread.java:662)
Comment by re027 [ 07/Jun/12 ]

This is a really tricky bug - all threads seem to exit normally, yet on some machines (with Core i7 CPUs?) there is still a deadlock. Maybe it is a JVM bug (unlikely, I know)... but even releasing the monitors on the default execution controller thread and the task runner thread twice (one additional time at the end of the experiment) does not resolve the problem.





[JAMESII-145] CA_RULES weird result for given model Created: 12/May/12  Updated: 29/May/12  Resolved: 29/May/12

Status: Resolved
Project: James II
Component/s: CA
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Stefan Rybacki Assignee: Stefan Rybacki
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip     PNG File screenshot.png    

 Description   

Assuming this model:

@caversion 1;

dimensions 2;

neighborhood neumann;

state WAVE_HIGH, WAVE_MED, WAVE_LOW, NO_WAVE;

rule{WAVE_HIGH} : -> WAVE_MED;
rule{WAVE_MED} : -> WAVE_LOW;
rule{WAVE_LOW} : -> NO_WAVE;

rule{NO_WAVE} : WAVE_HIGH{1,} -> WAVE_HIGH;

And a 20x20 grid with all cells being in NO_WAVE state, results in the attached screenshot after a few steps which is wrong, as there is only one rule for NO_WAVE and since there is no WAVE_HIGH at all in the system the state can't change!



 Comments   
Comment by Stefan Rybacki [ 12/May/12 ]

Wrong result

Comment by Stefan Rybacki [ 29/May/12 ]

Problem was that in case the of referencing to a cell outside the grid the default state which was in this case WAVE_HIGH was returned.
Changed it to return null now.





[JAMESII-146] Racing condition on modifying the list of jobs Created: 23/May/12  Updated: 24/May/12  Due: 20/Jun/12  Resolved: 24/May/12

Status: Resolved
Project: James II
Component/s: Core
Affects Version/s: James II 0.8.6, James II 0.8.7
Fix Version/s: James II 0.8.7
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: racing, stability
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

Bug reported by Michele Amoretti:

Exception in thread "Thread-5" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at james.core.experiments.taskrunner.parallel.ParallelComputationTaskRunner.scheduleConfigurations(ParallelComputationTaskRunner.java:171)
at james.core.experiments.BaseExperiment.runExperiment(BaseExperiment.java:771)
at james.core.experiments.BaseExperiment.execute(BaseExperiment.java:358)
at it.unipr.ce.dsg.deus.automator.gui.ExperimentRunner.run(ExperimentRunner.java:15)
at java.lang.Thread.run(Thread.java:680)

Maybe it has to do with the executonFinished method in the BaseExperiment class. Both methods modify the same list and maybe there is the problem.



 Comments   
Comment by jh194 [ 24/May/12 ]

Modifying the list of jobs in the base experiment will now synchronize on the task runner (the second thread which migh modify the list).





[JAMESII-142] DirectFileDataStorage could store more than one run once (e.g. last morning) ... Created: 11/May/12  Updated: 11/May/12  Resolved: 11/May/12

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: None
Fix Version/s: James II 0.8.8

Type: Bug Priority: Major
Reporter: Arne Bittig Assignee: Unassigned
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

...if it was intentional (given that BaseExperiment allows to run multiple experiment variable configurations with the same data storage factory settting, I assume it was), it should work again. (If I copy DirectoryManager's lines 1166-1169 and paste them 10 lines below, the NPEs go away, but still nothing is stored in any run but the first; my previous workaround of commenting out "configurationID = -1l;" in DFDS does not work anymore, either).

occurs in: RaftExperiment, still

btw: Is it intentional that any run of an experiment using a datastorage with the same output directlry overwrites the output of the previous one?

INFO: @@@@@@@@@@@@@@@@ executing configuration #2 @@@@@@@@@@@@@@@@

10.05.2012 23:58:24 james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner executeConfiguration
SCHWERWIEGEND: Problem in initializing execution task
java.lang.NullPointerException
at datastorage.file.direct.DirectoryManager.getComputatonTaskID(DirectoryManager.java:1179)
at datastorage.file.direct.DirectFileDataStorage.setComputationTaskID(DirectFileDataStorage.java:955)
at datastorage.file.direct.DirectFileDataStorage.setComputationTaskID(DirectFileDataStorage.java:1)
at james.core.experiments.tasks.ComputationTaskIDObject.<init>(ComputationTaskIDObject.java:65)
at james.core.experiments.taskrunner.AbstractTaskRunner.getComputationTaskID(AbstractTaskRunner.java:351)
at james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.init(SequentialComputationTaskRunner.java:298)
at james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.executeConfiguration(SequentialComputationTaskRunner.java:172)
at james.core.experiments.taskrunner.AbstractTaskRunner.run(AbstractTaskRunner.java:108)
at java.lang.Thread.run(Thread.java:662)

[datastorage.file.direct.DirectoryManager.getComputatonTaskID(DirectoryManager.java:1179), datastorage.file.direct.DirectFileDataStorage.setComputationTaskID(DirectFileDataStorage.java:955), datastorage.file.direct.DirectFileDataStorage.setComputationTaskID(DirectFileDataStorage.java:1), james.core.experiments.tasks.ComputationTaskIDObject.<init>(ComputationTaskIDObject.java:65), james.core.experiments.taskrunner.AbstractTaskRunner.getComputationTaskID(AbstractTaskRunner.java:351), james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.init(SequentialComputationTaskRunner.java:298), james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.executeConfiguration(SequentialComputationTaskRunner.java:172), james.core.experiments.taskrunner.AbstractTaskRunner.run(AbstractTaskRunner.java:108), java.lang.Thread.run(Thread.java:662)]
10.05.2012 23:58:24 james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner handleAbort
SCHWERWIEGEND: null
java.lang.NullPointerException
at datastorage.file.direct.DirectoryManager.getComputatonTaskID(DirectoryManager.java:1179)
at datastorage.file.direct.DirectFileDataStorage.setComputationTaskID(DirectFileDataStorage.java:955)
at datastorage.file.direct.DirectFileDataStorage.setComputationTaskID(DirectFileDataStorage.java:1)
at james.core.experiments.tasks.ComputationTaskIDObject.<init>(ComputationTaskIDObject.java:65)
at james.core.experiments.taskrunner.AbstractTaskRunner.getComputationTaskID(AbstractTaskRunner.java:351)
at james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.init(SequentialComputationTaskRunner.java:298)
at james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.executeConfiguration(SequentialComputationTaskRunner.java:172)
at james.core.experiments.taskrunner.AbstractTaskRunner.run(AbstractTaskRunner.java:108)
at java.lang.Thread.run(Thread.java:662)

[datastorage.file.direct.DirectoryManager.getComputatonTaskID(DirectoryManager.java:1179), datastorage.file.direct.DirectFileDataStorage.setComputationTaskID(DirectFileDataStorage.java:955), datastorage.file.direct.DirectFileDataStorage.setComputationTaskID(DirectFileDataStorage.java:1), james.core.experiments.tasks.ComputationTaskIDObject.<init>(ComputationTaskIDObject.java:65), james.core.experiments.taskrunner.AbstractTaskRunner.getComputationTaskID(AbstractTaskRunner.java:351), james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.init(SequentialComputationTaskRunner.java:298), james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.executeConfiguration(SequentialComputationTaskRunner.java:172), james.core.experiments.taskrunner.AbstractTaskRunner.run(AbstractTaskRunner.java:108), java.lang.Thread.run(Thread.java:662)]
10.05.2012 23:58:24 james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner executeConfiguration
SCHWERWIEGEND: null
java.lang.NullPointerException
at james.core.experiments.taskrunner.ComputationTaskHandler.runComputationTask(ComputationTaskHandler.java:103)
at james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.run(SequentialComputationTaskRunner.java:350)
at james.core.experiments.taskrunner.sequential.SequentialComputationTaskRunner.executeConfiguration(SequentialComputationTaskRunner.java:197)
at james.core.experiments.taskrunner.AbstractTaskRunner.run(AbstractTaskRunner.java:108)
at java.lang.Thread.run(Thread.java:662)



 Comments   
Comment by jh194 [ 11/May/12 ]

Turning this "configurationID = -1l;" into a comment means introducing a 2nd bug which hides the real bug (which has been already been fixed) for a single case. This is not a good idea at all.

Results are not replaced on my machine - will need to create a setup where this happens.

A NPE in this line means that the config uid has not been created so far. Thus we need to identify the position where only expid and taskid but not the confid are set.

Comment by jh194 [ 11/May/12 ]

Cannot reproduce the problem. Assume that it has been resolved by other changes done in between.





[JAMESII-115] Using parameter blocks in IRNGGenerator Created: 11/Apr/12  Updated: 23/Apr/12  Resolved: 23/Apr/12

Status: Resolved
Project: James II
Component/s: Core, SASF
Affects Version/s: James II 0.8.7
Fix Version/s: None

Type: New Feature Priority: Minor
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: random-numbers, refactoring
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Attachments: Zip Archive mylyn-context.zip    

 Description   

The interface IRNGGenerator has been changed. This change affected code in the SASF which has been changed accordingly. However, it might be needed to further modify the affected code as from now on there might be more information to be recorded and passed than before.



 Comments   
Comment by re027 [ 12/Apr/12 ]

I have adapted the interface a little, now using the name of the actually used factory in most of my test code...

Comment by Stefan Rybacki [ 13/Apr/12 ]

Shouldn't the interface take a ParameterizedFactory instead of just a ParameterBlock?

Comment by re027 [ 13/Apr/12 ]

Yes... that would be consistent with the BaseExperiment etc.





[JAMESII-130] XML model writer for COMO specific models Created: 23/Apr/12  Updated: 23/Apr/12

Status: Open
Project: James II
Component/s: COMO
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major
Reporter: Stefan Rybacki Assignee: Andreas Kolerski
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 1 week, 1 day
Time Spent: Not Specified
Original Estimate: 1 week, 1 day


 Description   

1. try to use JAXB first
2. if this doesn't work implement own
3. maybe keep both

starting point export editor model to symbolic model which in return is exported to XML by writer






[JAMESII-131] Convert COMO symbolic model to editor's internal model Created: 23/Apr/12  Updated: 23/Apr/12

Status: Open
Project: James II
Component/s: COMO
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major
Reporter: Stefan Rybacki Assignee: Andreas Kolerski
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: 3 days
Time Spent: Not Specified
Original Estimate: 3 days





[JAMESII-96] Reduce warnings form starting the james2-core.jar in the release (by avoiding plug-in conflicts) Created: 16/Mar/12  Updated: 29/Mar/12  Resolved: 29/Mar/12

Status: Resolved
Project: James II
Component/s: None
Affects Version/s: James II 0.8.6
Fix Version/s: James II 0.8.7
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Trivial
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: classpath, plugnsimulate
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

The plug-ins available in the core are probably loaded twice because executing a jar automatically adds itself to the classpath and THEN the core will still be added to the classpath, as it is a jar found in the working directory. The clean solution to this seems to be removing classpath duplicates in general.



 Comments   
Comment by re027 [ 29/Mar/12 ]

Has already been fixed by Jan.





[JAMESII-33] Remove "No Javadoc" - Comments from Sources (with Regexp) Created: 05/Mar/12  Updated: 06/Mar/12  Resolved: 06/Mar/12

Status: Closed
Project: James II
Component/s: None
Affects Version/s: James II 0.8.6
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Task Priority: Minor
Reporter: Anonymous Assignee: Stefan Rybacki
Resolution: Duplicate Votes: 0
Labels: coding-conventions, regexp
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes

Issue Links:
Duplicate

 Description   

Just like that: http://xkcd.com/208/






[JAMESII-46] Problems with Variable Names that contain commata Created: 06/Mar/12  Updated: 06/Mar/12  Resolved: 06/Mar/12

Status: Resolved
Project: James II
Component/s: Result Reporting
Affects Version/s: James II 0.8.5, James II 0.8.6
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Minor
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: 0 minutes
Time Spent: Not Specified
Original Estimate: 0 minutes


 Description   

For certain kinds of plots (e.g. box plots), this results in wrong parameter names used in RTex reports, as the commas are stored without escaping in the CSV files.






[JAMESII-5] Test for Reproducibility fails on some machines. Created: 24/Feb/12  Updated: 29/Feb/12  Resolved: 29/Feb/12

Status: Closed
Project: James II
Component/s: Wumpus
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Bug Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: os-specific, reproducibility
Remaining Estimate: 0 minutes
Time Spent: 51 minutes
Original Estimate: 0 minutes
Environment:

Virtual server running CentOS


Attachments: Zip Archive mylyn-context.zip    

 Comments   
Comment by re027 [ 29/Feb/12 ]

The problem was that is was not clear which RNG would be used if none was set - and on the test server, our wrapper for SecureRandom was chosen, which broke the reproducibility test. Now we use the MersenneTwister per default (as it is part of the core and in general produces good [relatively uncorrelated] output, this should be a safe choice).





[JAMESII-11] Make SetsOfTimeSeriesBootstrappingComparisonTest more robust Created: 25/Feb/12  Updated: 29/Feb/12  Resolved: 29/Feb/12

Status: Closed
Project: James II
Component/s: Core
Affects Version/s: None
Fix Version/s: None
Security Level: public (Visible to EVERYONE.)

Type: Task Priority: Major
Reporter: Anonymous Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: statistics, testing
Remaining Estimate: 35 minutes
Time Spent: 25 minutes
Original Estimate: 1 hour


 Description   

The method testSimpleRejectionWithUniformDistributions fails too often, sample size etc. should be adjusted...






Generated at Thu Jul 02 09:11:47 CEST 2020 using JIRA 5.0.7#734-sha1:8ad78a62c71cf08b03545eb446cc3b9bb5ce37ad.