GithubHelp home page GithubHelp logo

eveapi's People

Contributors

goldengnu avatar jparks avatar zyortaelon avatar

eveapi's Issues

Property getter mistakenly marked private in class AttributeEnhancer

What steps will reproduce the problem?
1. Request character sheet from API
2. Do getAttributeEnhancers()
3. Try to do .getAttribute()

Line 23 of the AtrributeEnhancer class read as:
abstract String getAttribute();

Change to:
abstract public String getAttribute();
to fix this problem. Extending classes will need to have their overriding 
methods changed as well.

I've changed locally, recompiled and tested, works well.

Original issue reported on code.google.com by [email protected] on 23 Sep 2009 at 7:20

CharacterSheetHandler missing handling for willpower attribute

The CharacterSheetHandler is unable to handle the willpower attribute, hence 
leading to a NullPointerException. Adding the following code snippet to the 
startElement method will fix the issue,

else if (qName.equals("willpowerBonus"))
            attributeEnhancer = new WillpowerBonus();

Original issue reported on code.google.com by [email protected] on 26 May 2012 at 5:44

equals() and compareTo() implementations may cause collisions

I was looking into the CachingConnector implementation and found a problem with 
the implementation of the equals() and compareTo() methods in the classes 
ApiRequest and ApiAuthorization.

Those are using the hashCode to determine equality.
This is very dangerous, as it can lead to collisions.

In case of the CachingConnector, where the ApiRequest is used as the key for 
the cache map it could lead to a security problem, where you retrieve a 
different response from the map, just because the hashCode of the two 
ApiRequests are the same.

hashCode can only verify that two objects with different hashCodes are 
different, but not that two object with the same hashCode are the same.
You normally use hashCode for performance, e.g. if you have a very big list 
with objects where the equals() method is expensive, you can check for the fast 
hashCode method. Then you maybe have 3 objects left with the correct hashCode 
and then you run the equals method on those.
For example HashMap itself uses this in the containsKey() method used in the 
CachingConnector, first uses hashCode, but then verifies the results with 
equals() (which, in this case, would unfortunately always have the same result).

I suggest rewriting the equals() methods of ApiRequest and ApiAuthorization and 
using this method in the compareTo() as well.
I would also rewrite the hashCode() (as it should be focused on performance, 
and using String operations there is not the best way) and move the methods 
from ApiAuthorization to its abstract parent ApiAuth (as ApiAuth already has 
getters for all relevant fields).

I attached the files for ApiRequest, ApiAuthorization and ApiAuth with changes 
I made to hashCode(), equals() and compareTo(). Please have a look at it and 
see if you could implement those changes.

P.S. The Java Map/EntrySet implementations (e.g. HashMap) already have 
hashCode/equals implementations for their entries, so you don't have to loop 
through those, you can just use equals() or hashCode() on the map itself (like 
I did in the files attached), it will use the methods in the key and value 
objects.

Original issue reported on code.google.com by [email protected] on 18 Mar 2014 at 7:50

Attachments:

Inconsistency in Parser Usage

* What steps will reproduce the problem?

1. CharacterLookupParser nameLookup = CharacterLookupParser 
     .getId2NameInstance();
2. result = nameLookup.getCharacterList(charID);

* What is the expected output? What do you see instead?

I expect "result" to be an instance of CharacterLookupResponse, in order to be 
able to check for any error codes. There's no way to do that right now.

Original issue reported on code.google.com by [email protected] on 12 Oct 2010 at 12:34

Modify dependencies, reliance on SLF4J, and port 80 usage

Hi there,

This is a patch that does several things:

1. Removes Log4J dependency in AbstractApiParser per issue 16

2. Removes dependency on commons-logging by replacing it with SLF4J's 
commons-logging implementation (in pom.xml)

3. Changes dependency on Log4J and SLF4J's Log4J adapter to "test" scope, since 
other projects may want to use a different SLF4J adapter. This means they don't 
have to exclude the dependencies in their pom.xml.

4. Modifies the API mock URLs to use localhost:8080 instead of localhost:80 
because on Linux/MacOS port 80 is not available unless you're root.

Note that a fresh copy of this project (r142) does not do "mvn test" cleanly on 
Mac OS X 10.6.5 with JDK 1.6. Change #4 fixes a lot of the problems, but a few 
still exist. I'm looking into these.

Failed tests: 
  facWarStats(com.beimin.eveapi.corporation.factwar.stats.FacWarStatsParserTest)

Tests in error: 
  serverStatusParser(com.beimin.eveapi.server.ServerStatusParserTest)
  serialization(com.beimin.eveapi.CacheSerializationTest)
  testName2IdConversion(com.beimin.eveapi.eve.character.CharacterLookupParserTest)
  testId2NameConversion(com.beimin.eveapi.eve.character.CharacterLookupParserTest)

Tests run: 61, Failures: 1, Errors: 4, Skipped: 0

Original issue reported on code.google.com by [email protected] on 4 Dec 2010 at 5:52

Attachments:

Employment History not included in /eve/CharacterInfo.xml.aspx

> What steps will reproduce the problem?
1. visit 
https://api.eveonline.com/eve/CharacterInfo.xml.aspx?characterID=1380128241
2. notice Employment History
3. notice CharacterInfoResponse has no sense of Employment History

> What is the expected output? What do you see instead?
see http://wiki.eve-id.net/APIv2_Eve_CharacterInfo_XML

> What version of the product are you using? On what operating system?
5.0.1-SNAPSHOT (trunk)

> Please provide any additional information below.
Patch is attached

Original issue reported on code.google.com by [email protected] on 14 Mar 2012 at 8:06

Attachments:

Expose the XML going to and from the server

I have been using a modified AbstractApiParser that saves the XML going to the 
server. A patch is provided below. This allows the full XML (both ways, to and 
from the server) to be viewed. This greatly helps in debugging in my use of 
your API. I submit it for your consideration.

Thanks for providing this!

(headers of patch)

### Eclipse Workspace Patch 1.0
#P eveapi
Index: src/main/java/com/beimin/eveapi/AbstractApiParser.java
===================================================================
--- src/main/java/com/beimin/eveapi/AbstractApiParser.java  (revision 141)
+++ src/main/java/com/beimin/eveapi/AbstractApiParser.java  (working copy)

Original issue reported on code.google.com by [email protected] on 3 Dec 2010 at 6:50

Attachments:

CharacterParser constructor

The CharacterParser is not following the other parsers discipline regarding the 
constructor visibility

Constructor should be private, instead of public.


Original issue reported on code.google.com by [email protected] on 31 Aug 2014 at 2:45

Example logback.xml configuration

This is what I'm using in my project. It also requires these Maven settings:

                <dependency>
                        <!-- logback plugs into SLF4J as it's actual logger, superceeds Log4J http:/
/logback.qos.ch/ -->
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-core</artifactId>                    <version>${logback.version}</version>
                </dependency>
                <dependency>
                        <!-- logback plugs into SLF4J as it's actual logger, superceeds Log4J http:/
/logback.qos.ch/ -->
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                    <version>${logback.version}</version>
                </dependency>


and the property:

        <properties>
                <spring.version>3.0.5.RELEASE</spring.version>
                <slf4j.version>1.6.1</slf4j.version>
                <logback.version>0.9.26</logback.version>
        </properties>

It also requires SLF4J:

                <dependency>
                        <!-- Simple logging framework http://www.slf4j.org/ -->
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                        <version>${slf4j.version}</version>
                </dependency>

I also add these so replace Log4J, java.util.logging, and commons-logging with 
Logback (via SLF4J):

                <!-- http://www.slf4j.org/legacy.html for these "over" things -->
                <dependency>
                        <!-- Modern replacement of commons-logging using SLF4J -->
                        <groupId>org.slf4j</groupId>
                        <artifactId>jcl-over-slf4j</artifactId>
                        <version>${slf4j.version}</version>
                </dependency>
                <dependency>
                        <!-- Provide Log4J for c3p0's MLog logging -->
                        <groupId>org.slf4j</groupId>
                        <artifactId>log4j-over-slf4j</artifactId>
                        <version>${slf4j.version}</version>
                </dependency>
                <dependency>
                        <!-- Redirect java.util.logging -->
                        <groupId>org.slf4j</groupId>
                        <artifactId>jul-to-slf4j</artifactId>
                        <version>${slf4j.version}</version>
                </dependency>
                <!-- See http://www.slf4j.org/faq.html on how to omit commons-logging -->
                <dependency>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                        <version>1.1.1</version>
                        <scope>provided</scope>
                </dependency>

Cheers

Original issue reported on code.google.com by [email protected] on 4 Dec 2010 at 8:11

Attachments:

NullPointerException when getting industry jobs

When attempting to get the industry jobs for a character, a 
NullPointerException is thrown from IndustryJobHandler:17 - 
job.setAssemblyLineID(getLong(attrs, "assemblyLineID"));

I'm using 5.1.3. I would assume due to the removal of slots in the industry 
revamp, there is no longer an assemblyLineID field.

Original issue reported on code.google.com by [email protected] on 30 Oct 2014 at 3:46

  • Merged into: #40

Have maven install error

mvn install 
...
[ERROR] BUILD ERROR
[INFO] ---------------------------------------------------------------------

---
[INFO] Cannot execute mojo: resources. It requires a project with an 
existing pom.xml, but the build is not using one.


I'v been checkouted last version from svn read-only



Original issue reported on code.google.com by [email protected] on 31 Mar 2010 at 9:33

Thread-unsafe date parsing

I reviewed the commit diffs for the fix regarding issue 13. SimpleDateFormat is 
not thread-safe, so you should modify your DateUtils to either lock the single 
SDF that you use, or in the alternative, use a ThreadLocal to do it without 
locking. Let me know if you'd like me to provide code for the ThreadLocal 
DateUtils implementation.

This is important, for example, for a server application that uses your library 
which may be making several API calls simultaneously.

Original issue reported on code.google.com by [email protected] on 3 Dec 2010 at 6:46

Bug in Character Medals

Character Medals response uses two possible formats for responses:

- When the medal was awarded within the character's current corporation, three 
attributes are omitted from the response: reason, description, and 
corporationID.
- Call to getInt(...) for corporationID in MedalsHandler fails in this case 
with a null pointer reference.  Root cause is similar to Issue 20, the calls to 
getInt(...) and getLong(...) returning nulls when an attribute is missing 
rather than a sentinal value or a "NullObject."
- bug is reproduced in trunk (5.0.1-SNAPSHOT)

Patch is provided as attachment.
This patch defines a method hasAttribute(...) in AbstractContentHandler, and 
uses that as a guard before attempting to setCorporationID(...) on the 
CharacterMedal.

Original issue reported on code.google.com by [email protected] on 27 Apr 2012 at 4:07

Attachments:

Test failures in code base

This issue is quite simple really. The tests cases use assertions to 
compare different values (as expected).  However, when asserting a value 
with a specific time, different time zones produce different results.  For 
example, TEST-com.beimin.eveapi.starbase.DetailParserTest.xml shows a 
value comparison that uses Central time.  Because this value is hardcoded 
in the test, it will only be true when running in CST.  I live in Mountain 
Standard Time, thus the test fails.

Solution:  Remove from all tests all hardcoded timezone values.  They will 
not pass in other timezones. 

Original issue reported on code.google.com by [email protected] on 1 Mar 2008 at 10:37

Skill in training date throws parse exception

What steps will reproduce the problem?
1. Call eveapi.character.training.Response.getTrainingEndDate() or
getTrainingStartDate() or getCurrentTime()
2.
3.

What is the expected output? What do you see instead?
Expected a date in coded-in format:
new SimpleDateFormat("MM/dd/yyyy h:mm:ss a"),
from eveapi/character/training/Response.java. 

Instead, I get:
"Unparseable date: "2009-12-06 18:19:35"
pos 4


What version of the product are you using? On what operating system?
1.0, windows xp home sp3

Please provide any additional information below.
I'm assuming the parser doesn't like the '-' character, but that's the
format the call returns in a string using getTrainingEndTime() or
getTrainingStartTime(). I can use StartTime and EndTime in place of
StartDate and EndDate, and default Date() for currentTime, but this
exception causes a lot of work-around code.

Original issue reported on code.google.com by [email protected] on 26 Nov 2009 at 6:13

No reference documentation

What steps will reproduce the problem?
1. Open wiki

What is the expected output? What do you see instead?
Expected: reference documentation. Instead: one simple example.


What version of the product are you using? On what operating system?
Latest, GNU/Linux (OpenSuSE 12.3 x64)


Original issue reported on code.google.com by [email protected] on 28 May 2013 at 6:50

Authentication errors throw an exception rather than parsing the error object returned

Make a request such as :
https://api.eveonline.com/account/APIKeyInfo.xml.aspx?keyID=<key>&vCode=<vcode>

If the key is expired such that it returns error code 222, it will return a 
message and a 403 response.

<eveapi version="2">
  <currentTime>2014-01-19 05:14:54</currentTime>
  <error code="222">Key has expired. Contact key owner for access renewal.</error>
  <cachedUntil>2014-01-20 05:14:54</cachedUntil>
</eveapi>


The 403 response leads to an error, meaning I can't retrieve the error reason 
for the error to instruct the user.

com.beimin.eveapi.exception.ApiException: 
com.beimin.eveapi.exception.ApiException: java.io.IOException: Server returned 
HTTP response code: 403 for URL: 
https://api.eveonline.com/account/APIKeyInfo.xml.aspx
    at com.beimin.eveapi.connectors.ApiConnector.execute(ApiConnector.java:45)
    at com.beimin.eveapi.core.AbstractApiParser.getResponse(AbstractApiParser.java:49)
    at com.beimin.eveapi.core.AbstractApiParser.getResponse(AbstractApiParser.java:33)
    at com.beimin.eveapi.account.apikeyinfo.ApiKeyInfoParser.getResponse(ApiKeyInfoParser.java:27)
    at com.quickcamel.game.eve.kosoverlay.view.fx.controllers.SettingsController.validate(SettingsController.java:215)
    at com.quickcamel.game.eve.kosoverlay.view.fx.controllers.SettingsController.save(SettingsController.java:140)
    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:606)
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)
    at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)
    at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1446)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:69)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:28)
    at javafx.event.Event.fireEvent(Event.java:171)
    at javafx.scene.Node.fireEvent(Node.java:6867)
    at javafx.scene.control.Button.fire(Button.java:179)
    at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:193)
    at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:336)
    at com.sun.javafx.scene.control.skin.SkinBase$4.handle(SkinBase.java:329)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:64)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)
    at javafx.event.Event.fireEvent(Event.java:171)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3311)
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3151)
    at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3106)
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1563)
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2248)
    at com.sun.javafx.tk.quantum.EmbeddedScene$2$1.run(EmbeddedScene.java:194)
    at com.sun.javafx.tk.quantum.EmbeddedScene$2$1.run(EmbeddedScene.java:176)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.tk.quantum.EmbeddedScene$2.run(EmbeddedScene.java:176)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:176)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:176)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(WinApplication.java:17)
    at com.sun.glass.ui.win.WinApplication$3$1.run(WinApplication.java:67)
    at java.lang.Thread.run(Thread.java:744)
Caused by: com.beimin.eveapi.exception.ApiException: java.io.IOException: 
Server returned HTTP response code: 403 for URL: 
https://api.eveonline.com/account/APIKeyInfo.xml.aspx
    at com.beimin.eveapi.connectors.ApiConnector.getInputStream(ApiConnector.java:82)
    at com.beimin.eveapi.connectors.ApiConnector.execute(ApiConnector.java:43)
    ... 62 more
Caused by: java.io.IOException: Server returned HTTP response code: 403 for 
URL: https://api.eveonline.com/account/APIKeyInfo.xml.aspx
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1626)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
    at com.beimin.eveapi.connectors.ApiConnector.getInputStream(ApiConnector.java:80)
    ... 63 more

v5.1.2


Original issue reported on code.google.com by [email protected] on 19 Jan 2014 at 5:41

NullPointerException in ApiLocation

What steps will reproduce the problem?
1. Try accessing item locations using one of the implementations of 
com.beimin.eveapi.shared.locations.AbstractLocationsParser (either for 
characters or corporations)
2. getResponse() will cause an ApiException
3. Further debugging indicates the reason for the Exception being wrong 
variable types in com.beimin.eveapi.shared.locations.ApiLocation (x, y and z 
need to be double, not long), thus the xml parser is unable to map the request 
results.

What is the expected output? What do you see instead?
Expected output is an instance of ApiLocation, result is a NullPointerException 
caused by wrong variable types, see 
http://wiki.eve-id.net/APIv2_Char_Locations_XML

What version of the product are you using? On what operating system?
5.1.3 with Java JDK 1.7.0_45 64bit, OS is Windows 8.1 64bit

Please provide any additional information below.
A fix should be easy by just changing the variably types to double and 
modifying the methods for those variables.

Original issue reported on code.google.com by [email protected] on 3 Feb 2014 at 2:28

Use of Log4J instead of SLF4J in AbstractApiParser.java

Everywhere else uses SLF4J but this still uses the Log4J. There are only two 
changes:

1. Change this line:
-       protected Logger logger = Logger.getLogger(getClass());
+       protected Logger logger = LoggerFactory.getLogger(getClass());

2. Change associated imports:
-import org.apache.log4j.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;

Now your project has no more dependency on Log4J.

Original issue reported on code.google.com by [email protected] on 4 Dec 2010 at 7:54

NPE in ApiRequest

public ApiRequest(ApiPath path, ApiPage page, int version, Map<String, String> 
params) {
    this(path, page, version, null, params); <-- auth is null
}

temp.append(page).append(version).append(auth.getKeyID()).append(auth.getCharact
erID()).append(auth.getVCode());
                                              ^                       ^                             ^
                                             NPE                     NPE                           NPE

Original issue reported on code.google.com by yauhen.lisimau on 16 Sep 2013 at 11:18

Eclipse and GWT compatibility

Can you give direction/help with getting GWT and eveAPI to play nice together 
in Eclipse?

I've set up Eclipse to pull from the Maven repository (via 
http://kiahu.com/tutorial/working-with-gwt-maven-and-the-google-plugin-for-eclip
se/)
I've grabbed a pom.xml that works from: 

Whenever I try to compile as a Web App - says "No source code is available for 
type com.beimin.eveapi.core.ApiRequest; did you forget to inherit a required 
module?"

Also - I'd be willing to pay you in isk for your time helping me set up a 
EveApi GWT project in Eclipse.

Original issue reported on code.google.com by [email protected] on 25 Jul 2012 at 7:04

Unresolvable dependancy

What steps will reproduce the problem?
Build the project using maven

What is the expected output? What do you see instead?
Code base should build.  It does not.  Perhaps documenting where this
dependency comes from would provide a workaround.

What version of the product are you using? On what operating system?
r43

Please provide any additional information below.
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

Missing:
----------
1) com.betterbe.testutils:testutils:jar:2.0.2


Original issue reported on code.google.com by [email protected] on 4 Feb 2009 at 8:29

typeID/locationID is int and long

In some classes typeID/locationID is long in other classes it is int

ApiAsset.getTypeID() : int
ApiAsset.getLocationID() : int

ApiMarketOrder.getTypeID() : long
ApiMarketOrder.getStationID() : long

ApiIndustryJob.getInstalledItemTypeID() : long
ApiIndustryJob.getInstalledItemLocationID() : long
apiIndustryJob.getContainerLocationID() : long
apiIndustryJob.getOutputLocationID() : long

And when I'm writing anyway:
Thank you a million for continue to support this awesome library!

-GoldenGnu of jEveAssets

Original issue reported on code.google.com by [email protected] on 19 Jun 2010 at 10:40

Date objects are being parsed in wrong time zone

What steps will reproduce the problem?
1. Get data using say ApiSkillQueueItem
2. Be in any time zone other than GMT
3. Use the getEndDate() method which parses the API result
4. The result will be the wrong time

What is the expected output? What do you see instead?

For example, the string returned by the API is "2010-11-28 22:52:45". The 
result from the getEndDate() is: "Sun Nov 28 22:52:45 EST 2010" (with 
toString). This is obviously incorrect. THe correct result would be "Sun Nov 28 
17:52:45 EST 2010".

What version of the product are you using? On what operating system?

SVN as of Nov 28, 2010.

Please provide any additional information below.

This can be easily fixed by manually setting the timezone on the 
SimpleDateFormats. For example, just add this to anything that has an SDF:

    public ApiSkillQueueItem() {
        // EVE API returns times in GMT
        sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
    }

It might be easiest to have a central SDF using a ThreadLocal that returns a 
properly initialized SDF, or at least a utility to create the SDF properly.

However, the simple addition above fixes it just fine for me.

Original issue reported on code.google.com by [email protected] on 28 Nov 2010 at 7:24

API Access to industry jobs broken since Crius release

Hi

Since the Crius release the access to industry jobs is broken, CCP changed the 
API:
http://community.eveonline.com/news/dev-blogs/upcoming-api-changes-for-industry/

I changed the code so it works for active jobs again (only corp tested live). 
Job history is probably easy to add as it's the same data format.
Attached is a patch against the current svn, but the formatting is 
unfortunately broken.

Bye, Burb

Original issue reported on code.google.com by [email protected] on 2 Aug 2014 at 1:58

Attachments:

Bug in CCP Member Tracking Feed is causing null pointer errors

Due to a bug introduced in the latest patch when requesting the membertracking 
API from CCP a number of fields are missing. I am attaching a patch that will 
include a number of checks that will determine in the fields are there or not 
if not it will not attempt to set the member bean and side step a null pointer 
exception with getDate, getInt and other processing calling.

Index: 
src/main/java/com/beimin/eveapi/corporation/member/tracking/MemberTrackingHandle
r.java
===================================================================
--- 
src/main/java/com/beimin/eveapi/corporation/member/tracking/MemberTrackingHandle
r.java  (revision 228)
+++ 
src/main/java/com/beimin/eveapi/corporation/member/tracking/MemberTrackingHandle
r.java  (working copy)
@@ -12,20 +12,38 @@

    @Override
    protected ApiMember getItem(Attributes attrs) {
+       
        ApiMember member = new ApiMember();
        member.setCharacterID(getLong(attrs, "characterID"));
+       member.setName(getString(attrs, "name"));
        member.setBase(getString(attrs, "base"));
        member.setBaseID(getInt(attrs, "baseID"));
-       member.setGrantableRoles(getInt(attrs, "grantableRoles"));
-       member.setLocation(getString(attrs, "location"));
-       member.setLocationID(getInt(attrs, "locationID"));
-       member.setLogoffDateTime(getDate(attrs, "logoffDateTime"));
-       member.setLogonDateTime(getDate(attrs, "logonDateTime"));
-       member.setName(getString(attrs, "name"));
-       member.setRoles(getLong(attrs, "roles"));
-       member.setShipType(getString(attrs, "shipType"));
-       member.setShipTypeID(getInt(attrs, "shipTypeID"));
        member.setTitle(getString(attrs, "title"));
+       
+       if( attrs.getValue("grantableRoles") != null )
+           member.setGrantableRoles(getInt(attrs, "grantableRoles"));
+       
+       if( attrs.getValue("location") != null )
+           member.setLocation(getString(attrs, "location"));
+       
+       if( attrs.getValue("locationID") != null )
+           member.setLocationID(getInt(attrs, "locationID"));
+       
+       if( attrs.getValue("logoffDateTime") != null )
+           member.setLogoffDateTime(getDate(attrs, "logoffDateTime"));
+       
+       if( attrs.getValue("logonDateTime") != null )
+           member.setLogonDateTime(getDate(attrs, "logonDateTime"));
+       
+       if( attrs.getValue("roles") != null )
+           member.setRoles(getLong(attrs, "roles"));
+       
+       if( attrs.getValue("shipType") != null )
+           member.setShipType(getString(attrs, "shipType"));
+       
+       if( attrs.getValue("shipTypeID") != null )
+           member.setShipTypeID(getInt(attrs, "shipTypeID"));
+       
        return member;
    }
 }
\ No newline at end of file

Original issue reported on code.google.com by [email protected] on 11 Feb 2012 at 5:56

KILL_LIST field in com.beimin.eveapi.killlog.Parser is wrong / outdated

What steps will reproduce the problem?
1. Method call to parser.getKillList(ApiAuth auth, boolean implementation);

What is the expected output? What do you see instead?

java.io.FileNotFoundException:
http://api.eve-online.com/char/KillList.xml.aspx?<api information removed>


/char/KillList.xml.aspx is not a valid URL - KillLog.xml.aspx is correct one.

Fix attached

Original issue reported on code.google.com by [email protected] on 27 Oct 2009 at 8:47

Attachments:

No code documentation

What steps will reproduce the problem?
1. check out source code
2. open the code in editor/IDE

What is the expected output? What do you see instead?
Expected: documentation on api usage (at least javadoc). Instead: just plain 
code.

What version of the product are you using? On what operating system?
Latest. OS: irrelevant

Original issue reported on code.google.com by [email protected] on 28 May 2013 at 6:53

MailMessagesHandler uses wrong attribute name to identify mailingLists in To header

MailMessagesHandler and associated unit tests use the wrong attribute name to 
detect mailingLists in the To header of EveMail messages.

Handler looks for an attribute named "toListIDs" but CCPs API servers are 
returning the attribute named "toListID" instead.

See also http://wiki.eve-id.net/APIv2_Char_MailMessages_XML

Patch included

Original issue reported on code.google.com by [email protected] on 2 Jun 2012 at 10:05

Attachments:

WalletJournal and WalletTransactions do not allow caller to specify desired rowCount

What steps will reproduce the problem?
1. look at the API
2. make a sad face

What is the expected output? What do you see instead?
WalletJournalParser and WalletTransactionsParser always use default implicit 
value for the optional rowCount parameter

What version of the product are you using? On what operating system?
5.0.1-SNAPSHOT

Please provide any additional information below.
patch provided

Original issue reported on code.google.com by [email protected] on 15 Mar 2012 at 1:42

Attachments:

Proxy connections not supported

Library won't work behind a proxy-only connection as it does not support 
the setting of a proxy server.

Attached file contains a proposed patch that will enable setting of global 
proxy settings (statically set on the AbstractApiParser class).

The change will not break existing code and works exactly as it used to 
work if the proxy is not set.  When set, it will use a proxy server to 
connect.  

Original issue reported on code.google.com by [email protected] on 6 Oct 2009 at 8:49

Attachments:

64-Bit ItemID Codes

The itemID's for some parser's need to be able to handle 64-bit numbers (ie 
long not int). For instance with the StarbaseDetailParser.

If I'm right, all the parser's which require an itemID of any kind won't work 
with the current eveapi release.

Original issue reported on code.google.com by [email protected] on 19 Mar 2011 at 10:34

StandingsParserTest Failes

When I compile r117 I get the following error:

Stack Trace:
java.lang.InstantiationException: com.beimin.eveapi.shared.standings.ApiStanding
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:3181)
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:3207)
        at org.apache.commons.digester.Digester.startElement(Digester.java:1456)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
        at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:179)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2755)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
        at org.apache.commons.digester.Digester.parse(Digester.java:1765)
        at com.beimin.eveapi.AbstractApiParser.getResponse(AbstractApiParser.java:239)
        at com.beimin.eveapi.corporation.standings.StandingsParserTest.standingsParser(StandingsParserTest.java:22)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.junit.internal.runners.TestMethodRunner.executeMethodBody(TestMethodRunner.java:99)
        at org.junit.internal.runners.TestMethodRunner.runUnprotected(TestMethodRunner.java:81)
        at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
        at org.junit.internal.runners.TestMethodRunner.runMethod(TestMethodRunner.java:75)
        at org.junit.internal.runners.TestMethodRunner.run(TestMethodRunner.java:45)
        at org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(TestClassMethodsRunner.java:66)
        at org.junit.internal.runners.TestClassMethodsRunner.run(TestClassMethodsRunner.java:35)
        at org.junit.internal.runners.TestClassRunner$1.runUnprotected(TestClassRunner.java:42)
        at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:34)
        at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
        at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:125)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:290)
        at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:818)

Original issue reported on code.google.com by [email protected] on 8 Oct 2010 at 9:27

Corporation Sheet parse failure for The Scope

What steps will reproduce the problem?
1. look at 
https://api.eveonline.com/corp/CorporationSheet.xml.aspx?corporationID=1000107
2. run the following code:
    CorpSheetParser.getInstance().getResponse(1000107);
3. see exception

What is the expected output? What do you see instead?
the code generates a null pointer exception when calling setShares(getInt()) in 
line 71 of CorpSheetHandler.

Fix is going to be to convert the shared property to a Long from an Integer.  
The Scope has too many shares to fit in and Integer now.

What version of the product are you using? On what operating system?
5.0.0

Please provide any additional information below.
patch provided

Original issue reported on code.google.com by [email protected] on 17 Mar 2012 at 12:36

Attachments:

CharacterSheetHandler is calling getInt(...) to pull a roleID out (line 51), but the ID is too big, so a NumberFormatException is being thrown. Need to update it to use getLong(...)

What steps will reproduce the problem?
1.  Call CharacterSheetParser.getInstance().getResponse(auth); on a character 
who has a role whose ID is over MAX_INT
2.  NullPointerException will be thrown at 
com.beimin.eveapi.character.sheet.CharacterSheetHandler.startElement(CharacterSh
eetHandler.java:51)


What is the expected output? What do you see instead?
I expect the long to be parsed correctly, no NumberFormatException.


What version of the product are you using? On what operating system?
eveapi-5.1.1.jar, Win7

I can fix this locally, figured that you'd want to know.

Original issue reported on code.google.com by [email protected] on 30 Mar 2013 at 8:14

CharacterSheetHandler does not handle among others, certificates correctly

In the CharacterSheetHandler class's startElement, any element with the qName 
"row" is handled equally == it expects that row to define a skill. However, 
certificates, corporation roles and corporation titles are also defined with an 
element named "row". This will lead to a NullPointerException, because, for 
example, the certificate roles do not have a "typeID" attribute.

The CharacterSheetHandler should be modified to take into account also other 
type of rowsets than the one for skills. See this link for details about the 
structure of the Eve API result 
http://wiki.eve-id.net/APIv2_Char_CharacterSheet_XML

Original issue reported on code.google.com by [email protected] on 26 May 2012 at 5:49

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.