Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions lang/java/ipc/protocol.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (
"io"
"log"

"github.com/bytedance/sonic"
"github.com/cloudwego/abcoder/lang/java/pb"
)

Expand Down Expand Up @@ -133,7 +134,7 @@ func (pr *ProtocolReader) ReadMessage() (*pb.Message, error) {
Payload json.RawMessage `json:"payload,omitempty"`
}
var raw rawMessage
if err := json.Unmarshal(pr.buf, &raw); err != nil {
if err := sonic.Unmarshal(pr.buf, &raw); err != nil {
if pr.debug {
log.Printf("[Protocol] <<< Failed to unmarshal: %v", err)
}
Expand All @@ -156,7 +157,7 @@ func (pr *ProtocolReader) ReadMessage() (*pb.Message, error) {
Payload json.RawMessage `json:"payload"`
}
var arRaw rawAnalyzeResponse
if err := json.Unmarshal(raw.Payload, &arRaw); err != nil {
if err := sonic.Unmarshal(raw.Payload, &arRaw); err != nil {
return nil, fmt.Errorf("failed to unmarshal analyze_response payload: %w", err)
}

Expand All @@ -183,7 +184,7 @@ func (pr *ProtocolReader) ReadMessage() (*pb.Message, error) {
if rm, ok := payload.(json.RawMessage); ok {
ar.Payload = rm
} else {
if err := json.Unmarshal(arRaw.Payload, payload); err != nil {
if err := sonic.Unmarshal(arRaw.Payload, payload); err != nil {
return nil, fmt.Errorf("failed to unmarshal analyze_response inner payload (%s): %w", arRaw.PayloadType, err)
}
ar.Payload = payload
Expand All @@ -192,21 +193,21 @@ func (pr *ProtocolReader) ReadMessage() (*pb.Message, error) {

case pb.TYPE_ANALYZE_REQUEST:
var req pb.AnalyzeRequest
if err := json.Unmarshal(raw.Payload, &req); err != nil {
if err := sonic.Unmarshal(raw.Payload, &req); err != nil {
return nil, fmt.Errorf("failed to unmarshal analyze_request payload: %w", err)
}
msg.Payload = &req

case pb.TYPE_STOP_REQUEST:
var stop pb.StopRequest
if err := json.Unmarshal(raw.Payload, &stop); err != nil {
if err := sonic.Unmarshal(raw.Payload, &stop); err != nil {
return nil, fmt.Errorf("failed to unmarshal stop_request payload: %w", err)
}
msg.Payload = &stop

case pb.TYPE_HEARTBEAT:
var hb pb.Heartbeat
if err := json.Unmarshal(raw.Payload, &hb); err != nil {
if err := sonic.Unmarshal(raw.Payload, &hb); err != nil {
return nil, fmt.Errorf("failed to unmarshal heartbeat payload: %w", err)
}
msg.Payload = &hb
Expand Down Expand Up @@ -247,7 +248,7 @@ func (pw *ProtocolWriter) SetDebug(enabled bool) {

// WriteMessage writes a length-prefixed JSON Message.
func (pw *ProtocolWriter) WriteMessage(msg *pb.Message) error {
data, err := json.Marshal(msg)
data, err := sonic.Marshal(msg)
if err != nil {
return fmt.Errorf("failed to marshal JSON message: %w", err)
}
Expand Down
4 changes: 2 additions & 2 deletions lang/java/ipc/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ func (s *JavaParserServer) sendAnalyzeRequest(repoPath string, config *pb.Analyz
}

writer := NewProtocolWriter(s.conn)
writer.SetDebug(true) // Enable debug logging for sent messages
writer.SetDebug(s.config.Debug)
if err := writer.WriteRequest(request); err != nil {
return fmt.Errorf("failed to write analyze request: %w", err)
}
Expand All @@ -261,7 +261,7 @@ func (s *JavaParserServer) readResponses(ctx context.Context, responseChan chan<
defer s.cleanup()

reader := NewProtocolReader(s.conn)
reader.SetDebug(true) // Enable debug logging for received messages
reader.SetDebug(s.config.Debug)

for {
select {
Expand Down
Loading