OSI Bug Reporting

From ARSWiki

Jump to: navigation, search

Contents

Audience

This page is intended for the following audiences:

  • People engaging in OSI projects related to the Action Request System
  • BMC/Remedy employees interested in addressing the bugs reported in their software products
    • See the Privacy Policy for information on remaining anonymous
    • Anonymous accounts are welcome to provide anonymity to BMC employess
    • Shared accounts from BMC employess are acceptable, even if operating under a pseudonym

Page Format

Report your bug using the following format:

  • Each bug gets a level 3 header (enclosed in three equal signs) under the section appropriate section (Open, Non-Closed EOL, or Closed).
  • Provide the following information for each bug:
    • OSI Project Name (provide a link to your project's site)
    • Platform and version
    • ARS Version
    • Step-by-step instructions to reproduce the issue
      • If you need to reference an OSI project because you do not want to release code snippets from your project under the GFDL license, to which the content of this site is subject, provide a link to download the Open Source software with instructions on reproducing the issue
    • Additional ARS Products/Versions with which the potential bug is exhibited

Bugs

This section is broken into three subsections:

  • Open: Issue reported, and either no response received or the issue was acknowledged and no fix provided
  • Non-Closed EOL State: Bugs that are acknowledged as functioning as designed
  • Closed: Bugs that have been corrected

Open

Java API: non-functional methods

The following methods in the 6.3 Java API are not working (they seem to be a no-op)

  • Container.setNewName() (inherited from ObjectBase) the Container.setNewname() version does work
  • ARServerUser.setPort() and the ARServerUser constructor that sets the port do not work. Use Util.ARSetServerPort()

Java API: issues and pains

  • Minor: I've seen cases where arrays are returned as null. Returning a zero length array would be much nicer.
  • More alarming, I've seen cases where an array is returned, and the last element in the array is null. I believe this was with display properties - I'd see an PropItem [] returned with length N, but the Nth element (elems[N-1]) was null instead of a PropItem. This *has* to be a bug, and requires extremely defensive programming.

Java API: OO/Design problems

  • The factory classes are very strange - two points:

They look like Singleton patterns, yet they also have static methods. Why would find() and findByKey() be static methods, where newInstance() is an instance method? If it's a Singleton pattern, these should all be instance methods. (This is related to the next point - what is the purpose of IARObjectFactory...?)


The use of IARObjectFactory is strange. This is really a template for specifically typed Singleton factory objects, not a case for inheritance. The newInstance() method returns an untyped Object (bad - requires casting), and I see no reason for it to be polymorphic - does anybody actually ever use an instance of an IARObjectFactory without using a specific factory? I doubt it. This is really a template problem (you would use something like IARObjectFactory<Field> for FieldFactory in C++), but since that isn't supported in Java these should just be individual classes that look the same, and newInstance() should be typed.

  • The use of arrays everywhere forces cumbersome C style programming and O(n) or worse algorithms, instead of convenient and efficient collection implementations.

Non-Closed EOL State

Closed

Personal tools