Frozenlock / wacnet

Webserver to browse a BACnet network
46 stars 7 forks source link

Loading "Device Description" in API fails with 500 #8

Closed berkoben closed 4 years ago

berkoben commented 7 years ago

(using v2.1.1)

To Reproduce, go to any device (system is ALC) and click on the additional info button for "device Description". Then click on the "open in API" link. Result is the following:

500: Internal Server Error

There was an internal server error.

clojure.lang.ExceptionInfo: Error on GET {:response #yada.context.Response{:headers {}, :vary #{:media-type}, :produces {:media-type #yada.media_type.MediaTypeMap{:name "text/html", :type "text", :subtype "html", :parameters {}, :quality 1.0}, :charset #yada.charset.CharsetMap{:alias "UTF-8", :quality 1.0}}}, :resource yada.resource.Resource, :error #error { :cause nil :via [{:type com.serotonin.bacnet4j.exception.ReflectionException :message "java.lang.reflect.InvocationTargetException" :at [com.serotonin.bacnet4j.type.Encodable read "Encodable.java" 214]} {:type java.lang.reflect.InvocationTargetException :message nil :at [sun.reflect.GeneratedConstructorAccessor1320 newInstance nil -1]} {:type java.lang.NullPointerException :message nil :at [com.serotonin.bacnet4j.type.AmbiguousValue attemptConversion "AmbiguousValue.java" 139]}] :trace [[com.serotonin.bacnet4j.type.AmbiguousValue attemptConversion "AmbiguousValue.java" 139] [com.serotonin.bacnet4j.type.Encodable readEncodable "Encodable.java" 338] [com.serotonin.bacnet4j.type.constructed.ReadAccessResult$Result "ReadAccessResult.java" 134] [sun.reflect.GeneratedConstructorAccessor1320 newInstance nil -1] [sun.reflect.DelegatingConstructorAccessorImpl newInstance "DelegatingConstructorAccessorImpl.java" 45] [java.lang.reflect.Constructor newInstance "Constructor.java" 422] [com.serotonin.bacnet4j.type.Encodable read "Encodable.java" 202] [com.serotonin.bacnet4j.type.constructed.SequenceOf "SequenceOf.java" 80] [com.serotonin.bacnet4j.type.Encodable readSequenceOf "Encodable.java" 273] [com.serotonin.bacnet4j.type.Encodable readOptionalSequenceOf "Encodable.java" 307] [com.serotonin.bacnet4j.type.constructed.ReadAccessResult "ReadAccessResult.java" 72] [sun.reflect.GeneratedConstructorAccessor1319 newInstance nil -1] [sun.reflect.DelegatingConstructorAccessorImpl newInstance "DelegatingConstructorAccessorImpl.java" 45] [java.lang.reflect.Constructor newInstance "Constructor.java" 422] [com.serotonin.bacnet4j.type.Encodable read "Encodable.java" 202] [com.serotonin.bacnet4j.type.constructed.SequenceOf "SequenceOf.java" 68] [com.serotonin.bacnet4j.type.Encodable readSequenceOf "Encodable.java" 262] [com.serotonin.bacnet4j.service.acknowledgement.ReadPropertyMultipleAck "ReadPropertyMultipleAck.java" 58] [com.serotonin.bacnet4j.service.acknowledgement.AcknowledgementService createAcknowledgementService "AcknowledgementService.java" 56] [com.serotonin.bacnet4j.apdu.ComplexACK parseServiceData "ComplexACK.java" 208] [com.serotonin.bacnet4j.transport.DefaultTransport completeComplexAckResponse "DefaultTransport.java" 651] [com.serotonin.bacnet4j.transport.DefaultTransport segmentedIncoming "DefaultTransport.java" 642] [com.serotonin.bacnet4j.transport.DefaultTransport receiveAPDU "DefaultTransport.java" 578] [com.serotonin.bacnet4j.transport.DefaultTransport receiveImpl "DefaultTransport.java" 472] [com.serotonin.bacnet4j.transport.DefaultTransport run "DefaultTransport.java" 412] [java.lang.Thread run "Thread.java" 745]]}} at clojure.core$ex_info.invokeStatic(core.clj:4617) at clojure.core$ex_info.invoke(core.clj:4617) at yada.methods$fn18507$fn18518.invoke(methods.clj:203) at manifold.deferred$catchSINGLEQUOTE$fn2095.invoke(deferred.clj:962) at manifold.deferred.Listener.onError(deferred.clj:220) at manifold.deferred.Deferred$fn1879$fn__1880.invoke(deferred.clj:400) at clojure.lang.AFn.run(AFn.java:22) at io.aleph.dirigiste.Executor$Worker$1.run(Executor.java:62) at manifold.executor$thread_factory$reify1384$f1385.invoke(executor.clj:36) at clojure.lang.AFn.run(AFn.java:22) at java.lang.Thread.run(Thread.java:745)

Frozenlock commented 7 years ago

Thank you for reporting this. Could you make the port 47999 available? (Or a VLAN access?) This way I could determine the cause (Wacnet or ALC) and hopefully make a patch for it.

You can send me private info at cfortin@hvac.io

berkoben commented 7 years ago

unfortunately we can't open up our network. If there's anything relatively straightforward I can do remotely, let me know

Frozenlock commented 7 years ago

Nothing comes to mind.

There is something you can try to go around this problem. If you're running Wacnet on your machine, go to http://localhost:47800/api/v1/swagger/index.html?url=/api/v1/swagger.json#!/BACnet/get_bacnet_devices_device_id_objects_object_id and enter the wanted properties, instead asking for all of them like the UI does.

krogal1985 commented 7 years ago

At me too such problem. If you specify the required parameters, then the query is executed. How can I find out the list of all parameters for this object?

Frozenlock commented 4 years ago

I'll close for now as I couldn't reproduce the problem and there was many releases since then which might have fixed things.